Compare commits

...

759 Commits

Author SHA1 Message Date
jinling.yang
f7e6be7925 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
#	sf_sale/models/quick_easy_order.py
#	sf_sale/models/sale_order.py
#	sf_sale/views/purchase_order_view.xml
2024-02-22 09:35:18 +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
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
杨金灵
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
fbf86a69e3 1.采购订单Tree列表新增审核状态 2023-12-29 11:24:48 +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
f3ec784383 还原产品页面代码 2023-12-28 16:38:37 +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
马广威
032b13b2ad Accept Merge Request #741: (feature/制造代码优化 -> develop)
Merge Request: 修复image小组件图片路径拼接失败的问题

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/741
2023-12-28 09:00:56 +08:00
mgw
e33ca7cd33 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2023-12-27 17:23:25 +08:00
mgw
3a7a6e480a 修复image小组件图片路径拼接失败的问题 2023-12-27 17:23:05 +08:00
杨金灵
51b67c0dcd Accept Merge Request #740: (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/740?initial=true
2023-12-27 15:50:23 +08:00
jinling.yang
8124818bad 修复销售库存访问权限 2023-12-27 15:48:48 +08:00
杨金灵
3a62d4406f Accept Merge Request #739: (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/739?initial=true
2023-12-27 15:00:38 +08:00
龚启豪
8b8b30602b Accept Merge Request #738: (feature/修改机床参数bug -> develop)
Merge Request: 区分tree和form继承视图

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/738?initial=true
2023-12-27 14:51:18 +08:00
jinling.yang
7a5fcd79d8 修改功能刀具安全库存的创建权限 2023-12-27 14:42:43 +08:00
qihao.gong@jikimo.com
93fe4d8c62 区分tree和form继承视图 2023-12-27 14:41:53 +08:00
jinling.yang
cdeec93e76 产品增加销售的权限组的访问权限,质量标签和质量理由增加质量的权限组的访问权限 2023-12-27 10:18:09 +08:00
jinling.yang
1a2d9592d1 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2023-12-26 14:22:48 +08:00
jinling.yang
71a64c36ca Merge branch 'feature/修复刀具管理模块' into develop 2023-12-26 14:22:32 +08:00
杨金灵
5f026e3b1e Accept Merge Request #737: (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/737?initial=true
2023-12-26 14:22:04 +08:00
jinling.yang
d50f8716b5 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复刀具管理模块 2023-12-26 14:17:38 +08:00
jinling.yang
6cd2637983 1.修复客户和用户的name_search方法2.销售的采购经理权限组代码还原查询销售订单3.新增销售的权限组访问标签权限4.刀具管理去掉引用样式css文件 2023-12-26 14:17:25 +08:00
马广威
ab91ce01d4 Accept Merge Request #736: (feature/制造代码优化 -> develop)
Merge Request: 修复配置文件问题

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/736
2023-12-26 09:40:32 +08:00
mgw
8f1897c4ff 修复配置文件问题 2023-12-26 09:39:52 +08:00
杨金灵
1e2c80c38f Accept Merge Request #735: (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/735?initial=true
2023-12-25 17:32:45 +08:00
jinling.yang
db8ad0f425 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改数据库
# Conflicts:
#	odoo.conf
2023-12-25 17:31:13 +08:00
jinling.yang
eedce8338b 1.修改数据库2.数据库去掉demo数据指令3.工单的获取cnc车程序按钮代码还原 2023-12-25 17:30:32 +08:00
马广威
b132cb8713 Accept Merge Request #734: (feature/制造代码优化 -> develop)
Merge Request: 修复权限,修改数据库名称

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/734?initial=true
2023-12-25 16:08:04 +08:00
mgw
66d6fe8f0a Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化
# Conflicts:
#	odoo.conf
2023-12-25 16:07:23 +08:00
mgw
97e57f9b3c 修复权限,修改数据库名称 2023-12-25 16:05:23 +08:00
杨金灵
57cfa56081 Accept Merge Request #733: (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/733?initial=true
2023-12-25 16:03:59 +08:00
jinling.yang
1d464dd00e 新建数据库 2023-12-25 16:01:25 +08:00
jinling.yang
fdc38afcbd Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化采购编辑 2023-12-25 16:00:33 +08:00
jinling.yang
2e9dc3d006 采购总监查看审核状态不为空的询价/采购单 2023-12-25 16:00:20 +08:00
禹翔辉
c54a8308c6 Accept Merge Request #732: (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/732
2023-12-25 15:40:59 +08:00
yuxianghui
1934708d78 Merge remote-tracking branch 'origin/feature/功能刀具组装流程bug优化' into feature/自动根据功能刀具安全库存创建组装单 2023-12-25 15:38:45 +08:00
yuxianghui
e7bfff491b 1、新增库存位置:功能刀具组装位置,2、完善根据功能刀具安全库存自动生成组装单功能。3、功能刀具组装tree视图新增默认筛选未组装状态记录 2023-12-25 15:37:14 +08:00
jinling.yang
97e36c249b 1.产品新增计划岗权限,页面部分字段新增只读控制2.采购优化确认订单按钮 2023-12-25 15:15:35 +08:00
jinling.yang
6d93d5ef87 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2023-12-25 11:35:17 +08:00
jinling.yang
e8a0b3da93 Merge branch 'feature/优化客户' into develop 2023-12-25 11:34:37 +08:00
杨金灵
e9acd98ccc Accept Merge Request #730: (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/730
2023-12-25 11:34:24 +08:00
马广威
535d69f4d9 Accept Merge Request #731: (feature/制造代码优化 -> develop)
Merge Request: 优化计划处代码

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/731?initial=true
2023-12-25 11:34:14 +08:00
mgw
603a59b6d7 优化计划处代码 2023-12-25 11:33:39 +08:00
jinling.yang
ca2f30fdbd Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2023-12-25 11:06:28 +08:00
jinling.yang
4c92c08f84 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化客户 2023-12-25 11:06:11 +08:00
jinling.yang
2fd8483a52 优化客户,供应商.销售订单和采购订单权限需求 2023-12-25 11:05:56 +08:00
马广威
71bdd6334f Accept Merge Request #729: (feature/制造代码优化 -> develop)
Merge Request: 代码优化

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/729?initial=true
2023-12-25 09:41:00 +08:00
mgw
194f6f52dc 代码优化 2023-12-25 09:40:04 +08:00
jinling.yang
93ce482d40 优化采购和销售 2023-12-22 17:43:25 +08:00
yuxianghui
96c5c3dcf5 1、新增按照功能刀具安全库存数量自动触发创建功能刀具组装单; 2023-12-22 17:37:10 +08:00
马广威
6bcf7ec53a Accept Merge Request #728: (feature/制造代码优化 -> develop)
Merge Request: 权限优化、代码优化、工单处增加一些字段

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/728
2023-12-22 15:07:17 +08:00
mgw
a7d760bc5e Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2023-12-22 15:00:30 +08:00
mgw
e196b6b1e3 优化权限相关展示 2023-12-22 14:58:39 +08:00
黄焱
9cb9872a5e Accept Merge Request #727: (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/727?initial=true
2023-12-21 17:57:18 +08:00
jinling.yang
58d4b3813b 销售1.新增进度状态字段,选项为:待排程、待加工、待发货、待收货、已收货,
2.销售和报价页面的所有按钮根据审核状态和状态做隐藏显示控制
3.销售订单Form和Tree视图新增进度状态字段,且form表单根据状态字段的值为销售和取消时,表单不可编辑
4.产品页面的所有按钮根据销售和采购的权限组做显示和隐藏控制
2023-12-21 17:45:29 +08:00
龚启豪
34d0e989d6 Accept Merge Request #726: (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/726?initial=true
2023-12-21 17:38:15 +08:00
qihao.gong@jikimo.com
c52af21477 1 2023-12-21 17:36:13 +08:00
qihao.gong@jikimo.com
149d6778f5 放开注释 2023-12-21 17:28:55 +08:00
mgw
98c9f3098b 工单详情处增加实际开始时间、实际结束时间,是否合格、加工人、检测人、实际加工机台等字段信息 2023-12-21 10:53:13 +08:00
mgw
ff904ad68c 权限暂存 2023-12-20 17:54:14 +08:00
黄焱
932f82ac6c 需求-客户、供应商视图展示优化
库存-库存概览界面的显示需优化
工厂端所有新建编辑页面的保存和取消按钮样式及文字要优化
【刀具组装】功能刀具组装单详情界面有个字段标题显示不全
制造-刀具管理-机床换刀申请界面标题显示重叠了
2023-12-20 17:51:46 +08:00
jinling.yang
bbb5ddb177 1.修复销售总监看不到销售订单2.优化销售审核向导3.优化销售 2023-12-20 17:45:29 +08:00
禹翔辉
7cbbf58309 Accept Merge Request #724: (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/724
2023-12-20 15:26:32 +08:00
yuxianghui
8edee62d3a Merge remote-tracking branch 'origin/feature/换刀申请优化' into feature/功能刀具组装流程bug优化 2023-12-20 15:22:59 +08:00
yuxianghui
ce67b7985b 1、优化功能刀具组装和功能刀具组装弹窗界面的刀具物料信息,添加刀具物料规格字段;2、优化功能刀具组装确认功能,创建刀具组装入库作业时新增name字段内容,新增作业自动验证;3、优化自动生成功能刀具序列号方法 2023-12-20 15:21:06 +08:00
jinling.yang
ef47597cf9 1.强制必填字段
(1)【客户名称】、【税ID】、【Email】、【销售员】、【标签】为强制必填
(2)【电话】、【手机】两个字段控制为二选一强制必填
2.客户校验规则:
(1)【客户名称】+【税ID】两个字段分别与已经创建客户的档案信息进行校验,任意一项100%吻合则不允许创建客户
3.强制必填字段
(1)【名称】、【Email】、【销售员】为强制必填
(2)【电话】、【手机】两个字段控制为二选一强制必填
4.个人校验规则:
(1)【名称】+【Email】两个字段分别与已经创建客户的档案信息进行校验,两项一起100%吻合则不允许创建个人
5.下拉仅显示销售人员的账户用户名(非相关用户及姓名不显示),字段为强制必填
(1)创建人的权限为销售经理,则【销售员】字段自动默认为当前账号的用户姓名,且不可修改
(2)创建人的权限为销售总监,则【销售员】字段自动默认为当前账号的用户姓名,可下拉选择,修改销售人员姓名
2023-12-19 17:48:30 +08:00
qihao.gong@jikimo.com
9e8d5aaf6a 修改机床同步注册接口 2023-12-19 17:33:24 +08:00
yuxianghui
363463e31d 1、新增安装时自动配置刀具房位置,重新配置了刀具组装入库的作业类型,增加名称为刀具组装入库的参考序列配置;2、功能刀具所以的装刀长改为总长度;3、机床换刀申请和刀具组装单弹窗界面做字段必填控制,对新刀隐藏切削相关字段;4、刀具组装单弹窗增加一些字段的数值自动填写和计算; 2023-12-19 17:31:37 +08:00
mgw
8ff635e901 优化计划中的菜单项目 2023-12-19 16:32:09 +08:00
qihao.gong@jikimo.com
c65e13a83e 修改设备类别以及机床参数 2023-12-18 17:38:24 +08:00
jinling.yang
8721bc2de1 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2023-12-18 09:36:32 +08:00
jinling.yang
ec344cc918 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2023-12-18 09:36:18 +08:00
马广威
905df2b79e Accept Merge Request #723: (feature/制造代码优化 -> develop)
Merge Request: 优化权限相关

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/723
2023-12-17 10:52:59 +08:00
mgw
e73fb5791a Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2023-12-17 10:50:18 +08:00
mgw
6738a855bb 优化权限相关 2023-12-17 10:48:51 +08:00
jinling.yang
3c82020e5e Merge branch 'feature/修复销售权限组' into develop 2023-12-15 17:56:04 +08:00
杨金灵
422074fcec Accept Merge Request #722: (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/722
2023-12-15 17:53:41 +08:00
jinling.yang
897f5b76f0 修复质量的权限 2023-12-15 17:49:33 +08:00
jinling.yang
ee565d3796 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复销售权限组 2023-12-15 17:39:16 +08:00
jinling.yang
912b50246a Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2023-12-15 17:39:01 +08:00
jinling.yang
df2ba048f4 1.修复采购权限和销售权限2.销售新增审核向导 2023-12-15 17:38:40 +08:00
qihao.gong@jikimo.com
ef2f7d3ecb 修改机床设备参数,处理同步bug,以及机床设备视图布局 2023-12-15 17:28:42 +08:00
qihao.gong@jikimo.com
2391c08485 修改i机床接口同步以及参数 2023-12-14 17:33:28 +08:00
jinling.yang
85ac3d7a3e 报价Tree视图筛选框去掉默认的我的报价的条件 2023-12-13 17:30:40 +08:00
jinling.yang
b96723d9a5 修复销售权限组 2023-12-12 17:40:22 +08:00
禹翔辉
19b9db66d3 Accept Merge Request #721: (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/721
2023-12-11 17:10:28 +08:00
yuxianghui
8371875d62 放开机床换刀申请模块记录没有功能刀具信息时换刀申请按键的权限 2023-12-11 15:41:31 +08:00
jinling.yang
a3f6fdda2a Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop
# Conflicts:
#	sf_tool_management/__init__.py
#	sf_tool_management/models/base.py
2023-12-11 14:54:23 +08:00
杨金灵
4a10335379 Accept Merge Request #720: (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/720
2023-12-11 14:51:36 +08:00
禹翔辉
1132acfa40 Accept Merge Request #719: (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/719
2023-12-11 14:48:37 +08:00
jinling.yang
7138dab1b5 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/权限去掉继承 2023-12-11 14:48:08 +08:00
jinling.yang
6bf3df0ef4 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/权限去掉继承 2023-12-11 14:47:34 +08:00
jinling.yang
55594c119f 产品添加质量权限组访问权限 2023-12-11 14:47:06 +08:00
马广威
0a3bd37224 Accept Merge Request #718: (feature/制造代码优化 -> develop)
Merge Request: 修改京东物流寻单据部分逻辑

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/718?initial=true
2023-12-11 14:46:23 +08:00
yuxianghui
60abdfb372 Merge remote-tracking branch 'origin/feature/CAM工单程序用刀计划重构' into feature/刀具管理模块安装时更新数据 2023-12-11 14:46:16 +08:00
mgw
facdf5712a 修改京东物流寻单据部分逻辑 2023-12-11 14:45:55 +08:00
yuxianghui
94df139110 1、新增刀具管理模块安装时根据已有机床设备存在的刀位创建机台换刀申请记录 2023-12-11 14:41:31 +08:00
jinling.yang
e4f6bc4632 权限去掉继承 2023-12-11 14:36:34 +08:00
马广威
6f0dbe3625 Accept Merge Request #717: (feature/制造代码优化 -> develop)
Merge Request: 修改cs环境数据库为t环境数据库

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/717?initial=true
2023-12-11 14:09:56 +08:00
mgw
c00cd5a00a 修改cs环境数据库为t环境数据库 2023-12-11 14:09:02 +08:00
禹翔辉
b487b6fc40 Accept Merge Request #716: (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/716
2023-12-08 17:34:02 +08:00
yuxianghui
8489a67e64 Merge remote-tracking branch 'origin/feature/机床换刀申请优化' into feature/CAM工单程序用刀计划重构 2023-12-08 17:31:54 +08:00
yuxianghui
f8426ae4c3 1、重构CAM工单程序用刀计划模型;2、机床换刀申请模型的申请换刀、转移按键增加显示条件,关闭换刀申请弹窗和功能刀具组装弹窗的功能刀具类型字段创建记录的功能; 2023-12-08 17:29:32 +08:00
马广威
c4021d02ce Accept Merge Request #715: (feature/制造代码优化 -> develop)
Merge Request: 修改权限依赖

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/715?initial=true
2023-12-08 17:26:19 +08:00
mgw
bd01ad7bbf 修改权限依赖 2023-12-08 17:25:40 +08:00
龚启豪
9650f45ba2 Accept Merge Request #714: (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/714?initial=true
2023-12-08 15:21:32 +08:00
qihao.gong@jikimo.com
cfed77d1a5 库存根据权限增加审核按钮 以及审核状态 2023-12-08 15:18:41 +08:00
禹翔辉
94c795a68f Accept Merge Request #713: (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/713?initial=true
2023-12-08 09:05:39 +08:00
yuxianghui
2fba2ad488 Merge remote-tracking branch 'origin/feature/功能刀具库存优化' into feature/机床换刀申请优化 2023-12-08 09:02:51 +08:00
qihao.gong@jikimo.com
31260e8921 新增权限审核按钮 2023-12-07 17:31:28 +08:00
yuxianghui
4d04b37582 1、机台换刀申请tree视图隐藏机床字段,机台号字段内容自动同步位机床名称;功能刀具出入库记录模型机台号字段内容自动同步位机床名称;2、解决功能刀具有的出入库记录机床字段没有内容的问题;3、新增继承机床刀位模型,将新建机床刀位时创建机台换刀申请记录从原机床刀位模型移动到继承后的机床刀位模型中; 2023-12-07 17:31:18 +08:00
马广威
eec27b26f7 Accept Merge Request #711: (feature/制造代码优化 -> develop)
Merge Request: 优化物流、计划权限及库存的一些问题

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/711
2023-12-07 11:28:22 +08:00
jinling.yang
e300ca1822 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2023-12-07 10:58:25 +08:00
jinling.yang
c8a3bee099 Merge branch 'feature/新增采购权限组' into develop 2023-12-07 10:58:04 +08:00
杨金灵
35c051e730 Accept Merge Request #712: (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/712?initial=true
2023-12-07 10:57:45 +08:00
jinling.yang
950ec3a1e1 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2023-12-07 10:52:09 +08:00
jinling.yang
1c1a038156 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/新增采购权限组 2023-12-07 10:51:32 +08:00
jinling.yang
640bf79dc8 新增质量团队和控制点的审核按钮 2023-12-07 10:50:36 +08:00
mgw
1ccc32cbcb 优化物流、计划权限及库存的一些问题 2023-12-07 10:11:59 +08:00
禹翔辉
f8d8d885bb Accept Merge Request #710: (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/710
2023-12-07 09:13:11 +08:00
yuxianghui
7c8c869172 Merge remote-tracking branch 'origin/feature/功能刀具列表自动计算库存' into feature/功能刀具库存优化 2023-12-07 09:07:53 +08:00
jinling.yang
8d5a4ed4c8 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/新增采购权限组 2023-12-06 17:27:29 +08:00
yuxianghui
981872b0b1 1、根据机台换刀申请的状态,如果为报警状态就自动创建功能刀具预警记录;2、自动检索功能刀具列表的序列号所在位置,计算功能刀具的当前位置及数量;3、功能刀具安全库存模型,根据当前记录的功能刀具对象自动计算出该规则的功能刀具的当前库存,根据当前库存和最低库存量自动计算是否需要补货,如需补货,补货的数量是多少;4、关闭功能刀具预警模型界面的创建、修改、删除功能,新增搜索面板中按机床、刀位分组搜索;5、功能刀具组装模型和组装单模型新增图片字段; 2023-12-06 17:25:47 +08:00
黄焱
d8a74c17f0 Accept Merge Request #709: (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/709?initial=true
2023-12-06 15:46:02 +08:00
黄焱
fe6d207099 甘特图增加滚轮事件,点击事件 2023-12-06 15:39:07 +08:00
黄焱
206043a1a0 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/前端样式修改 2023-12-06 15:37:38 +08:00
jinling.yang
6a2a465569 注释掉自动报价的文件 2023-12-06 15:07:06 +08:00
jinling.yang
1767ada489 释放注释的代码 2023-12-06 15:03:07 +08:00
jinling.yang
d7f85967c9 优化质量的访问权限 2023-12-06 15:01:42 +08:00
jinling.yang
1a95f5e4ac Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2023-12-06 14:57:10 +08:00
jinling.yang
abd7364658 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/新增采购权限组
# Conflicts:
#	sf_base/security/group_security.xml
#	sf_sale/security/group_security.xml
2023-12-06 14:56:31 +08:00
jinling.yang
26ec1c9f6e 修改质量模块的权限组名称 2023-12-06 14:53:38 +08:00
龚启豪
490aa3fe04 Accept Merge Request #707: (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/707
2023-12-06 14:52:35 +08:00
jinling.yang
924a28e957 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2023-12-06 11:39:24 +08:00
jinling.yang
e58ceb3ac8 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/新增采购权限组 2023-12-06 11:38:49 +08:00
龚启豪
61c3b16a69 Merge branch refs/heads/develop into refs/heads/feature/修改机床参数bug 2023-12-06 11:35:01 +08:00
qihao.gong@jikimo.com
70109c0965 修改制造模块权限 2023-12-06 11:31:59 +08:00
马广威
74b4fd1367 Accept Merge Request #705: (feature/制造代码优化 -> develop)
Merge Request: 完成计划权限,优化警告错误

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/705
2023-12-06 10:30:55 +08:00
禹翔辉
c206dc3097 Accept Merge Request #706: (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/706?initial=true
2023-12-06 09:14:29 +08:00
yuxianghui
4c1c8e7683 Merge remote-tracking branch 'origin/feature/功能刀具安全库存优化' into feature/功能刀具组装流程优化 2023-12-06 09:03:55 +08:00
yuxianghui
0d8d54c05b 1、机床换刀申请新增确认换刀时,依次检索线边刀库、刀具房是否有满足条件的功能刀具,如果有就返回刀具信息,没有就发起组装申请;2、刀具安全库存模型详情页新增可修改的最低库存量、最高库存量、批次补货量字段; 2023-12-05 17:37:47 +08:00
jinling.yang
71147eb7f9 新增质量权限组 2023-12-05 17:28:32 +08:00
qihao.gong@jikimo.com
c753df768d 库存模块权限开发 2023-12-05 17:24:19 +08:00
jinling.yang
45df8f5bc2 新增采购权限 2023-12-04 17:34:23 +08:00
yuxianghui
29a55f3ff8 1、新增设备创建刀位时自动创建对应刀位的机床换刀申请记录;2、机床换刀申请模型的设备、刀位字段修改为只读,搜索视图新增按设备搜索; 2023-12-04 17:30:19 +08:00
qihao.gong@jikimo.com
94c0b00c2d 机床注册按钮根据权限组区分 2023-12-04 17:28:54 +08:00
黄焱
32473d302f 生产驾驶舱列表点击【工单】按钮有时候进入的是机台详情界面
工厂端订单详情title显示不美观-建议优化
工厂端材料型号详情界面弹框顶部和底部显示透明了
2023-11-30 17:03:47 +08:00
mgw
2cf4958f46 完成计划权限,优化警告错误 2023-11-29 20:58:12 +08:00
qihao.gong@jikimo.com
893aa2111c 处理coding报错 2023-11-29 17:34:15 +08:00
jinling.yang
6cf26e8029 新增采购权限组 2023-11-29 17:25:40 +08:00
禹翔辉
e796bbe990 Accept Merge Request #704: (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/704
2023-11-29 10:23:11 +08:00
yuxianghui
c2d2d16948 Merge remote-tracking branch 'origin/feature/功能刀具组装功能优化' into feature/功能刀具安全库存优化 2023-11-29 10:21:07 +08:00
yuxianghui
c3ba11bed4 1、修改功能刀具安全库存模型的刀尖特征、柄部类型字段的字段类型为many2one 2023-11-29 10:17:43 +08:00
马广威
37815d603a Accept Merge Request #703: (feature/制造代码优化 -> develop)
Merge Request: 优化货位代码

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/703
2023-11-29 09:43:09 +08:00
mgw
ca0b59e95b Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2023-11-29 09:40:03 +08:00
mgw
7c478ec4fd 优化货位代码 2023-11-29 09:39:11 +08:00
qihao.gong@jikimo.com
5b1d347fd4 增加设备模块权限角色,优化coding代码扫描警告 2023-11-28 17:23:49 +08:00
马广威
e738d40b75 Accept Merge Request #702: (feature/制造代码优化 -> develop)
Merge Request: 库存货架货位修改基本完成,推送测试

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/702
2023-11-28 17:23:20 +08:00
mgw
685eced709 货位代码优化 2023-11-28 17:21:29 +08:00
jinling.yang
ffc40c70d2 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2023-11-28 17:15:07 +08:00
jinling.yang
cc3ee289d3 Merge branch 'feature/修改刀具标准库部分字段类型' into develop 2023-11-28 17:14:51 +08:00
杨金灵
487b452519 Accept Merge Request #701: (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/701
2023-11-28 17:14:34 +08:00
jinling.yang
4a62af7545 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改刀具标准库部分字段类型 2023-11-28 17:09:10 +08:00
jinling.yang
07be7c3074 1.同步刀具标准库接口修改刀片形状,柄部类型,刀尖特征,压紧方式 2023-11-28 17:08:56 +08:00
mgw
ddad1e9114 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2023-11-28 16:42:54 +08:00
mgw
2c1a101c24 库存货架货位修改基本完成,推送测试 2023-11-28 16:42:19 +08:00
禹翔辉
ab1af72727 Accept Merge Request #700: (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/700
2023-11-28 16:37:29 +08:00
yuxianghui
bc186a9723 Merge remote-tracking branch 'origin/feature/功能刀具组装优化' into feature/功能刀具组装功能优化 2023-11-28 16:34:31 +08:00
yuxianghui
de04d452b3 1优化功能刀具组装单的刀具物料过滤条件,取消功能刀具列表的自动计算库存的方法 2023-11-28 16:28:48 +08:00
禹翔辉
66b808dfc9 Accept Merge Request #699: (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/699
2023-11-28 15:02:36 +08:00
yuxianghui
ad36b37f27 Merge remote-tracking branch 'origin/feature/功能刀具安全库存重构' into feature/功能刀具组装优化 2023-11-28 14:57:40 +08:00
yuxianghui
e403f2f8e6 1、按面向对象的思想优化功能刀具组装功能的整个流程;2、新增刀具组装完成时的刀具物料出库到刀具组装位置; 2023-11-28 14:52:43 +08:00
马广威
24b850a508 Accept Merge Request #698: (feature/制造代码优化 -> develop)
Merge Request: 优化警告问题

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/698
2023-11-28 09:00:03 +08:00
mgw
4d8b463cb3 优化警告问题 2023-11-28 08:59:01 +08:00
mgw
9fef877d12 优化警告问题 2023-11-27 22:40:56 +08:00
马广威
c323d9995e Accept Merge Request #697: (feature/制造代码优化 -> develop)
Merge Request: 物流可见性控制,优化警告问题

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/697?initial=true
2023-11-27 21:33:35 +08:00
mgw
4f83c5f29a 优化警告问题 2023-11-27 21:30:45 +08:00
jinling.yang
ed5f47cc31 1.修改刀具标准库刀片形状,柄部类型,压紧方式,刀尖特征,字段类型及对应控件显示
2.修改产品页面:刀片形状,柄部类型,压紧方式,刀尖特征,字段类型及对应控件显示
2023-11-27 17:34:23 +08:00
龚启豪
66bb55a823 Accept Merge Request #696: (feature/修改机床参数bug -> develop)
Merge Request: 修改coding代码扫描警告

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/696?initial=true
2023-11-27 17:30:01 +08:00
yuxianghui
5926d71d27 1、新增功能刀具列表模型自动计算功能刀具在刀具房数量功能;2、优化功能刀具安全库存模型相同功能刀具的检索条件;3、修改功能刀具组装单组装的初始位置为Production,修改功能刀具序列号的生成规则 2023-11-27 17:27:55 +08:00
qihao.gong@jikimo.com
c78ea6fbe5 修改coding代码扫描警告 2023-11-27 17:08:11 +08:00
mgw
96df8f971c 物流相关可见性控制 2023-11-27 15:40:16 +08:00
马广威
35511effae Accept Merge Request #695: (feature/制造代码优化 -> develop)
Merge Request: 优化物流下单等代码

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/695
2023-11-27 12:18:47 +08:00
mgw
54912f15b9 优化物流下单等代码 2023-11-27 12:17:57 +08:00
马广威
e8a13f1721 Accept Merge Request #694: (feature/制造代码优化 -> develop)
Merge Request: 优化代码,修改库存货架货位为标签

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/694?initial=true
2023-11-24 21:46:16 +08:00
禹翔辉
1532293918 Accept Merge Request #693: (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/693?initial=true
2023-11-24 17:18:59 +08:00
yuxianghui
030ef14633 Merge remote-tracking branch 'origin/feature/功能刀具出入库优化' into feature/功能刀具安全库存重构 2023-11-24 17:15:26 +08:00
yuxianghui
bf8b45609c 1、功能刀具列表模型新增查询功能刀具安全库存功能;2、重构功能刀具安全库存模型;3、功能刀具组装单弹窗界面的刀具物料新增位置为刀具房的过滤筛选; 2023-11-24 17:12:44 +08:00
龚启豪
964618d365 Accept Merge Request #692: (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/692
2023-11-24 10:31:39 +08:00
杨金灵
06eeb1ed1f Accept Merge Request #691: (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/691?initial=true
2023-11-24 10:30:42 +08:00
qihao.gong@jikimo.com
deb732dc5e 代码规范 2023-11-24 10:30:33 +08:00
jinling.yang
5737d7b0bc 优化代码格式 2023-11-24 10:27:21 +08:00
mgw
5fd0beab95 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化
# Conflicts:
#	sf_manufacturing/models/stock.py
2023-11-23 22:23:21 +08:00
mgw
858c163cbe 库存调整货架货位为标签 2023-11-23 22:14:56 +08:00
mgw
fee3572f38 错误问题处理 2023-11-23 22:14:12 +08:00
jinling.yang
f2862af565 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2023-11-23 17:44:16 +08:00
jinling.yang
c1c3639611 Merge branch 'feature/销售权限' into develop 2023-11-23 17:43:55 +08:00
杨金灵
41017412cd Accept Merge Request #690: (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/690
2023-11-23 17:43:39 +08:00
jinling.yang
e552502fd1 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2023-11-23 17:39:58 +08:00
jinling.yang
61da25a031 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/销售权限
# Conflicts:
#	sf_manufacturing/models/product_template.py
2023-11-23 17:39:35 +08:00
龚启豪
aafafd682d Accept Merge Request #689: (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/689?initial=true
2023-11-23 17:38:52 +08:00
jinling.yang
98ed831a85 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2023-11-23 17:38:49 +08:00
jinling.yang
e9be2e9c43 优化代码格式 2023-11-23 17:38:30 +08:00
qihao.gong@jikimo.com
b73a449b01 修改代码不规范问题 2023-11-23 17:37:06 +08:00
jinling.yang
45d04e1a05 1.销售新增审核状态,选项为已审核和待审核,销售模型新增权限规则:销售总监查看所有的订单,销售经理只能查看自己的订单
2.报价单Form视图新增审核按钮,该按钮只有销售总监可以看到,且确认按钮只有在销售经理审核完才可显示,报价Tree视图新增审核状态
2023-11-23 17:28:58 +08:00
禹翔辉
fc17063507 Accept Merge Request #688: (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/688
2023-11-23 17:23:11 +08:00
yuxianghui
b3fbbeb85c Merge remote-tracking branch 'origin/feature/功能刀具组装流程及界面优化' into feature/功能刀具出入库优化 2023-11-23 17:18:43 +08:00
yuxianghui
97d760cd56 1、基于原生的移动历史重构功能刀具出入库记录模型;2、功能刀具列表模型新增查询当前功能刀具出入库记录按钮;3、删除旧的功能刀具出入库记录模型和出入库记录人模型;4、机台换刀申请模型的功能刀具名称字段改为绑定功能刀具组装单;5、优化功能刀具组装单确认组装功能的创建移动历史记录功能。 2023-11-23 17:15:34 +08:00
龚启豪
9d911a5c2b Accept Merge Request #687: (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/687
2023-11-23 16:53:24 +08:00
龚启豪
9bb3b88fd6 Merge branch refs/heads/develop into refs/heads/feature/修改机床参数bug 2023-11-23 16:37:53 +08:00
qihao.gong@jikimo.com
baaeac10eb 修改设备生成名称规则,修改制造模块权限组定义 2023-11-23 16:33:09 +08:00
mgw
2510f5fbf3 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2023-11-23 10:22:58 +08:00
mgw
f77691251e 计划模块增加跟踪消息组件,form视图增加归档取消归档按钮,增加归档未归档的筛选项目 2023-11-23 10:21:42 +08:00
jinling.yang
5292826c72 新增销售权限 2023-11-22 17:58:41 +08:00
mgw
6fed64ba2a 计划模块增加权限控制 2023-11-22 17:55:30 +08:00
禹翔辉
8e5f5cf0d1 Accept Merge Request #686: (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/686?initial=true
2023-11-22 17:39:17 +08:00
qihao.gong@jikimo.com
b4b5207aea 开发测试制造模块权限,修改设备机床类别的布局以及编码规则 2023-11-22 17:36:50 +08:00
yuxianghui
ca61537e21 Merge remote-tracking branch 'origin/feature/功能刀具组装优化' into feature/功能刀具组装流程及界面优化
# Conflicts:
#	sf_manufacturing/models/product_template.py
2023-11-22 17:31:35 +08:00
yuxianghui
83da8f58e2 1、功能刀具列表模型新增大量字段,新增计算库存数量方法,新增查看当前功能刀具的预警记录按键;2、重构功能刀具预警模型(已完成);3、功能刀具组装模型name字段展示内容改为功能刀具名称; 2023-11-22 17:19:25 +08:00
马广威
a36c30b5c1 Accept Merge Request #685: (feature/制造代码优化 -> develop)
Merge Request: 修改机床链接模块,优化规范代码

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/685?initial=true
2023-11-22 14:24:35 +08:00
mgw
ae6ec7183e 修改sf_machine_connect模块以适配新的设备构成 2023-11-22 14:22:41 +08:00
mgw
cc58425f50 规范问题优化 2023-11-22 10:29:04 +08:00
马广威
dda3aad95d Accept Merge Request #684: (feature/制造代码优化 -> develop)
Merge Request: 优化现有代码问题

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/684?initial=true
2023-11-22 09:58:21 +08:00
mgw
d6dcb6bf55 优化现有代码问题 2023-11-22 09:54:31 +08:00
马广威
4b672f3c23 Accept Merge Request #683: (feature/制造代码优化 -> develop)
Merge Request: 优化sf_machine_connect的manifest文件

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/683?initial=true
2023-11-21 17:50:39 +08:00
mgw
423d5cec8e 优化sf_machine_connect的manifest文件 2023-11-21 17:49:58 +08:00
qihao.gong@jikimo.com
e6bb5db0e1 开发sf制造模块权限角色 2023-11-21 17:42:36 +08:00
jinling.yang
f0e66c6d90 新增销售权限 2023-11-21 17:30:07 +08:00
yuxianghui
8a1dfe14e6 1、功能刀具列表模型新增部分字段;2、机台换刀申请新增根据报警值和有效值计算当前状态,重构根据状态自动换刀申请的功能,重构撤销换刀申请功能;3、功能刀具组装单模型新增大量字段,优化tree视图和form视图的布局;4、组装单弹窗模型新增大量字段,优化确认组装按键功能, 2023-11-21 17:26:18 +08:00
jinling.yang
5113de7e97 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2023-11-21 16:31:41 +08:00
jinling.yang
e06002e05a Merge branch 'feature/新增销售权限' into develop 2023-11-21 16:31:27 +08:00
杨金灵
8b7b52ee2c Accept Merge Request #682: (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/682?initial=true
2023-11-21 16:31:19 +08:00
jinling.yang
6738f38131 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/新增销售权限
# Conflicts:
#	sf_bf_connect/models/process_status.py
2023-11-21 16:11:24 +08:00
jinling.yang
ab115ab71c Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2023-11-21 16:10:27 +08:00
jinling.yang
6ec6094c5e 1.新增销售和计划权限组2.优化代码格式 2023-11-21 16:10:05 +08:00
马广威
321c40d31d Accept Merge Request #681: (feature/制造代码优化 -> develop)
Merge Request: 优化js代码过长的问题,优化未用到的变量

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/681?initial=true
2023-11-21 14:18:44 +08:00
mgw
890b73e108 优化js代码过长的问题,优化未用到的变量 2023-11-21 14:18:01 +08:00
马广威
247b3e4444 Accept Merge Request #676: (feature/制造代码优化 -> develop)
Merge Request: 优化代码结构

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/676?initial=true
2023-11-20 17:42:54 +08:00
mgw
7391b1324d Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化
# Conflicts:
#	sf_manufacturing/models/stock.py
2023-11-20 17:41:51 +08:00
mgw
d53e664881 修复导入错误,优化不使用的模块 2023-11-20 17:38:03 +08:00
yuxianghui
b49b5890a0 1、机台换刀申请及其弹窗新增生产线字段,2、机台换刀申请tree视图搜索面板改为按生产线和状态搜索,3、优化功能刀具组装单,新增大量字段,优化tree试图布局,优化form视图布局,tree视图搜索面板新增按状态搜索,4、重构了机台换刀申请模型申请换刀功能;5、重构刀具转移模型, 2023-11-20 17:36:13 +08:00
jinling.yang
690543e2d4 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2023-11-20 17:08:13 +08:00
jinling.yang
f296e1ba1a Merge branch 'feature/产品验证' into develop 2023-11-20 17:05:43 +08:00
杨金灵
31f07c5156 Accept Merge Request #675: (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/675
2023-11-20 17:05:06 +08:00
龚启豪
63d6ce6da8 Accept Merge Request #674: (feature/修改机床参数bug -> develop)
Merge Request: import requests

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/674
2023-11-20 16:50:06 +08:00
qihao.gong@jikimo.com
580f95f338 importrequests修改 2023-11-20 15:48:43 +08:00
qihao.gong@jikimo.com
326181fa81 Merge branch 'feature/修改机床参数bug' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug
# Conflicts:
#	sf_manufacturing/models/stock.py
2023-11-20 15:44:43 +08:00
qihao.gong@jikimo.com
6fc735063a Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug
# Conflicts:
#	sf_manufacturing/models/stock.py
2023-11-20 15:41:50 +08:00
qihao.gong@jikimo.com
499261f62e 放开依赖 2023-11-20 15:39:07 +08:00
jinling.yang
6912160232 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/产品验证
# Conflicts:
#	sf_manufacturing/models/stock.py
#	sf_wxwork_approval/models/model.py
2023-11-20 15:11:43 +08:00
jinling.yang
04e63dcc59 修复代码规范 2023-11-20 15:10:01 +08:00
jinling.yang
7ceaadb9c4 修复引入库 2023-11-20 15:04:39 +08:00
龚启豪
fdf1b786fe Merge branch refs/heads/develop into refs/heads/feature/修改机床参数bug 2023-11-20 15:03:36 +08:00
qihao.gong@jikimo.com
1da7a0195d 根据odoo规则修改py文件中得import顺序 2023-11-20 14:59:06 +08:00
马广威
b093b11ec2 Accept Merge Request #671: (feature/制造代码优化 -> develop)
Merge Request: 优化代码结构

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/671?initial=true
2023-11-20 13:30:58 +08:00
mgw
718b1f9edf 优化代码结构 2023-11-20 13:23:37 +08:00
马广威
5bdd3982ae Accept Merge Request #669: (feature/制造代码优化 -> develop)
Merge Request: 优化wrong-import-order问题

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/669?initial=true
2023-11-20 12:44:35 +08:00
mgw
a606cbfc6d 优化wrong-import-order问题 2023-11-20 12:42:48 +08:00
马广威
1a5fcf09e1 Accept Merge Request #666: (feature/制造代码优化 -> develop)
Merge Request: 测试优化后的代码扫描效果,优化代码

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/666?initial=true
2023-11-20 10:49:58 +08:00
mgw
d2899fe38e 测试优化代码后的代码扫描效果,优化部分代码审查问题 2023-11-20 10:48:43 +08:00
mgw
24e75f8895 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2023-11-17 17:51:57 +08:00
mgw
5bc5766507 优化代码格式至PEP8格式 2023-11-17 17:49:08 +08:00
jinling.yang
49f021ed7a 产品新增适配刀片形状,适合加工方式,刀尖特征,走刀方向,柄部类型,冷却液,压紧方式验证 2023-11-17 17:45:41 +08:00
黄焱
94031e68ad Accept Merge Request #659: (feature/前端样式修改 -> develop)
Merge Request: 修改规格字段位置

