Ciao a tutti.
Personalizzando il report DDT per stampare i costi del materiale trasferito e il costo totale, mi sono imbattuto in un problema:
analogamente a Odoo 8, pensavo di utilizzare la funzione reduce(lambda x, y: x+y['product_id']['product_tmpl_id']['list_price']*y['product_uom_qty'], o.move_lines, 0) per calcolare l'importo di tutta la merce trasferita, ma python3 richiede che di importare la funzione reduce da functools, cosa che odoo 12 non fa, e l'errore ottenuto era
NameError: name 'reduce' is not defined
Grazie all'aiuto di Luca Subiaco ho risolto il problema cambiando strategia, utilizzando una variabile all'interno del ciclo for che elenca tutti gli articoli per sommare uno dopo l'altro l'importo di ogni articolo:
<t t-set="total_value" t-value="0"/>
<tr t-foreach="o.line_ids" t-as="line">
....
<t t-if="o.show_price">
<t t-set="price" t-value="line.price_unit" />
<t t-if="price==0"><t t-set="price" t-value="line.product_id.product_tmpl_id.list_price" /></t>
<td class="text-right"><span t-esc="price" t-options='{"widget": "float", "precision": 5}'></span></td>
<td class="text-right"><span t-esc="(price*line.product_uom_qty)" t-options='{"widget": "float", "precision": 4}'/></td>
<t t-set="total_value" t-value="total_value + (price * line.product_uom_qty)"/>
</t>
...
<td t-if="o.show_price">
<small>Total without taxes</small><br/>
<span t-esc="total_value" t-options='{"widget": "float", "precision": 2}'/>
</td>
Ciao!
Paolo