You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
2.3 KiB
60 lines
2.3 KiB
odoo.define('pos_table_merge_orders.PosTablePopup', function(require) {
|
|
"use strict";
|
|
const Popup = require('point_of_sale.ConfirmPopup');
|
|
const Registries = require('point_of_sale.Registries');
|
|
const PosComponent = require('point_of_sale.PosComponent');
|
|
class PosTablePopup extends Popup {
|
|
constructor() {
|
|
super(...arguments);
|
|
}
|
|
setup() {
|
|
super.setup();
|
|
this.selectedTable = [];
|
|
}
|
|
// Floor details can fetch
|
|
get floors() {
|
|
var tables = [];
|
|
var floors = this.env.pos.table.floor
|
|
floors.tables.forEach(item => {
|
|
tables.push({'id':item.id, 'name':item.name})
|
|
})
|
|
return tables;
|
|
}
|
|
// Event for selecting the tables
|
|
click_on_merge_table(event) {
|
|
var self = this;
|
|
if($(event.target).data('click') == '1'){
|
|
$(event.target).data('click','0')
|
|
$(event.target).css("background-color", "#fff");
|
|
var index = this.selectedTable.indexOf($(event.target).data('table_id'))
|
|
this.selectedTable.splice(index,1)
|
|
}
|
|
else{
|
|
$(event.target).data('click','1')
|
|
this.selectedTable.push($(event.target).data('table_id'))
|
|
$(event.target).css("background-color", "#90EE90");
|
|
}
|
|
}
|
|
// Event for adding order lines
|
|
merge_orderline(event) {
|
|
var self = this;
|
|
var select = this.selectedTable
|
|
this.selectedTable.forEach(table => {
|
|
this.env.pos.orders.forEach(item => {
|
|
if(item.tableId == table){
|
|
item.orderlines.forEach(line => {
|
|
this.env.pos.get_order().orderlines.add(line);
|
|
});
|
|
this.env.pos.removeOrder(item)
|
|
}
|
|
});
|
|
});
|
|
this.env.pos.get_order().select_orderline(this.env.pos.get_order().get_last_orderline());
|
|
this.env.posbus.trigger('close-popup', {
|
|
popupId: this.props.id }); // close popup
|
|
}
|
|
};
|
|
PosTablePopup.template = 'PosTablePopup';
|
|
Registries.Component.add(PosTablePopup);
|
|
return PosTablePopup;
|
|
});
|
|
|