Created By: @黄焱
Reviewed By: @马广威
Accepted By: @黄焱
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/659?initial=true
2023-11-17 17:45:05 +08:00
黄焱
182348f427 修改规格字段位置 2023-11-17 17:42:41 +08:00
yuxianghui
c885f3ce8c 1、设备机床的刀位对象新增name字段,并自动添加值;2、根据需求重构了机床换刀申请模型,重构机床换刀弹窗对象; 2023-11-17 17:30:37 +08:00
jinling.yang
e5b0960e3a Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2023-11-17 10:43:16 +08:00
jinling.yang
dd5d4e7748 Merge branch 'feature/自动报价代码还原' into develop 2023-11-17 10:43:00 +08:00
杨金灵
369980d655 Accept Merge Request #530: (feature/自动报价代码还原 -> develop)
Merge Request: 自动报价代码还原

Created By: @杨金灵
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/530?initial=true
2023-11-17 10:37:52 +08:00
jinling.yang
2096d05cdb Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/自动报价代码还原 2023-11-17 10:35:42 +08:00
jinling.yang
fbab054324 代码还原 2023-11-17 10:35:10 +08:00
马广威
e3ff9e9fde Accept Merge Request #529: (feature/制造代码优化 -> develop)
Merge Request: 测试coding代码审查

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/529?initial=true
2023-11-17 10:03:04 +08:00
mgw
c3ee544ca6 测试coding代码审查 2023-11-17 09:55:41 +08:00
jinling.yang
08581c8bc4 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2023-11-17 09:15:29 +08:00
jinling.yang
49cbf2fde2 Merge branch 'feature/产品优化' into develop 2023-11-17 09:13:54 +08:00
杨金灵
2f2522c99e Accept Merge Request #527: (feature/产品优化 -> develop)
Merge Request: 产品优化

