odoo11 审批流中行总额与申请单总额的计算问题
一. 问题的描述
在做审批流的过程中,涉及到这样一个问题,用户申请的行总额需要根据当前行的数量和单价相乘计算得出,这本来是一个很简单的功能需求,利用odoo的计算方法就可以轻松实现,但是在在view页面给amount设置了readonly=“1”属性之后,再次修改申请单单价或数量的时候,amount字段的值却无法跟新到数据库中。
在view层的代码如下:
<record id="workflow_ebilling_request_form_view" model="ir.ui.view">
<field name="name">Workflow e-Billing</field>
<field name="type">form</field>
<field name="model">ebilling.request.header</field>
<field name="arch" type="xml">
<form string="Workflow单">
<header>
<button name="workflow_submit" states="draft" string="Submit" type="workflow" class="oe_highlight"/>
<button name="workflow_approving" states="submit" string="Approving" type="workflow" class="oe_highlight"/>
<button name="workflow_completed" states="approving" string="completed" type="workflow" class="oe_highlight"/>
<field name="state" widget="statusbar" statusbar_visible="submit,approving,completed"/>
</header>
<sheet>
<group>
<group>
<field name="project"/>
<field name="bp_code"/>
</group>
<group>
<field name="po_no"/>
<field name="company_billing"/>
</group>
</group>
<group>
<group>
<field name="company"/>
<field name="nature_of_billing"/>
</group>
<group>
<field name="currency"/>
<field name="remark"/>
</group>
</group>
<field name='detail_ids'>
<tree string='List' editable='bottom'>
<field name='part_number'/>
<field name='qty' />
<field name='unit_price'/>
<field name='amount' readonly="1"/>
</tree>
</field>
<group class='oe_subtotal_footer oe_right'>
<field name='total_amount' widget='monetary' />
</group>
</sheet>
</form>
</field>
</record>

