[求助]如何用csv批量导入产品库存
-
点击库存管理-库存盘点,使用所附的模板导入货品期初库存。注意时间的格式。
-
在不改源代码的前提下建议你为这些有相同的Code和Name的产品定义不同的条形码(EAN),在准备导入资料时产品名称部分填条形码(EAN)。事实上产品名称部分可以填产品的Code,Name或者EAN,三者之一,可以混用。
实际操作中,每个产品的Code应该还是唯一比较合理。
[[i] 本帖最后由 digitalsatori 于 2008-5-10 23:06 编辑 [/i]]
-
把代码分析的过程说一下(有兴趣的话就可以按这个思路去修改代码来达到你的目的):
数据的导入操作实际上最终是由服务器目录下/osv/orm.py中的import_data函数,在其下还有process_liness函数。仔细看的话下面这段代码是我们上述问题的关键:res2 = self.pool.get(relation).name_search(cr, uid, line[i], [], operator='=')
它的意思是通过调用对象所定义的name_search函数并将结果存在res2变量中,对于我们这里的例子这个对象就是product.product. 所以我们打开product.py文件(你应该知道在哪里的吧)
看到name_search是这样的:
[code]def name_search(self, cr, user, name='', args=None, operator='ilike', context=None, limit=80):
if not args:
args=[]
if not context:
context={}
ids = self.search(cr, user, [('default_code','=',name)]+ args, limit=limit, context=context)
if not len(ids):
ids = self.search(cr, user, [('ean13','=',name)]+ args, limit=limit, context=context)
if not len(ids):
ids = self.search(cr, user, [('default_code',operator,name)]+ args, limit=limit, context=context)
ids += self.search(cr, user, [('name',operator,name)]+ args, limit=limit, context=context)
result = self.name_get(cr, user, ids, context)
return result[/code]
这段代码的意思应该不难懂,由此得出了我上贴所诉的内容。