From f0e66c6d9049f56b7c8356a475f6c499530d60f7 Mon Sep 17 00:00:00 2001 From: "jinling.yang" Date: Tue, 21 Nov 2023 17:30:07 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=94=80=E5=94=AE?= =?UTF-8?q?=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_base/__manifest__.py | 2 +- sf_base/security/group_security.xml | 13 ++++++----- sf_manufacturing/models/product_template.py | 5 ++--- sf_sale/models/auto_quatotion_common.py | 24 ++++++++++----------- sf_sale/models/quick_easy_order.py | 8 +++---- 5 files changed, 25 insertions(+), 27 deletions(-) diff --git a/sf_base/__manifest__.py b/sf_base/__manifest__.py index 1fb1daa6..da6919a4 100644 --- a/sf_base/__manifest__.py +++ b/sf_base/__manifest__.py @@ -10,7 +10,7 @@ """, 'category': 'sf', 'website': 'https://www.sf.jikimo.com', - 'depends': ['account', 'base', 'mrp_workorder', 'sale', 'purchase'], + 'depends': ['account', 'base', 'mrp_workorder', 'sale', 'purchase', 'sales_team'], 'data': [ 'security/group_security.xml', 'security/ir.model.access.csv', diff --git a/sf_base/security/group_security.xml b/sf_base/security/group_security.xml index cfe816dd..5423bfb8 100644 --- a/sf_base/security/group_security.xml +++ b/sf_base/security/group_security.xml @@ -5,17 +5,16 @@ 20 - + 销售经理 - - - - - - + + 销售总监 + + + 计划调度岗 diff --git a/sf_manufacturing/models/product_template.py b/sf_manufacturing/models/product_template.py index f262d13c..f425813a 100644 --- a/sf_manufacturing/models/product_template.py +++ b/sf_manufacturing/models/product_template.py @@ -6,9 +6,8 @@ import os from odoo import models, fields, api, _ from odoo.exceptions import ValidationError from odoo.modules import get_resource_path -from OCC.Extend.DataExchange import read_step_file -from OCC.Extend.DataExchange import write_stl_file - +# from OCC.Extend.DataExchange import read_step_file +# from OCC.Extend.DataExchange import write_stl_file diff --git a/sf_sale/models/auto_quatotion_common.py b/sf_sale/models/auto_quatotion_common.py index 09ea3f0f..d1bdb65a 100644 --- a/sf_sale/models/auto_quatotion_common.py +++ b/sf_sale/models/auto_quatotion_common.py @@ -2,7 +2,7 @@ import logging from odoo.modules import get_resource_path from odoo import fields, models, api -from quatotion import readSql, feature_recognize, auto_quatotion +# from quatotion import readSql, feature_recognize, auto_quatotion __author__ = 'jinling.yang' _logger = logging.getLogger(__name__) @@ -24,14 +24,14 @@ class AutoQuatotion(models.Model): def get_process_time_db_path(self): return get_resource_path('sf_sale', 'models', 'process_time.db') - def get_auto_quatotion(self, stp_url, feature_full_path, process_time_db_path, model_code): - ''' - 通过打包好的.so库, - 以调用autoQuatotion库中Quatotion类, - 初始化后调用类的analyseShape方法对模型文件进行价格预测 - ''' - # 初始化自动报价类(输入特征数据库和加工时间数据库) - reader = auto_quatotion.Quatotion(feature_full_path, process_time_db_path) - # 获取价格、加工时间、尺寸、XYZ、翻面次数 - feature_info = reader.analyseShape(stp_url, InfoJson={}) - return feature_info + # def get_auto_quatotion(self, stp_url, feature_full_path, process_time_db_path, model_code): + # ''' + # 通过打包好的.so库, + # 以调用autoQuatotion库中Quatotion类, + # 初始化后调用类的analyseShape方法对模型文件进行价格预测 + # ''' + # # 初始化自动报价类(输入特征数据库和加工时间数据库) + # reader = auto_quatotion.Quatotion(feature_full_path, process_time_db_path) + # # 获取价格、加工时间、尺寸、XYZ、翻面次数 + # feature_info = reader.analyseShape(stp_url, InfoJson={}) + # return feature_info diff --git a/sf_sale/models/quick_easy_order.py b/sf_sale/models/quick_easy_order.py index 1e5f274c..6308d01d 100644 --- a/sf_sale/models/quick_easy_order.py +++ b/sf_sale/models/quick_easy_order.py @@ -5,8 +5,8 @@ import os import json from datetime import datetime import requests -from OCC.Extend.DataExchange import read_step_file -from OCC.Extend.DataExchange import write_stl_file +# from OCC.Extend.DataExchange import read_step_file +# from OCC.Extend.DataExchange import write_stl_file from odoo import models, fields, api from odoo.modules import get_resource_path from odoo.exceptions import ValidationError, UserError @@ -93,9 +93,9 @@ class QuickEasyOrder(models.Model): # 将attach的datas内容转为glb文件 def transition_glb_file(self, report_path, model_code): - shapes = read_step_file(report_path) + # shapes = read_step_file(report_path) output_file = os.path.join('/tmp', str(model_code) + '.stl') - write_stl_file(shapes, output_file, 'binary', 0.03, 0.5) + # write_stl_file(shapes, output_file, 'binary', 0.03, 0.5) # 转化为glb output_glb_file = os.path.join('/tmp', str(model_code) + '.glb') util_path = get_resource_path('sf_base', 'static/util') From 5292826c72f0b01fbf2486f3aa35eaffc6ee86ef Mon Sep 17 00:00:00 2001 From: "jinling.yang" Date: Wed, 22 Nov 2023 17:58:41 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=94=80=E5=94=AE?= =?UTF-8?q?=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_base/security/group_security.xml | 4 +- sf_maintenance/__manifest__.py | 2 +- sf_mrs_connect/__init__.py | 1 - sf_sale/__manifest__.py | 3 +- sf_sale/models/sale_order.py | 6 ++ sf_sale/security/group_security.xml | 21 +++- sf_sale/security/ir.model.access.csv | 13 ++- sf_sale/views/sale_team.xml | 142 +++++++++++++++++++++++++++ 8 files changed, 184 insertions(+), 8 deletions(-) create mode 100644 sf_sale/views/sale_team.xml diff --git a/sf_base/security/group_security.xml b/sf_base/security/group_security.xml index 5423bfb8..0d435401 100644 --- a/sf_base/security/group_security.xml +++ b/sf_base/security/group_security.xml @@ -5,7 +5,7 @@ 20 - + 销售经理 @@ -13,7 +13,7 @@ 销售总监 - + diff --git a/sf_maintenance/__manifest__.py b/sf_maintenance/__manifest__.py index 7bfe057d..9c3c978a 100644 --- a/sf_maintenance/__manifest__.py +++ b/sf_maintenance/__manifest__.py @@ -6,7 +6,7 @@ 'category': '工厂设备', 'description': """ """, - 'depends': ['maintenance', 'sf_base'], + 'depends': ['hr_maintenance', 'sf_base'], 'data': [ 'security/group_security.xml', 'security/ir.model.access.csv', diff --git a/sf_mrs_connect/__init__.py b/sf_mrs_connect/__init__.py index 10245345..91c5580f 100644 --- a/sf_mrs_connect/__init__.py +++ b/sf_mrs_connect/__init__.py @@ -1,3 +1,2 @@ from . import controllers from . import models - diff --git a/sf_sale/__manifest__.py b/sf_sale/__manifest__.py index abd8d5a6..ea891245 100644 --- a/sf_sale/__manifest__.py +++ b/sf_sale/__manifest__.py @@ -10,10 +10,11 @@ """, 'category': 'sf', 'website': 'https://www.sf.jikimo.com', - 'depends': ['sale', 'sale_management', 'web_widget_model_viewer'], + 'depends': ['sale', 'sale_management', 'web_widget_model_viewer', 'sf_base','sales_team'], 'data': [ 'security/group_security.xml', 'security/ir.model.access.csv', + 'views/sale_team.xml', 'views/sale_order_view.xml', 'views/quick_easy_order_view.xml' ], diff --git a/sf_sale/models/sale_order.py b/sf_sale/models/sale_order.py index 93d67e37..e32b9360 100644 --- a/sf_sale/models/sale_order.py +++ b/sf_sale/models/sale_order.py @@ -68,3 +68,9 @@ class ResaleOrderLine(models.Model): _inherit = 'sale.order.line' model_glb_file = fields.Binary('模型的glb文件') + + +class ResCrmTeam(models.Model): + _inherit = 'crm.team' + + diff --git a/sf_sale/security/group_security.xml b/sf_sale/security/group_security.xml index b8668782..79fb2ef9 100644 --- a/sf_sale/security/group_security.xml +++ b/sf_sale/security/group_security.xml @@ -1,4 +1,23 @@ - + + + 销售经理只可以查看本人所在的团队 + + [(crm_team_member_ids.user_id,'=',user.id)] + + + + + + + + 销售总监 + + [(1,'=',1)] + + + + + \ No newline at end of file diff --git a/sf_sale/security/ir.model.access.csv b/sf_sale/security/ir.model.access.csv index 5a3a2ee8..b90db9d6 100644 --- a/sf_sale/security/ir.model.access.csv +++ b/sf_sale/security/ir.model.access.csv @@ -1,6 +1,15 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_quick_easy_order,quick_easy_order,model_quick_easy_order,base.group_user,1,1,1,1 -access_sf_auto_quatotion_common,sf_auto_quatotion_common,model_sf_auto_quatotion_common,base.group_user,1,1,1,1 +access_quick_easy_order,quick_easy_order,model_quick_easy_order,base.group_system,1,1,1,1 +access_sf_auto_quatotion_common,sf_auto_quatotion_common,model_sf_auto_quatotion_common,base.group_system,1,1,1,1 +access_sale_order,sale_order,model_sale_order,sf_base.group_sale_salemanager,1,1,1,0 +access_sale_order,sale_order,model_sale_order,sf_base.group_sale_director,1,1,1,0 +access_sale_order_line,sale_order_line,model_sale_order_line,sf_base.group_sale_salemanager,1,1,1,0 +access_sale_order_line,sale_order_line,model_sale_order_line,sf_base.group_sale_director,1,1,1,0 +access_crm_team,crm_team,sales_team.model_crm_team,sf_base.group_sale_director,1,1,1,0 +access_crm_team_member,crm_team_member,sales_team.model_crm_team_member,sf_base.group_sale_director,1,1,1,0 +access_res_users,res_users,base.model_res_users,sf_base.group_sale_director,1,1,1,0 + + diff --git a/sf_sale/views/sale_team.xml b/sf_sale/views/sale_team.xml new file mode 100644 index 00000000..8543888f --- /dev/null +++ b/sf_sale/views/sale_team.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 45d04e1a055a4d134441da68ec48d3386bc98322 Mon Sep 17 00:00:00 2001 From: "jinling.yang" Date: Thu, 23 Nov 2023 17:28:58 +0800 Subject: [PATCH 3/4] =?UTF-8?q?1.=E9=94=80=E5=94=AE=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E7=8A=B6=E6=80=81=EF=BC=8C=E9=80=89=E9=A1=B9?= =?UTF-8?q?=E4=B8=BA=E5=B7=B2=E5=AE=A1=E6=A0=B8=E5=92=8C=E5=BE=85=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8=EF=BC=8C=E9=94=80=E5=94=AE=E6=A8=A1=E5=9E=8B=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=9D=83=E9=99=90=E8=A7=84=E5=88=99=EF=BC=9A=E9=94=80?= =?UTF-8?q?=E5=94=AE=E6=80=BB=E7=9B=91=E6=9F=A5=E7=9C=8B=E6=89=80=E6=9C=89?= =?UTF-8?q?=E7=9A=84=E8=AE=A2=E5=8D=95=EF=BC=8C=E9=94=80=E5=94=AE=E7=BB=8F?= =?UTF-8?q?=E7=90=86=E5=8F=AA=E8=83=BD=E6=9F=A5=E7=9C=8B=E8=87=AA=E5=B7=B1?= =?UTF-8?q?=E7=9A=84=E8=AE=A2=E5=8D=95=202.=E6=8A=A5=E4=BB=B7=E5=8D=95Form?= =?UTF-8?q?=E8=A7=86=E5=9B=BE=E6=96=B0=E5=A2=9E=E5=AE=A1=E6=A0=B8=E6=8C=89?= =?UTF-8?q?=E9=92=AE=EF=BC=8C=E8=AF=A5=E6=8C=89=E9=92=AE=E5=8F=AA=E6=9C=89?= =?UTF-8?q?=E9=94=80=E5=94=AE=E6=80=BB=E7=9B=91=E5=8F=AF=E4=BB=A5=E7=9C=8B?= =?UTF-8?q?=E5=88=B0=EF=BC=8C=E4=B8=94=E7=A1=AE=E8=AE=A4=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E5=8F=AA=E6=9C=89=E5=9C=A8=E9=94=80=E5=94=AE=E7=BB=8F=E7=90=86?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E5=AE=8C=E6=89=8D=E5=8F=AF=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=EF=BC=8C=E6=8A=A5=E4=BB=B7Tree=E8=A7=86=E5=9B=BE=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=AE=A1=E6=A0=B8=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_dlm/data/product_data.xml | 5 + sf_manufacturing/models/product_template.py | 8 +- sf_sale/__manifest__.py | 2 +- sf_sale/models/quick_easy_order.py | 8 +- sf_sale/models/sale_order.py | 6 + sf_sale/security/group_security.xml | 23 +- sf_sale/security/ir.model.access.csv | 12 +- sf_sale/views/sale_order_view.xml | 24 ++ sf_sale/views/sale_team.xml | 249 ++++++++++---------- 9 files changed, 197 insertions(+), 140 deletions(-) diff --git a/sf_dlm/data/product_data.xml b/sf_dlm/data/product_data.xml index 3cc92912..9b562fbb 100644 --- a/sf_dlm/data/product_data.xml +++ b/sf_dlm/data/product_data.xml @@ -35,6 +35,11 @@ 功能刀具 + + 业务平台 + + + 功能刀具 diff --git a/sf_manufacturing/models/product_template.py b/sf_manufacturing/models/product_template.py index f425813a..c2c85895 100644 --- a/sf_manufacturing/models/product_template.py +++ b/sf_manufacturing/models/product_template.py @@ -6,8 +6,8 @@ import os from odoo import models, fields, api, _ from odoo.exceptions import ValidationError from odoo.modules import get_resource_path -# from OCC.Extend.DataExchange import read_step_file -# from OCC.Extend.DataExchange import write_stl_file +from OCC.Extend.DataExchange import read_step_file +from OCC.Extend.DataExchange import write_stl_file @@ -819,9 +819,9 @@ class ResProductMo(models.Model): # 将attach的datas内容转为glb文件 def transition_glb_file(self, report_path, code): - # shapes = read_step_file(report_path) + shapes = read_step_file(report_path) output_file = os.path.join('/tmp', str(code) + '.stl') - # write_stl_file(shapes, output_file, 'binary', 0.03, 0.5) + write_stl_file(shapes, output_file, 'binary', 0.03, 0.5) # 转化为glb output_glb_file = os.path.join('/tmp', str(code) + '.glb') util_path = get_resource_path('sf_base', 'static/util') diff --git a/sf_sale/__manifest__.py b/sf_sale/__manifest__.py index ea891245..64d9c41a 100644 --- a/sf_sale/__manifest__.py +++ b/sf_sale/__manifest__.py @@ -10,7 +10,7 @@ """, 'category': 'sf', 'website': 'https://www.sf.jikimo.com', - 'depends': ['sale', 'sale_management', 'web_widget_model_viewer', 'sf_base','sales_team'], + 'depends': ['sale', 'sale_management', 'web_widget_model_viewer', 'sf_base'], 'data': [ 'security/group_security.xml', 'security/ir.model.access.csv', diff --git a/sf_sale/models/quick_easy_order.py b/sf_sale/models/quick_easy_order.py index 6308d01d..1e5f274c 100644 --- a/sf_sale/models/quick_easy_order.py +++ b/sf_sale/models/quick_easy_order.py @@ -5,8 +5,8 @@ import os import json from datetime import datetime import requests -# from OCC.Extend.DataExchange import read_step_file -# from OCC.Extend.DataExchange import write_stl_file +from OCC.Extend.DataExchange import read_step_file +from OCC.Extend.DataExchange import write_stl_file from odoo import models, fields, api from odoo.modules import get_resource_path from odoo.exceptions import ValidationError, UserError @@ -93,9 +93,9 @@ class QuickEasyOrder(models.Model): # 将attach的datas内容转为glb文件 def transition_glb_file(self, report_path, model_code): - # shapes = read_step_file(report_path) + shapes = read_step_file(report_path) output_file = os.path.join('/tmp', str(model_code) + '.stl') - # write_stl_file(shapes, output_file, 'binary', 0.03, 0.5) + write_stl_file(shapes, output_file, 'binary', 0.03, 0.5) # 转化为glb output_glb_file = os.path.join('/tmp', str(model_code) + '.glb') util_path = get_resource_path('sf_base', 'static/util') diff --git a/sf_sale/models/sale_order.py b/sf_sale/models/sale_order.py index e32b9360..c699a9d0 100644 --- a/sf_sale/models/sale_order.py +++ b/sf_sale/models/sale_order.py @@ -12,6 +12,8 @@ class ReSaleOrder(models.Model): address_of_delivery = fields.Char('交货人地址') payments_way = fields.Selection([('现结', '现结'), ('月结', '月结')], '结算方式', default='现结', tracking=True) pay_way = fields.Selection([('转账', '转账'), ('微信', '微信'), ('支付宝', '支付宝')], '支付方式') + check_status = fields.Selection([('unchecked', '未审核'), ('checked', '已审核')], '审核状态', default='unchecked') + payment_term_id = fields.Many2one( comodel_name='account.payment.term', @@ -40,6 +42,10 @@ class ReSaleOrder(models.Model): }) return order_id + # 审核 + def action_check(self): + self.check_status = 'checked' + def get_customer(self): customer = self.env['res.partner'].search([('name', '=', '业务平台')]) if customer: diff --git a/sf_sale/security/group_security.xml b/sf_sale/security/group_security.xml index 79fb2ef9..33890d49 100644 --- a/sf_sale/security/group_security.xml +++ b/sf_sale/security/group_security.xml @@ -3,7 +3,7 @@ 销售经理只可以查看本人所在的团队 - [(crm_team_member_ids.user_id,'=',user.id)] + [('crm_team_member_ids.user_id','=',user.id)] @@ -12,12 +12,31 @@ 销售总监 - + [(1,'=',1)] + + + 销售总监查看所有的订单 + + [(1,'=',1)] + + + + + + + 销售经理查看自己的订单 + + ['|',('partner_id','=',user.partner_id.id),('create_uid', '=',user.id)] + + + + + \ No newline at end of file diff --git a/sf_sale/security/ir.model.access.csv b/sf_sale/security/ir.model.access.csv index b90db9d6..171a6d4d 100644 --- a/sf_sale/security/ir.model.access.csv +++ b/sf_sale/security/ir.model.access.csv @@ -1,12 +1,12 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_quick_easy_order,quick_easy_order,model_quick_easy_order,base.group_system,1,1,1,1 access_sf_auto_quatotion_common,sf_auto_quatotion_common,model_sf_auto_quatotion_common,base.group_system,1,1,1,1 -access_sale_order,sale_order,model_sale_order,sf_base.group_sale_salemanager,1,1,1,0 -access_sale_order,sale_order,model_sale_order,sf_base.group_sale_director,1,1,1,0 -access_sale_order_line,sale_order_line,model_sale_order_line,sf_base.group_sale_salemanager,1,1,1,0 -access_sale_order_line,sale_order_line,model_sale_order_line,sf_base.group_sale_director,1,1,1,0 -access_crm_team,crm_team,sales_team.model_crm_team,sf_base.group_sale_director,1,1,1,0 -access_crm_team_member,crm_team_member,sales_team.model_crm_team_member,sf_base.group_sale_director,1,1,1,0 +access_sale_order_manager,sale_order_manager,model_sale_order,sf_base.group_sale_salemanager,1,1,1,0 +access_sale_order_director,sale_order_director,model_sale_order,sf_base.group_sale_director,1,1,1,0 +access_sale_order_line_manager,sale_order_line_manager,model_sale_order_line,sf_base.group_sale_salemanager,1,1,1,0 +access_sale_order_line_director,sale_order_line_director,model_sale_order_line,sf_base.group_sale_director,1,1,1,0 +access_crm_team_member_manager,crm_team_manager,sales_team.model_crm_team,sf_base.group_sale_director,1,1,1,0 +access_crm_team_member_director,crm_team_member_director,sales_team.model_crm_team_member,sf_base.group_sale_director,1,1,1,0 access_res_users,res_users,base.model_res_users,sf_base.group_sale_director,1,1,1,0 diff --git a/sf_sale/views/sale_order_view.xml b/sf_sale/views/sale_order_view.xml index ba32f029..a02a8adc 100644 --- a/sf_sale/views/sale_order_view.xml +++ b/sf_sale/views/sale_order_view.xml @@ -7,6 +7,25 @@ sale.order + + +