diff --git a/__manifest__.py b/__manifest__.py index f57527a..aaf41e5 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -20,6 +20,7 @@ Features 'depends': ['point_of_sale', 'pos_restaurant'], 'data': [ 'views/res_config_settings_views.xml', + 'views/pos_order_view.xml', ], 'assets': { 'point_of_sale._assets_pos': [ diff --git a/models/pos_order.py b/models/pos_order.py index 23ce404..5d80b1d 100644 --- a/models/pos_order.py +++ b/models/pos_order.py @@ -72,3 +72,24 @@ class PosOrder(models.Model): 'has_real_orders': bool(real_orders), 'order_count': len(real_orders), } + + def _process_order(self, order, existing_order): + """ + Override to automatically concatenate orderline customer notes into the + general_customer_note so they are easily visible on the backend. + """ + if 'lines' in order: + line_notes = [] + for line in order['lines']: + if len(line) >= 3 and isinstance(line[2], dict) and line[2].get('customer_note'): + line_notes.append(line[2]['customer_note'].strip()) + + if line_notes: + combined_notes = " / ".join(line_notes) + if order.get('general_customer_note'): + order['general_customer_note'] = f"{order['general_customer_note']} / {combined_notes}" + else: + order['general_customer_note'] = combined_notes + + return super(PosOrder, self)._process_order(order, existing_order) + diff --git a/views/pos_order_view.xml b/views/pos_order_view.xml new file mode 100644 index 0000000..94cf455 --- /dev/null +++ b/views/pos_order_view.xml @@ -0,0 +1,14 @@ + + + + pos.order.form.inherit.pos_ui_optimization + pos.order + + + + + show + + + +