Odoo覆写需求计算方法问题
来源:互联网 发布:物流可视化数据 编辑:程序博客网 时间:2024/05/05 03:03
因公司业务需求,想在产生仓库物料调拨的时候,同时产生一笔快递单(因为公司不同的仓库不在同一个地方),调拨单是在计算物料需求时产生的,所以我就想覆写计算物料需求的方法,在执行完原来的业务逻辑以后,再根据内部需求处理后面的逻辑。
开始写的方法如下:
class rhwl_order(osv.osv): _inherit = "procurement.order" def run_scheduler(self, cr, uid, use_new_cursor=False, company_id=False, context=None): super(rhwl_order,self).run_scheduler(cr,uid,use_new_cursor,company_id,context) move_obj = self.pool.get("stock.move") move_ids = move_obj.search(cr,uid,[('state','not in',['done','cancel']),('express_no','=',False)],context=context)
调用完父对象方法以后,马上执行search查询待处理的资料,但奇怪的是每次搜索到的内容都是为空。
后来跟踪调用发现此方法是系统另外进程来处理的,与当前操作的进程不一样,代码可参考addons\procurement\wizard\schedulers_all.py中的procure_calculation方法。
threaded_calculation = threading.Thread(target=self._procure_calculation_all, args=(cr, uid, ids, context))threaded_calculation.start()
在另外的进程处理中,cr变量代表的数据库连接游标已经发生了变化,所以我在后面的search中,使用原来的cr变量,可能就找不到数据了。
参考其它方法的说明以后,重新修改代码如下:
class rhwl_order(osv.osv): _inherit = "procurement.order" def run_scheduler(self, cr, uid, use_new_cursor=False, company_id=False, context=None): super(rhwl_order,self).run_scheduler(cr,uid,use_new_cursor,company_id,context) try: if use_new_cursor: cr = openerp.registry(cr.dbname).cursor() move_obj = self.pool.get("stock.move")#('warehouse_id','=',1),('rule_id','>',0), move_ids = move_obj.search(cr,uid,[('state','not in',['done','cancel']),('express_no','=',False)],context=context) #内部业务逻辑处理 if use_new_cursor: cr.commit() finally: if use_new_cursor: try: cr.close() except Exception: pass return {}
经测试后,可以达到预期的处理效果。
0 0
- Odoo覆写需求计算方法问题
- ODOO MRP问题
- odoo调试端口8072问题
- mrp-材料毛需求的一种计算方法
- Odoo
- 需求问题
- Odoo Qweb报表css丢失问题
- 记录ODOO安装的一些问题
- odoo开发所遇到问题集合
- odoo初学遇到问题小集锦
- ODOO One2many 删除项失败问题
- 写项目需求
- SQL写物料需求
- 如何写需求分析?
- 写需求分析感想
- 需求文案怎么写?
- 怎么写需求分析
- 写需求分析时
- Codeforces 383B. Volcanoes 模拟
- 通过opencv给图像添加椒盐噪声
- 架构设计:远程调用服务架构设计及zookeeper技术详解(上篇)
- android中使用DisplayMetrics获取屏幕参数
- 摆拍韦节宾:Testin云测雪中送炭般解决开发者测试难题
- Odoo覆写需求计算方法问题
- 免费OA系统使用心得
- win8.1 笔记本按两次才能开机
- iOS,关于C结构体数组在子线程中写的操作
- SQL-Front 连接到服务器操作
- gSOAP中文文档
- 解决安卓SDK无法下载Package的问题
- 利用SQL语句创建、修改、执行、删除存储过程
- opengl 入门学习 随笔十三