1.强制必填字段
(1)【客户名称】、【税ID】、【Email】、【销售员】、【标签】为强制必填 (2)【电话】、【手机】两个字段控制为二选一强制必填 2.客户校验规则: (1)【客户名称】+【税ID】两个字段分别与已经创建客户的档案信息进行校验,任意一项100%吻合则不允许创建客户 3.强制必填字段 (1)【名称】、【Email】、【销售员】为强制必填 (2)【电话】、【手机】两个字段控制为二选一强制必填 4.个人校验规则: (1)【名称】+【Email】两个字段分别与已经创建客户的档案信息进行校验,两项一起100%吻合则不允许创建个人 5.下拉仅显示销售人员的账户用户名(非相关用户及姓名不显示),字段为强制必填 (1)创建人的权限为销售经理,则【销售员】字段自动默认为当前账号的用户姓名,且不可修改 (2)创建人的权限为销售总监,则【销售员】字段自动默认为当前账号的用户姓名,可下拉选择,修改销售人员姓名
This commit is contained in:
@@ -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__)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import datetime
|
||||
import base64
|
||||
from odoo import models, fields, api
|
||||
from odoo.osv import expression
|
||||
from odoo.exceptions import UserError
|
||||
|
||||
|
||||
class ReSaleOrder(models.Model):
|
||||
@@ -86,6 +86,24 @@ class RePurchaseOrder(models.Model):
|
||||
class ResPartnerToSale(models.Model):
|
||||
_inherit = 'res.partner'
|
||||
|
||||
@api.constrains('name')
|
||||
def _check_name(self):
|
||||
obj = self.sudo().search([('name', '=', self.name), ('id', '!=', self.id)])
|
||||
if obj:
|
||||
raise UserError('该名称已存在,请重新输入')
|
||||
|
||||
@api.constrains('vat')
|
||||
def _check_vat(self):
|
||||
obj = self.sudo().search([('vat', '=', self.vat), ('id', '!=', self.id)])
|
||||
if obj:
|
||||
raise UserError('该税ID已存在,请重新输入')
|
||||
|
||||
@api.constrains('email')
|
||||
def _check_email(self):
|
||||
obj = self.sudo().search([('email', '=', self.email), ('id', '!=', self.id)])
|
||||
if obj:
|
||||
raise UserError('该邮箱已存在,请重新输入')
|
||||
|
||||
@api.model
|
||||
def _name_search(self, name, args=None, operator='ilike', limit=100, name_get_uid=None):
|
||||
if self._context.get('is_customer'):
|
||||
@@ -95,3 +113,21 @@ class ResPartnerToSale(models.Model):
|
||||
domain = [('user_id', '=', self.env.user.id)]
|
||||
return self._search(domain, limit=limit, access_rights_uid=name_get_uid)
|
||||
return super()._name_search(name, args, operator, limit, name_get_uid)
|
||||
|
||||
@api.onchange('user_id')
|
||||
def _get_salesman(self):
|
||||
self.user_id = self.env.user.id
|
||||
|
||||
|
||||
class ResUserToSale(models.Model):
|
||||
_inherit = 'res.users'
|
||||
|
||||
@api.model
|
||||
def _name_search(self, name, args=None, operator='ilike', limit=100, name_get_uid=None):
|
||||
if self._context.get('is_sale'):
|
||||
if self.env.user.has_group('sf_base.group_sale_director'):
|
||||
domain = []
|
||||
elif self.env.user.has_group('sf_base.group_sale_salemanager'):
|
||||
domain = [('id', '=', self.env.user.id)]
|
||||
return self._search(domain, limit=limit, access_rights_uid=name_get_uid)
|
||||
return super()._name_search(name, args, operator, limit, name_get_uid)
|
||||
|
||||
Reference in New Issue
Block a user