Created By: @杨金灵
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/527?initial=true
2023-11-17 09:13:36 +08:00
jinling.yang
fefa14a47b Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/产品优化
# Conflicts:
#	sf_dlm/models/product_supplierinfo.py
2023-11-17 09:12:41 +08:00
yuxianghui
329d7b6464 1、机床换刀申请界面新增搜索面板和设备字段根据设备的设备类型等于机床的过滤条件;2、隐藏功能刀具出入库记录菜单;3、功能刀具列表form视图新增预警跳转按键(跳转功能未完成); 2023-11-16 17:36:09 +08:00
jinling.yang
f36c2ac096 产品优化 2023-11-16 17:35:04 +08:00
马广威
9c6367c053 Accept Merge Request #526: (feature/制造代码优化 -> develop)
Merge Request: 产品模板修改>>>增加“规格”字段specification_id

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/526?initial=true
2023-11-16 17:03:24 +08:00
mgw
076866e9b7 产品模板修改>>>增加“规格”字段specification_id 2023-11-16 17:01:14 +08:00
mgw
3a64a2106a Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2023-11-16 15:14:04 +08:00
黄焱
ead39c9649 Accept Merge Request #525: (feature/前端样式修改 -> develop)
Merge Request: 修改生产线看板样式

Created By: @黄焱
Accepted By: @黄焱
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/525?initial=true
2023-11-16 15:12:44 +08:00
黄焱
25d1a99239 修改生产线看板样式 2023-11-16 15:02:27 +08:00
龚启豪
9a318d45f3 Accept Merge Request #524: (feature/修改机床参数bug -> develop)
Merge Request: wms路线规则动态选取

Created By: @龚启豪
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/524?initial=true
2023-11-15 16:22:56 +08:00
qihao.gong@jikimo.com
41a9aa86a7 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug 2023-11-15 16:21:52 +08:00
qihao.gong@jikimo.com
2322758e50 wms路线规则动态选取 2023-11-15 16:21:40 +08:00
mgw
d216478679 调整这两个文件的__manifest__.py文件 2023-11-15 15:28:32 +08:00
禹翔辉
b487ee127a Accept Merge Request #523: (feature/功能刀具组装优化 -> develop)
Merge Request: 功能刀具组装刀具物料型号字段绑定对象更改为刀具标准库,并优化组装确认功能。

Created By: @禹翔辉
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/523?initial=true
2023-11-14 16:49:08 +08:00
yuxianghui
2a964bc30e 功能刀具组装刀具物料型号字段绑定对象更改为刀具标准库,并优化组装确认功能。 2023-11-14 16:48:11 +08:00
马广威
d0132dbc3a Accept Merge Request #522: (feature/制造代码优化 -> develop)
Merge Request: 去掉sf_plan模块中的  工作中心计划  菜单

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/522?initial=true
2023-11-14 16:15:19 +08:00
mgw
acccb4b6f9 去掉sf_plan模块中的 工作中心计划 菜单 2023-11-14 15:42:54 +08:00
马广威
48f75ad600 Accept Merge Request #521: (feature/制造代码优化 -> develop)
Merge Request: 修改订单排程功能为通用方法,同时增加动态判断计划时间是否与获取cnc程序的时间冲突功能,如果冲突,时间自动延后1h;优化gantt显示

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/521?initial=true
2023-11-14 12:22:12 +08:00
mgw
daeae46820 修改订单排程功能为通用方法,同时增加动态判断计划时间是否与获取cnc程序的时间冲突功能,如果冲突,时间自动延后1h;优化gantt显示 2023-11-14 12:21:08 +08:00
马广威
77535fa70e Accept Merge Request #520: (feature/制造代码优化 -> develop)
Merge Request: 修复gantt图修改日视图后其他视图的pill左移的bug。优化字段默认宽度的逻辑

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/520?initial=true
2023-11-13 15:08:44 +08:00
mgw
913780bc2b 修复gantt图修改日视图后其他视图的pill左移的bug。优化字段默认宽度的逻辑 2023-11-13 15:07:50 +08:00
马广威
f566fc1c08 Accept Merge Request #519: (feature/制造代码优化 -> develop)
Merge Request: 修复订单状态回传的问题

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/519?initial=true
2023-11-13 09:42:56 +08:00
mgw
a97ce9b0a7 修复订单状态回传的问题 2023-11-10 18:06:21 +08:00
马广威
d0e18fbd44 Accept Merge Request #518: (feature/制造代码优化 -> develop)
Merge Request: 解决遗漏代码错误

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/518?initial=true
2023-11-10 16:29:16 +08:00
mgw
3845041f7f 解决遗漏代码错误 2023-11-10 16:28:06 +08:00
马广威
f313a171cb Accept Merge Request #517: (feature/图文项目单选功能 -> develop)
Merge Request: 图文项目单选功能本地开发测试完成,推送线上测试

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/517?initial=true
2023-11-10 16:21:21 +08:00
mgw
93731a4777 图文项目单选功能本地开发测试完成,推送线上测试 2023-11-10 16:20:48 +08:00
马广威
dba17d5c7a Accept Merge Request #516: (feature/制造优化 -> develop)
Merge Request: 梳理计划模块结构,删除不必要的代码

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/516
2023-11-10 16:13:11 +08:00
杨金灵
2a984ba2c0 Accept Merge Request #515: (feature/修复单一制造 -> develop)
Merge Request: 修复单一制造

Created By: @杨金灵
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/515
2023-11-09 16:32:48 +08:00
jinling.yang
dbfd75b139 修复单一制造 2023-11-09 16:30:05 +08:00
mgw
db1dc18c28 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造优化 2023-11-09 16:21:53 +08:00
mgw
523f7a0942 梳理计划模块结构 2023-11-09 16:20:26 +08:00
龚启豪
16b3df87c9 Accept Merge Request #514: (feature/修改机床参数bug -> develop)
Merge Request: 修改cs数据库

Created By: @龚启豪
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/514?initial=true
2023-11-09 11:35:15 +08:00
qihao.gong@jikimo.com
8d952aa046 更换cs数据库 2023-11-09 11:34:20 +08:00
qihao.gong@jikimo.com
e3e253fab8 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug 2023-11-09 09:44:41 +08:00
mgw
fe96004111 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造优化 2023-11-08 17:47:57 +08:00
jinling.yang
8483be5d2d Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2023-11-08 17:44:45 +08:00
jinling.yang
b6964e29bc Merge branch 'feature/去掉注释' into develop 2023-11-08 17:44:33 +08:00
杨金灵
56d1a98c53 Accept Merge Request #513: (feature/去掉注释 -> develop)
Merge Request: 去掉注释及硬度的字段类型改为整数型

Created By: @杨金灵
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/513?initial=true
2023-11-08 17:43:47 +08:00
jinling.yang
01f0902937 去掉注释,及修改转换3d模型文件的位置 2023-11-08 17:41:18 +08:00
jinling.yang
6335c03cef 硬度相关字段的类型改为整数型 2023-11-08 17:35:16 +08:00
jinling.yang
4f898dd8ce 去掉注释,硬度的字段类型改为整数型 2023-11-08 17:29:38 +08:00
mgw
d012066428 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造优化 2023-11-08 17:21:07 +08:00
jinling.yang
4c57bbe791 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2023-11-08 17:20:07 +08:00
jinling.yang
b8d590de6d Merge branch 'feature/整合产品和销售模块' into develop 2023-11-08 17:19:53 +08:00
杨金灵
82a31c6f31 Accept Merge Request #512: (feature/整合产品和销售模块 -> develop)
Merge Request: 整合所有模块依赖

Created By: @杨金灵
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/512?initial=true
2023-11-08 17:17:55 +08:00
jinling.yang
30a7f762c2 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/整合产品和销售模块 2023-11-08 17:14:01 +08:00
jinling.yang
3a1acb0f5a 整合所有模块依赖 2023-11-08 17:13:18 +08:00
mgw
c0b759aa9d 优化代码 2023-11-08 11:24:05 +08:00
马广威
7f5ac4ef90 Accept Merge Request #511: (feature/制造优化 -> develop)
Merge Request: 增加排程后各工单时间预估功能

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/511?initial=true
2023-11-07 10:19:39 +08:00
mgw
f1c835800e Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造优化 2023-11-07 10:17:52 +08:00
mgw
77852900a3 增加排程后各工单时间预估功能 2023-11-07 10:17:06 +08:00
qihao.gong@jikimo.com
b2a9088354 修改路线规则 2023-11-03 15:48:42 +08:00
杨金灵
3be0d1ffad Accept Merge Request #510: (feature/同步刀具标准库(刀杆) -> develop)
Merge Request: 修复刀具标准库(刀杆)

Created By: @杨金灵
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/510?initial=true
2023-11-03 10:44:46 +08:00
jinling.yang
686c049e52 修复刀具标准库 2023-11-03 10:42:09 +08:00
qihao.gong@jikimo.com
780dbd5dda Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug 2023-11-02 17:19:06 +08:00
杨金灵
53ad002f3b Accept Merge Request #509: (feature/修复刀具标准库包含同步新增 -> develop)
Merge Request: 修复同步刀具标准库

Created By: @杨金灵
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/509?initial=true
2023-11-02 17:18:38 +08:00
jinling.yang
36270477d5 修复同步刀具标准库 2023-11-02 17:17:34 +08:00
qihao.gong@jikimo.com
a45ee59a76 修改 2023-11-02 14:34:17 +08:00
qihao.gong@jikimo.com
d2782446b0 修改 2023-11-02 14:24:27 +08:00
杨金灵
eb835ae5c8 Accept Merge Request #508: (feature/去掉模型代码转换注释 -> develop)
Merge Request: 去掉模型代码转换注释

Created By: @杨金灵
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/508?initial=true
2023-11-01 17:52:18 +08:00
jinling.yang
401103f17b 去掉模型代码转换注释 2023-11-01 17:51:46 +08:00
jinling.yang
e592d49983 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2023-11-01 17:49:28 +08:00
jinling.yang
de0cb1ebbc Merge branch 'feature/刀具产品调取Cloud刀具标准库(10.11)' into develop 2023-11-01 17:49:16 +08:00
杨金灵
8e91aec7f1 Accept Merge Request #507: (feature/刀具产品调取Cloud刀具标准库(10.11) -> develop)
Merge Request: 优化刀具标准库

Created By: @杨金灵
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/507?initial=true
2023-11-01 17:49:00 +08:00
jinling.yang
0b7dc6d09a Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/刀具产品调取Cloud刀具标准库(10.11) 2023-11-01 17:46:24 +08:00
jinling.yang
108cb96ca5 修复刀具产品及同步刀具标准库 2023-11-01 17:45:54 +08:00
禹翔辉
03efa01a85 Accept Merge Request #506: (feature/功能刀具组装优化 -> develop)
Merge Request: 1、优化CAM申请的组装单中功能刀具名称没有内容的问题,优化组装单等的form表名称问题;2、去除组装单弹窗输出语句 

Created By: @禹翔辉
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/506?initial=true
2023-11-01 17:40:30 +08:00
JIKIMO-YXH\xianghui
ba19175472 Merge remote-tracking branch 'origin/feature/功能刀具' into feature/功能刀具组装优化 2023-11-01 17:39:21 +08:00
龚启豪
aa9464face Accept Merge Request #505: (feature/修改机床参数bug -> develop)
Merge Request: 修改维保项目多图片展示

Created By: @龚启豪
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/505?initial=true
2023-11-01 17:35:05 +08:00
qihao.gong@jikimo.com
0c788df2f2 修改维保项目多图片展示 2023-11-01 17:33:50 +08:00
JIKIMO-YXH\xianghui
cbc9264b2c 1、优化CAM申请的组装单中功能刀具名称没有内容的问题,优化组装单等的form表名称问题;2、去除组装单弹窗输出语句 2023-11-01 17:26:23 +08:00
马广威
82ce347ca4 Accept Merge Request #504: (feature/制造-计划优化 -> develop)
Merge Request: 本地已处理完序号导致的label变形问题,线上测试

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/504?initial=true
2023-11-01 17:10:53 +08:00
mgw
d13071272a Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造-计划优化 2023-11-01 16:53:15 +08:00
mgw
74523c710f 本地测试优化完序号展示问题,准备线上测试 2023-11-01 16:52:26 +08:00
mgw
fc35ef687b 优化序号导致字段label变形的问题 2023-11-01 12:15:26 +08:00
禹翔辉
a71d960e2d Accept Merge Request #503: (feature/功能刀具 -> develop)
Merge Request: 功能刀具组装后流程和功能刀具组装优化

Created By: @禹翔辉
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/503?initial=true
2023-11-01 09:44:01 +08:00
JIKIMO-YXH\xianghui
0cbf01b9ec Merge remote-tracking branch 'origin/feature/功能刀具组装后' into feature/功能刀具 2023-11-01 09:26:04 +08:00
mgw
869b389420 研究下载模板和列宽问题 2023-11-01 09:01:49 +08:00
JIKIMO-YXH\xianghui
d429a8b4b8 1、删除功能刀具缓存对象,删除出库弹窗对像,删除功能刀具组装、机台换刀申请和CAM换刀的界面跳转按钮,并在form界面添加管理界面字段;2、优化组装单编码的生成;3、将刀具管理下所以功能刀具相关的模型中的功能刀具名称字段改为绑定功能刀具产品对象,编码改为序列号并绑定产品序列号对象,4、优化刀具管理下的功能刀具界面,5、优化从组装申请到组装完成所以流程功能 2023-10-31 17:45:45 +08:00
JIKIMO-YXH\xianghui
deccb6e3cd 1、删除功能刀具组装的取消组装功能和出库功能;2、删除功能刀具组装单的单据来源跳转按钮;3、新增组装单编码字段和自动生成编码的方法;4、新增功能刀具序列号,绑定功能刀具产品序列号;5、完成功能刀具组装后的产品入库到位置【组装后】 2023-10-30 17:43:28 +08:00
jinling.yang
2a9c5276ab 优化刀具产品 2023-10-30 17:32:16 +08:00
马广威
db0c83bd2b Accept Merge Request #502: (feature/制造-计划优化 -> develop)
Merge Request: 解决row number导致字段label变形的问题

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/502
2023-10-30 15:47:37 +08:00
mgw
f81ee155e7 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造-计划优化 2023-10-30 15:45:21 +08:00
mgw
76368398ba 解决row number导致字段label变形的问题 2023-10-30 15:44:45 +08:00
龚启豪
8e5fc5eb61 Accept Merge Request #500: (feature/修改机床参数bug -> develop)
Merge Request: 解决无法生成采购单的bug

Created By: @龚启豪
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/500
2023-10-30 11:15:32 +08:00
qihao.gong@jikimo.com
a0804758f5 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug 2023-10-30 11:14:42 +08:00
qihao.gong@jikimo.com
4634393f6c 修改form全局宽度 2023-10-30 11:14:29 +08:00
jinling.yang
5ffe2ce0e2 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/刀具产品调取Cloud刀具标准库(10.11)
# Conflicts:
#	sf_maintenance/views/maintenance_views.xml
2023-10-30 10:48:13 +08:00
杨金灵
911f464aca Accept Merge Request #501: (feature/修复获取编程单 -> develop)
Merge Request: 获取编程单修复

Created By: @杨金灵
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/501
2023-10-30 09:38:47 +08:00
jinling.yang
9f30a029c5 机床id改为设备id 2023-10-30 09:36:52 +08:00
JIKIMO-YXH\xianghui
5b9fcb2e53 1、创建创建功能刀具该批次/序列号位置 2023-10-27 17:46:19 +08:00
jinling.yang
46807003e1 产品新增刀具物料为刀片,刀盘,刀杆,夹头,刀柄,相关联的字段,及对应页面的优化 2023-10-27 17:44:12 +08:00
qihao.gong@jikimo.com
593944cac2 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug 2023-10-27 15:07:12 +08:00
qihao.gong@jikimo.com
018b51e1e5 解决无法生成采购单的bug 2023-10-27 15:06:49 +08:00
龚启豪
a29dbca0e4 Accept Merge Request #499: (feature/修改机床参数bug -> develop)
Merge Request: 制造标准改成执行标准

Created By: @龚启豪
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/499?initial=true
2023-10-27 10:31:53 +08:00
qihao.gong@jikimo.com
47a408d034 制造标准改成执行标准 2023-10-27 10:31:10 +08:00
龚启豪
d14120dfa2 Accept Merge Request #498: (feature/修改机床参数bug -> develop)
Merge Request: 长宽高

Created By: @龚启豪
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/498?initial=true
2023-10-27 09:38:17 +08:00
qihao.gong@jikimo.com
b88c6a53ab 长宽高 2023-10-27 09:37:23 +08:00
JIKIMO-YXH\xianghui
e3d58c2a9e 1、优化产初始化生成功能刀具,解决作业类型无法选择功能刀具的问题;2、优化取消功能刀具组装功能;3、新增功能刀具组装确定后生成功能刀具序列号,生成刀具组装入库单 2023-10-26 17:39:33 +08:00
龚启豪
04261036a5 Accept Merge Request #497: (feature/修改机床参数bug -> develop)
Merge Request: 修改设备菜单默认展示页面

Created By: @龚启豪
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/497?initial=true
2023-10-26 17:34:01 +08:00
qihao.gong@jikimo.com
0eaed68b82 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug 2023-10-26 17:32:15 +08:00
qihao.gong@jikimo.com
ccb53a61de 修改设备菜单默认展示页面 2023-10-26 17:32:00 +08:00
jinling.yang
4a01132b91 新增产品刀具参数里的走刀量 2023-10-26 10:10:47 +08:00
jinling.yang
9fffcd4f04 新增规格改变事件 2023-10-25 17:37:17 +08:00
JIKIMO-YXH\xianghui
ce86a66e92 1、新增产品初始化时生成功能刀具产品类别和功能刀具模版;2、新增库存初始化时生成组装后位置和刀具组装入库的作业类型。 2023-10-25 17:35:12 +08:00
jinling.yang
65dd8372dd Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/刀具产品调取Cloud刀具标准库(10.11) 2023-10-25 15:07:52 +08:00
jinling.yang
39f97131a2 1.去掉不要的代码2,.产品页面新增规格字段 2023-10-25 15:07:29 +08:00
jinling.yang
7b471be4cf 洗澡基本参数回显 2023-10-24 17:47:05 +08:00
龚启豪
802bd4285c Accept Merge Request #496: (feature/修改机床参数bug -> develop)
Merge Request: 修改设备日志列表展示

Created By: @龚启豪
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/496
2023-10-24 17:32:39 +08:00
qihao.gong@jikimo.com
e7de773f28 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug 2023-10-24 17:31:52 +08:00
qihao.gong@jikimo.com
4098dda5b8 修改设备日志列表展示 2023-10-24 17:31:42 +08:00
禹翔辉
2c67f7a286 Accept Merge Request #495: (feature/功能刀具组装和产品优化 -> develop)
Merge Request: 1、优化产品模块下夹具类别下的零点托盘参数显示;2、调整功能刀具组装单的刀具物料字段布局。

Created By: @禹翔辉
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/495?initial=true
2023-10-24 17:12:28 +08:00
JIKIMO-YXH\xianghui
a953ca189e 1、优化产品模块下夹具类别下的零点托盘参数显示;2、调整功能刀具组装单的刀具物料字段布局。 2023-10-24 17:11:37 +08:00
杨金灵
0a09c54690 Accept Merge Request #494: (feature/修复快速订单 -> develop)
Merge Request: 修复销售方法的传参

Created By: @杨金灵
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/494?initial=true
2023-10-24 14:56:30 +08:00
jinling.yang
076c4a2bcb 修复销售方法的传参 2023-10-24 14:55:45 +08:00
杨金灵
0e2cbf06ca Accept Merge Request #493: (feature/修复创建销售订单 -> develop)
Merge Request: 修复创建销售

Created By: @杨金灵
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/493?initial=true
2023-10-24 14:45:16 +08:00
jinling.yang
575c856f27 修复创建销售 2023-10-24 14:43:11 +08:00
jinling.yang
103b00a635 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/刀具产品调取Cloud刀具标准库(10.11)
# Conflicts:
#	sf_sale/models/quick_easy_order.py
2023-10-24 14:39:45 +08:00
jinling.yang
38c77e7fbb 新增选择刀具规格基本参数 2023-10-24 14:38:35 +08:00
杨金灵
272ab8daa0 Accept Merge Request #492: (feature/添加日志 -> develop)
Merge Request: 添加日志输出·

Created By: @杨金灵
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/492?initial=true
2023-10-24 11:24:26 +08:00
jinling.yang
acff814e9b 添加注释 2023-10-24 11:23:29 +08:00
jinling.yang
1bc3f756fe 新增按钮 2023-10-24 11:18:33 +08:00
杨金灵
99ea796f2e Accept Merge Request #491: (feature/快速订单 -> develop)
Merge Request: 快速订单代码还原

