تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
3 الردود
6445 أدوات العرض

Hello, here it is the line taht display the qty available in stock of a product in the product kanban view

<li t-if="record.type.raw_value == 'product'">On hand: <field name="qty_available"/> <field name="uom_id"/></li>

Is there a way to add a second line to display the stock in an another unit, by dividing the value <field name="qty_available"/> by the value of <field name="uom_id.factor"/>


JUST in the XML file !! ??


Thanks a lot.

 

الصورة الرمزية
إهمال
أفضل إجابة

I guess, yes. Have a look at the documentation - - https://www.odoo.com/documentation/11.0/reference/qweb.html#setting-variables

For the example have a look at https://github.com/odoo/odoo/blob/12.0/addons/project/views/project_rating_templates.xml – for instance at the template 'portal_project_rating_progressbar'

Besides, take into account that in kanban:

  1. In that case you should apply by raw_value like record.qty_available.raw_value

  2. To be used as raw value the field should be defined before the kanban tag (have a look at any core odoo kanban)


Finally, just to express my opinion: it doesn't seem really reasonable to make those calculations in xml, since you can calculate them in Python and store them in PostgreSQL. Otherwise, this calculation will take place any time you open your kanban for each record shown (after grouping there might be thousands of records). But that it is surely up to you :)


الصورة الرمزية
إهمال
الكاتب أفضل إجابة

Hi Pujara Geet, thanks for your answer, but i don't really understand what you mean. Your code gave me a loop and all other existing units and display again the same Qty.


Maybe i don't explain very well what i want to do :

The "default" line of code in stock.product_template_kanban_stock_view

display for example :

On hand: 5,000 CARTON X8  (because the unit i define for this product is a box of 8 pieces)

and i want to display just under a second line 

On hand: 40,000 PIECES 

so i need in the XLM to make the math operation Qty*uom_id.factor to calculate 40.


الصورة الرمزية
إهمال
أفضل إجابة

In Your XML(e.g product.xml) File You can Use This Code:


        <record model="ir.ui.view" id="product_template_kanban_stock_view_inherit">
            <field name="name">Product Template Kanban Stock</field>
            <field name="model">product.template</field>
            <field name="inherit_id" ref="stock.product_template_kanban_stock_view"/>
            <field name="arch" type="xml">
                <xpath expr="//ul[1]/li[1]" position="after">
                  <li t-foreach="record.uom_id.raw_value" t-as='o'>
                    <field name="qty_available"/> by the value of <t t-esc="o.factor"/>
                  </li>
                </xpath>
            </field>
        </record>

الصورة الرمزية
إهمال