python盘点订单_python里面 循环明细对比 相同人员明细,生成同一订单里面

def action_pro_mate(self,cr,uid,ids,context=None):

result={}assert len(ids)==1id=ids[0] #生产单有保存销售单id

pro_mateobj=self.pool.get('sale.product.material')

mrpobj=self.pool.get('mrp.production')

mrpobj_ids=mrpobj.search(cr,uid,[('sale_origin_id','=',id)],context=context) #查询有关的生产单

mrpobjres=mrpobj.browse(cr,uid,mrpobj_ids,context=context)

seq=1vals={}

sql="select feeding_name,partner_id,COALESCE(SUM(feeding_number),0) product_qty,COALESCE (price_unit,0) price_unit,(COALESCE(SUM(feeding_number),0)*COALESCE( price_unit,0)) as je from feeding_order where production_id in (select id from mrp_production where sale_origin_id=%d) GROUP BY feeding_name,partner_id,price_unit ORDER BY partner_id"%(id)

cr.execute(sql)

dict=cr.dictfetchall()

num=len(dict)

pro_mate_ids=[]

i=0

#将查询好的数据,添加到表中,通过sql语句查询分组汇总for i inrange(num):printi

pro_mate_ids.append((0,0,{'sale_origin_id':id,'sequence':i+1,'product_id':dict[i]['feeding_name'],'partner_id':dict[i]['partner_id'],'price':dict[i]['price_unit'],'qty':dict[i]['product_qty'],'je':dict[i]['je'],

}))

i+=1vals={'pro_mate_id':pro_mate_ids}

最后添加进去

self.write(cr,uid,[id],vals,context=context)return True

#排序record= sorted(record, key=lambda record : record[2]['product_id'])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值