Created By: @杨金灵
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/491?initial=true
2023-10-24 10:30:06 +08:00
jinling.yang
4ef82ee7cf 代码还原 2023-10-24 10:29:10 +08:00
jinling.yang
4bed65d1df Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/刀具产品调取Cloud刀具标准库(10.11)
# Conflicts:
#	sf_sale/models/quick_easy_order.py
2023-10-24 09:59:11 +08:00
杨金灵
2b9e768793 Accept Merge Request #490: (feature/注释自动报价 -> develop)
Merge Request: 注释自动报价

Created By: @杨金灵
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/490
2023-10-24 09:52:50 +08:00
jinling.yang
f4a878ced9 注释自动报价 2023-10-24 09:51:31 +08:00
jinling.yang
093724a277 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/刀具产品调取Cloud刀具标准库(10.11)
# Conflicts:
#	sf_sale/models/quick_easy_order.py
2023-10-24 09:45:35 +08:00
qihao.gong@jikimo.com
8346f40b79 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug 2023-10-24 09:41:43 +08:00
qihao.gong@jikimo.com
a9ba65ec17 去除输入框居中的样式 2023-10-24 09:41:28 +08:00
jinling.yang
8f29696b64 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2023-10-24 09:41:23 +08:00
jinling.yang
2d32419a7d 修改计算方法 2023-10-24 09:41:05 +08:00
禹翔辉
2c636c5e64 Accept Merge Request #489: (feature/功能刀具组装优化 -> develop)
Merge Request: 1、完成刀具组装单扫描绑定刀具物料的功能;2、完成刀具组装单刀具物料绑定库存的刀具物料序列号

Created By: @禹翔辉
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/489?initial=true
2023-10-23 17:38:16 +08:00
yuxianghui
270338868b Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/功能刀具组装优化 2023-10-23 17:36:44 +08:00
yuxianghui
845d606b36 完成刀具组装单扫描绑定刀具物料的功能 2023-10-23 17:36:27 +08:00
jinling.yang
919a200750 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2023-10-23 17:36:15 +08:00
jinling.yang
ad11f2ea63 Merge branch 'feature/注释自动报价方法' into develop 2023-10-23 14:32:54 +08:00
杨金灵
a414f7cd25 Accept Merge Request #487: (feature/注释自动报价方法 -> develop)
Merge Request: 注释代码

Created By: @杨金灵
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/487?initial=true
2023-10-23 14:32:34 +08:00
jinling.yang
2a8558f5a2 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/注释自动报价方法 2023-10-23 14:31:23 +08:00
jinling.yang
13555d91e2 注释上色代码 2023-10-23 14:30:46 +08:00
杨金灵
5ccc186bd1 Accept Merge Request #486: (feature/注释自动报价方法 -> develop)
Merge Request: 注释自动报价方法

Created By: @杨金灵
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/486?initial=true
2023-10-23 11:38:37 +08:00
jinling.yang
27259fb8f7 注释自动报价方法 2023-10-23 11:34:56 +08:00
杨金灵
b733c4168f Accept Merge Request #485: (feature/自动报价代码释放 -> develop)
Merge Request: 自动报价代码释放

Created By: @杨金灵
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/485?initial=true
2023-10-23 10:01:19 +08:00
jinling.yang
1e243e4500 代码释放 2023-10-23 09:59:25 +08:00
yuxianghui
ef2e84e411 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/功能刀具组装优化 2023-10-23 09:44:06 +08:00
马广威
4f644b1e25 Accept Merge Request #484: (feature/制造-计划优化 -> develop)
Merge Request: 解决sequence bug,增加“丢弃”二次确认模态框

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/484
2023-10-23 00:21:50 +08:00
马广威
a5cb2dc93b Merge branch refs/heads/develop into refs/heads/feature/制造-计划优化 2023-10-23 00:21:20 +08:00
mgw
749473f9dc form视图的丢弃按钮增加二次确认功能 2023-10-23 00:17:05 +08:00
jinling.yang
dc8aecba93 产品新增刀具规格向导 2023-10-20 18:41:58 +08:00
mgw
587e2a4e3e 修复sequence导致字段值移动位置的bug 2023-10-20 10:50:35 +08:00
jinling.yang
d83255cc67 优化同步刀具标准库接口(包含全部合并每日) 2023-10-19 17:23:53 +08:00
jinling.yang
14edbd85f4 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/刀具产品调取Cloud刀具标准库(10.11)
# Conflicts:
#	sf_base/models/tool_base.py
#	sf_base/models/tool_base_new.py
#	sf_maintenance/views/maintenance_views.xml
#	sf_mrs_connect/models/res_config_setting.py
2023-10-19 10:53:03 +08:00
jinling.yang
e7df6c14b1 同步刀具标准库 2023-10-19 10:49:54 +08:00
yuxianghui
e2c13a8194 1、功能刀具组装组装功能对象的六个刀具物料对象的序列号绑定库存的刀具物料序列号,2、优化功能刀具组装和功能刀具组装组装弹窗的刀具物料布局 2023-10-18 17:34:19 +08:00
jinling.yang
9acdcc0429 新增同步cloud的刀具标准库接口 2023-10-13 17:29:34 +08:00
jinling.yang
c04e138d6b Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/刀具产品调取Cloud刀具标准库(10.11)
# Conflicts:
#	sf_mrs_connect/models/sync_common.py
2023-10-11 17:41:19 +08:00
jinling.yang
296efcc395 新增调取cloud的刀具标准库接口 2023-10-11 17:39:46 +08:00
328 changed files with 19251 additions and 9692 deletions

View File

@@ -10,7 +10,7 @@
""",
'category': 'sf',
'website': 'https://www.sf.jikimo.com',
'depends': ['web'],
'depends': ['web', 'purchase'],
'data': [
],
@@ -22,11 +22,22 @@
],
'web.assets_backend': [
'jikimo_frontend/static/src/fields/custom_many2many_checkboxes/*',
'jikimo_frontend/static/src/fields/Many2OneRadioField/*',
'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_nums.xml',
'jikimo_frontend/static/src/views/list_nums/list_nums2.xml',
'jikimo_frontend/static/src/views/list_nums/list_nums3.xml',
'jikimo_frontend/static/src/js/custom_form_status_indicator.js',
'jikimo_frontend/static/src/js/custom_image_temp.js',
'jikimo_frontend/static/src/scss/rowno_in_tree.scss',
# 'jikimo_frontend/static/src/views/list_nums/list_render.xml',
# 'jikimo_frontend/static/src/list/list_up_down_button.xml',
# 'jikimo_frontend/static/src/list/custom_import.js',
# 'jikimo_frontend/static/src/list/custom_width.js',
'jikimo_frontend/static/src/views/list_nums/extent_purchase.xml',
# 'jikimo_frontend/static/src/css/list_border_styles.css',
],
},

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;
}

View File

@@ -0,0 +1,3 @@
.many2one_radio_field {
display: inline-block;
}

View File

@@ -0,0 +1,53 @@
/** @odoo-module **/
import { RadioField } from "@web/views/fields/radio/radio_field"; // 导入单选按钮组件
import { registry } from "@web/core/registry";
export class Many2OneRadioField extends RadioField {
// 你可以重写或者添加一些方法和属性
// 例如你可以重写setup方法来添加一些事件监听器或者初始化一些变量
setup() {
super.setup(); // 调用父类的setup方法
// 你自己的代码
}
onImageClick(event) {
// 放大图片逻辑
// 获取图片元素
const img = event.target;
const close = img.nextSibling;
// 实现放大图片逻辑
// 比如使用 CSS 放大
img.parentElement.classList.add('zoomed');
close.classList.add('img_close');
}
onCloseClick(event) {
const close = event.target;
const img = close.previousSibling;
img.parentElement.classList.remove('zoomed');
close.classList.remove('img_close');
}
get items() {
return Many2OneRadioField.getItems(this.props.name, this.props.record);
}
static getItems(fieldName, record) {
switch (record.fields[fieldName].type) {
case "selection":
return record.fields[fieldName].selection;
case "many2one": {
const value = record.preloadedData[fieldName] || [];
return value.map((item) => [item.id, item.display_name, item.image]);
}
default:
return [];
}
}
}
Many2OneRadioField.template = "jikimo_frontend.Many2OneRadioField";
// MyCustomWidget.supportedTypes = ['many2many'];
registry.category("fields").add("many2one_radio", Many2OneRadioField);

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<templates xml:space="preserve">
<t t-name="jikimo_frontend.Many2OneRadioField" owl="1">
<div
role="radiogroup"
t-attf-class="o_{{ props.orientation }}"
t-att-aria-label="string"
>
<t t-foreach="items" t-as="item" t-key="item[0]">
<div class="form-check o_radio_item many2one_radio_field" aria-atomic="true">
<input
type="radio"
class="form-check-input o_radio_input"
t-att-checked="item[0] === value"
t-att-disabled="props.readonly"
t-att-name="id"
t-att-data-value="item[0]"
t-att-data-index="item_index"
t-att-id="`${id}_${item[0]}`"
t-on-change="() => this.onChange(item)"
/>
<label class="form-check-label o_form_label" t-att-for="`${id}_${item[0]}`" t-esc="item[1]" />
<div t-on-dblclick="onImageClick">
<t>
<img t-att-src="item[2]" width="50" height="50"/>
<div class="close" t-on-click="onCloseClick">×</div>
</t>
</div>
</div>
</t>
</div>
</t>
</templates>

View File

@@ -15,23 +15,24 @@ export class MyCustomWidget extends Many2ManyCheckboxesField {
// 放大图片逻辑
// 获取图片元素
const img = event.target;
const close = img.nextSibling
const close = img.nextSibling;
// 实现放大图片逻辑
// 比如使用 CSS 放大
img.parentElement.classList.add('zoomed');
close.classList.add('img_close')
close.classList.add('img_close');
}
onCloseClick(event) {
const close = event.target;
const img = close.previousSibling
img.parentElement.classList.remove('zoomed')
close.classList.remove('img_close')
const img = close.previousSibling;
img.parentElement.classList.remove('zoomed');
close.classList.remove('img_close');
}
}
MyCustomWidget.template = "jikimo_frontend.MyCustomWidget"
MyCustomWidget.template = "jikimo_frontend.MyCustomWidget";
// MyCustomWidget.supportedTypes = ['many2many'];
registry.category("fields").add("custom_many2many_checkboxes", MyCustomWidget);

View File

@@ -0,0 +1,62 @@
/** @odoo-module */
import {patch} from '@web/core/utils/patch';
// import { Dialog } from "@web/core/dialog/dialog";
import {_t} from "@web/core/l10n/translation";
import {FormStatusIndicator} from "@web/views/form/form_status_indicator/form_status_indicator";
var Dialog = require('web.Dialog');
// var {patch} = require("web.utils") 这句话也行
patch(FormStatusIndicator.prototype, 'jikimo_frontend.FormStatusIndicator', {
// 你可以重写或者添加一些方法和属性
async _onDiscardChanges() {
// var self = this;
Dialog.confirm(this, _t("Are you sure you want to discard changes?"), {
title: _t("Discard Changes"),
// confirm_callback: function () {
// self.model.discardChanges(self.handle);
// },
});
},
async discard() {
// if (window.confirm("Are you sure you want to discard changes?")) {
// await this.props.discard();
// }
// const result = await this._confirmDiscardChange();
await this._confirmDiscardChange();
await this.props.discard();
},
_confirmDiscardChange(){
var self = this;
var def = new Promise(function (resolve, reject) {
var message = _t("请确认是否要舍弃之前的更改?");
var dialog = Dialog.confirm(self, message, {
title: _t("Warning"),
confirm_callback: resolve.bind(self, true),
cancel_callback: reject,
});
dialog.on('closed', self, reject);
});
return def;
},
}
);
$(function (){
document.addEventListener('click', function () {
const dom = $('.o_form_status_indicator_buttons ')
if(dom) {
const dom1 = dom.children().eq(0)
const dom2 = dom.children().eq(1)
if(!dom1.text()) {
dom1.append('保存')
dom2.append('取消')
}
}
})
})

View File

@@ -0,0 +1,32 @@
/** @odoo-module **/
import {patch} from '@web/core/utils/patch';
import { url } from "@web/core/utils/urls";
import { ImageField, imageCacheKey } from '@web/views/fields/image/image_field';
patch(ImageField.prototype, 'jikimo_frontend/static/src/js/custom_image.js', {
// 你可以重写或者添加一些方法和属性
getUrl(previewFieldName) {
console.log('666666666666666666666666666666666')
if (this.state.isValid && this.props.value) {
if (1) {
if (!this.rawCacheKey) {
this.rawCacheKey = this.props.record.data.__last_update;
}
return url("/web/image", {
model: this.props.record.resModel,
id: this.props.record.resId,
field: previewFieldName,
unique: imageCacheKey(this.rawCacheKey),
});
} else {
// Use magic-word technique for detecting image type
const magic = fileTypeMagicWordMap[this.props.value[0]] || "png";
return `data:image/${magic};base64,${this.props.value}`;
}
}
return placeholder;
}
}
);

View File

@@ -0,0 +1,36 @@
/** @odoo-module **/
import { registry } from "@web/core/registry";
import { url } from "@web/core/utils/urls";
import { ImageField, imageCacheKey } from '@web/views/fields/image/image_field';
export class CustomImageField extends ImageField {
setup() {
super.setup();
// this.dialog = useService("dialog");
}
getUrl(previewFieldName) {
console.log('8888888888886666666666666666666')
if (this.state.isValid && this.props.value) {
if (1) {
if (!this.rawCacheKey) {
this.rawCacheKey = this.props.record.data.__last_update;
}
return url("/web/image", {
model: this.props.record.resModel,
id: this.props.record.resId,
field: previewFieldName,
unique: imageCacheKey(this.rawCacheKey),
});
} else {
// Use magic-word technique for detecting image type
const magic = fileTypeMagicWordMap[this.props.value[0]] || "png";
return `data:image/${magic};base64,${this.props.value}`;
}
}
return placeholder;
}
}
registry.category("fields").add("custom_image", CustomImageField);

View File

@@ -0,0 +1,95 @@
/** @odoo-module */
import {patch} from '@web/core/utils/patch';
import {ListRenderer} from "@web/views/list/list_renderer";
// var {patch} = require("web.utils") 这句话也行
patch(ListRenderer.prototype, 'jikimo_frontend.ListRenderer', {
// 你可以重写或者添加一些方法和属性
// The following code manipulates the DOM directly to avoid having to wait for a
// render + patch which would occur on the next frame and cause flickering.
freezeColumnWidths() {
// console.log('ccccccccccccccccccccccccccc')
if (!this.keepColumnWidths) {
this.columnWidths = null;
}
const table = this.tableRef.el;
const headers = [...table.querySelectorAll("thead th:not(.o_list_actions_header)")];
const column_num = headers.length;
if (!this.columnWidths || !this.columnWidths.length) {
// no column widths to restore
// Set table layout auto and remove inline style to make sure that css
// rules apply (e.g. fixed width of record selector)
table.style.tableLayout = "auto";
headers.forEach((th) => {
th.style.width = null;
th.style.maxWidth = null;
});
this.setDefaultColumnWidths(column_num);
// Squeeze the table by applying a max-width on largest columns to
// ensure that it doesn't overflow
this.columnWidths = this.computeColumnWidthsFromContent();
table.style.tableLayout = "fixed";
}
headers.forEach((th, index) => {
if (!th.style.width) {
th.style.width = `${Math.floor(this.columnWidths[index])}px`;
}
});
},
setDefaultColumnWidths(column_num) {
// const bbb = this.state.columns[0].name
const widths = this.state.columns.map((col) =>
this.calculateColumnWidth(col));
// const sumOfRelativeWidths = (widths
// .filter(({ type }) => type === "relative")
// .reduce((sum, { value }) => sum + value, 0));
// 获取数组的最后一项
const lastItem = widths[widths.length - 1];
// 复制最后一项
const newItem = { ...lastItem };
// 将新的对象添加到数组的末尾
widths.push(newItem);
// 判断销售的sequence
// if (this.state.columns[0].name === "sequence") {
// widths[1] = { type: "relative", value: 0.1 };
// }
// 判断 this.state.columns 是否存在且长度大于零
if (this.state.columns && this.state.columns.length > 0
&& this.state.columns[0].name === "sequence") {
widths[1] = { type: "relative", value: 0.1 };
}
// 1 because nth-child selectors are 1-indexed,
// 2 when the first column contains
// the checkboxes to select records.
const columnOffset = this.hasSelectors ? 2 : 1;
widths.forEach(({ type, value }, width) => {
const headerEl = this.tableRef.el.querySelector(
`th:nth-child(${width + columnOffset})`);
if (type === "absolute") {
if (this.isEmpty) {
headerEl.style.width = value;
} else {
headerEl.style.minWidth = value;
}
} else if (type === "relative" && this.isEmpty) {
headerEl.style.width = `${((value / column_num) * 100
).toFixed(2)}%`;
}
});
},
}
);

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<templates>
<t t-name="list_up_down_button" t-inherit="web.ListView.Buttons" t-inherit-mode="extension" owl="1">
<xpath expr="//t[@t-if='nbTotal and !nbSelected and activeActions.exportXlsx and isExportEnable and !env.isSmall']" position="before">
<!-- 新增的导入文件按钮 -->
<!-- <button type="button" class="btn btn-secondary fa fa-upload o_list_import_file" data-tooltip="导入文件" aria-label="Import File" title="" t-on-click="onDirectImportData"/> -->
<!-- <button type="button" class="btn btn-secondary fa fa-upload o_list_import_file" data-tooltip="导入文件" aria-label="Import File" title="" t-on-click="onDirectImportData"/> -->
<!-- <button type="button" class="btn btn-secondary fa fa-download o_list_export_xlsx" data-tooltip="导出全部" aria-label="导出全部" t-on-click="onDirectExportData"/> -->
<button type="button" class="btn btn-secondary o_list_export_xlsx" data-tooltip="导出全部" aria-label="导出全部" t-on-click="onDirectExportData">导出全部</button>
<!-- <button type="button" t-component="base_import.ImportRecords" class="btn btn-secondary o_list_export_xlsx" data-tooltip="导入数据" aria-label="导入数据" t-on-click="importRecords">导入数据</button> -->
<!-- <button type="button" class="btn btn-secondary o_list_export_xlsx" data-tooltip="导入数据" aria-label="导入数据" t-on-click="importRecords">导入数据</button> -->
<!-- <t t-component="base_import.ImportRecords"> -->
<!-- <button t-on-click="importRecords" type="button" class="btn btn-secondary o_list_export_xlsx" data-tooltip="导入数据" aria-label="导入数据">导入数据</button> -->
<!-- </t> -->
</xpath>
<xpath expr="//t[@t-if='nbTotal and !nbSelected and activeActions.exportXlsx and isExportEnable and !env.isSmall']" position="replace">
</xpath>
</t>
</templates>

View File

@@ -17,6 +17,7 @@ div:has(.o_required_modifier) > label::before {
}
.my-image div {
width: 110px !important;
height: 110px !important;
}
@@ -78,9 +79,9 @@ td.o_required_modifier {
}
.oe_kanban_card.kanban_color_1 {
background-color: #27FEA9 !important;
background-color: #fff !important;
opacity: 0.7;
color: #fff;
color: #777;
}
.oe_kanban_card.kanban_color_3 {
@@ -134,7 +135,7 @@ td.o_required_modifier {
.text-truncate {
overflow: unset !important;
text-overflow: unset !important;
white-space: unset !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) {
@@ -204,8 +205,8 @@ div[class="o_content o_component_with_search_panel"] img[name="equipment_image"]
div[class="o_content o_component_with_search_panel"] .o_kanban_card_content button {
position: absolute;
top: -52px;
left: -55px;
//top: -52px;
//left: -55px;
width: 80px;
}
@@ -252,16 +253,16 @@ div[class="o_content o_component_with_search_panel"] .show_state span {
font-size: 12px;
}
div[class="o_content o_component_with_search_panel"] .o_kanban_primary_right > .row {
position: absolute;
top: 55px;
right: 43.5%;
}
//div[class="o_content o_component_with_search_panel"] .o_kanban_primary_right > .row {
// position: absolute;
// top: 55px;
// right: 43.5%;
//}
//------------------------------------------
.test_model > .o_form_label {
margin-left: 4px !important;
line-height: 0 !important;
//line-height: 0 !important;
}
@media screen and (min-width: 1200px) {
@@ -269,10 +270,10 @@ div[class="o_content o_component_with_search_panel"] .o_kanban_primary_right > .
right: 52%;
}
div[class="o_content o_component_with_search_panel"] .o_kanban_card_content button {
left: -95px;
}
//div[class="o_content o_component_with_search_panel"] .o_kanban_card_content button {
//
// left: -95px;
//}
}
@@ -317,27 +318,135 @@ div[class="o_content o_component_with_search_panel"] .o_kanban_primary_right > .
.o_horizontal_separator {
font-size: 1.5rem;
}
.o_field_widget input[class='o_input'] {
text-align: center
}
//
//.o_field_widget input[class='o_input'] {
//text-align: center
//}
div:has(.o_required_modifier) > label::before {
position: absolute;
left: -3px;
}
.o_form_view .o_form_label {
position: relative;
width: 9rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
padding-left: 1rem;
//.o_form_view .o_form_label {
// position: relative;
// width: 9rem;
// overflow: hidden;
// text-overflow: ellipsis;
// white-space: nowrap;
// padding-left: 1rem;
//}
//
//.o_form_view .o_form_label:hover {
// white-space: normal;
// overflow: visible;
//}
.o_form_view {
.o_form_sheet_bg .o_form_sheet {
//max-width: none !important;
width: auto !important;
max-width: 98% !important;
}
.o_FormRenderer_chatterContainer {
max-width: none;
}
}
.o_form_view .o_form_label:hover {
white-space: normal;
overflow: visible;
// 2023-11-16 hy 新增
.o_kanban_card_content .btn-group {
position: unset;
}
.o_kanban_card_content .btn-group button{
top: 100px;
left: 168px;
}
.o_kanban_primary_right {
position: absolute;
top: 40px;
left: 168px;
padding: 0;
display: flex;
flex-wrap: wrap;
box-sizing: border-box;
.row {
width: 50%;
margin: 0;
>div {
padding: 0;
width: unset;
margin-right: 10px;
}
}
}
.oe_kanban_details li.o_text_overflow {
display: block;
}
.o_stock_kanban .o_kanban_card_content {
.row {
align-items: center;
.o_kanban_primary_left, .o_kanban_primary_right {
display: block;
}
.o_kanban_primary_right {
position: unset;
}
}
}
// 机床换刀申请表格宽度设置
.o_list_table_ungrouped {
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;
}
}
}
}

View File

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

View File

@@ -0,0 +1,7 @@
<templates>
<t t-name="purchase.PurchaseListView" t-inherit="web.ListRenderer" t-inherit-mode="primary" owl="1">
<xpath expr="//div[hasclass('o_list_renderer')]" position="before">
<PurchaseDashBoard />
</xpath>
</t>
</templates>

View File

@@ -5,7 +5,7 @@
<t t-name="og.web.ListRenderer" t-inherit="web.ListRenderer" t-inherit-mode="extension">
<xpath expr="//table/thead/tr/th[@t-if='hasSelectors']" position="before">
<th><i class="fa fa-list-ol"/></th>
<th class="row_no"><i class="fa fa-list-ol"/></th>
</xpath>
</t>

View File

@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8" ?>
<template>
<t
t-name="rowno_in_tree.ListRenderer"
t-inherit="web.ListRenderer"
t-inherit-mode="extension"
owl="1"
>
<xpath expr="//table/thead/tr/th[@t-if='hasSelectors']" position="before">
<th class="row_no"><i class="fa fa-list-ol"/></th>
</xpath>
<xpath expr="//div/table/tfoot/tr/td" position="before">
<td />
</xpath>
</t>
<t
t-name="rowno_in_tree.add_number"
t-inherit="web.ListRenderer.Rows"
t-inherit-mode="extension"
owl="1"
>
<xpath expr="//t[@t-foreach='list.records']" position="before">
<t t-set="RowNumber" t-value="1" />
</xpath>
<xpath
expr="//t[@t-call='{{ constructor.recordRowTemplate }}']"
position="after"
>
<t t-set="RowNumber" t-value="RowNumber+1" />
</xpath>
</t>
<t
t-name="rowno_in_tree.ListRenderer.RecordRowNumber"
t-inherit="web.ListRenderer.RecordRow"
t-inherit-mode="extension"
owl="1"
>
<xpath expr="//td[@class='o_list_record_selector']" position="before">
<td tabindex="-1">
<span t-esc="RowNumber" />
</td>
</xpath>
</t>
</template>

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

@@ -23,7 +23,7 @@ html .o_web_client > .o_action_manager > .o_action {
}
.o_form_view {
background-color: unset !important;
//background-color: unset !important;
min-height: unset !important;
}

View File

@@ -38,9 +38,9 @@
<xpath expr="//field[@name='state']" position="after">
<field name="production_state" invisible="1"/>
</xpath>
<xpath expr="//button[@name='action_open_wizard']" position="after">
<button name="open_tablet_view" type="object" icon="fa-tablet" title="Open Tablet View" context="{'from_production_order': True}" attrs="{'invisible': ['|', ('production_state', 'in', ('draft', 'cancel', 'done')), ('state', '=', 'done')]}"/>
</xpath>
<!-- <xpath expr="//button[@name='action_open_wizard']" position="after">-->
<!-- <button name="open_tablet_view" type="object" icon="fa-tablet" title="Open Tablet View" context="{'from_production_order': True}" attrs="{'invisible': ['|', ('production_state', 'in', ('draft', 'cancel', 'done')), ('state', '=', 'done')]}"/>-->
<!-- </xpath>-->
</field>
</record>

View File

@@ -4,14 +4,14 @@ csv_internal_sep = ,
data_dir = /var/lib/odoo
db_host = 172.17.0.2
db_maxconn = 64
db_name = sf_cs_dev937
db_name = sf_t2cs_003
db_password = sf
db_port = 5432
db_sslmode = prefer
db_template = template0
db_user = sf
dbfilter =
demo = {}
without_demo = all
email_from = False
from_filter = False
geoip_database = /usr/share/GeoIP/GeoLite2-City.mmdb
@@ -57,6 +57,5 @@ test_tags = None
;translate_modules = ['all']
unaccent = False
upgrade_path =
without_demo = False
workers = 0

View File

@@ -7,10 +7,15 @@
<field name="model">quality.point</field>
<field name="arch" type="xml">
<form>
<header>
</header>
<sheet>
<div class="oe_button_box" name="button_box"/>
<widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
<h2><field name="name" readonly="1"/></h2>
<widget name="web_ribbon" title="Archived" bg_color="bg-danger"
attrs="{'invisible': [('active', '=', True)]}"/>
<h2>
<field name="name" readonly="1"/>
</h2>
<group>
<group>
<field name="active" invisible="1"/>
@@ -33,7 +38,8 @@
<field name="note" placeholder="Describe the quality check to do..."/>
</page>
<page string="Notes" name="Notes">
<field name="reason" string="Note" placeholder="Describe why you need to perform this quality check..."/>
<field name="reason" string="Note"
placeholder="Describe why you need to perform this quality check..."/>
</page>
</notebook>
</sheet>
@@ -95,7 +101,8 @@
<filter string="Stage" name="groupby_stage" domain="[]" context="{'group_by': 'stage_id'}"/>
<filter string="Responsible" name="groupby_user" domain="[]" context="{'group_by': 'user_id'}"/>
<filter string="Root Cause" name="groupby_reason" domain="[]" context="{'group_by': 'reason_id'}"/>
<filter string="Creation Date" name="groupby_createmonth" domain="[]" context="{'group_by': 'create_date'}"/>
<filter string="Creation Date" name="groupby_createmonth" domain="[]"
context="{'group_by': 'create_date'}"/>
<filter string="Quality Team" name="groupby_team_id" domain="[]" context="{'group_by': 'team_id'}"/>
</group>
</search>

View File

@@ -602,6 +602,7 @@
<field name="model">quality.alert.team</field>
<field name="arch" type="xml">
<form>
<header></header>
<sheet>
<div class="oe_title">
<label for="name" string="Team Name"/>

View File

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

View File

@@ -10,7 +10,7 @@
""",
'category': 'sf',
'website': 'https://www.sf.jikimo.com',
'depends': ['account', 'base', 'mrp_workorder', 'sale'],
'depends': ['base', 'mrp_workorder', 'sale', 'purchase', 'sales_team'],
'data': [
'security/group_security.xml',
'security/ir.model.access.csv',
@@ -19,9 +19,11 @@
'views/fixture_view.xml',
'views/functional_fixture_view.xml',
'views/menu_view.xml',
"views/tool_views.xml",
"views/tool_menu.xml",
'views/tool_views.xml',
'views/tool_basic_param.xml',
'views/tool_menu.xml',
'views/menu_fixture_view.xml',
'views/change_base_view.xml',
],
'demo': [

View File

@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from odoo import models
import time
import hashlib
from odoo import models
class Common(models.Model):
@@ -20,4 +20,12 @@ class Common(models.Model):
'checkstr': check_sf_str}
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

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/MaintenanceToolGroups', 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

