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
This commit is contained in:
@@ -10,7 +10,7 @@
|
|||||||
""",
|
""",
|
||||||
'category': 'sf',
|
'category': 'sf',
|
||||||
'website': 'https://www.sf.jikimo.com',
|
'website': 'https://www.sf.jikimo.com',
|
||||||
'depends': ['account', 'base', 'mrp_workorder', 'sale', 'purchase'],
|
'depends': ['account', 'base', 'mrp_workorder', 'sale', 'purchase', 'sales_team'],
|
||||||
'data': [
|
'data': [
|
||||||
'security/group_security.xml',
|
'security/group_security.xml',
|
||||||
'security/ir.model.access.csv',
|
'security/ir.model.access.csv',
|
||||||
|
|||||||
@@ -4,9 +4,3 @@ from . import tool_base_new
|
|||||||
from . import fixture
|
from . import fixture
|
||||||
from . import functional_fixture
|
from . import functional_fixture
|
||||||
from . import tool_other_features
|
from . import tool_other_features
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -17,29 +17,7 @@ class MrsProductionMaterials(models.Model):
|
|||||||
remark = fields.Text("备注")
|
remark = fields.Text("备注")
|
||||||
active = fields.Boolean('有效', default=True)
|
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):
|
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'
|
url = 'http://192.168.50.127:8081'
|
||||||
params = {
|
params = {
|
||||||
'user_id': self._uid
|
'user_id': self._uid
|
||||||
@@ -82,7 +60,6 @@ class MrsMaterialModel(models.Model):
|
|||||||
active = fields.Boolean('有效', default=True)
|
active = fields.Boolean('有效', default=True)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class MrsProductionProcessCategory(models.Model):
|
class MrsProductionProcessCategory(models.Model):
|
||||||
_name = 'sf.production.process.category'
|
_name = 'sf.production.process.category'
|
||||||
_description = '表面工艺类别'
|
_description = '表面工艺类别'
|
||||||
@@ -131,6 +108,7 @@ class MrsProcessingOrder(models.Model):
|
|||||||
index=True, string='加工工艺')
|
index=True, string='加工工艺')
|
||||||
production_process_id = fields.Many2one('sf.production.process', string="表面工艺")
|
production_process_id = fields.Many2one('sf.production.process', string="表面工艺")
|
||||||
|
|
||||||
|
|
||||||
class SupplierSort(models.Model):
|
class SupplierSort(models.Model):
|
||||||
_name = 'sf.supplier.sort'
|
_name = 'sf.supplier.sort'
|
||||||
_description = '供应商排序'
|
_description = '供应商排序'
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import requests
|
|
||||||
import json
|
import json
|
||||||
|
import requests
|
||||||
from odoo import models, fields, api
|
from odoo import models, fields, api
|
||||||
from odoo.addons.sf_base.commons.common import Common
|
from odoo.addons.sf_base.commons.common import Common
|
||||||
from odoo.exceptions import ValidationError
|
from odoo.exceptions import ValidationError
|
||||||
|
|||||||
@@ -43,17 +43,16 @@
|
|||||||
<field name="sequence">20</field>
|
<field name="sequence">20</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="sales_team.group_sale_manager" model="res.groups">
|
<record id="group_sale_salemanager" model="res.groups">
|
||||||
<field name="name">销售经理</field>
|
<field name="name">销售经理</field>
|
||||||
<field name="category_id" ref="base.module_category_sales_sales"/>
|
<field name="category_id" ref="base.module_category_sales_sales"/>
|
||||||
<!-- <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>-->
|
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<!-- <record id="group_sale_director" model="res.groups">-->
|
<record id="group_sale_director" model="res.groups">
|
||||||
<!-- <field name="name">销售总监</field>-->
|
<field name="name">销售总监</field>
|
||||||
<!-- <field name="category_id" ref="base.module_category_sales_sales"/>-->
|
<field name="category_id" ref="base.module_category_sales_sales"/>
|
||||||
<!-- <field name="implied_ids" eval="[(4, ref('sf_base.group_sale_manager'))]"/>-->
|
<field name="implied_ids" eval="[(4, ref('sf_base.group_sale_salemanager'))]"/>
|
||||||
<!-- </record>-->
|
</record>
|
||||||
|
|
||||||
<record id="group_plan_dispatch" model="res.groups">
|
<record id="group_plan_dispatch" model="res.groups">
|
||||||
<field name="name">计划调度岗</field>
|
<field name="name">计划调度岗</field>
|
||||||
|
|||||||
@@ -1,3 +1 @@
|
|||||||
from .import controllers
|
from . import controllers
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,2 +1 @@
|
|||||||
from . import models
|
from . import models
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,11 @@
|
|||||||
<field name="type">功能刀具</field>
|
<field name="type">功能刀具</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
<record id="res_partner_bfm" model="res.partner">
|
||||||
|
<field name="name">业务平台</field>
|
||||||
|
<!-- <field name="company_id" ref="base.main_company"/>-->
|
||||||
|
</record>
|
||||||
|
|
||||||
<record id="product_functional_tool_sf" model="product.product">
|
<record id="product_functional_tool_sf" model="product.product">
|
||||||
<field name="name">功能刀具</field>
|
<field name="name">功能刀具</field>
|
||||||
<field name="categ_id" ref="product_category_functional_tool_sf"/>
|
<field name="categ_id" ref="product_category_functional_tool_sf"/>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
""",
|
""",
|
||||||
'category': 'sf',
|
'category': 'sf',
|
||||||
'website': 'https://www.sf.jikimo.com',
|
'website': 'https://www.sf.jikimo.com',
|
||||||
'depends': ['sf_sale', 'sf_dlm','sf_manufacturing'],
|
'depends': ['sf_sale', 'sf_dlm', 'sf_manufacturing'],
|
||||||
'data': [
|
'data': [
|
||||||
'views/product_template_management_view.xml',
|
'views/product_template_management_view.xml',
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,7 +1,2 @@
|
|||||||
#from . import product_template
|
# from . import product_template
|
||||||
#from . import product_supplierinfo
|
# from . import product_supplierinfo
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
'category': '工厂设备',
|
'category': '工厂设备',
|
||||||
'description': """
|
'description': """
|
||||||
""",
|
""",
|
||||||
'depends': ['maintenance', 'sf_base'],
|
'depends': ['hr_maintenance', 'sf_base'],
|
||||||
'data': [
|
'data': [
|
||||||
'security/group_security.xml',
|
'security/group_security.xml',
|
||||||
'security/ir.model.access.csv',
|
'security/ir.model.access.csv',
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
|
import logging
|
||||||
|
from datetime import datetime
|
||||||
|
from dateutil.relativedelta import relativedelta
|
||||||
import os
|
import os
|
||||||
import base64
|
import base64
|
||||||
import math
|
import math
|
||||||
import requests
|
import requests
|
||||||
import logging
|
|
||||||
# import subprocess
|
# import subprocess
|
||||||
from datetime import datetime
|
|
||||||
from dateutil.relativedelta import relativedelta
|
|
||||||
from odoo import api, fields, models, SUPERUSER_ID, _
|
from odoo import api, fields, models, SUPERUSER_ID, _
|
||||||
from odoo.exceptions import ValidationError
|
|
||||||
from odoo.addons.sf_base.commons.common import Common
|
from odoo.addons.sf_base.commons.common import Common
|
||||||
from odoo.exceptions import UserError
|
from odoo.exceptions import UserError
|
||||||
from odoo.addons.sf_mrs_connect.models.ftp_operate import FtpController
|
from odoo.addons.sf_mrs_connect.models.ftp_operate import FtpController
|
||||||
@@ -388,7 +387,8 @@ class ResMrpWorkOrder(models.Model):
|
|||||||
productions._create_workorder()
|
productions._create_workorder()
|
||||||
productions.filtered(lambda p: (not p.orderpoint_id and p.move_raw_ids) or \
|
productions.filtered(lambda p: (not p.orderpoint_id and p.move_raw_ids) or \
|
||||||
(
|
(
|
||||||
p.move_dest_ids.procure_method != 'make_to_order' and not p.move_raw_ids and not p.workorder_ids)).action_confirm()
|
p.move_dest_ids.procure_method != 'make_to_order' and
|
||||||
|
not p.move_raw_ids and not p.workorder_ids)).action_confirm()
|
||||||
|
|
||||||
for production in productions:
|
for production in productions:
|
||||||
origin_production = production.move_dest_ids and production.move_dest_ids[
|
origin_production = production.move_dest_ids and production.move_dest_ids[
|
||||||
|
|||||||
@@ -818,9 +818,9 @@ class ResProductMo(models.Model):
|
|||||||
|
|
||||||
# 将attach的datas内容转为glb文件
|
# 将attach的datas内容转为glb文件
|
||||||
def transition_glb_file(self, report_path, code):
|
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')
|
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
|
# 转化为glb
|
||||||
output_glb_file = os.path.join('/tmp', str(code) + '.glb')
|
output_glb_file = os.path.join('/tmp', str(code) + '.glb')
|
||||||
util_path = get_resource_path('sf_base', 'static/util')
|
util_path = get_resource_path('sf_base', 'static/util')
|
||||||
|
|||||||
@@ -1,3 +1,2 @@
|
|||||||
from . import controllers
|
from . import controllers
|
||||||
from . import models
|
from . import models
|
||||||
|
|
||||||
|
|||||||
@@ -10,10 +10,11 @@
|
|||||||
""",
|
""",
|
||||||
'category': 'sf',
|
'category': 'sf',
|
||||||
'website': 'https://www.sf.jikimo.com',
|
'website': 'https://www.sf.jikimo.com',
|
||||||
'depends': ['sale', 'sale_management', 'web_widget_model_viewer'],
|
'depends': ['sale', 'sale_management', 'web_widget_model_viewer', 'sf_base'],
|
||||||
'data': [
|
'data': [
|
||||||
'security/group_security.xml',
|
'security/group_security.xml',
|
||||||
'security/ir.model.access.csv',
|
'security/ir.model.access.csv',
|
||||||
|
'views/sale_team.xml',
|
||||||
'views/sale_order_view.xml',
|
'views/sale_order_view.xml',
|
||||||
'views/quick_easy_order_view.xml'
|
'views/quick_easy_order_view.xml'
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
import logging
|
import logging
|
||||||
from odoo.modules import get_resource_path
|
from odoo.modules import get_resource_path
|
||||||
from odoo import fields, models, api
|
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'
|
__author__ = 'jinling.yang'
|
||||||
_logger = logging.getLogger(__name__)
|
_logger = logging.getLogger(__name__)
|
||||||
@@ -24,14 +24,14 @@ class AutoQuatotion(models.Model):
|
|||||||
def get_process_time_db_path(self):
|
def get_process_time_db_path(self):
|
||||||
return get_resource_path('sf_sale', 'models', 'process_time.db')
|
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):
|
# def get_auto_quatotion(self, stp_url, feature_full_path, process_time_db_path, model_code):
|
||||||
'''
|
# '''
|
||||||
通过打包好的.so库,
|
# 通过打包好的.so库,
|
||||||
以调用autoQuatotion库中Quatotion类,
|
# 以调用autoQuatotion库中Quatotion类,
|
||||||
初始化后调用类的analyseShape方法对模型文件进行价格预测
|
# 初始化后调用类的analyseShape方法对模型文件进行价格预测
|
||||||
'''
|
# '''
|
||||||
# 初始化自动报价类(输入特征数据库和加工时间数据库)
|
# # 初始化自动报价类(输入特征数据库和加工时间数据库)
|
||||||
reader = auto_quatotion.Quatotion(feature_full_path, process_time_db_path)
|
# reader = auto_quatotion.Quatotion(feature_full_path, process_time_db_path)
|
||||||
# 获取价格、加工时间、尺寸、XYZ、翻面次数
|
# # 获取价格、加工时间、尺寸、XYZ、翻面次数
|
||||||
feature_info = reader.analyseShape(stp_url, InfoJson={})
|
# feature_info = reader.analyseShape(stp_url, InfoJson={})
|
||||||
return feature_info
|
# return feature_info
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ class ReSaleOrder(models.Model):
|
|||||||
address_of_delivery = fields.Char('交货人地址')
|
address_of_delivery = fields.Char('交货人地址')
|
||||||
payments_way = fields.Selection([('现结', '现结'), ('月结', '月结')], '结算方式', default='现结', tracking=True)
|
payments_way = fields.Selection([('现结', '现结'), ('月结', '月结')], '结算方式', default='现结', tracking=True)
|
||||||
pay_way = fields.Selection([('转账', '转账'), ('微信', '微信'), ('支付宝', '支付宝')], '支付方式')
|
pay_way = fields.Selection([('转账', '转账'), ('微信', '微信'), ('支付宝', '支付宝')], '支付方式')
|
||||||
|
check_status = fields.Selection([('unchecked', '未审核'), ('checked', '已审核')], '审核状态', default='unchecked')
|
||||||
|
|
||||||
|
|
||||||
payment_term_id = fields.Many2one(
|
payment_term_id = fields.Many2one(
|
||||||
comodel_name='account.payment.term',
|
comodel_name='account.payment.term',
|
||||||
@@ -40,6 +42,10 @@ class ReSaleOrder(models.Model):
|
|||||||
})
|
})
|
||||||
return order_id
|
return order_id
|
||||||
|
|
||||||
|
# 审核
|
||||||
|
def action_check(self):
|
||||||
|
self.check_status = 'checked'
|
||||||
|
|
||||||
def get_customer(self):
|
def get_customer(self):
|
||||||
customer = self.env['res.partner'].search([('name', '=', '业务平台')])
|
customer = self.env['res.partner'].search([('name', '=', '业务平台')])
|
||||||
if customer:
|
if customer:
|
||||||
@@ -68,3 +74,9 @@ class ResaleOrderLine(models.Model):
|
|||||||
_inherit = 'sale.order.line'
|
_inherit = 'sale.order.line'
|
||||||
|
|
||||||
model_glb_file = fields.Binary('模型的glb文件')
|
model_glb_file = fields.Binary('模型的glb文件')
|
||||||
|
|
||||||
|
|
||||||
|
class ResCrmTeam(models.Model):
|
||||||
|
_inherit = 'crm.team'
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,42 @@
|
|||||||
<odoo>
|
<odoo>
|
||||||
<data>
|
<data noupdate="1">
|
||||||
|
<record model="ir.rule" id="crm_team_rule_salemanager">
|
||||||
|
<field name="name">销售经理只可以查看本人所在的团队</field>
|
||||||
|
<field name="model_id" ref="model_crm_team"/>
|
||||||
|
<field name="domain_force">[('crm_team_member_ids.user_id','=',user.id)]</field>
|
||||||
|
<field name="groups" eval="[(4, ref('sf_base.group_sale_salemanager'))]"/>
|
||||||
|
<field name="perm_read" eval="1"/>
|
||||||
|
<field name="perm_write" eval="0"/>
|
||||||
|
<field name="perm_create" eval="0"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.rule" id="crm_team_rule_director">
|
||||||
|
<field name="name">销售总监</field>
|
||||||
|
<field name="model_id" ref="model_crm_team"/>
|
||||||
|
<field name="domain_force">[(1,'=',1)]</field>
|
||||||
|
<field name="groups" eval="[(4, ref('sf_base.group_sale_director'))]"/>
|
||||||
|
<field name="perm_read" eval="1"/>
|
||||||
|
<field name="perm_write" eval="1"/>
|
||||||
|
<field name="perm_create" eval="1"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.rule" id="sale_order_rule_director">
|
||||||
|
<field name="name">销售总监查看所有的订单</field>
|
||||||
|
<field name="model_id" ref="model_sale_order"/>
|
||||||
|
<field name="domain_force">[(1,'=',1)]</field>
|
||||||
|
<field name="groups" eval="[(4, ref('sf_base.group_sale_director'))]"/>
|
||||||
|
<field name="perm_read" eval="1"/>
|
||||||
|
<field name="perm_write" eval="1"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.rule" id="sale_order_rule_salemanager">
|
||||||
|
<field name="name">销售经理查看自己的订单</field>
|
||||||
|
<field name="model_id" ref="model_sale_order"/>
|
||||||
|
<field name="domain_force">['|',('partner_id','=',user.partner_id.id),('create_uid', '=',user.id)]</field>
|
||||||
|
<field name="groups" eval="[(4, ref('sf_base.group_sale_salemanager'))]"/>
|
||||||
|
<field name="perm_read" eval="1"/>
|
||||||
|
<field name="perm_write" eval="1"/>
|
||||||
|
<field name="perm_create" eval="1"/>
|
||||||
|
</record>
|
||||||
</data>
|
</data>
|
||||||
</odoo>
|
</odoo>
|
||||||
@@ -1,6 +1,15 @@
|
|||||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||||
access_quick_easy_order,quick_easy_order,model_quick_easy_order,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_user,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_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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
|
@@ -7,6 +7,25 @@
|
|||||||
<field name="model">sale.order</field>
|
<field name="model">sale.order</field>
|
||||||
<field name="inherit_id" ref="sale.view_order_form"/>
|
<field name="inherit_id" ref="sale.view_order_form"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
|
<xpath expr="//form/header/button[@name='action_confirm']" position="after">
|
||||||
|
<field name="check_status" invisible="1"/>
|
||||||
|
<button name="action_check" string="审核" type="object"
|
||||||
|
attrs="{'invisible': [('check_status','=', 'checked')]}"
|
||||||
|
class="oe_highlight"/>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//form/header/button[@name='action_check']" position="attributes">
|
||||||
|
<attribute name="groups">sf_base.group_sale_director</attribute>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//form/header/button[@name='action_confirm'][1]" position="attributes">
|
||||||
|
<attribute name="attrs">{'invisible': [('check_status', '=', 'unchecked'),('state', 'not in',
|
||||||
|
['sent'])]}
|
||||||
|
</attribute>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//form/header/button[@name='action_confirm'][2]" position="attributes">
|
||||||
|
<attribute name="attrs">{'invisible': [('check_status', '=', 'unchecked'),('state', 'in',
|
||||||
|
['draft'])]}
|
||||||
|
</attribute>
|
||||||
|
</xpath>
|
||||||
<field name="payment_term_id" position="after">
|
<field name="payment_term_id" position="after">
|
||||||
<field name="deadline_of_delivery"/>
|
<field name="deadline_of_delivery"/>
|
||||||
<field name="payments_way"/>
|
<field name="payments_way"/>
|
||||||
@@ -28,6 +47,7 @@
|
|||||||
<field name="model">sale.order</field>
|
<field name="model">sale.order</field>
|
||||||
<field name="inherit_id" ref="sale_management.sale_order_form_quote"/>
|
<field name="inherit_id" ref="sale_management.sale_order_form_quote"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
|
|
||||||
<field name="date_order" position="attributes">
|
<field name="date_order" position="attributes">
|
||||||
<attribute name="string">下单日期</attribute>
|
<attribute name="string">下单日期</attribute>
|
||||||
</field>
|
</field>
|
||||||
@@ -57,6 +77,10 @@
|
|||||||
<field name="create_date" position="attributes">
|
<field name="create_date" position="attributes">
|
||||||
<attribute name="string">下单时间</attribute>
|
<attribute name="string">下单时间</attribute>
|
||||||
</field>
|
</field>
|
||||||
|
<field name="state" position="after">
|
||||||
|
<field name="check_status" widget="label_selection"
|
||||||
|
options="{'classes': {'unchecked':'warning','checked': 'success'}}"/>
|
||||||
|
</field>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|||||||
145
sf_sale/views/sale_team.xml
Normal file
145
sf_sale/views/sale_team.xml
Normal file
@@ -0,0 +1,145 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<odoo>
|
||||||
|
|
||||||
|
<menuitem id="menu_sale_config"
|
||||||
|
name="Configuration"
|
||||||
|
groups="sales_team.group_sale_manager,sf_base.group_sale_salemanager,sf_base.group_sale_director"
|
||||||
|
sequence="50"/>
|
||||||
|
|
||||||
|
<!-- <record id="sale.sale_menu_root" model="ir.ui.menu">-->
|
||||||
|
<!-- <field name="active" eval="True"/>-->
|
||||||
|
<!-- </record>-->
|
||||||
|
|
||||||
|
<!-- <menuitem id="sale_order_menu"-->
|
||||||
|
<!-- name="Orders"-->
|
||||||
|
<!-- sequence="10">-->
|
||||||
|
|
||||||
|
<!-- <menuitem id="menu_sale_quotations"-->
|
||||||
|
<!-- action="action_quotations_with_onboarding"-->
|
||||||
|
<!-- groups="sales_team.group_sale_salesman"-->
|
||||||
|
<!-- sequence="10"/>-->
|
||||||
|
|
||||||
|
<!-- <menuitem id="menu_sale_order"-->
|
||||||
|
<!-- name="Orders"-->
|
||||||
|
<!-- action="action_orders"-->
|
||||||
|
<!-- groups="sales_team.group_sale_salesman"-->
|
||||||
|
<!-- sequence="20"/>-->
|
||||||
|
|
||||||
|
|
||||||
|
<!-- <menuitem id="report_sales_team"-->
|
||||||
|
<!-- name="Sales Teams"-->
|
||||||
|
<!-- action="sales_team.crm_team_action_sales"-->
|
||||||
|
<!-- groups="sales_team.group_sale_manager"-->
|
||||||
|
<!-- sequence="30"/>-->
|
||||||
|
|
||||||
|
<!-- <menuitem id="res_partner_menu"-->
|
||||||
|
<!-- action="account.res_partner_action_customer"-->
|
||||||
|
<!-- groups="sales_team.group_sale_salesman"-->
|
||||||
|
<!-- sequence="40"/>-->
|
||||||
|
|
||||||
|
<!-- </menuitem>-->
|
||||||
|
|
||||||
|
<!-- <menuitem id="menu_sale_invoicing"-->
|
||||||
|
<!-- name="To Invoice"-->
|
||||||
|
<!-- groups="sales_team.group_sale_salesman"-->
|
||||||
|
<!-- sequence="20">-->
|
||||||
|
|
||||||
|
<!-- <menuitem id="menu_sale_order_invoice"-->
|
||||||
|
<!-- action="action_orders_to_invoice"-->
|
||||||
|
<!-- sequence="10"/>-->
|
||||||
|
|
||||||
|
<!-- <menuitem id="menu_sale_order_upselling"-->
|
||||||
|
<!-- action="action_orders_upselling"-->
|
||||||
|
<!-- sequence="20"/>-->
|
||||||
|
|
||||||
|
<!-- </menuitem>-->
|
||||||
|
|
||||||
|
<!-- <menuitem id="product_menu_catalog"-->
|
||||||
|
<!-- name="Products"-->
|
||||||
|
<!-- groups="sales_team.group_sale_salesman"-->
|
||||||
|
<!-- sequence="30">-->
|
||||||
|
|
||||||
|
<!-- <menuitem id="menu_product_template_action"-->
|
||||||
|
<!-- action="product_template_action"-->
|
||||||
|
<!-- sequence="10"/>-->
|
||||||
|
<!-- <menuitem id="menu_products"-->
|
||||||
|
<!-- action="product.product_normal_action_sell"-->
|
||||||
|
<!-- groups="product.group_product_variant"-->
|
||||||
|
<!-- sequence="20"/>-->
|
||||||
|
<!-- <menuitem id="menu_product_pricelist_main"-->
|
||||||
|
<!-- name="Pricelists"-->
|
||||||
|
<!-- action="product.product_pricelist_action2"-->
|
||||||
|
<!-- groups="product.group_product_pricelist"-->
|
||||||
|
<!-- sequence="30"/>-->
|
||||||
|
|
||||||
|
<!-- </menuitem>-->
|
||||||
|
|
||||||
|
<!-- <menuitem id="menu_sale_report"-->
|
||||||
|
<!-- name="Reporting"-->
|
||||||
|
<!-- action="action_order_report_all"-->
|
||||||
|
<!-- groups="sales_team.group_sale_manager"-->
|
||||||
|
<!-- sequence="40"/>-->
|
||||||
|
|
||||||
|
<!-- <menuitem id="menu_sale_config"-->
|
||||||
|
<!-- name="Configuration"-->
|
||||||
|
<!-- groups="sales_team.group_sale_manager"-->
|
||||||
|
<!-- sequence="50">-->
|
||||||
|
|
||||||
|
<!-- <menuitem id="menu_sale_general_settings"-->
|
||||||
|
<!-- name="Settings"-->
|
||||||
|
<!-- sequence="10"-->
|
||||||
|
<!-- action="action_sale_config_settings"-->
|
||||||
|
<!-- groups="base.group_system"/>-->
|
||||||
|
|
||||||
|
<!-- <menuitem id="sales_team_config"-->
|
||||||
|
<!-- name="Sales Teams"-->
|
||||||
|
<!-- action="sales_team.crm_team_action_config"-->
|
||||||
|
<!-- sequence="20"/>-->
|
||||||
|
|
||||||
|
<!-- <menuitem id="menu_sales_config"-->
|
||||||
|
<!-- sequence="30"-->
|
||||||
|
<!-- name="Sales Orders">-->
|
||||||
|
|
||||||
|
<!-- <menuitem id="menu_tag_config"-->
|
||||||
|
<!-- name="Tags"-->
|
||||||
|
<!-- action="sales_team.sales_team_crm_tag_action"-->
|
||||||
|
<!-- sequence="10"/>-->
|
||||||
|
|
||||||
|
<!-- </menuitem>-->
|
||||||
|
|
||||||
|
<!-- <menuitem id="prod_config_main"-->
|
||||||
|
<!-- name="Products"-->
|
||||||
|
<!-- sequence="40">-->
|
||||||
|
|
||||||
|
<!-- <menuitem id="menu_product_attribute_action"-->
|
||||||
|
<!-- action="product.attribute_action"-->
|
||||||
|
<!-- groups="product.group_product_variant"-->
|
||||||
|
<!-- sequence="10"/>-->
|
||||||
|
|
||||||
|
<!-- </menuitem>-->
|
||||||
|
|
||||||
|
<!-- <menuitem id="next_id_16"-->
|
||||||
|
<!-- name="Units of Measure"-->
|
||||||
|
<!-- groups="uom.group_uom"-->
|
||||||
|
<!-- sequence="50">-->
|
||||||
|
|
||||||
|
<!-- <menuitem id="menu_product_uom_form_action"-->
|
||||||
|
<!-- action="uom.product_uom_form_action"-->
|
||||||
|
<!-- groups="base.group_no_one"-->
|
||||||
|
<!-- sequence="10"/>-->
|
||||||
|
|
||||||
|
<!-- <menuitem id="menu_product_uom_categ_form_action"-->
|
||||||
|
<!-- action="uom.product_uom_categ_form_action"-->
|
||||||
|
<!-- sequence="20"/>-->
|
||||||
|
|
||||||
|
<!-- </menuitem>-->
|
||||||
|
|
||||||
|
<!-- <menuitem id="sale_menu_config_activity_type"-->
|
||||||
|
<!-- action="mail_activity_type_action_config_sale"-->
|
||||||
|
<!-- groups="base.group_no_one"-->
|
||||||
|
<!-- sequence="60"-->
|
||||||
|
<!-- />-->
|
||||||
|
<!-- </menuitem>-->
|
||||||
|
<!-- </menuitem>-->
|
||||||
|
|
||||||
|
</odoo>
|
||||||
Reference in New Issue
Block a user