# -*- coding: utf-8 -*-
from odoo import models, fields, api
from odoo.tools import DEFAULT_SERVER_DATE_FORMAT
from datetime import *
import time,datetime
from odoo.exceptions import UserError
class Dycrm(models.Model):
_name = 'dycrm.main'
cwbh = fields.Char(string='财务编号', required=False, readonly=True, copy=False)
name = fields.Char(string="客户名称", required=True)
#字段唯一约束
_sql_constraints = [
('name_unique',
'UNIQUE(name)',
"The course title must be unique"),
]
hzzt = fields.Selection([
('vaild', "合作中"),
('invalid', "终止/空户"),
],string="合作状态", required=True, default='vaild')
sale = fields.Char(string="销售")
kf = fields.Char(string="客服", required=True)
@api.onchange('kf')
# 约束客服姓名不能错
def _ver_kf(self):
kf_list = [u'唐剑', u'肖玲', u'李芳菲', u'张艳', u'彭宇', u'张晓容', u'何小丽', u'马箫箫', u'吴章英']
if self.kf not in kf_list and self.kf:
self.kf = ''
return {
'warning': {
'title': "客服名称不对",
'message': "亲,您把同事的名字打错了",
},
}
fwjd = fields.Char(string="服务进度", compute='_fwjd')
@api.depends('fwjd')
def _fwjd(self):
for r in self:
r.fwjd = '未知'
param = (r.id,r.id)
#查询客户事项表
a = self.env.cr.execute("SELECT khmc_khsx,create_date,ysqr,dk,kp,jp,xphk,hzzt_khsx from dycrm_khsx WHERE create_date=(SELECT max(create_date) as creat_d from (SELECT * from dycrm_khsx where khmc_khsx=%s) as khmc group by khmc_khsx)and khmc_khsx=%s "% param)
results = self.env.cr.dictfetchall()
if not results :
continue
if results[0]['hzzt_khsx']=='invalid':
r.fwjd = '已经终止'
continue
if results[0]['xphk']=='bkp':
if not results[0]['ysqr']:
r.fwjd = '请做预算'
elif not results[0]['dk']:
r.fwjd = '到款中'
elif not results[0]['kp']:
r.fwjd = '开票中'
elif not results[0]['jp']:
r.fwjd = '寄票中'
else:
r.fwjd = '完成'
else:
if not results[0]['ysqr']:
r.fwjd = '请做预算'
elif not results[0]['kp']:
r.fwjd = '开票中'
elif not results[0]['dk']:
r.fwjd = '到款中'
elif not results[0]['jp']:
r.fwjd = '寄票中'
else:
r.fwjd = '完成'
zdsj = fields.Char(string="账单日")
dksj = fields.Char(string="打款日", )
lxr = fields.Char(string="日常联系人")
phone = fields.Char(string="手机")
#修改客服
@api.multi
def write(self, vals):
kfzd = {u'唐剑': 10, u'肖玲': 7, u'汤涛': 11, u'张艳': 14, u'彭宇': 8, u'张晓容': 15, u'何小丽': 6, u'马箫箫': 16, u'耿晓浩': 21}
kf = ''
if vals.has_key('kf'):
kf = vals['kf']
# 查询客户create_uid
if self.name:
param = (self.name,)
a = self.env.cr.execute(
"SELECT create_uid,id from dycrm_main WHERE name='%s' " % param)
results = self.env.cr.dictfetchall()
if results and kf:
if not results[0]['create_uid'] == kfzd[kf]:
# 修改create_uid
param = (kfzd[kf], self.name)
# 第一次上传时间确定注意date日期一定要用引号才是字符串
self.env.cr.execute(
"update dycrm_main set create_uid = %s where name = '%s'" % param)
# 修改user_id
param = (kfzd[kf], results[0]['id'])
self.env.cr.execute(
"update dycrm_khsx set user_id= %s where khmc_khsx= %s" % param)
return super(Dycrm, self).write(vals)
@api.onchange('phone')
#约束手机11位
def _verify_valid(self):
if len(str(self.phone)) != 11 and self.phone:
return {
'warning': {
'title': "手机位数错误",
'message': "您输入的手机位数不是11位",
},
}
tel = fields.Char(string="座机")
qq = fields.Char(string="QQ")
mail = fields.Char(string="邮箱")
invoice = fields.Selection([
('kp', "是"),
('bkp', "否"),
('wp', "不开票"),
], default='bkp',string="先票后款", required=True)
zdlx = fields.Selection([
('ysx', "预收型"),
('szx', "实作型"),
], string="账单类型")
sfth = fields.Selection([
('y', "是"),
('n', "否"),
], string="是否同行", default='n', required=True)
#邮寄信息一对多
post_add = fields.One2many('dycrm.post', 'khmc_id', string="邮寄地址")
#开票信息一对多
kpxx_kp = fields.One2many('dycrm.kaipiao', 'khmc_kp', string="开票信息")
#打款信息一对多
dkxx_dk = fields.One2many('dycrm.dkxx', 'khmc_dk', string="打款信息")
#事项提醒一对多
khsx_kh = fields.One2many('dycrm.khsx', 'khmc_khsx', string="事项提醒")
#协议信息
htbh = fields.Char(string="合同编号")
start_d = fields.Date(default=fields.Date.today, string="合同开始日")
end_d = fields.Date(default=fields.Date.today, string="合同结束日")
gq = fields.Char(string="是否过期", compute='_guoqi')
file_xy = fields.Binary(string='文件',attcachment=True)
filename_xy = fields.Char(string='文件名')
@api.depends('end_d')
def _guoqi(self):
for r in self:
if not r.end_d:
r.gq = '未知'
continue
now = time.strftime("%Y-%m-%d")
a = datetime.datetime.strptime(now, '%Y-%m-%d')
b = datetime.datetime.strptime(r.end_d, '%Y-%m-%d')
c = b - a
if c.days>0:
r.gq = '还剩%s天'%c.days
else:
r.gq = '已过期'
#业务信息
shebao = fields.Selection([
('dl', "代理"),
('tg', "托管"),
('dt', "代理/托管"),
], string="社保")
gjj = fields.Selection([
('dl', "代理"),
('tg', "托管"),
('dt', "代理/托管"),
], string="公积金")
gzdf = fields.Char(string="工资代发")
lwpq = fields.Selection([
('y', "是"),
('n', "否"),
], string="劳务派遣", default='n')
lwwb = fields.Selection([
('y', "是"),
('n', "否"),
], string="劳务外包", default='n')
#服务费计算方式
fwflx = fields.Selection([
('rs', "按人数"),
('jt', "阶梯式报价"),
('ts', "特殊"),
], string="类型", default='rs')
fwf_val = fields.Char(string="费用")
#邮寄信息
class dycrm(models.Model):
_name = 'dycrm.post'
#多个邮寄地址对应一个合作单位
khmc_id = fields.Many2one('dycrm.main',ondelete='cascade', string="客户名称", required = True)
sjr = fields.Char(string="收件人", required = True)
dwmc = fields.Char(string="单位名称")
post_uid = fields.Integer(related='khmc_id.create_uid.id', string="inviid", store=False, invisible=True)
kf = fields.Char(related='khmc_id.kf', string="客服", store=False, invisible=True)
@api.onchange('khmc_id')
def _onchange_yj(self):
# set auto-changing field
if self.khmc_id.name:
self.dwmc = self.khmc_id.name
post_add =
odoo10公司系统可发送邮件,学习使用
需积分: 21 4 浏览量
2018-09-15
22:24:11
上传
评论
收藏 20KB RAR 举报
zzzhhy
- 粉丝: 0
- 资源: 1
最新资源
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
- C语言实现直接插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序、计数排序,并带图详解.zip
- 常用工具集参考用于图像等数据处理
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