@@ -3,9 +3,5 @@ from . import common
from . import tool_base_new
from . import fixture
from . import functional_fixture
from . import tool_other_features
from . import basic_parameters_fixture

View File

@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
import logging
import requests
import json
import requests
from odoo import fields, models, api
from odoo.exceptions import ValidationError
from odoo.addons.sf_base.commons.common import Common
@@ -9,6 +9,14 @@ from odoo.addons.sf_base.commons.common import Common
_logger = logging.getLogger(__name__)
class SpindleTaperType(models.Model):
_name = 'spindle.taper.type'
_description = '主轴锥孔型号'
name = fields.Char('名称')
active = fields.Boolean('有效', default=True)
class MachineBrandTags(models.Model):
_name = 'sf.machine.brand.tags'
_description = '标签'
@@ -84,7 +92,8 @@ class MachineTool(models.Model):
type_id = fields.Many2one('sf.machine_tool.type', '型号')
brand_id = fields.Many2one('sf.machine.brand', string='品牌')
state = fields.Selection(
[("正常", "正常"), ("故障", "故障"), ("不可用", "不可用")],
[("正常", "正常"), ("故障停机", "故障停机"), ("计划维保", "计划维保"), ("空闲", "空闲"),
("封存(报废)", "封存(报废)")],
default='正常', string="机床状态")
# 0606新增字段
machine_tool_picture = fields.Binary('图片')
@@ -269,31 +278,19 @@ class MachineToolType(models.Model):
('chilunjia', '齿轮架驱动')
], string="主轴加高方式", default='sifudianji')
workpiece_load = fields.Char('工件最大负载(kg)')
lead_screw = fields.Char('丝杆')
workbench_L = fields.Char('工作台长度(mm)')
workbench_W = fields.Char('工作台宽度(mm)')
guide_rail = fields.Char('导轨')
machine_tool_L = fields.Char('机床长度(mm)')
machine_tool_W = fields.Char('机床宽度(mm)')
machine_tool_H = fields.Char('机床高度(mm)')
feed_speed = fields.Char('进给速度(mm/min)')
tool_speed = fields.Char('刀具速度(m/min)')
distance_min = fields.Char('主轴端面至工作台面距离MIN(mm)')
distance_max = fields.Char('主轴端面至工作台面距离MAX(mm)')
taper = fields.Char('主轴锥度(°)')
torque = fields.Char('主轴电机扭矩(n/m)')
motor_power = fields.Char('主轴电机功率(kw)')
tool_quality_max = fields.Char('刀具最大质量(kg)')
tool_long_max = fields.Char('刀具最大长度(mm)')
tool_diameter_max = fields.Char('刀具刀径max(mm)')
tool_diameter_min = fields.Char('刀具刀径min(mm)')
machine_tool_category = fields.Many2one('sf.machine_tool.category', string='机床类型')
# 多个型号对应一个机床
machine_tool_id = fields.Many2one('sf.machine_tool', '机床')
number_of_axles = fields.Selection(
[("三轴", "三轴"), ("四轴", "四轴"), ("五轴", "五轴")],
default="", string="轴数")
# 加工进程
x_axis = fields.Integer('X轴')
y_axis = fields.Integer('Y轴')
@@ -301,13 +298,79 @@ class MachineToolType(models.Model):
b_axis = fields.Integer('B轴')
c_axis = fields.Integer('C轴')
remark = fields.Char('备注')
precision_min = fields.Float('X轴定位精度min(mm)', digits=(12, 3))
precision_max = fields.Float('X轴定位精度max(mm)', digits=(12, 3))
control_system_id = fields.Many2one('sf.machine.control_system',
string="控制系统")
active = fields.Boolean('有效', default=True)
code = fields.Char('编码')
# 1212修改后的字段
number_of_axles = fields.Selection(
[("三轴", "三轴"), ("四轴", "四轴"), ("五轴", "五轴"), ("六轴", "六轴")],
default="", string="轴数")
# 1212新增字段
a_axis = fields.Integer('a轴')
function_type = fields.Selection(
[("ZXJGZX", "钻铣加工中心"), ("CXJGZX", "车削加工中心"), ("FHJGZX", "复合加工中心")],
default="", string="功能类型")
T_trough_num = fields.Integer('槽数')
T_trough_wide = fields.Float('槽宽(mm)')
T_trough_distance = fields.Float('槽距(mm)')
taper_type_id = fields.Many2one('spindle.taper.type', string='主轴锥孔型号')
spindle_center_distance = fields.Float('主轴中心至立柱滑轨面距离(mm)')
spindle_continuous_power = fields.Float('主轴持续功率(kw)')
spindle_peak_power = fields.Float('主轴峰值功率(kw)')
spindle_sustained_torque = fields.Float('主轴持续扭矩(n/m)')
spindle_peak_torque = fields.Float('主轴峰值扭矩(n/m)')
linear_axis_guides_type = fields.Char('直线轴导轨类型')
axis_driven_type = fields.Char('坐标轴驱动类型')
X_axis_rapid_traverse_speed = fields.Char('X轴快速进给速度(mm/min)')
Y_axis_rapid_traverse_speed = fields.Char('Y轴快速进给速度(mm/min)')
Z_axis_rapid_traverse_speed = fields.Char('Z轴快速进给速度(mm/min)')
a_axis_rapid_traverse_speed = fields.Char('a轴快速进给速度(mm/min)')
b_axis_rapid_traverse_speed = fields.Char('b轴快速进给速度(mm/min)')
c_axis_rapid_traverse_speed = fields.Char('c轴快速进给速度(mm/min)')
straight_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_repeat = fields.Float('X轴重复定位精度(mm)', digits=(12, 3))
Y_precision = fields.Float('Y轴定位精度(mm)', digits=(12, 3))
Y_precision_repeat = fields.Float('Y轴重复定位精度(mm)', digits=(12, 3))
Z_precision = fields.Float('Z轴定位精度(mm)', digits=(12, 3))
Z_precision_repeat = fields.Float('Z轴重复定位精度(mm)', digits=(12, 3))
a_precision = fields.Float('a轴定位精度(mm)', digits=(12, 3))
a_precision_repeat = fields.Float('a轴重复定位精度(mm)', digits=(12, 3))
b_precision = fields.Float('b轴定位精度(mm)', digits=(12, 3))
b_precision_repeat = fields.Float('b轴重复定位精度(mm)', digits=(12, 3))
c_precision = fields.Float('c轴定位精度(mm)', digits=(12, 3))
c_precision_repeat = fields.Float('c轴重复定位精度(mm)', digits=(12, 3))
tool_full_diameter_max = fields.Float('刀具满刀最大直径(mm)')
tool_perimeter_diameter_max = fields.Float('刀具邻空刀最大直径(mm)')
T_tool_time = fields.Integer('T-T换刀时间(s)')
C_tool_time = fields.Integer('C-C换刀时间(s)')
jg_image_id = fields.Many2many('maintenance.equipment.image', 'jg_equipment_id', string='加工能力',
domain="[('type', '=', '加工能力')]")
lq_image_id = fields.Many2many('maintenance.equipment.image', 'lq_equipment_id', string='冷却方式',
domain="[('type', '=', '冷却方式')]")
# 待删除字段
precision_min = fields.Float('X轴定位精度min(mm)', digits=(12, 3))
precision_max = fields.Float('X轴定位精度max(mm)', digits=(12, 3))
lead_screw = fields.Char('丝杆')
guide_rail = fields.Char('导轨')
feed_speed = fields.Char('进给速度(mm/min)')
tool_speed = fields.Char('刀具速度(m/min)')
torque = fields.Char('主轴点击扭矩(n/m)')
motor_power = fields.Char('主轴电机功率(kw)')
taper = fields.Char('主轴锥度(°)')
tool_diameter_max = fields.Char('刀具刀径max(mm)')
tool_diameter_min = fields.Char('刀具刀径min(mm)')
def _get_ids(self, machine_tool_type_code):
machine_tool_type_ids = []
for item in machine_tool_type_code:
@@ -327,4 +390,3 @@ class MachineToolCategory(models.Model):
active = fields.Boolean('有效', default=True)
category = fields.Selection([('shukong', u'数控'), ('putong', u'普通')], string=u'机床类别',
default='shukong')

View File

@@ -0,0 +1,252 @@
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))
def _json_zero_chuck_param(self, obj):
zero_chuck_param_str = (0, '', {
'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,
})
return zero_chuck_param_str
def _json_zero_tray_param(self, obj):
zero_tray_param_str = (0, '', {
'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'],
})
return zero_tray_param_str
def _json_pneumatic_fixture_param(self, obj):
pneumatic_fixture_param_str = (0, '', {
'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'],
})
return pneumatic_fixture_param_str
def _json_jaw_vice_fixture_param(self, obj):
jaw_vice_fixture_param_str = (0, '', {
'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'],
})
return jaw_vice_fixture_param_str
def _json_magnet_fixture_param(self, obj):
magnet_fixture_param_str = (0, '', {
'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'],
})
return magnet_fixture_param_str
def _json_adapter_board_fixture_param(self, obj):
adapter_board_fixture_param_str = (0, '', {
'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'],
})
return adapter_board_fixture_param_str
def _json_scroll_chuck_param(self, obj):
scroll_chuck_param_str = (0, '', {
'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'],
})
return scroll_chuck_param_str

View File

@@ -1,9 +1,9 @@
# -*- coding: utf-8 -*-
import logging
from odoo import fields, models
import requests
from odoo.addons.sf_base.commons.common import Common
from urllib.parse import urlencode
from odoo import fields, models, api
from odoo.exceptions import UserError
_logger = logging.getLogger(__name__)
@@ -19,29 +19,7 @@ class MrsProductionMaterials(models.Model):
remark = fields.Text("备注")
active = fields.Boolean('有效', default=True)
# def open_url_action(self):
# base_url = self.env['ir.config_parameter'].sudo().get_param('web.base.url')
# # url = 'http://192.168.50.202:8080/api'
# url = 'https://bfw.jikimo.com/'
# # data = {
# # 'key' : 'value'
# # }
#
# response = requests.get(url)
# response.raise_for_status()
# return {
# 'type': 'ir.actions.act_url',
# 'url': response.url,
# 'target': 'new'
# }
def open_url_action(self):
# 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(self, token, sf_secret_key)
url = 'http://192.168.50.127:8081'
params = {
'user_id': self._uid
@@ -68,12 +46,12 @@ class MrsMaterialModel(models.Model):
density = fields.Float("密度(kg/m³)")
materials_id = fields.Many2one('sf.production.materials', "材料名")
tensile_strength = fields.Char("拉伸强度(n/mm²)")
standards_id = fields.Many2one('sf.international.standards', '制造标准')
standards_id = fields.Many2one('sf.international.standards', '执行标准')
alloy_code = fields.Char('合金牌号')
price = fields.Float('单价/kg')
apply = fields.Many2many('material.apply', string='材料应用')
materials_code = fields.Char('材料代号')
hardness = fields.Float("硬度(hrc)")
hardness = fields.Integer("硬度(hrc)")
rough_machining = fields.Float("粗加工Vc(m/min)")
finish_machining = fields.Float("精加工Vc(m/min)")
remark = fields.Text("备注")
@@ -83,6 +61,14 @@ class MrsMaterialModel(models.Model):
supplier_ids = fields.One2many('sf.supplier.sort', 'materials_model_id', string='供应商')
active = fields.Boolean('有效', default=True)
@api.constrains('supplier_ids')
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):
_name = 'sf.production.process.category'
@@ -132,6 +118,7 @@ class MrsProcessingOrder(models.Model):
index=True, string='加工工艺')
production_process_id = fields.Many2one('sf.production.process', string="表面工艺")
class SupplierSort(models.Model):
_name = 'sf.supplier.sort'
_description = '供应商排序'

View File

