首页 > 代码库 > 页签类型按钮上面记录条数获得

页签类型按钮上面记录条数获得

这里是销售订单记录条数
固定格式(self, cr, uid, ids, field_name, arg, context=None):
def _sales_count(self, cr, uid, ids, field_name, arg, context=None):
res = dict.fromkeys(ids, 0)
try:
sale_order_obj=self.pool.get(‘sale.order‘) 获取该表 sale.order
sale_ids=sale_order_obj.search(cr,uid,[(‘sale_origin_id‘,‘=‘,ids[0])]) 找到满足条件的数据
res[ids[0]]=len(sale_ids)
except:
print u"err"
finally:
return res

create是 新建 点击保存后操作的一系列动作

def create(self,cr,uid,vals,context=None):

if context is None:
context ={}
if vals.get(‘name‘,‘/‘)==‘/‘:
vals[‘name‘]=self.pool.get(‘ir.sequence‘).get(cr,uid,‘sale.origin‘) or ‘/‘
ctx=dict(context or {},mail_create_nolog=True)
#如果存在这个字段 则不处理 反之 删除本元素
flagline=vals
linenum=len(vals.get(‘line_id‘))
new_line_id=[]
# for 循环遍历出所有的数据,再将满足条件数据放到一个新的数组里,重新赋值给输出变量,linenum固定长度
for i in range(linenum):
if ‘choice‘ in vals.get(‘line_id‘)[i][2] and vals.get(‘line_id‘)[i][2][‘choice‘] is True:
new_line_id.append(vals.get(‘line_id‘)[i])
vals[‘line_id‘]=new_line_id

new_id=super(sale_origin,self).create(cr,uid,vals,context=ctx)
增加关注者 这里依赖于od-oa模块
res_model=self._name
obj=self.pool.get(‘od.oa.add.user‘)
obj.add_follower_ids(cr,uid,res_model,new_id)
return new_id





而这里则是编辑后保存所执行的动作

######修改外部交期后 同时修改销售订单的交期
def write(self, cr, uid, ids, vals, context=None):
choice1=vals.get(‘choice‘)
ddate=vals.get(‘date_planned‘)
price=vals.get(‘price‘)
# if choice1 == False:
# print ‘11‘
# self.unlink(cr,uid,ids,context=context)
# else:
if ddate or price or choice1 :
obj=self.pool(‘sale.order.line‘)
sale_order_line_id=obj.search(cr,uid,[(‘sale_origin_line_id‘,‘=‘,ids[0])])
obj.write(cr,uid,sale_order_line_id,{‘finish_date‘:ddate,‘price_unit‘:price})
# print ids
return super(sale_origin_line, self).write(cr, uid,ids, vals, context=context)




页签类型按钮上面记录条数获得