From 7c415e972fa97ba52d8d5165fd47494965e3053d Mon Sep 17 00:00:00 2001 From: "David Monnom (moda)" Date: Thu, 26 Jan 2023 10:10:27 +0000 Subject: [PATCH] [FIX] pos_loyalty: fix data format of reward_id in the pos_restaurant Previously, reward_id was an array of two elements containing the ID and name of the reward. But in the frontend, reward_id is supposed to be an int with the ID Adaptation of the _prepare_order_line function in the following modules: - point_of_sale - pos_restaurant - pos_loyalty Now the data is correctly sent to the frontend and the error is no longer present. closes odoo/odoo#111048 Signed-off-by: Heinz Robin (rhe) --- addons/point_of_sale/models/pos_order.py | 3 +++ addons/pos_loyalty/models/pos_order.py | 8 ++++++++ addons/pos_restaurant/models/pos_order.py | 1 + 3 files changed, 12 insertions(+) diff --git a/addons/point_of_sale/models/pos_order.py b/addons/point_of_sale/models/pos_order.py index 6c437693403..0386c933ef4 100644 --- a/addons/point_of_sale/models/pos_order.py +++ b/addons/point_of_sale/models/pos_order.py @@ -1045,6 +1045,9 @@ class PosOrder(models.Model): """This function is here to be overriden""" return [] + def _prepare_order_line(self, order_line): + return order_line + def export_for_ui(self): """ Returns a list of dict with each item having similar signature as the return of `export_as_JSON` of models.Order. This is useful for back-and-forth communication diff --git a/addons/pos_loyalty/models/pos_order.py b/addons/pos_loyalty/models/pos_order.py index 432c105fd8f..7fe18fa26d3 100644 --- a/addons/pos_loyalty/models/pos_order.py +++ b/addons/pos_loyalty/models/pos_order.py @@ -143,6 +143,14 @@ class PosOrder(models.Model): 'coupon_report': coupon_per_report, } + def _prepare_order_line(self, order_line): + order_line = super(PosOrder, self)._prepare_order_line(order_line) + + if order_line["reward_id"]: + order_line["reward_id"] = order_line["reward_id"][0] + + return order_line + def _get_fields_for_order_line(self): fields = super(PosOrder, self)._get_fields_for_order_line() fields.extend(['is_reward_line', 'reward_id', 'coupon_id', 'reward_identifier_code', 'points_cost']) diff --git a/addons/pos_restaurant/models/pos_order.py b/addons/pos_restaurant/models/pos_order.py index 6603509cc71..9f98e7da6b6 100644 --- a/addons/pos_restaurant/models/pos_order.py +++ b/addons/pos_restaurant/models/pos_order.py @@ -73,6 +73,7 @@ class PosOrder(models.Model): :type order_line: pos.order.line. :returns: dict -- dict representing the order line's values. """ + order_line = super(PosOrder, self)._prepare_order_line(order_line) order_line["product_id"] = order_line["product_id"][0] order_line["server_id"] = order_line["id"]