@@ -26,66 +26,65 @@ class FixtureModel(models.Model):
_name = 'sf.fixture.model'
_description = "夹具型号"
name = fields.Char(string="名称", size=15)
fixture_material_id = fields.Many2one('sf.fixture.material', string="夹具物料", )
fixture_material_type = fields.Char(string="夹具物料类型", related='fixture_material_id.name', store=True)
multi_mounting_type_id = fields.Many2one('sf.multi_mounting.type', string="联装类型")
brand_id = fields.Many2one('sf.machine.brand', string="品牌", domain="[('tag_ids.name', 'ilike', '夹具')]")
clamping_way = fields.Char(string="装夹方式")
port_type = fields.Char(string="接口类型")
model_file = fields.Binary(string="3D模型图")
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)
name = fields.Char(string="名称", size=50, required=True)
fixture_material_id = fields.Many2one('sf.fixture.material', string="夹具物料", required=True)
fixture_material_type = fields.Char(string="夹具物料类型", related='fixture_material_id.name')
multi_mounting_type_id = fields.Many2one('sf.multi_mounting.type', string="联装类型", required=True)
brand_id = fields.Many2one('sf.machine.brand', string="品牌")
model_file = fields.Binary(string="图片")
status = fields.Boolean('状态')
active = fields.Boolean('有效', default=False)
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)
def _onchange_fixture_material_id(self, fixture_material_id):
if fixture_material_id:
if fixture_material_id.name == "气动夹具":
code = self._get_code("JKM-C-JJWL-QDJJ-")
elif fixture_material_id.name == "转接板(锁板)夹具":
code = self._get_code("JKM-C-JJWL-ZJBJJ-")
elif fixture_material_id.name == "磁吸夹具":
code = self._get_code("JKM-C-JJWL-CXJJ-")
elif fixture_material_id.name == "虎钳夹具":
code = self._get_code("JKM-C-JJWL-HQJJ-")
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
# 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)
#
# def _onchange_fixture_material_id(self, fixture_material_id):
# if fixture_material_id:
# if self.fixture_material_id.name == "气动夹具":
# code = self._get_code("JKM-C-JJWL-QDJJ-")
# elif self.fixture_material_id.name == "转接板(锁板)夹具":
# code = self._get_code("JKM-C-JJWL-ZJJJ-")
# elif self.fixture_material_id.name == "磁吸夹具":
# code = self._get_code("JKM-C-JJWL-CXJJ-")
# 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,8 +1,8 @@
import json
import requests
from odoo import models, fields, api
from odoo.addons.sf_base.commons.common import Common
from odoo.exceptions import ValidationError
import requests
import json
class FunctionalFixtureType(models.Model):
@@ -62,7 +62,8 @@ class FunctionalFixture(models.Model):
def _get_name(self):
for record in self:
if record.type:
if not record.transfer_tray_model_ids and not record.pneumatic_tray_model_ids and not record.magnetic_tray_model_ids and not record.vice_tray_model_ids:
if not record.transfer_tray_model_ids and not record.pneumatic_tray_model_ids and \
not record.magnetic_tray_model_ids and not record.vice_tray_model_ids:
record.name = ''
if record.transfer_tray_model_ids:
for i in record.transfer_tray_model_ids:

View File

@@ -1,304 +0,0 @@
# -*- coding: utf-8 -*-
import logging
from odoo import fields, models, api
# from odoo.exceptions import UserError
# # from odoo.addons import sf_base, sf_common
# from datetime import datetime
# 功能刀具物料
class CuttingToolMaterial(models.Model):
_name = 'sf.cutting.tool.material'
_description = '刀具物料'
code = fields.Char('编码')
name = fields.Char('名称')
remark = fields.Char('备注')
active = fields.Boolean('有效', default=True)
# 功能刀具
class FunctionalCuttingTool(models.Model):
_name = 'sf.functional.cutting.tool'
_description = '功能刀具'
code = fields.Char('编码')
name = fields.Char('名称')
functional_model_number = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型')
integral_model_number = fields.Many2one('sf.integral.cutting.tool', string='整体式刀具型号')
blade_model_number = fields.Many2one('sf.blade', string='刀片型号')
cutterbar_model_number = fields.Many2one('sf.cutter.bar', string='刀杆型号')
cutterpad_model_number = fields.Many2one('sf.cutter.pad', string='刀盘型号')
handle_model_number = fields.Many2one('sf.handle', string='刀柄型号')
chuck_model_number = fields.Many2one('sf.chuck', string='夹头型号')
diameter = fields.Float('直径(mm)')
tool_grade = fields.Selection([('1', 'P1'), ('2', 'P2'), ('3', 'P3'), ('4', 'P4'), ('5', 'P5'), ('6', 'P6')],
string='刀具等级')
machining_accuracy = fields.Float('加工精度(mm)')
tool_length = fields.Float('装刀长')
blade_number = fields.Integer('刃数')
integral_blade_length = fields.Float('整体刃长(mm)')
effective_blade_length = fields.Float('有效刃长(mm)')
max_life = fields.Float('最大寿命值')
is_standard = fields.Boolean('是否标准刀')
applicable_range = fields.Char('适用范围')
image = fields.Binary('图片')
active = fields.Boolean('有效', default=True)
# 功能刀具类型
class FunctionalCuttingToolModel(models.Model):
_name = 'sf.functional.cutting.tool.model'
_description = '功能刀具类型'
name = fields.Char('名称')
code = fields.Char('编码')
remark = fields.Char('备注')
active = fields.Boolean('有效', default=True)
# 整体式刀具
class IntegralCuttingTool(models.Model):
_name = 'sf.integral.cutting.tool'
_description = '整体式刀具'
code = fields.Char('编码')
name = fields.Char('型号名称')
# 关联刀具物料
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
# 整体式刀具类型字段,关联整体式刀具类型对象
integral_model_number = fields.Many2one('sf.integral.cutting.tool.model', '整体式刀具类型')
# 增加品牌、总长度(mm)、柄部长度(mm)、刃部长度(mm)、直径(mm)、刃数、前角(°)、后角(°)、主偏角(°)、材料型号、配对螺母(mm)、适用夹头型号、适用范围、图片、创建人、创建时间等字段
brand = fields.Many2one('sf.machine.brand', '品牌', domain="[('tag_ids.name', 'ilike', '刀具')]")
total_length = fields.Float('总长度(mm)')
shank_length = fields.Float('柄部长度(mm)')
blade_length = fields.Float('刃部长度(mm)')
diameter = fields.Float('直径(mm)')
blade_number = fields.Integer('刃数')
front_angle = fields.Float('前角(°)')
rear_angle = fields.Float('后角(°)')
main_included_angle = fields.Float('主偏角(°)')
material_model = fields.Many2one('sf.materials.model', '材料型号')
nut = fields.Float('配对螺母(mm)')
# 适用夹头型号可以多选
chuck_model = fields.Many2many('sf.chuck', string='适用夹头型号')
scope = fields.Char('适用范围')
image = fields.Binary('图片')
active = fields.Boolean('有效', default=True)
# 整体式刀具类型
class IntegralCuttingToolModel(models.Model):
_name = 'sf.integral.cutting.tool.model'
_description = '整体式刀具类型'
code = fields.Char('编码')
name = fields.Char('名称')
# 关联刀具物料
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
remark = fields.Char('备注')
# 刀片
class Blade(models.Model):
_name = 'sf.blade'
_description = '刀片'
code = fields.Char('编码')
name = fields.Char('型号名称')
# 关联刀具物料
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
# 刀片类型字段,关联刀片类型对象
blade_model_number = fields.Many2one('sf.blade.model', '刀片类型')
# 编码、型号名称、刀片类型、品牌、长度L(mm)、宽度D(mm)、高度T(mm)、顶角(°)、前角(°)、后角(°)、主偏角(°)、R角(°)、材料型号、加工硬度、配对螺母(mm)、适用刀杆/刀盘型号、刀尖半径(mm)、图片、创建人、创建时间字段
brand = fields.Many2one('sf.machine.brand', '品牌', )
length = fields.Float('长度L(mm)')
width = fields.Float('宽度D(mm)')
height = fields.Float('高度T(mm)')
top_angle = fields.Float('顶角(°)')
front_angle = fields.Float('前角(°)')
rear_angle = fields.Float('后角(°)')
main_included_angle = fields.Float('主偏角(°)')
r_angle = fields.Float('R角(°)')
material_model = fields.Many2one('sf.materials.model', '材料型号')
hardness = fields.Char('加工硬度')
nut = fields.Float('配对螺母(mm)')
# 适用刀杆型号可以多选
cutter_bar = fields.Many2many('sf.cutter.bar', string='适用刀杆型号')
# 适用刀盘型号可以多选
cutter_pad = fields.Many2many('sf.cutter.pad', string='适用刀盘型号')
radius = fields.Float('刀尖半径(mm)')
image = fields.Binary('图片')
# 刀片类型
class BladeModel(models.Model):
_name = 'sf.blade.model'
_description = '刀片类型'
code = fields.Char('编码')
name = fields.Char('名称')
# 关联刀具物料
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
# 刀片类型字段,关联刀片对象
blade_ids = fields.One2many('sf.blade', 'blade_model_number', '刀片类型')
remark = fields.Char('备注')
# 刀杆
class CutterBar(models.Model):
_name = 'sf.cutter.bar'
_description = '刀杆'
code = fields.Char('编码')
name = fields.Char('型号名称')
# 关联刀具物料
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
# 刀杆类型字段,关联刀杆类型对象
cutter_bar_model_number = fields.Many2one('sf.cutter.bar.model', '刀杆类型')
# 品牌、C柄径(mm)、L总长(mm)、材料型号、刃数、D刃径(mm)、适用刀片型号、配对扳手(mm)、配备螺丝(mm)、刀尖圆角半径、精度等级、硬度(°)、适用范围、图片、创建人、创建时间
brand = fields.Many2one('sf.machine.brand', '品牌')
c_diameter = fields.Float('C柄径(mm)')
total_length = fields.Float('L总长(mm)')
material_model = fields.Many2one('sf.materials.model', '材料型号')
blade_number = fields.Integer('刃数')
d_diameter = fields.Float('D刃径(mm)')
blade = fields.Many2many('sf.blade', string='适用刀片型号')
wrench = fields.Float('配对扳手(mm)')
screw = fields.Float('配备螺丝(mm)')
radius = fields.Float('刀尖圆角半径')
accuracy = fields.Char('精度等级')
hardness = fields.Char('硬度(°)')
scope = fields.Char('适用范围')
image = fields.Binary('图片')
# 刀杆类型
class CutterBarModel(models.Model):
_name = 'sf.cutter.bar.model'
_description = '刀杆类型'
code = fields.Char('编码')
name = fields.Char('名称')
# 关联刀具物料
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
remark = fields.Char('备注')
# 刀盘
class CutterPad(models.Model):
_name = 'sf.cutter.pad'
_description = '刀盘'
code = fields.Char('编码')
name = fields.Char('型号名称')
# 关联刀具物料
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
# 刀盘类型字段,关联刀盘类型对象
cutter_pad_model_number = fields.Many2one('sf.cutter.pad.model', '刀盘类型')
# 增加品牌、C柄径(mm)、L总长(mm)、材料型号、刃数、D刃径(mm)、适用刀片型号、配对扳手(mm)、配备螺丝(mm)、刀尖圆角半径、精度等级、硬度(°)、适用范围、图片、创建人、创建时间
brand = fields.Many2one('sf.machine.brand', '品牌')
c_diameter = fields.Float('C柄径(mm)')
total_length = fields.Float('L总长(mm)')
material_model = fields.Many2one('sf.materials.model', '材料型号')
blade_number = fields.Integer('刃数')
d_diameter = fields.Float('D刃径(mm)')
blade = fields.Many2many('sf.blade', string='适用刀片型号')
wrench = fields.Float('配对扳手(mm)')
screw = fields.Float('配备螺丝(mm)')
radius = fields.Float('刀尖圆角半径')
accuracy = fields.Char('精度等级')
hardness = fields.Char('硬度(°)')
scope = fields.Char('适用范围')
image = fields.Binary('图片')
# 刀盘类型
class CutterPadModel(models.Model):
_name = 'sf.cutter.pad.model'
_description = '刀盘类型'
code = fields.Char('编码')
name = fields.Char('名称')
# 关联刀具物料
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
remark = fields.Char('备注')
# 刀柄
class Handle(models.Model):
_name = 'sf.handle'
_description = '刀柄'
code = fields.Char('编码')
name = fields.Char('型号名称')
# 关联刀具物料
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
# 刀柄类型字段,关联刀柄类型对象
handle_model_number = fields.Many2one('sf.handle.model', '刀柄类型')
# 增加、刀柄类型、品牌、L(mm)、L1(mm)、D1(mm)、重量(kg)、材料型号、本体精度(mm)、配对螺母(mm)、适用夹头型号、夹持范围(mm)、检测精度、检测硬度、标准转速、图片、创建人、创建时间
brand = fields.Many2one('sf.machine.brand', '品牌')
length = fields.Float('L(mm)')
length1 = fields.Float('L1(mm)')
diameter1 = fields.Float('D1(mm)')
weight = fields.Float('重量(kg)')
material_model = fields.Many2one('sf.materials.model', '材料型号')
body_accuracy = fields.Float('本体精度(mm)')
nut = fields.Float('配对螺母(mm)')
chuck_model = fields.Many2many('sf.chuck.model', string='适用夹头型号')
clamping_range = fields.Float('夹持范围(mm)')
detection_accuracy = fields.Float('检测精度')
detection_hardness = fields.Char('检测硬度')
standard_speed = fields.Float('标准转速')
image = fields.Binary('图片')
# 刀柄类型
class HandleModel(models.Model):
_name = 'sf.handle.model'
_description = '刀柄类型'
code = fields.Char('编码')
name = fields.Char('名称')
# 关联刀具物料
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
remark = fields.Char('备注')
# 夹头对象(夹头型号对象)
class Chuck(models.Model):
_name = 'sf.chuck'
_description = '夹头'
_rec_name = 'code'
code = fields.Char('编码')
name = fields.Char('型号名称')
# 关联刀具物料
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
# 夹头类型字段,关联夹头类型对象
chuck_model_number = fields.Many2one('sf.chuck.model', '夹头类型')
# 增加品牌、精度(mm)、外径(mm)、内径(mm)、高度(mm)、材料型号、配对螺母(mm)、适用刀柄型号、夹持范围(mm)、特性、图片、创建人、创建时间
brand = fields.Many2one('sf.machine.brand', '品牌')
accuracy = fields.Float('精度(mm)')
diameter = fields.Float('外径(mm)')
inner_diameter = fields.Float('内径(mm)')
height = fields.Float('高度(mm)')
material_model = fields.Many2one('sf.materials.model', '材料型号')
nut = fields.Float('配对螺母(mm)')
handle_model = fields.Many2many('sf.handle.model', string='适用刀柄型号')
clamping_range = fields.Float('夹持范围(mm)')
feature = fields.Char('特性')
image = fields.Binary('图片')
# 夹头类型
class ChuckModel(models.Model):
_name = 'sf.chuck.model'
_description = '夹头类型'
code = fields.Char('编码')
name = fields.Char('名称')
# 关联刀具物料
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
remark = fields.Char('备注')

View File

