Odoo中文网|Odoo实施培训

 找回密码
 立即注册
搜索
热搜: Odoo OpenERP 实施
查看: 7710|回复: 1
打印 上一主题 下一主题

修改保存后stock_inventory状态错误

[复制链接]

4

主题

9

帖子

92

积分

注册会员

Rank: 2

积分
92
跳转到指定楼层
楼主
发表于 2016-1-10 03:12:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 agilit_ch 于 2016-1-9 14:19 编辑

我用的是英文版openerp7.0,

1) 在warehouse中的physical inventories, 我创建(create)一个新的stock_inventory,命名为Test,状态为draft,保存。

2) 我打开Test,修改(Edit)其中的stock_inventory_line信息,如product或serial number,并保存。

这时我发现stock inventory的状态从高亮Draft(蓝色)变为非高亮,也就是不再是Draft。 因为只有valide才能改变状态(Draft-->Done),查看相应的stock_inventory数据库表,

发现与stock_inventory对应的state 值被清空,
在调试跟踪时发现,从客户端发给server的包请求arg(参数中) {'state':False}, 而不是{'state':'draft'}这是为什么呢?







Faire ce que l'on n'aime pas.
回复

使用道具 举报

4

主题

9

帖子

92

积分

注册会员

Rank: 2

积分
92
沙发
 楼主| 发表于 2016-1-12 09:25:18 | 只看该作者
经过2个小时的调试,终于找到原因,在此跟大家分享。
原因:stock_inventory_line中的state的定义为ralated字段,它指向父表stock_inventory的state字段,
原理:修改子表的related字段值,会自动修改父表的相应的值

所以当子表的stock_inventory_line的state值改变时,openerp7.0会自动修改父表stock_inventory的state。当我们单击Add an Item加入一条stock_inventory_line时,此时它的state为空,也就是{“state”:False},这时保存(save),根据如上的原理,openerp就把False写入到stock_inventory的state字段中。

解决方法:把stock_inventory_line的state从field.related()修改为field.char()
Faire ce que l'on n'aime pas.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|技术支持|开发手册|Odoo中文网-远鼎旗下odoo培训网站 ( 苏ICP备15039516号 )

GMT+8, 2024-4-20 11:30 , Processed in 0.011096 second(s), 8 queries , Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表