首页 > 其他 > 详细

OpenERP商品添加的时候同类商品自动合并方法优化

时间:2014-03-23 08:46:04      阅读:267      评论:0      收藏:0      [点我收藏+]


        通过这次尝试,深入理解了python字典的用法。

        在库存入库商品添加的时候,同样的商品我的处理方法(Methon One)和老大指点的优化方法(Two),效率不是一点半点的高:

def create(self, cr, uid, vals, context=None):
        if not vals.has_key(‘move_lines_apply‘) or len(vals[‘move_lines_apply‘])==0:
            raise except_osv(_(‘Warning‘),_("请添加商品后再提交"))

        #Methon One
        new_move_lines = {}
        move_lines_total = {}
        for move_line in vals[‘move_lines_apply‘]:
            key = move_line[2][‘product_id‘]
            value = move_line[2][‘product_qty‘]
            new_value = move_lines_total.get(key,0) + value
            move_line[2][‘product_qty‘] = new_value
            new_move_lines[key] = move_line

        #Methon Two
        move_lines_total = {}
        for move_lines in vals[‘move_lines_apply‘]:
            key = move_lines[2][‘product_id‘]
            value = move_lines[2][‘product_qty‘]
            move_lines_total[key] = move_lines_total.get(key,0) + value
        
        new_move_lines = []
        for line in move_lines_total:
            num = move_lines_total[line]
            for move_lines in vals[‘move_lines_apply‘]:
                if line == move_lines[2][‘product_id‘]:
                    move_lines[2][‘product_qty‘] = num
                    new_move_lines.append(move_lines)
                    break

        vals[‘move_lines_apply‘] = new_move_lines.values()
        vals[‘state‘] = ‘wait_picking‘
        return super(stock_picking_apply, self).create(cr, uid, vals, context=context)


OpenERP商品添加的时候同类商品自动合并方法优化,布布扣,bubuko.com

OpenERP商品添加的时候同类商品自动合并方法优化

原文:http://blog.csdn.net/littlebo01/article/details/21830453

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!