在创建自定义的Odoo / Quote报告时,如何在Qweb代码中始终引用客户公司?
在Odoo,数据模型有公司和人员。人员可以与公司联系在一起。让我们举个例子:我的Odoo公司叫做我的公司。我们已经注册了一个客户客户有限公司。John Smith已注册为客户有限公司的代表。
现在,为了为客户创造一个报价,我公司的销售人员可以将文件寄给“客户有限公司”或“客户有限公司,约翰·史密斯”。
在我的自定义报告中,我想打印客户端公司的名称。所以,我叫<span t-field="o.partner_id.name"/>。如果报价是发给公司的,这是可行的。但是,如果报价是发给“客户有限公司,约翰史密斯”,产出就是“约翰史密斯”。
我试着用<span t-field="o.partner_id.parent_id.name"/>参考客户公司,只要所有报价都发给在公司注册的人,比如“公司有限公司,约翰·史密斯”就行了。但是..。一旦有一份报价发布给一家没有专人的公司,<span t-field="o.partner_id.parent_id.name"/>就会评估为“我的公司”,这显然是错误的。
也有几个案子。试图卖给:
结果与
N <span t-field="o.partner_id.name"/>
id <span t-field="o.partner_id"/>现如下:
个人:
客户有限公司(无人):
客户有限公司约翰·史密斯:
我如何确保报价总是发给客户,而不是发给我自己的公司?
发布于 2020-07-01 03:16:48
我找到了答案。诀窍是查看父级是否存在,然后才使用partner_id.parent_id。如果parent_id不存在,则试图将其引用到Odoo公司的名称。
因此,QWeb报告只需要一个简单的if-然后-否则。下面是代码块:
<t t-if="o.partner_id.parent_id">
<!-- Logic: if a parent connection exists, print parent's name-->
<span t-field="o.partner_id.parent_id"/>
</t>
<t t-else="">
<!-- If parent does not exist, just print the partner_id-->
<span t-field="o.partner_id"/>
</t>https://stackoverflow.com/questions/62667574
复制相似问题