Odoo: Editar, quitar columna en informe modelo de pedido, factura

Se pueden modificar los modelos mediante lenguaje QWeb.

En este caso concreto voy a quitar la columna de Descuento y que el precio unitario sea el precio ya descontado.

Nos metemos como Administrador y activamos el "Modo desarrollador".

Vamos y editamos:

  1. Informes
  2. Presupuesto / Pedido
  3. Vistas
  4. report_saleorder_document (este modelo es el básico del que heredan el resto)

Este es el código de la parte del "cuerpo" del modelo y fijaos que comento con KLO la línea que hace que aparezca el descuento:

.....
<!-- KLO. <t t-set="display_discount" t-value="any(l.discount for l in doc.order_line)"/> -->

        <table class="table table-sm o_main_table">
            <!-- In case we want to repeat the header, remove "display: table-row-group" -->
            <thead style="display: table-row-group">
                <tr>
                    <th name="th_description" class="text-left">Description</th>
                    <th name="th_quantity" class="text-right">Quantity</th>
                    <th name="th_priceunit" class="text-right">Unit Price</th>
                    <th name="th_discount" t-if="display_discount" class="text-right" groups="product.group_discount_per_so_line">
                        <span>Disc.%</span>
                    </th>
                    <th name="th_taxes" class="text-right">Taxes</th>
                    <th name="th_subtotal" class="text-right">
                        <span groups="account.group_show_line_subtotals_tax_excluded">Amount</span>
                        <span groups="account.group_show_line_subtotals_tax_included">Total Price</span>
                    </th>
                </tr>
            </thead>
            <tbody class="sale_tbody">

                <t t-set="current_subtotal" t-value="0"/>

                <t t-foreach="doc.order_line" t-as="line">

                    <t t-set="current_subtotal" t-value="current_subtotal + line.price_subtotal" groups="account.group_show_line_subtotals_tax_excluded"/>
                    <t t-set="current_subtotal" t-value="current_subtotal + line.price_total" groups="account.group_show_line_subtotals_tax_included"/>

                    <tr t-att-class="'bg-200 font-weight-bold o_line_section' if line.display_type == 'line_section' else 'font-italic o_line_note' if line.display_type == 'line_note' else ''">
                        <t t-if="not line.display_type">
                            <td name="td_name"><span t-field="line.name"/></td>
                            <td name="td_quantity" class="text-right">
                                <span t-field="line.product_uom_qty"/>
                                <span t-field="line.product_uom"/>
                            </td>
                            <td name="td_priceunit" class="text-right">
                                <span t-field="line.price_reduce"/>
                            </td>
                            <td t-if="display_discount" class="text-right" groups="product.group_discount_per_so_line">
                                <span t-field="line.discount"/>
                            </td>
                            <td name="td_taxes" class="text-right">
                                <span t-esc="', '.join(map(lambda x: (x.description or x.name), line.tax_id))"/>
                            </td>
                            <td name="td_subtotal" class="text-right o_price_total">
                                <span t-field="line.price_subtotal" groups="account.group_show_line_subtotals_tax_excluded"/>
                                <span t-field="line.price_total" groups="account.group_show_line_subtotals_tax_included"/>
                            </td>
                        </t>
                        <t t-if="line.display_type == 'line_section'">
                            <td name="td_section_line" colspan="99">
                                <span t-field="line.name"/>
                            </td>
                            <t t-set="current_section" t-value="line"/>
                            <t t-set="current_subtotal" t-value="0"/>
                        </t>
                        <t t-if="line.display_type == 'line_note'">
                            <td name="td_note_line" colspan="99">
                                <span t-field="line.name"/>
                            </td>
                        </t>
                    </tr>

                    <t t-if="current_section and (line_last or doc.order_line[line_index+1].display_type == 'line_section')">
                        <tr class="is-subtotal text-right">
                            <td name="td_section_subtotal" colspan="99">
                                <strong class="mr16">Subtotal</strong>
                                <span t-esc="current_subtotal" t-options="{"widget": "monetary", "display_currency": doc.pricelist_id.currency_id}"/>
                            </td>
                        </tr>
                    </t>
                </t>
            </tbody>
        </table>
.....

Fijarse también en el campo de precio unitario ya descontado (line.price_reduce), es la siguiente etiqueta:

<td name="td_priceunit" class="text-right">
   <span t-field="line.price_reduce"/>
</td>

Con esto logramos que en el modelo de pedido/albarán/factura de venta no aparezca la columna Descuento y el precio unitario sea el descontado.

Los comentarios están cerrados.