Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
1 Trả lời
638 Lượt xem

On my situation, i had add a new field in pos.order.line (it's 'selected_location_id')
class PosOrderLinesExtended(models.Model):

_inherit = 'pos.order.line'


selected_location_id = fields.Many2one('stock.location', string="POS Location")

@api.model

def _load_pos_data_fields(self, config_id):

data = super()._load_pos_data_fields(config_id)

print("dataaaa",data)

data += ['selected_location_id']

return data


def create(self, vals):

_logger.info("📥 pos.order.line vals nhận được: %s", vals)

return super().create(vals)


In pos, i create a new Component to select stock location with some location have a field to checck select on pos,

patch(PosStore.prototype, {

async addLineToOrder(vals, order, opts = {}, configure = true) {

const location = await makeAwaitable(this.dialog, LocationPopup);

if (location) {

vals.selected_location_id = location.id;

}

const line = await super.addLineToOrder(vals, order, opts, configure);

line.selected_location_id = location?.id;

console.log("lineeeeeee",line)

return line;

}

});


but when i validate the posorder in pos, it not give back select a location to field  in pos.order.line

all of my module custom in this link:
https://github.com/IdalisNguyen/POS-Select-Location.git

Someone explain to me why I can't get the data from above pos to return to the variable below model?
Thanks you for your attention

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Hii,


Add this patch in your JS, for example in pos_select_location/static/src/js/pos_loader_patch.js:

import { PosGlobalState } from 'point_of_sale.models';

import { patch } from 'web.utils';


patch(PosGlobalState.prototype, {

    _loaderParams() {

        const params = super._loaderParams();

        if (!params.pos_order_line_fields.includes('selected_location_id')) {

            params.pos_order_line_fields.push('selected_location_id');

        }

        return params;

    },

});

This ensures selected_location_id is part of the order lines fields that are sent to backend.


Clear browser cache & upgrade module

./odoo-bin -u pos_select_location -d your_db


i hope it is use full

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 8 25
168
0
thg 11 24
2045
0
thg 12 22
2740
1
thg 11 24
2357
1
thg 11 24
2166