二 解决问题的方案:
经过查询相关资料,了解到如果前端的field字段一旦设置了readonly=”1“字段,在后台create/write的时候,其参数values里面就不会包含此字段,对应的解决方案也就是重写这两个方法。
@api.model
def write(self, values):
if "unit_price" in values and "qty" not in values:
values['amount'] = self.qty * values['unit_price']
if "unit_price" not in values and "qty" in values:
values['amount'] = self.unit_price * values['qty']
if "unit_price" in values and "qty" in values:
values['amount'] = values['unit_price'] * values['qty']
return super(BillingRequestDetail, self).write(values) @api.model
def create(self, values):
if "unit_price" in values and "qty" in values:
values['amount'] = values['unit_price'] * values['qty']
return super(BillingRequestDetail, self).create(values)
三 对比sale模块订单行的总价处理情况
在解决以上问题的时候,发现销售订单模块也完全涉及到类似的情况,那么官方模块是如何处理这种情况的呢?
发现其并没有在view端设置readonly=“1”这个属性,而是设置了groups属性,也就是说只有有权限的才可以修改这个行总价,和我们的完全只读属性还是不太一样的。
odoo11 审批流中行总额与申请单总额的计算问题的更多相关文章
- AX2012 审批流流转到已停用的域账号导致审批流停止
AX 2012 中当审批流流转到某个节点时,如果在该节点的审批人的域账号被停用,审批流将会停止,会报如图的错误: 要解决这个问题,得修改标准功能,需要修改SysWorkflow和SysWorkflow ...
- Dynamic CRM 2013学习笔记(十九)自定义审批流1 - 效果演示
CRM的项目,审批流是一个必须品.为了更方便灵活地使用.配置审批流,我们自定义了一整套审批流.首先来看下它的效果: 1. 审批模板 这是一个最简单的审批流,首先指定审批实体,及相关字段,再配置流程节点 ...
- Dynamic CRM 2013学习笔记(二十一)自定义审批流2 - 配置按钮
上次介绍了 Dynamic CRM 2013学习笔记(十九)自定义审批流1 - 效果演示 现在开始介绍如何配置审批流,首先在form上添加三个按钮,Submit, Agree, Reject: 1. ...
- Dynamic CRM 2013学习笔记(三十二)自定义审批流3 - 节点及实体配置
上次介绍了<Dynamic CRM 2013学习笔记(十九)自定义审批流1 - 效果演示> 以及如何配置自定义审批流的按钮:<Dynamic CRM 2013学习笔记(二十一)自定义 ...
- Dynamic CRM 2013学习笔记(三十三)自定义审批流4 - 规则节点 -有分支的流程处理
上次介绍过节点的基本配置<Dynamic CRM 2013学习笔记(三十二)自定义审批流3 - 节点及实体配置>,这次介绍下规则节点,因为有时流程里会有一些分支.合并,这时就要用到规则节点 ...
- Dynamic CRM 2013学习笔记(三十七)自定义审批流7 - 初始化(整套审批流下载、安装)
前面介绍了自定义审批流的配置.使用,这篇介绍下如何进行初始化. 一. 下载 从下面的地址下载整个审批流: http://yunpan.cn/cZ5Rdx5HCt3VF 下载完后,一共有三块内容: 二. ...
- Dynamic CRM 2013学习笔记(四十六)简单审批流的实现
前面介绍过自定义审批流: Dynamic CRM 2013学习笔记(十九)自定义审批流1 - 效果演示 Dynamic CRM 2013学习笔记(二十一)自定义审批流2 - 配置按钮 Dynamic ...
- SVN工具的使用 和在Eclipse中安装GPD插件:(多步审批流,因此选择使用工作流(JBPM)来实现)
前言 重点解说SVN工具的还原版本号. 1.提交svn之前.要先更新文件.假设更新之后有版本号冲突的话.就线下解决掉冲突,在把该文件标记为已经解决冲突. 正文 使用SVN还原历史版本号 water ...
- odoo 在原有工作流中添加审批流
odoo 在原有工作流中添加审批流 步骤: 1.加入所需的工作流节点以及相连的线(即所添加的审批流),代码如下: <?xml version="1.0" encoding=& ...
随机推荐
- Windows上通过bat调用jmx进行循环运行
1.jmx测试脚本中有两个线程组: 1)第一个线程组:模拟60台客户机并发像服务器发送上报请求,需要调用线程组的循环运行 2)第二个线程组:60台客户机上线后,模拟管理平台对客户机进行基础操作,如:创 ...
- git 入门教程之本地和远程仓库的本质
本地仓库和远程仓库在本质上没有太大区别,只不过一个是本地电脑,一个是远程电脑. 远程仓库不一定非得是 github 那种专门的"中央服务器",甚至局域网的另外一台电脑也可以充当&q ...
- sh命令
sh或是执行脚本,或是切换到sh这个bash里,默认的shell是bash,你可以试试tcsh啊,csh啊,ksh,zsh什么的,看看别的shell是什么样子的.当然,linux中sh是链接到bash ...
- PhantomJs浏览器下载
下载地址: http://phantomjs.org/download.html 链接:https://pan.baidu.com/s/1g9ZHLm0Fg56LN30CsDu-CA 密码:qhar
- mysql练习----Using Null
teacher id dept name phone mobile 101 1 Shrivell 2753 07986 555 1234 102 1 Throd 2754 07122 555 1920 ...
- 将web项目部署到阿里云服务器上
一.用eclipse将写好的项目打成war包 1.右键点击项目,选择Export 选择打包之后的路径,点击Finsh. 2.购买阿里云服务器 按下图选择 3.设置云服务器防火墙 4.远程连接云服务器 ...
- PostgreSQL远程访问设置
数据库版本:9.3.23(Windows xp系统) 步骤: 1.需要修改数据库安装目录下的pg_hba.conf文件 修改成: 2.并使用psql执行pg_ctl reload重新加载配置文件
- java求解第N个素数(质数)
面试中,遇到一个题目:求解第N个素数. import java.util.Scanner; public class GetPrimeNumber { public static int NthPri ...
- Ajax的一个实例及代码
这是用ajax做的一个小小的应用!当选择menu1的时候,会出来menu里面所有的内容.同理对于menu2.多的不说,代码如下: 首先是inner.html文件 <html><hea ...
- jQuery -- 光阴似箭(三):jQuery 操作 HTML 元素和属性
jQuery -- 知识点回顾篇(三):jQuery拥有操作 HTML 元素和属性的强大方法. 1. 获取HTML 元素的内容和属性 (1) 获得内容: text().html() 以及 val() ...