博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python里面 循环明细对比 相同人员明细,生成同一订单里面
阅读量:6276 次
发布时间:2019-06-22

本文共 4045 字,大约阅读时间需要 13 分钟。

#2018-04-16 def action_create_purc(self,cr,uid,ids,context=None):        mrp_origin_obj=self.browse(cr,uid,ids,context)        mod_obj = self.pool.get('ir.model.data')        purchaseobj=self.pool('purchase.origin')        date_now=mrp_origin_obj.date        origin=mrp_origin_obj.name        #变量初始化        record=[]         var_part_name=0        i=1        for pro_line_id in mrp_origin_obj.pro_mate_id:            # 变量赋值,供应商的id            part_name=pro_line_id.partner_id.id #第一条数据判断 如果是第一条            if var_part_name==0:                     record.append((0,0,{
'sequence':i,'product_id':pro_line_id.product_id.id,'product_qty':pro_line_id.qty,'product_uom':pro_line_id.uom_id.id,'date_planned':date_now, 'price_unit':pro_line_id.price, })) #明细加数据,供应商重新赋值 var_part_name=part_name #第2、3、4.。。。。N条数据判断,如果与第一条相同,数据就直接加入明细中 elif part_name==var_part_name : #当供应商相等时,直接添加明细+1 record.append((0,0,{
'sequence':i,'product_id':pro_line_id.product_id.id,'product_qty':pro_line_id.qty,'product_uom':pro_line_id.uom_id.id,'date_planned':date_now, 'price_unit':pro_line_id.price, })) else: #part_name!=firstvar_part_name :当他不相等时 # 1、首先把之前的record创建成采购订单 ctx={
'partner_id':var_part_name,'ref_sale_name':origin,'order_type':'rawmaterial','location_id':19,'date_planned':date_now,'pricelist_id':1,'picking_type_id':8,'line_id':record} purchase_new_id= purchaseobj.create(cr,uid,ctx,context=context) #2、把record变成空,重新添加一条 record=[] ctx={} record.append((0,0,{
'product_id':pro_line_id.product_id.id,'product_qty':pro_line_id.qty,'product_uom':pro_line_id.uom_id.id,'date_planned':date_now, 'price_unit':pro_line_id.price })) var_part_name=part_name #当最后一条,相等或不等时都要执行这一句。 ctx={
'partner_id':var_part_name,'ref_sale_name':origin,'order_type':'rawmaterial','location_id':19,'date_planned':date_now,'pricelist_id':1,'picking_type_id':8,'line_id':record} purchase_new_id= purchaseobj.create(cr,uid,ctx,context=context) return purchase_new_id
def action_pro_mate(self,cr,uid,ids,context=None):        result={}        assert len(ids)==1        id=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=1        vals={}        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 in range(num):            print i            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+=1        vals={
'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'])

 

转载于:https://www.cnblogs.com/1314520xh/p/8859283.html

你可能感兴趣的文章
标普全球获准进入中国市场,本土评级机构压力山大!
查看>>
阿里云基础产品技术月刊 2019年1月
查看>>
Go 语言的垃圾回收演化历程:垃圾回收和运行时问题
查看>>
苹果收购硅谷创业公司 Silk Labs,将继续布局 AI 和 IoT
查看>>
Idea开发Tomcat应用的热部署配置
查看>>
docker安装mysql
查看>>
GNOME 3.34 发布计划敲定,正式版将于9月11日推出
查看>>
使用Data Lake Analytics快速分析OSS上的日志文件
查看>>
《图解服务器端网络架构》笔记
查看>>
《叶问》第2期
查看>>
各业务Object概念(VO、 PO、DO、DTO、 BO、 QO、DAO、POJO)
查看>>
JavaScript对象继承方式
查看>>
Java 11中的新功能和API详解系列1
查看>>
网络编程懒人入门(九):通俗讲解,有了IP地址,为何还要用MAC地址?
查看>>
第三章 导数与微分
查看>>
WPF编游戏系列 之二 图标效果
查看>>
设计模式-里氏替换原则
查看>>
react-native调试
查看>>
基于Excel2013的合并计算
查看>>
Qt学习笔记(二)-常用快捷键
查看>>