@@ -1,12 +1,11 @@
# -*- coding: utf-8 -*-
import json
import requests
from odoo import fields, models, api
from odoo.exceptions import ValidationError
from odoo.addons.sf_base.commons.common import Common
# from datetime import datetime
# from odoo.exceptions import ValidationError
# 刀具物料
class CuttingToolMaterial(models.Model):
_name = 'sf.cutting.tool.material'
_description = '刀具物料'
@@ -26,58 +25,7 @@ class FunctionalCuttingTool(models.Model):
name = fields.Char('名称')
active = fields.Boolean('有效', default=True)
mrs_cutting_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型')
mrs_cutting_tool_model_id = fields.Many2one('sf.cutting.tool.model', string='刀具型号')
# # 整体式刀具型号
# mrs_cutting_tool_integral_model_ids = fields.Many2many('sf.cutting.tool.model', 'rel_integral_model_functional_sf',
# string='整体式刀具型号', domain=
# [('cutting_tool_type', '=', '整体式刀具')])
# # 刀片型号
# mrs_cutting_tool_blade_model_ids = fields.Many2many('sf.cutting.tool.model', 'rel_blade_model_functional_sf',
# string='刀片型号', domain=
# [('cutting_tool_type', '=', '刀片')])
# # 刀杆型号
# mrs_cutting_tool_cutterbar_model_ids = fields.Many2many('sf.cutting.tool.model',
# 'rel_cutterbar_model_functional_sf',
# string='刀杆型号', domain=
# [('cutting_tool_type', '=', '刀杆')])
# # 刀盘型号
# mrs_cutting_tool_cutterpad_model_ids = fields.Many2many('sf.cutting.tool.model',
# 'rel_cutterpad_model_functional_sf',
# string='刀盘型号', domain=
# [('cutting_tool_type', '=', '刀盘')])
# # 刀柄型号
# mrs_cutting_tool_cutterhandle_model_ids = fields.Many2many('sf.cutting.tool.model',
# 'rel_cutterhandle_model_functional_sf',
# string='刀柄型号',
# domain=
# [('cutting_tool_type', '=', '刀柄')])
# # 夹头型号
# mrs_cutting_tool_cutterhead_model_ids = fields.Many2many('sf.cutting.tool.model',
# 'rel_cutterhead_model_functional_sf',
# string='夹头型号', domain=
# [('cutting_tool_type', '=', '夹头')])
#
# diameter = fields.Float('直径(mm)')
# tool_grade = fields.Selection([('1', 'P1'), ('2', 'P2'), ('3', 'P3'), ('4', 'P4'), ('5', 'P5'), ('6', 'P6')],
# string='刀具等级')
# machining_accuracy = fields.Float('加工精度(mm)')
# tool_length = fields.Float('装刀长')
# blade_number = fields.Integer('刃数')
# integral_blade_length = fields.Float('整体刃长(mm)')
# effective_blade_length = fields.Float('有效刃长(mm)')
# max_life = fields.Float('最大寿命值')
# is_standard = fields.Boolean('是否标准刀')
# applicable_range = fields.Char('适用范围')
# image = fields.Binary('图片')
# active = fields.Boolean('有效', default=True)
#
# def _get_functional_tool_model_ids(self, functional_tool_model_code):
# functional_tool_model_ids = []
# for item in functional_tool_model_code:
# functional_tool_model = self.env['sf.cutting.tool.model'].search([('code', '=', item)])
# functional_tool_model_ids.append(functional_tool_model.id)
# return [(6, 0, functional_tool_model_ids)]
mrs_cutting_tool_model_id = fields.Many2one('sf.cutting_tool.standard.library', string='刀具型号')
# 功能刀具类型
@@ -91,133 +39,6 @@ class FunctionalCuttingToolModel(models.Model):
active = fields.Boolean('有效', default=True)
# 刀具型号
class CuttingToolModel(models.Model):
_name = 'sf.cutting.tool.model'
_description = '刀具型号'
name = fields.Char('名称')
cutting_tool_material_id = fields.Many2one('sf.cutting.tool.material', string='刀具物料')
cutting_tool_type = fields.Char(string="刀具物料类型", related='cutting_tool_material_id.name', store=True)
cutting_tool_type_id = fields.Many2one('sf.cutting.tool.type', string='刀具类型',
)
brand_id = fields.Many2one('sf.machine.brand', '品牌', domain="[('tag_ids.name', 'ilike', '刀具')]")
tool_length = fields.Integer('长度(mm)')
tool_width = fields.Integer('宽度(mm)')
tool_height = fields.Integer('高度(mm)')
tool_thickness = fields.Integer('厚度(mm)')
tool_weight = fields.Float('重量(kg)')
coating_material = fields.Char('涂层材质')
# 整体式刀具参数
total_length = fields.Float('总长度(mm)')
shank_length = fields.Float('柄部长度(mm)')
blade_length = fields.Float('刃部长度(mm)')
diameter = fields.Float('直径(mm)')
blade_number = fields.Integer('刃数')
front_angle = fields.Float('前角(°)')
rear_angle = fields.Float('后角(°)')
main_included_angle = fields.Float('主偏角(°)')
material_model_id = fields.Many2one('sf.materials.model', '材料型号')
nut = fields.Float('配对螺母(mm)')
# 适用夹头型号可以多选
chuck_ids = fields.Many2many(
'sf.cutting.tool.model',
relation='cutting_tool_model_handle_chuck_rel',
column1='model_id_1',
column2='model_id_2',
domain="[('cutting_tool_type', '=', '夹头')]",
string='适用夹头型号')
# 刀片参数
top_angle = fields.Float('顶角(°)')
jump_accuracy = fields.Float('径跳精度(um)')
working_hardness = fields.Char('加工硬度(hrc)')
cutter_bar_ids = fields.Many2many(
'sf.cutting.tool.model',
relation='cutting_tool_model_blade_cutter_bar_rel',
column1='model_id_1',
column2='model_id_2',
domain="[('cutting_tool_type', '=', '刀杆')]",
string='适用刀杆型号'
)
cutter_pad_ids = fields.Many2many(
'sf.cutting.tool.model',
relation='cutting_tool_model_blade_cutter_pad_rel',
column1='model_id_1',
column2='model_id_2',
domain="[('cutting_tool_type', '=', '刀盘')]",
string='适用刀盘型号' # 使用空列表作为默认值
)
# 刀杆/参数
blade_diameter = fields.Float('刃径(mm)')
blade_ids = fields.Many2many(
'sf.cutting.tool.model',
relation='cutting_tool_model_pad_blade_rel',
column1='model_id_1',
column2='model_id_2',
domain="[('cutting_tool_type', '=', '刀片')]",
string='适用刀片型号' # 使用空列表作为默认值
)
wrench = fields.Float('配对扳手(mm)')
screw = fields.Float('配备螺丝(mm)')
accuracy_level = fields.Char('精度等级')
# 刀柄参数
diameter_max = fields.Float('最大直径(mm)')
clamping_diameter = fields.Float('夹持直径(mm)')
flange_length = fields.Float('法兰柄长度(mm)')
flange_diameter = fields.Float('法兰直径(mm)')
# 夹头参数
outer_diameter = fields.Float('外径(mm)')
inner_diameter = fields.Float('内径(mm)')
handle_ids = fields.Many2many(
'sf.cutting.tool.model',
relation='cutting_tool_model_chuck_handle_rel',
column1='model_id_1',
column2='model_id_2',
domain="[('cutting_tool_type', '=', '刀柄')]",
string='适用刀柄型号'
)
active = fields.Boolean('有效', default=True)
def _get_code(self, cutting_tool_type_code):
cutting_tool_model = self.search(
[('code', 'ilike', cutting_tool_type_code)],
limit=1,
order="id desc")
if not cutting_tool_model:
num = "%03d" % 1
else:
m = int(cutting_tool_model.code[-3:]) + 1
num = "%03d" % m
return "%s%s" % (cutting_tool_type_code, num)
code = fields.Char(string='编码', readonly=True)
def _onchange_cutting_tool_material_id(self, cutting_tool_material_id):
if cutting_tool_material_id:
if cutting_tool_material_id.name == "整体式刀具":
code = self._get_code("JKM-T-DJWL-ZTDJ-")
elif cutting_tool_material_id.name == "刀片":
code = self._get_code("JKM-T-DJWL-DPIA-")
elif cutting_tool_material_id.name == "刀杆":
code = self._get_code("JKM-T-DJWL-DGAN-")
elif cutting_tool_material_id.name == "刀盘":
code = self._get_code("JKM-T-DJWL-DPAN-")
elif cutting_tool_material_id.name == "夹头":
code = self._get_code("JKM-T-DJWL-DJIA-")
else:
code = self._get_code("JKM-T-DJWL-DBIN-")
return code
@api.model_create_multi
def create(self, vals):
obj = super(CuttingToolModel, self).create(vals)
if obj.cutting_tool_material_id:
code = self._onchange_cutting_tool_material_id(obj.cutting_tool_material_id)
obj.code = code
return obj
# 刀具类型
class CuttingToolType(models.Model):
_name = 'sf.cutting.tool.type'
@@ -229,3 +50,243 @@ class CuttingToolType(models.Model):
cutting_tool_material_id = fields.Many2one('sf.cutting.tool.material', '刀具物料')
remark = fields.Char('备注')
active = fields.Boolean('有效', default=True)
# 刀具标准库
class CuttingToolModel(models.Model):
_name = 'sf.cutting_tool.standard.library'
_description = '刀具标准库'
code = fields.Char(string='编码')
name = fields.Char('名称')
# 关联刀具物料
cutting_tool_material_id = fields.Many2one('sf.cutting.tool.material', '刀具物料', required=True)
# 刀具物料类型
cutting_tool_type = fields.Char(related='cutting_tool_material_id.name', string='刀具物料类型',
store=True)
# 关联刀具类型
cutting_tool_type_id = fields.Many2one('sf.cutting.tool.type', '类型',
domain="[('cutting_tool_material_id.name', '=', cutting_tool_type)]")
brand_id = fields.Many2one('sf.machine.brand', '品牌')
status = fields.Boolean(string='状态', default=False)
image = fields.Binary('图片')
# 整体式刀具参数
material_model_id = fields.Many2one('mrs.materials.model', '刀具材质')
tool_hardness = fields.Integer('刀具硬度(hrc)')
coating_material = fields.Char('涂层材质')
blade_type = fields.Char('刃部类型')
integral_coarse_medium_fine = fields.Selection([('', ''), ('', ''), ('', '')], '粗/中/精')
integral_run_out_accuracy_max = fields.Char('整体式刀具端跳精度max')
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',
'适配刀片形状', domain=[('type', '=', '刀片形状')])
suitable_machining_method_ids = fields.Many2many('maintenance.equipment.image',
'suitable_machining_method_library_rel',
'适合加工方式', domain=[('type', '=', '加工能力')])
blade_tip_characteristics_id = fields.Many2one('maintenance.equipment.image',
'刀尖特征', domain=[('type', '=', '刀尖特征')])
handle_type_id = fields.Many2one('maintenance.equipment.image',
'柄部类型', domain=[('type', '=', '柄部类型')])
cutting_direction_ids = fields.Many2many('maintenance.equipment.image', 'cutting_direction_library_rel',
'走刀方向', domain=[('type', '=', '走刀方向')])
suitable_coolant_ids = fields.Many2many('maintenance.equipment.image', 'suitable_coolants_library_rel',
'适合冷却方式', domain=[('type', '=', '冷却方式')])
compaction_way_id = fields.Many2one('maintenance.equipment.image',
'压紧方式', domain=[('type', '=', '压紧方式')])
integral_tool_basic_parameters_ids = fields.One2many('sf.tool.materials.basic.parameters',
'standard_library_id', string='整体式刀具基本参数')
blade_basic_parameters_ids = fields.One2many('sf.tool.materials.basic.parameters',
'standard_library_id', string='刀片基本参数')
cutter_bar_basic_parameters_ids = fields.One2many('sf.tool.materials.basic.parameters',
'standard_library_id', string='刀杆基本参数')
cutter_head_basic_parameters_ids = fields.One2many('sf.tool.materials.basic.parameters',
'standard_library_id', string='刀盘基本参数')
knife_handle_basic_parameters_ids = fields.One2many('sf.tool.materials.basic.parameters',
'standard_library_id', string='刀柄基本参数')
chuck_basic_parameters_ids = fields.One2many('sf.tool.materials.basic.parameters',
'standard_library_id', string='夹头基本参数')
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_3 = fields.One2many('sf.feed.per.tooth', 'standard_library_id', '每齿走刀量fz(刀片)')
material_model_id = fields.Many2one('sf.materials.model', '材料型号')
# 适用夹头型号可以多选
# 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',
domain="[('cutting_tool_material_id.name', '=', '夹头')]",
string='适用夹头型号')
cutter_bar_ids = fields.Many2many(
'sf.cutting_tool.standard.library',
relation='cutting_tool_type_library_cutter_bar_rel',
column1='model_id_1',
column2='model_id_2',
domain="[('cutting_tool_material_id.name', '=', '刀杆')]",
string='适用刀杆型号'
)
cutter_pad_ids = fields.Many2many(
'sf.cutting_tool.standard.library',
relation='cutting_tool_type_library_cutter_pad_rel',
column1='model_id_1',
column2='model_id_2',
domain="[('cutting_tool_material_id.name', '=', '刀盘')]",
string='适用刀盘型号' # 使用空列表作为默认值
)
# 刀杆/参数
# 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',
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', '=', '刀柄')]",
# string='适用刀柄型号'
# )
active = fields.Boolean('有效', default=True)
is_cloud = fields.Boolean('云端数据', default=False)
def _get_ids(self, cutting_tool_type_code, factory_short_name):
cutting_tool_type_ids = []
for item in cutting_tool_type_code:
cutting_tool_type = self.search([('code', '=', item.replace("JKM", factory_short_name))])
if cutting_tool_type:
cutting_tool_type_ids.append(cutting_tool_type.id)
return [(6, 0, cutting_tool_type_ids)]
class MaintenanceStandardImage(models.Model):
_name = 'maintenance.equipment.image'
_description = '能力特征库'
active = fields.Boolean('有效', default=True)
name = fields.Char('名称')
image = fields.Binary(string='图文')
type = fields.Selection(
[('加工能力', '加工能力'), ('刀尖特征', '刀尖特征'), ('柄部类型', '柄部类型'), ('走刀方向', '走刀方向'),
('压紧方式', '压紧方式'), ('刀片形状', '刀片形状'), ('冷却方式', '冷却方式')],
string='特征')
equipment_id = fields.Many2many('maintenance.equipment', 'image_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='机床型号')
lq_equipment_id = fields.Many2many('sf.machine_tool.type', 'lq_image_id', string='机床型号')
def _get_ids(self, name_arr):
ability_feature_ids = []
for item in name_arr:
ability_feature = self.search([('name', '=', item)])
if ability_feature:
ability_feature_ids.append(ability_feature.id)
return [(6, 0, ability_feature_ids)]
@api.model
def name_search(self, name='', args=None, operator='ilike', limit=100):
# 调用父类的name_search方法获取原始的结果列表
res = super().name_search(name, args, operator, limit)
# 定义一个空字典用来存储id和name的映射关系
name_dict = {}
# 遍历结果列表将id和name存入字典中
for item in res:
id = item[0]
name = item[1]
name_dict[id] = name
# 根据id列表搜索符合条件的记录
records = self.browse(name_dict.keys())
# 定义一个新的结果列表用来存储修改后的结果
new_res = []
# 遍历每条记录
for record in records:
# 获取记录的idname和image属性
id = record.id
name = name_dict[id]
image = record.image
# 如果image不为空将其转换为data URI scheme
if image:
data_uri = f"data:image/png;base64,{image.decode('utf-8')}"
else:
data_uri = ""
# 将这三个属性组成一个数组,并添加到结果列表中 result.append([id, name, data_uri]) # 返回结果列表 return result
new_res.append([id, name, data_uri])
# 返回新的结果列表
return new_res
@api.model
def search_read(self, domain=None, fields=None, offset=0, limit=None, order=None):
# 调用原生的search_read方法获取记录
records = super(MaintenanceStandardImage, self).search_read(domain, fields, offset, limit, order)
# 遍历每条记录添加image数据
for record in records:
image_field = self.browse(record['id']).image
if image_field:
record['image'] = f"data:image/png;base64,{image_field.decode('utf-8')}"
else:
record['image'] = ""
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)
# ==========机床刀具组接口==========
def _register_tool_groups(self, obj):
create_url = '/AutoDeviceApi/MaintenanceToolGroups'
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 = sf_sync_config['sf_url'] + create_url
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)
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

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

