Сортировка строки отчета Qweb по номерам в отчете POS_Sale_detail - PullRequest
0 голосов
/ 07 мая 2020

Я хочу отсортировать отчет qweb по убыванию по возрастанию на основе отмеченного ниже поля на изображении введите описание изображения здесь

код xml для отчета выглядит следующим образом Далее таблица должна быть отсортирована на основе поля, выделенного жирным шрифтом

Продукты

        <table class="table table-condensed">

            <thead><tr>

                <th>Product</th>

                <th>Quantity</th>

                <th>Cost Price</th>

                <th>Total Cost </th>

                <th>Price Unit</th>

                <th>Amount without VAT</th>

                <th>VAT</th>

                <th>VAT Amount</th>

                <th>Total Amount</th>

            </tr></thead>

            <tbody>

               <tr t-foreach="products" t-as="line">

                   <td>

                       <t t-esc="line['product_name']"/>

                       <td>

                       <t t-esc="line['quantity']"/>

                       <t t-if="line[&quot;uom&quot;] != &quot;Unit(s)&quot;">

                       <t t-esc="line[&quot;uom&quot;]"/> 

                       </t>

                       </td>

                       <td>

                       <t t-esc="'%.2f'%(request.env['product.product'].browse(line['product_id']).standard_price)"/>

                       </td>

                       <td>

                       <t t-esc="'%.2f'%(line['quantity']*request.env['product.product'].browse(line['product_id']).standard_price)"/>

                       </td>                  

                       <td>

                       <t t-esc="'%.2f'%line[&quot;price_unit&quot;]"/>

                       <t t-if="line[&quot;discount&quot;] != 0">

                       Disc: <t t-esc="line[&quot;discount&quot;]"/>%

                       </t>

                       </td>

                       <td>

                       <t t-esc="'%.2f'%((line['quantity']*line['price_unit'])/1.05)"/>

                       </td>

                       <td>

                       5%

                       </td>

                       <td>

                       <t t-esc="'%.2f'%(((line['quantity']*line['price_unit'])/1.05)*0.05)"/>

                       </td>

                       ****<td>
                       <t t-esc="'%.2f'%(line['quantity']*line['price_unit'])"/>
                       </td>****

            </tr>

            </tbody>

        </table>

просьба указать код для того же поля, и где разместить код

1 Ответ

0 голосов
/ 13 мая 2020

Предположим, что products - это список словаря, и вам нужно отсортировать, используя Total (количество * price_unit) .

Вы можете использовать sorted с t-foreach:

<tr t-foreach="sorted(products, key=lambda d: d['quantity']*d['price_unit'])" t-as="line">

Если вы хотите изменить порядок, установите аргумент reverse в True.

...