odoo采购单入库代码剖析
odoo开发技术交流群【73934270】
1、采购单入库,需要找到采购入库单,可以在采购订单里点击收货找到,或者从仓库菜单里的xx:接收找到采购入库单;从【转移】操作开始分析,如需要了解采购单的一些分析,就移步上一篇博文查看
图示红色箭头所执行的方法是 stock.picking 的 do_enter_transfer_details 方法
该方法生成一条stock.transfer_details 记录的同时,还会生成相应的实际操作stock.pack.operation的记录(model里对该记录的说明是used to avoid recomputing the remaining quantities at each new pack operation created),并返回供继续编辑
图中红色箭头所执行的方法是stock.transfer_details类的do_detailed_transfer方法,
@api.one def do_detailed_transfer(self):processed_ids = []# Create new and update existing pack operations for lstits in [self.item_ids, self.packop_ids]:for prod in lstits:pack_datas = {'product_id': prod.product_id.id, 'product_uom_id': prod.product_uom_id.id, 'product_qty': prod.quantity, 'package_id': prod.package_id.id, 'lot_id': prod.lot_id.id, 'location_id': prod.sourceloc_id.id, 'location_dest_id': prod.destinationloc_id.id, 'result_package_id': prod.result_package_id.id, 'date': prod.date if prod.date else datetime.now(), 'owner_id': prod.owner_id.id, }if prod.packop_id:prod.packop_id.with_context(no_recompute=True).write(pack_datas)processed_ids.append(prod.packop_id.id)else:pack_datas['picking_id'] = self.picking_id.idpackop_id = self.env['stock.pack.operation'].create(pack_datas)processed_ids.append(packop_id.id)#以上代码就是在点击转移的时候弹出界面(该界面表是中转表stock.transfer_details),供用户修改数据,并回填给stock_pack_operation表,stock_picking方法do_transfer()使用 # Delete the others packops = self.env['stock.pack.operation'].search(['&', ('picking_id', '=', self.picking_id.id), '!', ('id', 'in', processed_ids)])packops.unlink()# Execute the transfer of the picking self.picking_id.do_transfer()return True
以上就是采购入库流程的代码简单剖析
*以上分析为本人在学习odoo过程中的一些学习记录,如有错误请斧正,以免误导其他odoo学者
odoo采购单入库代码剖析相关推荐
- x264代码剖析(一):图文详解x264在Windows平台上的搭建
x264代码剖析(一):图文详解x264在Windows平台上的搭建 X264源码下载地址:http://ftp.videolan.org/pub/videolan/x264/ 平台:win7 PC. ...
- x264代码剖析(十四):核心算法之宏块编码函数x264_macroblock_encode()
x264代码剖析(十四):核心算法之宏块编码函数x264_macroblock_encode() 宏块编码函数x264_macroblock_encode()是完成变换与量化的主要函数,而x264_m ...
- HDFS集中式的缓存管理原理与代码剖析--转载
原文地址:http://yanbohappy.sinaapp.com/?p=468 Hadoop 2.3.0已经发布了,其中最大的亮点就是集中式的缓存管理(HDFS centralized cache ...
- x264代码剖析(四):vs2010编译x264错误集锦
x264代码剖析(四):vs2010编译x264错误集锦 支持VC++平台的x264的最新版本是x264-20091006,接下来就以该版本为例分析编译运行x264过程中遇到的问题以及解决办法. 1. ...
- 微信跳一跳刷分代码剖析
转载地址:http://blog.csdn.net/u013780605/article/details/78945239?ref=myrecommend 感谢学霸提供了这一途径,感谢原作者无私奉献. ...
- IDDPM原理和代码剖析
前言 Improved Denoising Diffusion Probabilistic Models(IDDPM) 是上一篇 Denoising Diffusion Probabilistic M ...
- windows下tomcat8启动脚本代码剖析--catalina.bat
Windows下,Tomcat可以以服务形式启动.停止,也可以执行脚本启动(startup.bat).停止(shutdown.bat).执行startup.bat时会调用catalina.bat,ca ...
- x264代码剖析(二):如何编译运行x264以及x264代码基本框架
x264代码剖析(二):如何编译运行x264以及x264代码基本框架 x264工程在x265出现之前一直在更新,但是自x264-20091007(含)不再支持VC++平台,也就是说支持VC++平台的x ...
- x264代码剖析(九):x264_encoder_encode()函数之x264_slice's'_write()函数
x264代码剖析(九):x264_encoder_encode()函数之x264_slice's'_write()函数 x264_encoder_encode()函数的核心函数就是x264_slice ...
- x264代码剖析(十一):核心算法之宏块分析函数x264_macroblock_analyse()
x264代码剖析(十一):核心算法之宏块分析函数x264_macroblock_analyse() x264的 x264_slice_write()函数中调用了宏块分析函数x264_macrobloc ...
最新文章
- 《jQuery UI 开发指南》——1.3 什么是CSS主题
- redis session共享中的序列化问题
- 神策数据王灼洲 徐缓:ID-Mapping 用户打通那些事儿
- 汇编语言串指令经典题目
- Loj#6039-「雅礼集训 2017 Day5」珠宝【四边形不等式,dp】
- StackGAN详解与实现(使用tensorflow2.x实现)——利用文本合成逼真的图像
- hadoop+lucene+web 综合小demo
- 证券业大数据与人工智能发展现状与应用趋势
- 国考地市级各题型分值分布(数量关系10题,其他题型同省级试题相同,共130题)——仅供参考
- SQL 同比、环比计算公式及实例演示
- 图扑软件数字孪生民航飞联网,构建智慧民航新业态
- 机器人编程趣味实践19-武林秘籍(文档)
- Spring框架-IOC
- [牛客练习] 深信服校园招聘c/c 软件开发H卷 Apare_xzc
- 碧蓝航线内部表情包(有爱自取)
- Case Study _均值方差模型 MatLab
- 面向过程、面向对象 的模型和方法
- layui tab用法大全,一键复制粘贴即可使用
- incident用法_“我出事故了”书到用时方恨少,事故用“incident”还是“accident”?...
- PHPExcel的自定义导出及合并单元格