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采购单入库代码剖析相关推荐

  1. x264代码剖析(一):图文详解x264在Windows平台上的搭建

    x264代码剖析(一):图文详解x264在Windows平台上的搭建 X264源码下载地址:http://ftp.videolan.org/pub/videolan/x264/ 平台:win7 PC. ...

  2. x264代码剖析(十四):核心算法之宏块编码函数x264_macroblock_encode()

    x264代码剖析(十四):核心算法之宏块编码函数x264_macroblock_encode() 宏块编码函数x264_macroblock_encode()是完成变换与量化的主要函数,而x264_m ...

  3. HDFS集中式的缓存管理原理与代码剖析--转载

    原文地址:http://yanbohappy.sinaapp.com/?p=468 Hadoop 2.3.0已经发布了,其中最大的亮点就是集中式的缓存管理(HDFS centralized cache ...

  4. x264代码剖析(四):vs2010编译x264错误集锦

    x264代码剖析(四):vs2010编译x264错误集锦 支持VC++平台的x264的最新版本是x264-20091006,接下来就以该版本为例分析编译运行x264过程中遇到的问题以及解决办法. 1. ...

  5. 微信跳一跳刷分代码剖析

    转载地址:http://blog.csdn.net/u013780605/article/details/78945239?ref=myrecommend 感谢学霸提供了这一途径,感谢原作者无私奉献. ...

  6. IDDPM原理和代码剖析

    前言 Improved Denoising Diffusion Probabilistic Models(IDDPM) 是上一篇 Denoising Diffusion Probabilistic M ...

  7. windows下tomcat8启动脚本代码剖析--catalina.bat

    Windows下,Tomcat可以以服务形式启动.停止,也可以执行脚本启动(startup.bat).停止(shutdown.bat).执行startup.bat时会调用catalina.bat,ca ...

  8. x264代码剖析(二):如何编译运行x264以及x264代码基本框架

    x264代码剖析(二):如何编译运行x264以及x264代码基本框架 x264工程在x265出现之前一直在更新,但是自x264-20091007(含)不再支持VC++平台,也就是说支持VC++平台的x ...

  9. x264代码剖析(九):x264_encoder_encode()函数之x264_slice's'_write()函数

    x264代码剖析(九):x264_encoder_encode()函数之x264_slice's'_write()函数 x264_encoder_encode()函数的核心函数就是x264_slice ...

  10. x264代码剖析(十一):核心算法之宏块分析函数x264_macroblock_analyse()

    x264代码剖析(十一):核心算法之宏块分析函数x264_macroblock_analyse() x264的 x264_slice_write()函数中调用了宏块分析函数x264_macrobloc ...

最新文章

  1. 《jQuery UI 开发指南》——1.3 什么是CSS主题
  2. redis session共享中的序列化问题
  3. 神策数据王灼洲 徐缓:ID-Mapping 用户打通那些事儿
  4. 汇编语言串指令经典题目
  5. Loj#6039-「雅礼集训 2017 Day5」珠宝【四边形不等式,dp】
  6. StackGAN详解与实现(使用tensorflow2.x实现)——利用文本合成逼真的图像
  7. hadoop+lucene+web 综合小demo
  8. 证券业大数据与人工智能发展现状与应用趋势
  9. 国考地市级各题型分值分布(数量关系10题,其他题型同省级试题相同,共130题)——仅供参考
  10. SQL 同比、环比计算公式及实例演示
  11. 图扑软件数字孪生民航飞联网,构建智慧民航新业态
  12. 机器人编程趣味实践19-武林秘籍(文档)
  13. Spring框架-IOC
  14. [牛客练习] 深信服校园招聘c/c 软件开发H卷 Apare_xzc
  15. 碧蓝航线内部表情包(有爱自取)
  16. Case Study _均值方差模型 MatLab
  17. 面向过程、面向对象 的模型和方法
  18. layui tab用法大全,一键复制粘贴即可使用
  19. incident用法_“我出事故了”书到用时方恨少,事故用“incident”还是“accident”?...
  20. PHPExcel的自定义导出及合并单元格

热门文章

  1. KEIL5打开KEIL4工程的方法
  2. Keil4新建汇编模板工程
  3. linux网络配置方法
  4. cdr添加节点快捷键_CorelDRAW快捷键大全(学习CDR必备)
  5. 阿里云大学双11特惠活动
  6. 对于8086cpu的探索发现
  7. 视频时代的下一幕 ABC Inspire:读懂视频
  8. 关于PCIe有gen1升到gen3的方法
  9. c最简单的编程语言,世界上最简单的中文编程语言
  10. 高等数学张宇18讲 第六讲 零点问题、微分不等式