Перейти к содержимому
Меню
Чтобы взаимодействовать с сообществом, необходимо зарегистрироваться.
Этот вопрос был отмечен
1 Ответить
6989 Представления


I'm trying to overwrite Orderline price in POS Odoo


**My price.js**


    get_unit_display_price: function(){    

        var self = this;           

        var line = self.export_as_JSON();
        var product = this.pos.db.get_product_by_id(line.product_id);     

        fields.product_id  = line.product_id;
        fields.pricelist_id   = this.pos.config.pricelist_id[0];
        fields.uom = product.uom_id;
        fields.line_qty = line.qty;
        fields.price_unit = line.price_unit;
        var model = new Model('pos.order');
         this.total_price = model.call('calculate_price',         

                  [0, fields]).done(function(result){       

              total_price = result['total_price'];
                     return  result['total_price'];
                });
             }


**price.xml**



            <t t-jquery=".price" t-operation="append">              

           <t t-esc="widget.format_currency(line.get_unit_display_price)"/>     

            </t>


I'm getting value **total_price** from Model (price.py)

But returning is **undefined** in get_unit_display_price in xml file.
How to set value in xml from js after execution of new model function (js value from model) ?.

Аватар
Отменить
Лучший ответ

If you want to return value in result['total_price'].
Frist create a var price_new in function get_unit_display_price.
Store result['total_price'] to price_new inside the python call function.

Return price_new after python call function.

Your code should look like:

    get_unit_display_price: function(){    

        var self = this;           

        var price_new;

        var line = self.export_as_JSON();
        var product = this.pos.db.get_product_by_id(line.product_id);     

        fields.product_id  = line.product_id;
        fields.pricelist_id   = this.pos.config.pricelist_id[0];
        fields.uom = product.uom_id;
        fields.line_qty = line.qty;
        fields.price_unit = line.price_unit;
        var model = new Model('pos.order');
         this.total_price = model.call('calculate_price',         

                  [0, fields]).done(function(result){       

                      total_price = result['total_price'];
                      price_new =  result['total_price'];
                });

                 return price_new
             }

Аватар
Отменить
Related Posts Ответы Просмотры Активность
4
нояб. 19
4655
0
июн. 18
3401
1
дек. 17
4806
0
февр. 17
3822
0
апр. 25
1166