@@ -0,0 +1,194 @@
from odoo import fields, models, api
class ToolMaterialsBasicParameters(models.Model):
_name = 'sf.tool.materials.basic.parameters'
_description = '刀具物料基本参数'
name = fields.Char('物料号', size=50)
code = fields.Char('编码', size=50)
standard_library_id = fields.Many2one('sf.cutting_tool.standard.library', string='刀具标准库')
cutting_tool_type = fields.Char(related='standard_library_id.cutting_tool_type', string='刀具物料类型',
store=True)
# 整体式刀具参数
total_length = fields.Float('总长度(mm)')
blade_number = fields.Selection(
[('0', '0'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8')],
string='刃数(个)', default='0')
neck_diameter = fields.Float('颈部直径(mm)')
neck_length = fields.Float('颈部长度(mm)')
handle_diameter = fields.Float('柄部直径(mm)')
handle_length = fields.Float('柄部长度(mm)')
blade_tip_diameter = fields.Integer('刀尖直径(mm)')
blade_tip_working_size = fields.Char('刀尖处理尺寸(R半径mm/倒角)', size=20)
blade_tip_taper = fields.Integer('刀尖锥度(°)')
blade_diameter = fields.Float('刃部直径(mm)')
blade_length = fields.Float('刃部长度(mm)')
blade_helix_angle = fields.Integer('刃部螺旋角(°)')
blade_width = fields.Float('刃部宽度(mm)')
blade_depth = fields.Float('刃部深度(mm)')
pitch = fields.Float('牙距(mm)')
cutting_depth = fields.Float('切削深度(mm)')
# 刀片参数
length = fields.Float('长度(mm)')
thickness = fields.Float('厚度(mm)')
width = fields.Float('宽度(mm)')
cutting_blade_length = fields.Float('切削刃长(mm)')
relief_angle = fields.Integer('后角(°)')
blade_tip_circular_arc_radius = fields.Char('刀尖圆弧半径(mm)', size=20)
inscribed_circle_diameter = fields.Float('内接圆直径(mm)')
install_aperture_diameter = fields.Float('安装孔直径(mm)')
chip_breaker_groove = fields.Selection([('', ''), ('单面', '单面'), ('双面', '双面')],
string='有无断屑槽')
chip_breaker_type_code = fields.Char('断屑槽型代号')
blade_teeth_model = fields.Selection(
[('', ''), ('V牙型', 'V牙型'), ('米制全牙型', '米制全牙型'), ('美制全牙型', '美制全牙型'),
('惠氏全牙型', '惠氏全牙型'), ('BSPT全牙型', 'BSPT全牙型'), ('NPT全牙型', 'NPT全牙型'),
('UNJ全牙型', 'UNJ全牙型'), ('DIN405圆牙型', 'DIN405圆牙型'), ('ACME梯形', 'ACME梯形'),
('石油管螺纹刀片', '石油管螺纹刀片'), ('矮牙ACME梯形', '矮牙ACME梯形'),
('Trapeze30° 103', 'Trapeze30° 103')], string='刀片牙型', default='')
blade_blade_number = fields.Selection(
[('0', '0'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8'),
('9', '9'), ('10', '10')],
string='刀片的刃数(个)', default='0')
main_included_angle = fields.Integer('主偏角(°)')
top_angle = fields.Integer('顶角(°)')
thread_model = fields.Selection([('', ''), ('外螺纹', '外螺纹'), ('内螺纹', '内螺纹')], string='螺纹类型',
default='')
thread_num = fields.Float('每英寸螺纹数(tpi)')
blade_tip_height_tolerance = fields.Char('刀尖高度公差(mm)', size=20)
inscribed_circle_tolerance = fields.Char('内接圆公差(mm)', size=20)
thickness_tolerance = fields.Char('厚度公差(mm)', size=20)
# 刀杆参数
height = fields.Float('高度(mm)')
blade_height = fields.Float('刃部高度(mm)')
knife_head_height = fields.Float('刀头高度(mm)')
knife_head_width = fields.Float('刀头宽度(mm)')
knife_head_length = fields.Float('刀头长度(mm)')
cut_depth_max = fields.Float('最大切削深度(mm)')
cutter_arbor_diameter = fields.Float('刀杆直径(mm)')
min_machining_aperture = fields.Integer('最小加工孔径(mm)')
install_blade_tip_num = fields.Integer('可装刀片数/齿数(个)')
cutting_blade_model = fields.Char('切削类型', size=20)
is_cooling_hole = fields.Boolean('有无冷却孔')
locating_slot_code = fields.Char('定位槽代号', size=20)
installing_structure = fields.Char('安装结构', size=20)
blade_id = fields.Many2one(
'sf.cutting_tool.standard.library',
domain="[('cutting_tool_material_id.name', '=', '刀片')]",
string='适配刀片型号' # 使用空列表作为默认值
)
tool_shim = fields.Char('适配刀垫型号', size=50)
cotter_pin = fields.Char('适配销钉型号', size=50)
pressing_plate = fields.Char('适配压板型号', size=50)
screw = fields.Char('适配螺钉型号', size=50)
spanner = fields.Char('适配扳手型号', size=50)
# 刀盘参数
cutter_head_diameter = fields.Float('刀盘直径(mm)')
interface_diameter = 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_inside_diameter = fields.Float('柄部内径(mm)')
dynamic_balance_class = fields.Char('动平衡等级')
min_clamping_diameter = fields.Float('最小夹持直径(mm)')
max_clamping_diameter = fields.Float('最大夹持直径(mm)')
clamping_mode = fields.Char('夹持方式', size=20)
max_load_capacity = fields.Float('最大负载能力(kg)')
taper = fields.Integer('锥度(°)')
shank_length = fields.Float('刀柄长度(mm)', digits=(3, 2))
shank_diameter = fields.Float('刀柄直径(mm)')
tool_changing_time = fields.Integer('换刀时间(s)')
standard_rotate_speed = fields.Integer('标准转速(n/min)')
max_rotate_speed = fields.Integer('最大转速(n/min)')
diameter_slip_accuracy = fields.Char('径跳精度(mm)', size=20)
cooling_model = fields.Char('冷却类型', size=20)
taper_shank_model = fields.Char('锥柄型号')
is_quick_cutting = 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)
outer_diameter = fields.Float('外径(mm)')
inner_diameter = fields.Float('内径(mm)')
run_out_accuracy = fields.Char('跳动精度(mm)', size=20)
top_diameter = fields.Float('顶部直径(mm)')
weight = fields.Float('重量(kg)')
clamping_length = fields.Float('夹持长度(mm)')
clamping_tolerance = fields.Char('夹持公差(mm)', size=20)
cooling_jacket = fields.Char('适用冷却套型号', size=50)
active = fields.Boolean(string='有效', default=True)
class CuttingSpeed(models.Model):
_name = 'sf.cutting.speed'
_description = '切削速度Vc'
name = fields.Char('名称')
product_template_id = fields.Many2one('product.template')
standard_library_id = fields.Many2one('sf.cutting_tool.standard.library', string='标准库')
execution_standard_id = fields.Many2one('sf.international.standards', string='执行标准', store=True)
material_code = fields.Char('材料代号')
material_name_id = fields.Many2one('sf.materials.model', '材料名称',
domain="[('standards_id', '=', execution_standard_id)]")
material_grade = fields.Char('材料牌号')
tensile_strength = fields.Char('拉伸强度 (N/mm²)')
hardness = fields.Integer('硬度(hrc)')
ability_feature_library = fields.Many2one('maintenance.equipment.image', '加工方式',
domain="[('type', '=', '加工能力')]")
cutting_width_depth_id = fields.Many2one('sf.cutting.width.depth', '切削宽度和深度')
process_capability = fields.Selection([('粗加工', '粗加工'), ('精加工', '精加工')], string='粗/精加工')
cutting_speed = fields.Char('切削速度', required=True)
cutting_speed_max = fields.Float('最大值')
cutting_speed_min = fields.Float('最小值')
application = fields.Selection([('主应用', '主应用'), ('次应用', '次应用')], '主/次应用')
active = fields.Boolean(string='有效', default=True)
class FeedPerTooth(models.Model):
_name = 'sf.feed.per.tooth'
_description = '每齿走刀量fz'
_order = 'blade_diameter,cutting_width_depth_id,materials_type_id'
name = fields.Char('名称')
product_template_id = fields.Many2one('product.template')
standard_library_id = fields.Many2one('sf.cutting_tool.standard.library', string='标准库')
blade_diameter = fields.Integer('刃部直径(mm)', readonly=True)
materials_type_id = fields.Many2one('sf.materials.model', string='材料名称', readonly=True)
cutting_width_depth_id = fields.Many2one('sf.cutting.width.depth', '切削宽度和深度', readonly=True)
feed_per_tooth = fields.Char('每齿走刀量 (mm/z)', size=20)
active = fields.Boolean(string='有效', default=True)
# @api.depends('product_template_id')
# def _compute_product_template_id(self):
# if self.product_template_id is not None:
# 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

@@ -1,4 +1,89 @@
<odoo>
<data>
<record id="group_quality" model="res.groups">
<field name="name">质检岗</field>
<field name="category_id" ref="base.module_category_manufacturing_quality"/>
</record>
<record id="group_quality_director" model="res.groups">
<field name="name">质量总监</field>
<field name="category_id" ref="base.module_category_manufacturing_quality"/>
</record>
<record id="group_sf_mrp_user" model="res.groups">
<field name="name">制造普通用户</field>
<field name="category_id" ref="base.module_category_manufacturing_manufacturing"/>
<field name="implied_ids" eval="[(4, ref('mrp.group_mrp_user'))]"/>
</record>
<!-- <record id="group_sf_mrp_manager" model="res.groups">-->
<!-- <field name="name">制造管理用户</field>-->
<!-- <field name="implied_ids" eval="[(4, ref('group_sf_mrp_user'))]"/>-->
<!-- </record>-->
<!-- <record id="group_sf_mrp_manager" model="res.groups">-->
<!-- <field name="name">制造管理用户</field>-->
<!-- <field name="implied_ids" eval="[(4, ref('group_sf_mrp_user'))]"/>-->
<!-- <field name="category_id" ref="base.module_category_manufacturing_manufacturing"/>-->
<!-- </record>-->
<record id="group_sf_equipment_user" model="res.groups">
<field name="name">机床操作岗</field>
<field name="implied_ids" eval="[(4, ref('group_sf_mrp_user'))]"/>
<field name="category_id" ref="base.module_category_manufacturing_manufacturing"/>
</record>
<record id="group_sf_tool_user" model="res.groups">
<field name="name">刀具组装岗</field>
<field name="implied_ids" eval="[(4, ref('group_sf_mrp_user'))]"/>
<field name="category_id" ref="base.module_category_manufacturing_manufacturing"/>
</record>
<record id="group_sf_order_user" model="res.groups">
<field name="name">工件装夹岗</field>
<field name="implied_ids" eval="[(4, ref('group_sf_mrp_user'))]"/>
<field name="category_id" ref="base.module_category_manufacturing_manufacturing"/>
</record>
<record id="group_sf_mrp_manager" model="res.groups">
<field name="name">生产总监</field>
<field name="implied_ids" eval="[(4, ref('group_sf_mrp_user'))]"/>
<field name="category_id" ref="base.module_category_manufacturing_manufacturing"/>
</record>
<record model="ir.module.category" id="module_category_plan">
<field name="name">计划</field>
<field name="sequence">20</field>
</record>
<record id="group_sale_salemanager" model="res.groups">
<field name="name">销售经理</field>
<field name="category_id" ref="base.module_category_sales_sales"/>
</record>
<record id="group_sale_director" model="res.groups">
<field name="name">销售总监</field>
<field name="category_id" ref="base.module_category_sales_sales"/>
</record>
<record id="group_plan_dispatch" model="res.groups">
<field name="name">计划调度岗</field>
<field name="category_id" ref="module_category_plan"/>
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
</record>
<record id="group_plan_director" model="res.groups">
<field name="name">计划总监</field>
<field name="category_id" ref="module_category_plan"/>
<field name="implied_ids" eval="[(4, ref('sf_base.group_plan_dispatch'))]"/>
</record>
<record id="group_purchase" model="res.groups">
<field name="name">采购岗</field>
<field name="category_id" ref="base.module_category_inventory_purchase"/>
</record>
<record id="group_purchase_director" model="res.groups">
<field name="name">采购总监</field>
<field name="category_id" ref="base.module_category_inventory_purchase"/>
</record>
</data>
</odoo>

View File

@@ -1,37 +1,188 @@
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_type,sf_machine_tool_type,model_sf_machine_tool_type,base.group_user,1,1,1,1
access_sf_machine_brand,sf_machine_brand,model_sf_machine_brand,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,1
access_sf_machine_control_system,sf_machine_control_system,model_sf_machine_control_system,base.group_user,1,1,1,1
access_sf_processing_order,sf_processing_order,model_sf_processing_order,base.group_user,1,1,1,1
access_sf_production_process,sf_production_process,model_sf_production_process,base.group_user,1,1,1,1
access_sf_production_materials,sf_production_materials,model_sf_production_materials,base.group_user,1,1,1,1
access_sf_materials_model,sf_materials_model,model_sf_materials_model,base.group_user,1,1,1,1
access_sf_processing_technology,sf_processing_technology,model_sf_processing_technology,base.group_user,1,1,1,1
access_sf_supplier_sort,sf_supplier_sort,model_sf_supplier_sort,base.group_user,1,1,1,1
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_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_cutting_tool_material,sf_cutting_tool_material,model_sf_cutting_tool_material,base.group_user,1,1,1,1
access_sf_cutting_tool_type,sf_cutting_tool_type,model_sf_cutting_tool_type,base.group_user,1,1,1,1
access_sf_cutting_tool_model,sf_cutting_tool_model,model_sf_cutting_tool_model,base.group_user,1,1,1,1
access_sf_functional_cutting_tool,sf_functional_cutting_tool,model_sf_functional_cutting_tool,base.group_user,1,1,1,1
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_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_fixture_model,sf_fixture_model,model_sf_fixture_model,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_admin,sf_machine_tool_admin,model_sf_machine_tool,base.group_system,1,1,1,0
access_sf_machine_tool_type,sf_machine_tool_type,model_sf_machine_tool_type,base.group_user,1,1,1,0
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_brand,sf_machine_brand,model_sf_machine_brand,base.group_user,1,1,1,0
access_sf_machine_brand_admin,sf_machine_brand_admin,model_sf_machine_brand,base.group_system,1,1,1,0
access_sf_machine_brand_tags,sf_machine_brand_tags,model_sf_machine_brand_tags,base.group_user,1,1,1,0
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_machine_control_system,sf_machine_control_system,model_sf_machine_control_system,base.group_user,1,1,1,0
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_processing_order,sf_processing_order,model_sf_processing_order,base.group_user,1,1,1,0
access_sf_processing_order_admin,sf_processing_order_admin,model_sf_processing_order,base.group_system,1,1,1,0
access_sf_production_process,sf_production_process,model_sf_production_process,base.group_user,1,1,1,0
access_sf_production_process_admin,sf_production_process_admin,model_sf_production_process,base.group_system,1,1,1,0
access_sf_production_materials,sf_production_materials,model_sf_production_materials,base.group_user,1,1,1,0
access_sf_production_materials_admin,sf_production_materials_admin,model_sf_production_materials,base.group_system,1,1,1,0
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_processing_technology,sf_processing_technology,model_sf_processing_technology,base.group_user,1,1,1,0
access_sf_processing_technology_admin,sf_processing_technology_admin,model_sf_processing_technology,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_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,sf_functional_fixture,model_sf_functional_fixture,base.group_user,1,1,1,1
access_sf_sync_common,sf_sync_common,model_sf_sync_common,base.group_user,1,1,1,1
access_sf_international_standards,sf_international_standards,model_sf_international_standards,base.group_user,1,1,1,1
access_material_apply,material_apply,model_material_apply,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_functional_fixture,sf_functional_fixture,model_sf_functional_fixture,base.group_user,1,1,1,0
access_sf_functional_fixture_admin,sf_functional_fixture_admin,model_sf_functional_fixture,base.group_system,1,1,1,0
access_sf_sync_common,sf_sync_common,model_sf_sync_common,base.group_user,1,1,1,0
access_sf_sync_common,sf_sync_common_admin,model_sf_sync_common,base.group_system,1,1,1,0
access_sf_international_standards,sf_international_standards,model_sf_international_standards,base.group_user,1,1,1,0
access_sf_international_standards_admin,sf_international_standards_admin,model_sf_international_standards,base.group_system,1,1,1,0
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_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_director,sf_cutting_speed_group_plan_director,model_sf_cutting_speed,sf_base.group_plan_director,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_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,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_processing_order,sf_processing_order,model_sf_processing_order,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_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_processing_technology,sf_processing_technology,model_sf_processing_technology,sf_base.group_sf_mrp_user,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_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_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_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_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_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_account_move_line,account.move.line,account.model_account_move_line,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_processing_order,sf_processing_order,model_sf_processing_order,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_processing_technology,sf_processing_technology,model_sf_processing_technology,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
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_processing_order sf_supplier_sort sf_processing_order model_sf_supplier_sort model_sf_processing_order base.group_user 1 1 1 1 0
13 access_sf_production_process_parameter access_sf_processing_order_admin sf_production_process_parameter sf_processing_order_admin model_sf_production_process_parameter model_sf_processing_order base.group_user base.group_system 1 1 1 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_admin sf_cutting_tool_type sf_production_materials_admin model_sf_cutting_tool_type model_sf_production_materials base.group_user base.group_system 1 1 1 1 0
18 access_sf_cutting_tool_model access_sf_materials_model sf_cutting_tool_model sf_materials_model model_sf_cutting_tool_model model_sf_materials_model base.group_user 1 1 1 1 0
19 access_sf_functional_cutting_tool access_sf_materials_model_admin sf_functional_cutting_tool sf_materials_model_admin model_sf_functional_cutting_tool model_sf_materials_model base.group_user base.group_system 1 1 1 1 0
20 access_sf_functional_cutting_tool_model access_sf_processing_technology sf_functional_cutting_tool_model sf_processing_technology model_sf_functional_cutting_tool_model model_sf_processing_technology base.group_user 1 1 1 1 0
21 access_sf_fixture_material access_sf_processing_technology_admin sf_fixture_material sf_processing_technology_admin model_sf_fixture_material model_sf_processing_technology base.group_user base.group_system 1 1 1 1 0
22 access_sf_multi_mounting_type access_sf_supplier_sort sf_multi_mounting_type sf_supplier_sort model_sf_multi_mounting_type model_sf_supplier_sort base.group_user 1 1 1 1 0
23 access_sf_fixture_model access_sf_supplier_sort_admin sf_fixture_model sf_supplier_sort_admin model_sf_fixture_model model_sf_supplier_sort base.group_user base.group_system 1 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_plan_director sf_production_process_parameter_group_plan_director model_sf_production_process_parameter sf_base.group_plan_director 1 0 0 0
26 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
27 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
28 access_sf_production_process_parameter_admin sf_production_process_parameter_admin model_sf_production_process_parameter base.group_system 1 1 1 0
29 access_sf_production_process_category sf_production_process_category model_sf_production_process_category base.group_user 1 1 1 0
30 access_sf_production_process_category_admin sf_production_process_category_admin model_sf_production_process_category base.group_system 1 1 1 0
31 access_sf_machine_tool_category sf_machine_tool_category model_sf_machine_tool_category base.group_user 1 1 1 0
32 access_sf_machine_tool_category_admin sf_machine_tool_category_admin model_sf_machine_tool_category base.group_system 1 1 1 0
33 access_sf_cutting_tool_material sf_cutting_tool_material model_sf_cutting_tool_material base.group_user 1 1 1 0
34 access_sf_cutting_tool_material_admin sf_cutting_tool_material_admin model_sf_cutting_tool_material base.group_system 1 1 1 0
35 access_sf_cutting_tool_type sf_cutting_tool_type model_sf_cutting_tool_type base.group_user 1 1 1 0
36 access_sf_cutting_tool_type_admin sf_cutting_tool_type_admin model_sf_cutting_tool_type base.group_system 1 1 1 0
37 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
38 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
39 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
40 access_sf_functional_cutting_tool sf_functional_cutting_tool model_sf_functional_cutting_tool base.group_user 1 1 1 0
41 access_sf_functional_cutting_tool_admin sf_functional_cutting_tool_admin model_sf_functional_cutting_tool base.group_system 1 1 1 0
42 access_sf_functional_cutting_tool_model sf_functional_cutting_tool_model model_sf_functional_cutting_tool_model base.group_user 1 1 1 0
43 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
44 access_sf_fixture_material sf_fixture_material model_sf_fixture_material base.group_user 1 1 1 0
45 access_sf_fixture_material_admin sf_fixture_material_admin model_sf_fixture_material base.group_system 1 1 1 0
46 access_sf_fixture_materials_basic_parameters sf_fixture_materials_basic_parameters model_sf_fixture_materials_basic_parameters base.group_user 1 1 1 0
47 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
48 access_sf_multi_mounting_type sf_multi_mounting_type model_sf_multi_mounting_type base.group_user 1 1 1 0
49 access_sf_multi_mounting_type_admin sf_multi_mounting_type_admin model_sf_multi_mounting_type base.group_system 1 1 1 0
50 access_sf_fixture_model sf_fixture_model model_sf_fixture_model base.group_user 1 1 1 0
51 access_sf_fixture_model_admin sf_fixture_model_admin model_sf_fixture_model base.group_system 1 1 1 0
52 access_sf_functional_fixture_type sf_functional_fixture_type model_sf_functional_fixture_type base.group_user 1 1 1 1
53 access_sf_functional_fixture_type access_sf_functional_fixture_type_admin sf_functional_fixture_type sf_functional_fixture_type_admin model_sf_functional_fixture_type base.group_user base.group_system 1 1 1 1 0
54 access_sf_functional_fixture sf_functional_fixture model_sf_functional_fixture base.group_user 1 1 1 1 0
55 access_sf_sync_common access_sf_functional_fixture_admin sf_sync_common sf_functional_fixture_admin model_sf_sync_common model_sf_functional_fixture base.group_user base.group_system 1 1 1 1 0
56 access_sf_international_standards access_sf_sync_common sf_international_standards sf_sync_common model_sf_international_standards model_sf_sync_common base.group_user 1 1 1 1 0
57 access_material_apply access_sf_sync_common material_apply sf_sync_common_admin model_material_apply model_sf_sync_common base.group_user base.group_system 1 1 1 1 0
58 access_sf_international_standards sf_international_standards model_sf_international_standards base.group_user 1 1 1 0
59 access_sf_international_standards_admin sf_international_standards_admin model_sf_international_standards base.group_system 1 1 1 0
60 access_material_apply material_apply model_material_apply base.group_user 1 1 1 0
61 access_material_apply_admin material_apply_admin model_material_apply base.group_system 1 1 1 0
62 access_sf_cutting_tool_standard_library sf_cutting_tool_standard_library model_sf_cutting_tool_standard_library base.group_user 1 1 1 0
63 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
64 access_sf_tool_materials_basic_parameters sf_tool_materials_basic_parameters model_sf_tool_materials_basic_parameters base.group_user 1 1 1 0
65 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
66 access_sf_cutting_speed sf_cutting_speed model_sf_cutting_speed base.group_user 1 1 1 0
67 access_sf_cutting_speed_admin sf_cutting_speed_admin model_sf_cutting_speed base.group_system 1 1 1 0
68 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
69 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
70 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
71 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
72 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
73 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
74 access_sf_feed_per_tooth sf_feed_per_tooth model_sf_feed_per_tooth base.group_user 1 1 1 0
75 access_sf_feed_per_tooth_admin sf_feed_per_tooth_admin model_sf_feed_per_tooth base.group_system 1 1 1 0
76 access_sf_ramping_angle sf_ramping_angle model_sf_ramping_angle base.group_user 1 1 1 1
77 access_sf_ramping_angle_admin sf_ramping_angle_admin model_sf_ramping_angle base.group_system 1 1 1 1
78 access_sf_cutting_width_depth sf_cutting_width_depth model_sf_cutting_width_depth base.group_user 1 1 1 1
79 access_sf_cutting_width_depth_admin sf_cutting_width_depth_admin model_sf_cutting_width_depth base.group_system 1 1 1 1
80 access_sf_machine_tool sf_machine_tool model_sf_machine_tool sf_base.group_sf_mrp_user 1 0 0 0
81 access_sf_machine_tool_type sf_machine_tool_type model_sf_machine_tool_type sf_base.group_sf_mrp_user 1 0 0 0
82 access_sf_machine_brand sf_machine_brand model_sf_machine_brand sf_base.group_sf_mrp_user 1 0 0 0
83 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
84 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
85 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
86 access_sf_machine_brand_tags sf_machine_brand_tags model_sf_machine_brand_tags base.group_user 1 1 1 1
87 access_sf_machine_control_system sf_machine_control_system model_sf_machine_control_system sf_base.group_sf_mrp_user 1 0 0 0
88 access_sf_processing_order sf_processing_order model_sf_processing_order sf_base.group_sf_mrp_user 1 0 0 0
89 access_sf_production_process sf_production_process model_sf_production_process sf_base.group_sf_mrp_user 1 0 0 0
90 access_sf_production_materials sf_production_materials model_sf_production_materials sf_base.group_sf_mrp_user 1 0 0 0
91 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
92 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
93 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
94 access_sf_materials_model sf_materials_model model_sf_materials_model sf_base.group_sf_mrp_user 1 0 0 0
95 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
96 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
97 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
98 access_sf_processing_technology sf_processing_technology model_sf_processing_technology sf_base.group_sf_mrp_user 1 0 0 0
99 access_sf_supplier_sort sf_supplier_sort model_sf_supplier_sort sf_base.group_sf_mrp_user 1 0 0 0
100 access_sf_production_process_parameter sf_production_process_parameter model_sf_production_process_parameter sf_base.group_sf_mrp_user 1 0 0 0
101 access_sf_production_process_category sf_production_process_category model_sf_production_process_category sf_base.group_sf_mrp_user 1 0 0 0
102 access_sf_machine_tool_category sf_machine_tool_category model_sf_machine_tool_category sf_base.group_sf_mrp_user 1 0 0 0
103 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
104 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
105 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
106 access_sf_cutting_tool_type sf_cutting_tool_type model_sf_cutting_tool_type sf_base.group_sf_mrp_user 1 0 0 0
107 access_sf_functional_cutting_tool sf_functional_cutting_tool model_sf_functional_cutting_tool sf_base.group_sf_mrp_user 1 0 0 0
108 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
109 access_sf_fixture_material sf_fixture_material model_sf_fixture_material sf_base.group_sf_mrp_user 1 0 0 0
110 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
111 access_sf_multi_mounting_type sf_multi_mounting_type model_sf_multi_mounting_type sf_base.group_sf_mrp_user 1 0 0 0
112 access_sf_fixture_model sf_fixture_model model_sf_fixture_model sf_base.group_sf_mrp_user 1 0 0 0
113 access_sf_functional_fixture_type sf_functional_fixture_type model_sf_functional_fixture_type sf_base.group_sf_mrp_user 1 0 0 0
114 access_sf_functional_fixture sf_functional_fixture model_sf_functional_fixture sf_base.group_sf_mrp_user 1 0 0 0
115 access_sf_sync_common sf_sync_common model_sf_sync_common sf_base.group_sf_mrp_user 1 0 0 0
116 access_sf_international_standards sf_international_standards model_sf_international_standards sf_base.group_sf_mrp_user 1 0 0 0
117 access_material_apply material_apply model_material_apply sf_base.group_sf_mrp_user 1 0 0 0
118 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
119 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
120 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
121 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
122 access_sf_tool_groups sf_tool_groups model_sf_tool_groups sf_base.group_sf_mrp_user 1 0 0 0
123 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
124 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
125 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
126 access_sf_cutting_speed sf_cutting_speed model_sf_cutting_speed sf_base.group_sf_mrp_user 1 0 0 0
127 access_sf_cutting_speed_group_purchase sf_cutting_speed_group_purchase model_sf_cutting_speed sf_base.group_purchase 1 0 0 0
128 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
129 access_sf_feed_per_tooth sf_feed_per_tooth model_sf_feed_per_tooth sf_base.group_sf_mrp_user 1 0 0 0
130 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
131 access_sf_ramping_angle sf_ramping_angle model_sf_ramping_angle sf_base.group_sf_mrp_user 1 0 0 0
132 access_sf_ramping_angle_group_purchase sf_ramping_angle_group_purchase model_sf_ramping_angle sf_base.group_purchase 1 0 0 0
133 access_sf_cutting_width_depth sf_cutting_width_depth model_sf_cutting_width_depth sf_base.group_sf_mrp_user 1 0 0 0
134 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
135 access_maintenance_equipment_image maintenance_equipment_image model_maintenance_equipment_image base.group_user 1 1 1 1
136 access_purchase_order_group_purchase access_purchase_order_group_purchase purchase.model_purchase_order sf_base.group_purchase 1 1 1 0
137 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
138 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
139 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
140 access_spindle_taper_type spindle_taper_type model_spindle_taper_type base.group_user 1 1 1 1
141 access_sf_tool_groups_group_plan_dispatch sf_tool_groups model_sf_tool_groups sf_base.group_plan_dispatch 1 0 0 0
142 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
143 access_purchase_order purchase.order purchase.model_purchase_order sf_base.group_plan_dispatch 1 0 0 0
144 access_res_partner res.partner base.model_res_partner sf_base.group_plan_dispatch 1 0 0 0
145 access_purchase_order_line purchase.order.line purchase.model_purchase_order_line sf_base.group_plan_dispatch 1 0 0 0
146 access_account_move_line account.move.line account.model_account_move_line sf_base.group_plan_dispatch 1 0 0 0
147 access_sf_machine_tool sf_machine_tool model_sf_machine_tool sf_base.group_sf_mrp_user 1 1 0 0
148 access_sf_machine_tool_type sf_machine_tool_type model_sf_machine_tool_type sf_base.group_sf_mrp_user 1 1 0 0
149 access_sf_machine_brand sf_machine_brand model_sf_machine_brand sf_base.group_sf_mrp_user 1 1 0 0
150 access_sf_machine_brand_tags sf_machine_brand_tags model_sf_machine_brand_tags sf_base.group_sf_mrp_user 1 1 0 0
151 access_sf_machine_control_system sf_machine_control_system model_sf_machine_control_system sf_base.group_sf_mrp_user 1 1 0 0
152 access_sf_processing_order sf_processing_order model_sf_processing_order sf_base.group_sf_mrp_user 1 1 0 0
153 access_sf_production_process sf_production_process model_sf_production_process sf_base.group_sf_mrp_user 1 1 0 0
154 access_sf_production_materials sf_production_materials model_sf_production_materials sf_base.group_sf_mrp_user 1 1 0 0
155 access_sf_materials_model sf_materials_model model_sf_materials_model sf_base.group_sf_mrp_user 1 1 0 0
156 access_sf_processing_technology sf_processing_technology model_sf_processing_technology sf_base.group_sf_mrp_user 1 1 0 0
157 access_sf_supplier_sort sf_supplier_sort model_sf_supplier_sort sf_base.group_sf_mrp_user 1 1 0 0
158 access_sf_production_process_parameter sf_production_process_parameter model_sf_production_process_parameter sf_base.group_sf_mrp_user 1 1 0 0
159 access_sf_production_process_category sf_production_process_category model_sf_production_process_category sf_base.group_sf_mrp_user 1 1 0 0
160 access_sf_machine_tool_category sf_machine_tool_category model_sf_machine_tool_category sf_base.group_sf_mrp_user 1 1 0 0
161 access_sf_cutting_tool_material sf_cutting_tool_material model_sf_cutting_tool_material sf_base.group_sf_mrp_user 1 1 0 0
162 access_sf_cutting_tool_type sf_cutting_tool_type model_sf_cutting_tool_type sf_base.group_sf_mrp_user 1 1 0 0
163 access_sf_functional_cutting_tool sf_functional_cutting_tool model_sf_functional_cutting_tool sf_base.group_sf_mrp_user 1 1 0 0
164 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
165 access_sf_fixture_material sf_fixture_material model_sf_fixture_material sf_base.group_sf_mrp_user 1 1 0 0
166 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
167 access_mrp_production_group_sale_salemanager mrp_production_group_sale_salemanager mrp.model_mrp_production sf_base.group_sale_salemanager 1 0 0 0
168 access_mrp_production_group_sale_director mrp_production_group_sale_director mrp.model_mrp_production sf_base.group_sale_director 1 0 0 0
169 access_material_apply_group_plan_dispatch material_apply model_material_apply sf_base.group_plan_dispatch 1 0 0 0
170 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
171 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
172 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
173 access_sf_supplier_sort_group_plan_dispatch sf.supplier.sort model_sf_supplier_sort sf_base.group_plan_dispatch 1 0 0 0
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188

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