diff --git a/pos_kitchen_screen_odoo/__manifest__.py b/pos_kitchen_screen_odoo/__manifest__.py index 35909274d..266a5e08a 100644 --- a/pos_kitchen_screen_odoo/__manifest__.py +++ b/pos_kitchen_screen_odoo/__manifest__.py @@ -21,7 +21,7 @@ ############################################################################# { 'name': 'POS Kitchen Screen', - 'version': '17.0.1.0.0', + 'version': '17.0.1.0.1', 'category': 'Point Of Sale', 'summary': 'POS Kitchen Screen facilitates sending certain orders ' 'automatically to the kitchen.The POS Kitchen Screen allows for' @@ -54,8 +54,9 @@ ], 'assets': { 'point_of_sale._assets_pos': [ - 'pos_kitchen_screen_odoo/static/src/js/order_button.js', + 'pos_kitchen_screen_odoo/static/src/js/fields_load.js', 'pos_kitchen_screen_odoo/static/src/js/order_payment.js', + 'pos_kitchen_screen_odoo/static/src/js/order_button.js', ], 'web.assets_backend': [ 'pos_kitchen_screen_odoo/static/src/css/kitchen_screen.css', diff --git a/pos_kitchen_screen_odoo/models/pos_orders.py b/pos_kitchen_screen_odoo/models/pos_orders.py index 70e9d1206..d3b23b103 100644 --- a/pos_kitchen_screen_odoo/models/pos_orders.py +++ b/pos_kitchen_screen_odoo/models/pos_orders.py @@ -60,27 +60,6 @@ class PosOrder(models.Model): vals["name"] = self._compute_order_name() return super(PosOrder, self).write(vals) - # @api.model_create_multi - # def create(self, vals_list): - # """Override create function with notification (replace 'your_model.name' with your actual model name)""" - # - # # 1. Notification on creation - # message = { - # 'res_model': self._name, - # 'message': 'pos_order_created' - # } - # self.env["bus.bus"]._sendone('pos_order_created', "notification", - # message) - # - # for vals in vals_list: - # for order in self: - # if order.name == '/': - # vals['name'] = self._compute_order_name() - # session = self.env['pos.session'].browse(vals['session_id']) - # vals = self._complete_values_from_session(session, vals) - # - # return super().create(vals_list) - @api.model_create_multi def create(self, vals_list): """Override create function for the validation of the order""" @@ -88,7 +67,6 @@ class PosOrder(models.Model): 'res_model': self._name, 'message': 'pos_order_created' } - self.env["bus.bus"]._sendone('pos_order_created', "notification", message) @@ -97,19 +75,11 @@ class PosOrder(models.Model): [("pos_reference", "=", vals["pos_reference"])]) if pos_orders: for rec in pos_orders.lines: - print("L", rec) - if "lines" in vals_list[0] and isinstance(vals_list[0]["lines"], list): - for lin in vals_list[0]["lines"]: - print("P", lin) - if lin[2]["product_id"] == rec.product_id.id: - lin[2]["order_status"] = rec.order_status - else: - # Handle the case where "lines" is not a list - print("Error: vals_list[0]['lines'] is not a list") - vals_list[0]["order_status"] = pos_orders.order_status - print("Val_list", vals_list) - return super().create(vals_list) - + for lin in vals_list[0]["lines"]: + if lin[2]["product_id"] == rec.product_id.id: + lin[2]["order_status"] = rec.order_status + vals_list[0]["order_status"] = pos_orders.order_status + return super().create(vals_list) else: if vals.get('order_id') and not vals.get('name'): @@ -138,7 +108,7 @@ class PosOrder(models.Model): kitchen_screen = self.env["kitchen.screen"].sudo().search( [("pos_config_id", "=", shop_id)]) pos_orders = self.env["pos.order.line"].search( - [("is_cooking", "=", True), + ["&", ("is_cooking", "=", True), ("product_id.pos_categ_ids", "in", [rec.id for rec in kitchen_screen.pos_categ_ids])]) pos = self.env["pos.order"].search( @@ -276,39 +246,3 @@ class PosOrderLine(models.Model): self.order_status = 'waiting' else: self.order_status = 'ready' - - @api.model_create_multi - def create(self, vals_list): - """Override create function for the validation of the order""" - message = { - 'res_model': self._name, - 'message': 'pos_order_created' - } - self.env["bus.bus"]._sendone('pos_order_created', - "notification", - message) - for vals in vals_list: - pos_orders = self.search( - [("order_id", "=", vals["order_id"])]) - if pos_orders: - for vals in vals_list: - pos_orders = self.env['pos.order'].search([('order_id', '=', vals['order_id'])]) - if pos_orders: - for pos_order in pos_orders: - for rec in pos_order.lines: - for lin in vals.get('lines', []): - if lin[2]["product_id"] == rec.product_id.id: - lin[2]["order_status"] = rec.order_status - vals['order_status'] = pos_orders[0].order_status - return super().create(vals_list) - else: - if vals.get('order_id') and not vals.get('name'): - # set name based on the sequence specified on the config - config = self.env['pos.order'].browse(vals['order_id']).session_id.config_id - if config.sequence_line_id: - vals['name'] = config.sequence_line_id._next() - if not vals.get('name'): - # fallback on any pos.order sequence - vals['name'] = self.env['ir.sequence'].next_by_code('pos.order.line') - return super().create(vals_list) - diff --git a/pos_kitchen_screen_odoo/static/src/js/kitchen_screen.js b/pos_kitchen_screen_odoo/static/src/js/kitchen_screen.js index 7a17aebe9..d0220cb29 100644 --- a/pos_kitchen_screen_odoo/static/src/js/kitchen_screen.js +++ b/pos_kitchen_screen_odoo/static/src/js/kitchen_screen.js @@ -1,7 +1,7 @@ /** @odoo-module */ import { registry } from "@web/core/registry"; -const { Component, onWillStart, onWillUnmount, useState, onMounted } = owl; +const { Component, onWillStart, useState, onMounted } = owl; import { useService } from "@web/core/utils/hooks"; @@ -46,7 +46,6 @@ class kitchen_screen_dashboard extends Component { self.state.waiting_count=self.state.order_details.filter((order) => order.order_status=='waiting' && order.config_id[0]==self.state.shop_id).length self.state.ready_count=self.state.order_details.filter((order) => order.order_status=='ready' && order.config_id[0]==self.state.shop_id).length }); - } //Calling the onPosOrderCreation when an order is created or edited on the backend and return the notification @@ -55,12 +54,12 @@ class kitchen_screen_dashboard extends Component { var self=this if(payload.message == "pos_order_created" && payload.res_model == "pos.order"){ self.orm.call("pos.order", "get_details", ["", self.shop_id,""]).then(function(result) { - self.state.order_details = result['orders'] - self.state.lines = result['order_lines'] - self.state.shop_id=self.shop_id - self.state.draft_count=self.state.order_details.filter((order) => order.order_status=='draft' && order.config_id[0]==self.state.shop_id).length - self.state.waiting_count=self.state.order_details.filter((order) => order.order_status=='waiting' && order.config_id[0]==self.state.shop_id).length - self.state.ready_count=self.state.order_details.filter((order) => order.order_status=='ready' && order.config_id[0]==self.state.shop_id).length + self.state.order_details = result['orders'] + self.state.lines = result['order_lines'] + self.state.shop_id=self.shop_id + self.state.draft_count=self.state.order_details.filter((order) => order.order_status=='draft' && order.config_id[0]==self.state.shop_id).length + self.state.waiting_count=self.state.order_details.filter((order) => order.order_status=='waiting' && order.config_id[0]==self.state.shop_id).length + self.state.ready_count=self.state.order_details.filter((order) => order.order_status=='ready' && order.config_id[0]==self.state.shop_id).length }); } } diff --git a/pos_kitchen_screen_odoo/static/src/js/order_button.js b/pos_kitchen_screen_odoo/static/src/js/order_button.js index 93f403a07..66041e44b 100644 --- a/pos_kitchen_screen_odoo/static/src/js/order_button.js +++ b/pos_kitchen_screen_odoo/static/src/js/order_button.js @@ -36,13 +36,13 @@ setup() { if (!this.clicked) { this.clicked = true; try { - var order_name=this.currentOrder.name + var order_name=this.pos.selectedOrder.uid await this.orm.call("pos.order", "check_order_status", ["", order_name]).then(function(result){ if (result==false){ self.kitchen_order_status=false self.popup.add(ErrorPopup, { title: _t("Order is Completed"), - body: _t("This Order is Completed please create a new Order"), + body: _t("There Order is Completed please create a new Order"), }); } else{ @@ -72,7 +72,7 @@ setup() { }]) } var orders = [{ - 'pos_reference': this.pos.get_order().name, + 'pos_reference': this.pos.get_order().uid, 'session_id':1, 'amount_total': 0, 'amount_paid': 0, diff --git a/pos_kitchen_screen_odoo/static/src/js/order_payment.js b/pos_kitchen_screen_odoo/static/src/js/order_payment.js index 5f39179d9..bd8063857 100644 --- a/pos_kitchen_screen_odoo/static/src/js/order_payment.js +++ b/pos_kitchen_screen_odoo/static/src/js/order_payment.js @@ -22,7 +22,7 @@ patch(Order.prototype, { * Override of the pay method to handle payment logic. */ async pay() { - var order_name = this.pos.selectedOrder.name; + var order_name = this.pos.selectedOrder.uid; var self = this; await this.orm.call("pos.order", "check_order", ["", order_name]).then(function (result) { if (result.category) {