首页 > 其他分享 >Odoo—货运管理—主表获取明细表数据计算结果

Odoo—货运管理—主表获取明细表数据计算结果

时间:2023-11-01 22:44:23浏览次数:28  
标签:主表 waybill fees detail 明细表 Odoo total

在开发货运管理模块的时候,用到了两张表:主表[waybill]和明细表[waybill.detail],主表存放运单主体信息,明细表存放运单货物信息,如下图所示。

上图中红色方框标记的是明细表中行内的运费计算结果;蓝色圆圈标记的是主表中的总运费,是明细表中三条货品数据的运费总和。在odoo中是如何实现将明细表的数据统计结果赋值给主表字段的呢?

首先在主表中定义一个总运费[total_fees]字段和一个一对多的货运明细[detail_ids]字段,其中总运费total_fees的值来自一个计算函数_compute_total_fees,代码如下:

1     total_fees = fields.Float(string='总运费', compute='_compute_total_fees', store=True)
2     detail_ids = fields.One2many('waybill.detail', 'waybill_id', string='货运明细')
3     @api.depends('detail_ids.total_freight')
4     def _compute_total_fees(self):
5         for waybill in self:
6             waybill.total_fees = sum(waybill.detail_ids.mapped('total_freight'))

 

以上代码中total_freight是明细表中每条数据的运费合计,如此就实现了主表字段关联到明细表数据的统计结果。

点击链接查看完整源码:github

点击链接阅读原文:菜园工程师

标签:主表,waybill,fees,detail,明细表,Odoo,total
From: https://www.cnblogs.com/heavenspring/p/17804322.html

相关文章

  • Odoo—货运管理—odoo时差问题
    第一次踩odoo时差的坑,才知道原来odoo在存储日期数据时,是以UTC0时区存放的,和北京时间相差8个小时。只是odoo本身能很好的处理日期数据的存储和展示,所以刚开始接触odoo,不容易发现这个问题。在做货运管理的时候,生成货运订单编号的格式是自己定义的,根据当日的运单数量自动往下递增,如......
  • odoo 下载大量pdf使用内存太大,异常退出,pdf 分页
    说白了,还是因为wkhtmltopdf工具使用的内存太大,打印200个页面就会直接内存超标,直接退出直接改源码了,每次让pdf转换工具只处理50个记录@http.route(['/report/download'],type='http',auth="user")defreport_download(self,data,token):"""Thisfunctionis......
  • odoo pdf 打印任务后台运行,pdf保存在附件中, 借助queue_job模块实现后台打印
    用户故事:在打印大批量pdf文件时会有较长事件的等待,而且容易中断原因中断原因,有内存及超时限制,wkhtmltopdf工具比较吃内存解决方案:内存限制的问题可以分批处理,比如每次只处理50条记录代码示例,使用按钮触发的打印功能:#model:[email protected]......
  • 安装odoo16
    ubuntu:22.04sudoapt-getinstallpython3.10pip3installvirtualenvcd/datavirtualenvnewodooenvsudoapt-getinstallpostgresql=15.0sudoapt-getlibsasl2-devlibldap2-devlibssl-devlibpq-devsudoapt-getinstallodoo=16.0cdodoodirsudo/da......
  • odoo 的一些widget
    widget="ace"widget="attachment_image"widget="boolean_button"widget="barcode_handler"widget="char_domain"widget="dummy"widget="char_domain"widget="char"......
  • vue+odoo前后端搭建
    项目所需前端用vue的element组件后端用odoo 1、为什么选用element(饿了么)源自vuevue国人开发文档完善便于自学关键是我以前接触过比react上手快一开始的路线是想直接在template里面引入vue的js在xml混写,结果总是报错,这两天一直在想办法解决报错最后没解决今晚上只......
  • 重启服务 odoo
    重启服务/etc/init.d/postgresqlrestartsudoservicepostgresqlstopsudoservicepostgresqlstartsudoserviceodoo16stopsudoserviceodoo16startsudosystemctlstopnginxsudosystemctlstartnginx##设置开机自启动sudosystemctlenablepostgresql登陆pgsudo-......
  • odoo 通知和刷新当前页面
     this.actionService.doAction({'type':'ir.actions.client','tag':'reload',});this.actionService.doAction({......
  • odoo fileupload via controller
      #-*-coding:utf-8-*-#PartofOdoo.SeeLICENSEfileforfullcopyrightandlicensingdetails.importbase64fromcollectionsimportOrderedDictfromdatetimeimportdatetimefromodooimporthttpfromodoo.exceptionsimportAccessError,Missin......
  • odoo controller
    一:Controller  一般通过继承的形式来创建controller类,继承自odoo.http.Controller。  以route装饰器来装饰定义的方法,提供url路由访问路径:classMyController(odoo.http.Controller)://继承controller定义控制器@route('/some_url',auth='public')//装饰器路由访问方......