1

如何在发票报告中获取 sale.order 中存在的字段。所以发票报告使用模型account.invoice,如果我在report.py中添加一个函数,它只允许self.cr,self.uid,因为我们没有使用osv.memory。那么如何从 sale.order 中获取 cust_ref_value 的值到发票报告中。

4

1 回答 1

0

我们可以从Source Document

report.py我们需要创建一个函数并在其中传递原点。

def __init__(self, cr, uid, name, context):
    super(your_report_calss_name, self).__init__(cr, uid, name, context)
    self.localcontext.update({
        'time': time, 
        'get_cust_ref_val': self._get_cust_ref_val,
    })

此方法将检查来源是否为 SO 或 PO 或 OUT/###:SO### 或 IN/###:PO### 所以下面的案例在这里

def _get_cust_ref_val(self, origin)
    if 'SO' in origin:
        if 'OUT/' in origin:
            so_name = str(origin).split(':')[1]
            sale_id = self.pool.get('sale.order').search(self.cr, self.uid, [('name', '=', so_name)]
            if sale_id:
                sale = self.pool.get('sale.order').browse(self.cr, self.uid, sale_id)
                return sale.cust_ref_value
        else:
            sale_id = self.pool.get('sale.order').search(self.cr, self.uid, [('name', '=', origin)]
            if sale_id:
                sale = self.pool.get('sale.order').browse(self.cr, self.uid, sale_id)
                return sale.cust_ref_value
    else:
        return ''

并从 rml 方面

[[ get_cust_ref_val(inv.origin) ]]
于 2015-02-13T07:10:41.477 回答