gpt4 book ai didi

python - 如何对 View Qweb 中的字段求和?

转载 作者:太空宇宙 更新时间:2023-11-03 16:45:50 26 4
gpt4 key购买 nike

我正在 account.invoice 模型中创建一个报告(qweb View ),并希望对每个发票行的一些字段进行求和,如下图所示:

enter image description here

问题是没有按照我想要的方式对字段求和。我该怎么办?

cantidad_producto = fields.Integer(string='Cantidad Producto', store=True, readonly=True, compute='cantidad_consolidado')
total_precio_unitario = fields.Monetary(string='Total precio unitario', store=True, readonly=True, compute='cantidad_consolidado')
total_precio_neto = fields.Monetary(string='Total Cantidad Producto', store=True, readonly=True, compute='cantidad_consolidado')

这是我在文件 account.invoice.py 中的计算函数:

@api.one
@api.depends('invoice_line_ids.quantity', 'invoice_line_ids.price_unit', 'invoice_line_ids.price_subtotal')
def cantidad_consolidado(self):
self.cantidad_producto = sum(line.quantity for line in self.invoice_line_ids)
self.total_precio_unitario = sum(line.price_unit for line in self.invoice_line_ids)
self.total_precio_neto = sum(line.price_subtotal for line in self.invoice_line_ids

最后,这是我的 View 代码:

<p>Resumen</p>
<table class="table table-bordered">
<thead>
<tr>
<th class="text-center">Total Cantidad</th>
<th class="text-center">Total Precio Unitario</th>
<th class="text-center">Total Precio(Neto)</th>
</tr>
</thead>
<tbody class="invoice_tbody">
<td class="text-center">
<span t-esc="cantidad_producto" />
</td>
<td class="text-center">
<span t-esc="total_precio_unitario" />
</td>
<td class="text-center">
<span t-esc="total_precio_neto" />
</td>
</tbody>
</table>

为什么不对报告中的字段求和?有人可以告诉我,请帮助我。

最佳答案

您需要定义一个从 report_sxw.rml_parse 类继承的类,在该类中您需要定义 init 方法,您需要在其中添加 方法名称作为localcontext字典的KEY

class sale_quotation_report(report_sxw.rml_parse):

def __init__(self, cr, uid, name, context):
super(sale_quotation_report, self).__init__(cr, uid, name, context=context)
self.localcontext.update({
‘get_total’: self._get_total,
})

def _get_total(self, lines, field):
total = 0.0
for line in lines :
total += line.product_uom_qty or 0.0
return total

还需要定义一个继承自osv.AbstractModel的类

class report_saleorderqweb(osv.AbstractModel):
_name = ‘module_name.report_sale_order_qweb’
_inherit = ‘report.abstract_report’
_template = ‘module_name.report_sale_order_qweb’
_wrapped_report_class = sale_quotation_report

Here,

_name = ‘report.<module_name>.<report_name>’
_inherit = ‘report.abstract_report’
_template = ‘<module_name>.<report_name>’
_wrapped_report_class = <parser_class_name>

最后从模板调用该方法

<t t-foreach=”docs” t-as=”o”>
<span t-esc=”get_total(o.order_line)”/>
</t>

您可以引用Steps to create Qweb report

关于python - 如何对 View Qweb 中的字段求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36319261/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com