← Back to team overview

openerp-community-reviewer team mailing list archive

[Merge] lp:~sylvain-legal/openerp-pos/7.0_pos_restaurant into lp:openerp-pos

 

Sylvain LE GAL (GRAP) has proposed merging lp:~sylvain-legal/openerp-pos/7.0_pos_restaurant into lp:openerp-pos with lp:~sylvain-legal/openerp-pos/7.0_pos_second_header as a prerequisite.

Commit message:
[ADD] Add new module to manage restaurant informations in Point Of Sale

Requested reviews:
  OpenERP Community Reviewer/Maintainer (openerp-community-reviewer)

For more details, see:
https://code.launchpad.net/~sylvain-legal/openerp-pos/7.0_pos_restaurant/+merge/228822

This module add extra-features for point of Sale module related to restaurant.
For the time being, it adds:
- pos_table model to select the table of the customers;
- a field in pos_order to select the number of covers;

That features are available in back-end AND front-end views.

Nota: depends on pos_second_header module, not merged yet.
-- 
https://code.launchpad.net/~sylvain-legal/openerp-pos/7.0_pos_restaurant/+merge/228822
Your team OpenERP Community Reviewer/Maintainer is requested to review the proposed merge of lp:~sylvain-legal/openerp-pos/7.0_pos_restaurant into lp:openerp-pos.
=== added file '__init__.py'
--- __init__.py	1970-01-01 00:00:00 +0000
+++ __init__.py	2014-07-30 10:55:25 +0000
@@ -0,0 +1,23 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+#    Point Of Sale - Restaurant module for OpenERP
+#    Copyright (C) 2013-Today GRAP (http://www.grap.coop)
+#    @author Sylvain LE GAL (https://twitter.com/legalsylvain)
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import model

=== added file '__openerp__.py'
--- __openerp__.py	1970-01-01 00:00:00 +0000
+++ __openerp__.py	2014-07-30 10:55:25 +0000
@@ -0,0 +1,69 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+#    Point Of Sale - Restaurant module for OpenERP
+#    Copyright (C) 2013-Today GRAP (http://www.grap.coop)
+#    @author Sylvain LE GAL (https://twitter.com/legalsylvain)
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+{
+    'name': 'Point of Sale - Restaurant',
+    'version': '0.2',
+    'category': 'Sale',
+    'description': """
+Add extra informations for restaurant
+=====================================
+Features :
+----------
+    * Add a model 'pos.table' managed in point_of_sale configuration menu;
+    * Add a field table_id on pos_order;
+    * Possibility to select table in back-office view and tactile view;
+
+Copyright, Authors:
+-------------------------------
+    * Copyright: 2013, GRAP: Groupement Régional Alimentaire de Proximité;
+    * Author:
+        * Sylvain LE GAL (https://twitter.com/legalsylvain);""",
+    'author': 'GRAP',
+    'website': 'http://www.grap.coop',
+    'license': 'AGPL-3',
+    'depends': [
+        'point_of_sale',
+        'pos_second_header',
+    ],
+    'demo': [
+        'demo/pos_table.yml',
+        'demo/sale_shop.yml',
+    ],
+    'data': [
+        'security/ir_rule.yml',
+        'security/ir_module_category.yml',
+        'security/res_groups.yml',
+        'security/ir_model_access.yml',
+        'view/view.xml',
+        'view/action.xml',
+        'view/menu.xml',
+    ],
+    'qweb': [
+        'static/src/xml/pr.xml',
+    ],
+    'js': [
+        'static/src/js/pr.js',
+    ],
+    'css': [
+        'static/src/css/pr.css',
+    ],
+}

=== added directory 'demo'
=== added file 'demo/pos_table.yml'
--- demo/pos_table.yml	1970-01-01 00:00:00 +0000
+++ demo/pos_table.yml	2014-07-30 10:55:25 +0000
@@ -0,0 +1,102 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+#    Point Of Sale - Restaurant module for OpenERP
+#    Copyright (C) 2013-2014 GRAP (http://www.grap.coop)
+#    @author Sylvain LE GAL (https://twitter.com/legalsylvain)
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+- !record {model: pos.table, id: pos_table_01}:
+    name: Table 01
+    shop_id: sale.sale_shop_1
+    image: iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY2NUNGMjhDNEJGNzExRTI5MTMwOUFBNzYyRjZGRjBBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY2NUNGMjhENEJGNzExRTI5MTMwOUFBNzYyRjZGRjBBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjY1Q0YyOEE0QkY3MTFFMjkxMzA5QUE3NjJGNkZGMEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjY1Q0YyOEI0QkY3MTFFMjkxMzA5QUE3NjJGNkZGMEEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4WE30uAAAB+0lEQVR42uybu0oDQRSGd0JYEJJeSKUP4QMIgpWtzyAE7MSX8BEE2zTWlkLqIMQmlZUQ0FKbtRnPkFGWZZadMzMnk7D/Dz+Egbl9c9m5RWmtixgppYqcii3/oOi5BgEtXpKn9UZouCvcxC0Dy3tAviU/kt+NqSzaZVYX8jVpQn7ZRPsP4wLQNo0Js/In5JUjXae968SovGm1ZTODQADapuXbE07JlW/lyR8SAKYuwhEAtE2zSyPymlF5Vg/gzAGXAnOQT5pX5EPRz4hnD6gEekDlUcQ5t/U5PUD5fkebMyvFU65wE1SrKCe8TV92GHAbVol8BjNoJJk4FkIAAAAAAAAAAAAAAAAA0FMNQyPSJujcHlE1xQ3PKs5usCrCz/La9E0ed23sArf5yXeDC4EGeN2nOWAmkP8s+xgIPRRNYN9D0aD0kx+K1o7Fl4kq73ssvjsAaj3hmvwcULC5jcuZTEUBqIR3g20JxV4e7sxXACvBDn16hnF1TL4hP5F/si2EMg6BusxK0lyTnZEvyEexQ2DfADRlALz1GUBrvpgEsR0GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAUpejovmmBHDvCHvYAoC4fLkvRBwvRv5kXn3cFZv/+K3t73ILAJz55nghkkWx5R/mLkBu/QowANEUSRYOoowzAAAAAElFTkSuQmCC
+
+- !record {model: pos.table, id: pos_table_02}:
+    name: Table 02
+    shop_id: sale.sale_shop_1
+    image: iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY2NUNGMjhDNEJGNzExRTI5MTMwOUFBNzYyRjZGRjBBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY2NUNGMjhENEJGNzExRTI5MTMwOUFBNzYyRjZGRjBBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjY1Q0YyOEE0QkY3MTFFMjkxMzA5QUE3NjJGNkZGMEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjY1Q0YyOEI0QkY3MTFFMjkxMzA5QUE3NjJGNkZGMEEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4WE30uAAAB+0lEQVR42uybu0oDQRSGd0JYEJJeSKUP4QMIgpWtzyAE7MSX8BEE2zTWlkLqIMQmlZUQ0FKbtRnPkFGWZZadMzMnk7D/Dz+Egbl9c9m5RWmtixgppYqcii3/oOi5BgEtXpKn9UZouCvcxC0Dy3tAviU/kt+NqSzaZVYX8jVpQn7ZRPsP4wLQNo0Js/In5JUjXae968SovGm1ZTODQADapuXbE07JlW/lyR8SAKYuwhEAtE2zSyPymlF5Vg/gzAGXAnOQT5pX5EPRz4hnD6gEekDlUcQ5t/U5PUD5fkebMyvFU65wE1SrKCe8TV92GHAbVol8BjNoJJk4FkIAAAAAAAAAAAAAAAAA0FMNQyPSJujcHlE1xQ3PKs5usCrCz/La9E0ed23sArf5yXeDC4EGeN2nOWAmkP8s+xgIPRRNYN9D0aD0kx+K1o7Fl4kq73ssvjsAaj3hmvwcULC5jcuZTEUBqIR3g20JxV4e7sxXACvBDn16hnF1TL4hP5F/si2EMg6BusxK0lyTnZEvyEexQ2DfADRlALz1GUBrvpgEsR0GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAUpejovmmBHDvCHvYAoC4fLkvRBwvRv5kXn3cFZv/+K3t73ILAJz55nghkkWx5R/mLkBu/QowANEUSRYOoowzAAAAAElFTkSuQmCC
+
+- !record {model: pos.table, id: pos_table_03}:
+    name: Table 03
+    shop_id: sale.sale_shop_1
+    image: iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY2NUNGMjhDNEJGNzExRTI5MTMwOUFBNzYyRjZGRjBBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY2NUNGMjhENEJGNzExRTI5MTMwOUFBNzYyRjZGRjBBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjY1Q0YyOEE0QkY3MTFFMjkxMzA5QUE3NjJGNkZGMEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjY1Q0YyOEI0QkY3MTFFMjkxMzA5QUE3NjJGNkZGMEEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4WE30uAAAB+0lEQVR42uybu0oDQRSGd0JYEJJeSKUP4QMIgpWtzyAE7MSX8BEE2zTWlkLqIMQmlZUQ0FKbtRnPkFGWZZadMzMnk7D/Dz+Egbl9c9m5RWmtixgppYqcii3/oOi5BgEtXpKn9UZouCvcxC0Dy3tAviU/kt+NqSzaZVYX8jVpQn7ZRPsP4wLQNo0Js/In5JUjXae968SovGm1ZTODQADapuXbE07JlW/lyR8SAKYuwhEAtE2zSyPymlF5Vg/gzAGXAnOQT5pX5EPRz4hnD6gEekDlUcQ5t/U5PUD5fkebMyvFU65wE1SrKCe8TV92GHAbVol8BjNoJJk4FkIAAAAAAAAAAAAAAAAA0FMNQyPSJujcHlE1xQ3PKs5usCrCz/La9E0ed23sArf5yXeDC4EGeN2nOWAmkP8s+xgIPRRNYN9D0aD0kx+K1o7Fl4kq73ssvjsAaj3hmvwcULC5jcuZTEUBqIR3g20JxV4e7sxXACvBDn16hnF1TL4hP5F/si2EMg6BusxK0lyTnZEvyEexQ2DfADRlALz1GUBrvpgEsR0GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAUpejovmmBHDvCHvYAoC4fLkvRBwvRv5kXn3cFZv/+K3t73ILAJz55nghkkWx5R/mLkBu/QowANEUSRYOoowzAAAAAElFTkSuQmCC
+
+- !record {model: pos.table, id: pos_table_04}:
+    name: Table 04
+    shop_id: sale.sale_shop_1
+    image: iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY2NUNGMjhDNEJGNzExRTI5MTMwOUFBNzYyRjZGRjBBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY2NUNGMjhENEJGNzExRTI5MTMwOUFBNzYyRjZGRjBBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjY1Q0YyOEE0QkY3MTFFMjkxMzA5QUE3NjJGNkZGMEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjY1Q0YyOEI0QkY3MTFFMjkxMzA5QUE3NjJGNkZGMEEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4WE30uAAAB+0lEQVR42uybu0oDQRSGd0JYEJJeSKUP4QMIgpWtzyAE7MSX8BEE2zTWlkLqIMQmlZUQ0FKbtRnPkFGWZZadMzMnk7D/Dz+Egbl9c9m5RWmtixgppYqcii3/oOi5BgEtXpKn9UZouCvcxC0Dy3tAviU/kt+NqSzaZVYX8jVpQn7ZRPsP4wLQNo0Js/In5JUjXae968SovGm1ZTODQADapuXbE07JlW/lyR8SAKYuwhEAtE2zSyPymlF5Vg/gzAGXAnOQT5pX5EPRz4hnD6gEekDlUcQ5t/U5PUD5fkebMyvFU65wE1SrKCe8TV92GHAbVol8BjNoJJk4FkIAAAAAAAAAAAAAAAAA0FMNQyPSJujcHlE1xQ3PKs5usCrCz/La9E0ed23sArf5yXeDC4EGeN2nOWAmkP8s+xgIPRRNYN9D0aD0kx+K1o7Fl4kq73ssvjsAaj3hmvwcULC5jcuZTEUBqIR3g20JxV4e7sxXACvBDn16hnF1TL4hP5F/si2EMg6BusxK0lyTnZEvyEexQ2DfADRlALz1GUBrvpgEsR0GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAUpejovmmBHDvCHvYAoC4fLkvRBwvRv5kXn3cFZv/+K3t73ILAJz55nghkkWx5R/mLkBu/QowANEUSRYOoowzAAAAAElFTkSuQmCC
+
+- !record {model: pos.table, id: pos_table_05}:
+    name: Table 05
+    shop_id: sale.sale_shop_1
+    image: iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY2NUNGMjhDNEJGNzExRTI5MTMwOUFBNzYyRjZGRjBBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY2NUNGMjhENEJGNzExRTI5MTMwOUFBNzYyRjZGRjBBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjY1Q0YyOEE0QkY3MTFFMjkxMzA5QUE3NjJGNkZGMEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjY1Q0YyOEI0QkY3MTFFMjkxMzA5QUE3NjJGNkZGMEEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4WE30uAAAB+0lEQVR42uybu0oDQRSGd0JYEJJeSKUP4QMIgpWtzyAE7MSX8BEE2zTWlkLqIMQmlZUQ0FKbtRnPkFGWZZadMzMnk7D/Dz+Egbl9c9m5RWmtixgppYqcii3/oOi5BgEtXpKn9UZouCvcxC0Dy3tAviU/kt+NqSzaZVYX8jVpQn7ZRPsP4wLQNo0Js/In5JUjXae968SovGm1ZTODQADapuXbE07JlW/lyR8SAKYuwhEAtE2zSyPymlF5Vg/gzAGXAnOQT5pX5EPRz4hnD6gEekDlUcQ5t/U5PUD5fkebMyvFU65wE1SrKCe8TV92GHAbVol8BjNoJJk4FkIAAAAAAAAAAAAAAAAA0FMNQyPSJujcHlE1xQ3PKs5usCrCz/La9E0ed23sArf5yXeDC4EGeN2nOWAmkP8s+xgIPRRNYN9D0aD0kx+K1o7Fl4kq73ssvjsAaj3hmvwcULC5jcuZTEUBqIR3g20JxV4e7sxXACvBDn16hnF1TL4hP5F/si2EMg6BusxK0lyTnZEvyEexQ2DfADRlALz1GUBrvpgEsR0GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAUpejovmmBHDvCHvYAoC4fLkvRBwvRv5kXn3cFZv/+K3t73ILAJz55nghkkWx5R/mLkBu/QowANEUSRYOoowzAAAAAElFTkSuQmCC
+
+- !record {model: pos.table, id: pos_table_06}:
+    name: Table 06
+    shop_id: sale.sale_shop_1
+    image: iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY2NUNGMjhDNEJGNzExRTI5MTMwOUFBNzYyRjZGRjBBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY2NUNGMjhENEJGNzExRTI5MTMwOUFBNzYyRjZGRjBBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjY1Q0YyOEE0QkY3MTFFMjkxMzA5QUE3NjJGNkZGMEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjY1Q0YyOEI0QkY3MTFFMjkxMzA5QUE3NjJGNkZGMEEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4WE30uAAAB+0lEQVR42uybu0oDQRSGd0JYEJJeSKUP4QMIgpWtzyAE7MSX8BEE2zTWlkLqIMQmlZUQ0FKbtRnPkFGWZZadMzMnk7D/Dz+Egbl9c9m5RWmtixgppYqcii3/oOi5BgEtXpKn9UZouCvcxC0Dy3tAviU/kt+NqSzaZVYX8jVpQn7ZRPsP4wLQNo0Js/In5JUjXae968SovGm1ZTODQADapuXbE07JlW/lyR8SAKYuwhEAtE2zSyPymlF5Vg/gzAGXAnOQT5pX5EPRz4hnD6gEekDlUcQ5t/U5PUD5fkebMyvFU65wE1SrKCe8TV92GHAbVol8BjNoJJk4FkIAAAAAAAAAAAAAAAAA0FMNQyPSJujcHlE1xQ3PKs5usCrCz/La9E0ed23sArf5yXeDC4EGeN2nOWAmkP8s+xgIPRRNYN9D0aD0kx+K1o7Fl4kq73ssvjsAaj3hmvwcULC5jcuZTEUBqIR3g20JxV4e7sxXACvBDn16hnF1TL4hP5F/si2EMg6BusxK0lyTnZEvyEexQ2DfADRlALz1GUBrvpgEsR0GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAUpejovmmBHDvCHvYAoC4fLkvRBwvRv5kXn3cFZv/+K3t73ILAJz55nghkkWx5R/mLkBu/QowANEUSRYOoowzAAAAAElFTkSuQmCC
+
+- !record {model: pos.table, id: pos_table_07}:
+    name: Table 07
+    shop_id: sale.sale_shop_1
+    image: iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY2NUNGMjhDNEJGNzExRTI5MTMwOUFBNzYyRjZGRjBBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY2NUNGMjhENEJGNzExRTI5MTMwOUFBNzYyRjZGRjBBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjY1Q0YyOEE0QkY3MTFFMjkxMzA5QUE3NjJGNkZGMEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjY1Q0YyOEI0QkY3MTFFMjkxMzA5QUE3NjJGNkZGMEEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4WE30uAAAB+0lEQVR42uybu0oDQRSGd0JYEJJeSKUP4QMIgpWtzyAE7MSX8BEE2zTWlkLqIMQmlZUQ0FKbtRnPkFGWZZadMzMnk7D/Dz+Egbl9c9m5RWmtixgppYqcii3/oOi5BgEtXpKn9UZouCvcxC0Dy3tAviU/kt+NqSzaZVYX8jVpQn7ZRPsP4wLQNo0Js/In5JUjXae968SovGm1ZTODQADapuXbE07JlW/lyR8SAKYuwhEAtE2zSyPymlF5Vg/gzAGXAnOQT5pX5EPRz4hnD6gEekDlUcQ5t/U5PUD5fkebMyvFU65wE1SrKCe8TV92GHAbVol8BjNoJJk4FkIAAAAAAAAAAAAAAAAA0FMNQyPSJujcHlE1xQ3PKs5usCrCz/La9E0ed23sArf5yXeDC4EGeN2nOWAmkP8s+xgIPRRNYN9D0aD0kx+K1o7Fl4kq73ssvjsAaj3hmvwcULC5jcuZTEUBqIR3g20JxV4e7sxXACvBDn16hnF1TL4hP5F/si2EMg6BusxK0lyTnZEvyEexQ2DfADRlALz1GUBrvpgEsR0GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAUpejovmmBHDvCHvYAoC4fLkvRBwvRv5kXn3cFZv/+K3t73ILAJz55nghkkWx5R/mLkBu/QowANEUSRYOoowzAAAAAElFTkSuQmCC
+
+- !record {model: pos.table, id: pos_table_08}:
+    name: Table 08
+    shop_id: sale.sale_shop_1
+    image: iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY2NUNGMjhDNEJGNzExRTI5MTMwOUFBNzYyRjZGRjBBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY2NUNGMjhENEJGNzExRTI5MTMwOUFBNzYyRjZGRjBBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjY1Q0YyOEE0QkY3MTFFMjkxMzA5QUE3NjJGNkZGMEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjY1Q0YyOEI0QkY3MTFFMjkxMzA5QUE3NjJGNkZGMEEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4WE30uAAAB+0lEQVR42uybu0oDQRSGd0JYEJJeSKUP4QMIgpWtzyAE7MSX8BEE2zTWlkLqIMQmlZUQ0FKbtRnPkFGWZZadMzMnk7D/Dz+Egbl9c9m5RWmtixgppYqcii3/oOi5BgEtXpKn9UZouCvcxC0Dy3tAviU/kt+NqSzaZVYX8jVpQn7ZRPsP4wLQNo0Js/In5JUjXae968SovGm1ZTODQADapuXbE07JlW/lyR8SAKYuwhEAtE2zSyPymlF5Vg/gzAGXAnOQT5pX5EPRz4hnD6gEekDlUcQ5t/U5PUD5fkebMyvFU65wE1SrKCe8TV92GHAbVol8BjNoJJk4FkIAAAAAAAAAAAAAAAAA0FMNQyPSJujcHlE1xQ3PKs5usCrCz/La9E0ed23sArf5yXeDC4EGeN2nOWAmkP8s+xgIPRRNYN9D0aD0kx+K1o7Fl4kq73ssvjsAaj3hmvwcULC5jcuZTEUBqIR3g20JxV4e7sxXACvBDn16hnF1TL4hP5F/si2EMg6BusxK0lyTnZEvyEexQ2DfADRlALz1GUBrvpgEsR0GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAUpejovmmBHDvCHvYAoC4fLkvRBwvRv5kXn3cFZv/+K3t73ILAJz55nghkkWx5R/mLkBu/QowANEUSRYOoowzAAAAAElFTkSuQmCC
+
+- !record {model: pos.table, id: pos_table_09}:
+    name: Table 09
+    shop_id: sale.sale_shop_1
+    image: iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY2NUNGMjhDNEJGNzExRTI5MTMwOUFBNzYyRjZGRjBBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY2NUNGMjhENEJGNzExRTI5MTMwOUFBNzYyRjZGRjBBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjY1Q0YyOEE0QkY3MTFFMjkxMzA5QUE3NjJGNkZGMEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjY1Q0YyOEI0QkY3MTFFMjkxMzA5QUE3NjJGNkZGMEEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4WE30uAAAB+0lEQVR42uybu0oDQRSGd0JYEJJeSKUP4QMIgpWtzyAE7MSX8BEE2zTWlkLqIMQmlZUQ0FKbtRnPkFGWZZadMzMnk7D/Dz+Egbl9c9m5RWmtixgppYqcii3/oOi5BgEtXpKn9UZouCvcxC0Dy3tAviU/kt+NqSzaZVYX8jVpQn7ZRPsP4wLQNo0Js/In5JUjXae968SovGm1ZTODQADapuXbE07JlW/lyR8SAKYuwhEAtE2zSyPymlF5Vg/gzAGXAnOQT5pX5EPRz4hnD6gEekDlUcQ5t/U5PUD5fkebMyvFU65wE1SrKCe8TV92GHAbVol8BjNoJJk4FkIAAAAAAAAAAAAAAAAA0FMNQyPSJujcHlE1xQ3PKs5usCrCz/La9E0ed23sArf5yXeDC4EGeN2nOWAmkP8s+xgIPRRNYN9D0aD0kx+K1o7Fl4kq73ssvjsAaj3hmvwcULC5jcuZTEUBqIR3g20JxV4e7sxXACvBDn16hnF1TL4hP5F/si2EMg6BusxK0lyTnZEvyEexQ2DfADRlALz1GUBrvpgEsR0GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAUpejovmmBHDvCHvYAoC4fLkvRBwvRv5kXn3cFZv/+K3t73ILAJz55nghkkWx5R/mLkBu/QowANEUSRYOoowzAAAAAElFTkSuQmCC
+
+- !record {model: pos.table, id: pos_table_10}:
+    name: Table 10
+    shop_id: sale.sale_shop_1
+    image: iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY2NUNGMjhDNEJGNzExRTI5MTMwOUFBNzYyRjZGRjBBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY2NUNGMjhENEJGNzExRTI5MTMwOUFBNzYyRjZGRjBBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjY1Q0YyOEE0QkY3MTFFMjkxMzA5QUE3NjJGNkZGMEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjY1Q0YyOEI0QkY3MTFFMjkxMzA5QUE3NjJGNkZGMEEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4WE30uAAAB+0lEQVR42uybu0oDQRSGd0JYEJJeSKUP4QMIgpWtzyAE7MSX8BEE2zTWlkLqIMQmlZUQ0FKbtRnPkFGWZZadMzMnk7D/Dz+Egbl9c9m5RWmtixgppYqcii3/oOi5BgEtXpKn9UZouCvcxC0Dy3tAviU/kt+NqSzaZVYX8jVpQn7ZRPsP4wLQNo0Js/In5JUjXae968SovGm1ZTODQADapuXbE07JlW/lyR8SAKYuwhEAtE2zSyPymlF5Vg/gzAGXAnOQT5pX5EPRz4hnD6gEekDlUcQ5t/U5PUD5fkebMyvFU65wE1SrKCe8TV92GHAbVol8BjNoJJk4FkIAAAAAAAAAAAAAAAAA0FMNQyPSJujcHlE1xQ3PKs5usCrCz/La9E0ed23sArf5yXeDC4EGeN2nOWAmkP8s+xgIPRRNYN9D0aD0kx+K1o7Fl4kq73ssvjsAaj3hmvwcULC5jcuZTEUBqIR3g20JxV4e7sxXACvBDn16hnF1TL4hP5F/si2EMg6BusxK0lyTnZEvyEexQ2DfADRlALz1GUBrvpgEsR0GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAUpejovmmBHDvCHvYAoC4fLkvRBwvRv5kXn3cFZv/+K3t73ILAJz55nghkkWx5R/mLkBu/QowANEUSRYOoowzAAAAAElFTkSuQmCC
+
+- !record {model: pos.table, id: pos_bar_01}:
+    name: Bar 01
+    shop_id: sale.sale_shop_1
+    image: iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjBBNzZGRkM4NEJGNjExRTJCOEMwOTIzQjBENkZDOTY2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjBBNzZGRkM5NEJGNjExRTJCOEMwOTIzQjBENkZDOTY2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MEE3NkZGQzY0QkY2MTFFMkI4QzA5MjNCMEQ2RkM5NjYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MEE3NkZGQzc0QkY2MTFFMkI4QzA5MjNCMEQ2RkM5NjYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6OpXa5AAADoklEQVR42uxav2sbMRS+a6BQcAkUElrcpVuXQqFroasn/w0JDp08FbwGXAKe0tFQcGj/AoOnrFkzGTwVAoGCQ0pDINBgCDi4T+VdeajWk+5Oqk+yBA/j404/vtO97/skJYvFIskTUB5CHEBMMQ7w2kpK3v7/M54CAPREu1L0fAUgxUEZlzRNf8LPFjyX4n9RwRXE9qoAKFMeJGteigBwlL15fPuibEE0vESgYBI8hLiU8sAYYiP4JCiBMZBAaAWfBKWEWIefbxA1vHQB8RLidi2SIDQuBvyJXBKAfPApBaRlEYRZUMNZUMdLtzgLLtaFBsWAP5L/ApD9YFlgSSJMMPuPSTKcQ7z2kgWI1l8EFn88iwkAvQAH/9ezaGkw0/qBKt8rGO929AIaAI40z+wKJ5iFmDRSPJeEkKDDx0vusxJSX3Y1ff+qzaJE66u+o5nI8BILyKUrPbPvmgWQdWZMvw+NkiCpsM9UdgaxyQBQw9Wi7P5fRCi5EEKb2CdVf/u5zRBy+4ipdKhRYe+l+z87BGDI9FOMYaOQG8Q3OWEq75C+DP4jnX0h7XaY+ybZTC1sh3HqThUNCMX3FjvySFKDrmKMbSXY9lxxn+hz3cp6gCbBiIWRp9ihFxDXDgd/jW0k2OalSaK2siACpcmgfUJWgxoOAWgQ73HCzMqmkxUhKG1OZjI0aCO6pH5Orrdd7wtw9Ngkb+jY4uCPyQxrFqE7mwBw9HhDvtEnEOcWBv8d68pyzE0RurO6KKqhR5ql30DclRj8HdahYxkt3VlfFdbQ44B8r60SALQMdIYR3blaFufocaekSKIg7pSlOycAaOhxRpbF8ook+hmpQM5Fdy4B4OjxDI1KHpFExQ5nctor3xmSzJCKHofkngYjpmSxw5mcfiW2xiQAOHrsGIqkroHJGdE9yCoBwNEjNU0qkUTFjsrkTMgnVUkAOHqkpkkWSedE7KhMznTZokoVARDllSJzU9OUiSQqdlQmZ6baaKkqABw99iSR1NKYnDnxGF4BwNFjUwGYku58BUBFj9Q0cSanX+kTIoYAqOgxU3sqlTgyOXLjAwAcPQ4UPmFCTp0EAYDOPWrpLgQAOHrU0l0oAHD0yNJdSACo6LHt3TE5PE9QeFdLrsrXQ1LBnQ+IAEQAIgARgAhABCACEAGIAEQAIgARgCLlHcSpwcrPMnfIxSnWbbW4sMN0B8h2+QHxrOp2+N7hjL334RPYwzfl4u3v2a70twADADekR6mcQsJuAAAAAElFTkSuQmCC
+
+- !record {model: pos.table, id: pos_bar_02}:
+    name: Bar 02
+    shop_id: sale.sale_shop_1
+    image: iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjBBNzZGRkM4NEJGNjExRTJCOEMwOTIzQjBENkZDOTY2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjBBNzZGRkM5NEJGNjExRTJCOEMwOTIzQjBENkZDOTY2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MEE3NkZGQzY0QkY2MTFFMkI4QzA5MjNCMEQ2RkM5NjYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MEE3NkZGQzc0QkY2MTFFMkI4QzA5MjNCMEQ2RkM5NjYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6OpXa5AAADoklEQVR42uxav2sbMRS+a6BQcAkUElrcpVuXQqFroasn/w0JDp08FbwGXAKe0tFQcGj/AoOnrFkzGTwVAoGCQ0pDINBgCDi4T+VdeajWk+5Oqk+yBA/j404/vtO97/skJYvFIskTUB5CHEBMMQ7w2kpK3v7/M54CAPREu1L0fAUgxUEZlzRNf8LPFjyX4n9RwRXE9qoAKFMeJGteigBwlL15fPuibEE0vESgYBI8hLiU8sAYYiP4JCiBMZBAaAWfBKWEWIefbxA1vHQB8RLidi2SIDQuBvyJXBKAfPApBaRlEYRZUMNZUMdLtzgLLtaFBsWAP5L/ApD9YFlgSSJMMPuPSTKcQ7z2kgWI1l8EFn88iwkAvQAH/9ezaGkw0/qBKt8rGO929AIaAI40z+wKJ5iFmDRSPJeEkKDDx0vusxJSX3Y1ff+qzaJE66u+o5nI8BILyKUrPbPvmgWQdWZMvw+NkiCpsM9UdgaxyQBQw9Wi7P5fRCi5EEKb2CdVf/u5zRBy+4ipdKhRYe+l+z87BGDI9FOMYaOQG8Q3OWEq75C+DP4jnX0h7XaY+ybZTC1sh3HqThUNCMX3FjvySFKDrmKMbSXY9lxxn+hz3cp6gCbBiIWRp9ihFxDXDgd/jW0k2OalSaK2siACpcmgfUJWgxoOAWgQ73HCzMqmkxUhKG1OZjI0aCO6pH5Orrdd7wtw9Ngkb+jY4uCPyQxrFqE7mwBw9HhDvtEnEOcWBv8d68pyzE0RurO6KKqhR5ql30DclRj8HdahYxkt3VlfFdbQ44B8r60SALQMdIYR3blaFufocaekSKIg7pSlOycAaOhxRpbF8ook+hmpQM5Fdy4B4OjxDI1KHpFExQ5nctor3xmSzJCKHofkngYjpmSxw5mcfiW2xiQAOHrsGIqkroHJGdE9yCoBwNEjNU0qkUTFjsrkTMgnVUkAOHqkpkkWSedE7KhMznTZokoVARDllSJzU9OUiSQqdlQmZ6baaKkqABw99iSR1NKYnDnxGF4BwNFjUwGYku58BUBFj9Q0cSanX+kTIoYAqOgxU3sqlTgyOXLjAwAcPQ4UPmFCTp0EAYDOPWrpLgQAOHrU0l0oAHD0yNJdSACo6LHt3TE5PE9QeFdLrsrXQ1LBnQ+IAEQAIgARgAhABCACEAGIAEQAIgARgCLlHcSpwcrPMnfIxSnWbbW4sMN0B8h2+QHxrOp2+N7hjL334RPYwzfl4u3v2a70twADADekR6mcQsJuAAAAAElFTkSuQmCC
+
+- !record {model: pos.table, id: pos_bar_03}:
+    name: Bar 03
+    shop_id: sale.sale_shop_1
+    image: iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjBBNzZGRkM4NEJGNjExRTJCOEMwOTIzQjBENkZDOTY2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjBBNzZGRkM5NEJGNjExRTJCOEMwOTIzQjBENkZDOTY2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MEE3NkZGQzY0QkY2MTFFMkI4QzA5MjNCMEQ2RkM5NjYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MEE3NkZGQzc0QkY2MTFFMkI4QzA5MjNCMEQ2RkM5NjYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6OpXa5AAADoklEQVR42uxav2sbMRS+a6BQcAkUElrcpVuXQqFroasn/w0JDp08FbwGXAKe0tFQcGj/AoOnrFkzGTwVAoGCQ0pDINBgCDi4T+VdeajWk+5Oqk+yBA/j404/vtO97/skJYvFIskTUB5CHEBMMQ7w2kpK3v7/M54CAPREu1L0fAUgxUEZlzRNf8LPFjyX4n9RwRXE9qoAKFMeJGteigBwlL15fPuibEE0vESgYBI8hLiU8sAYYiP4JCiBMZBAaAWfBKWEWIefbxA1vHQB8RLidi2SIDQuBvyJXBKAfPApBaRlEYRZUMNZUMdLtzgLLtaFBsWAP5L/ApD9YFlgSSJMMPuPSTKcQ7z2kgWI1l8EFn88iwkAvQAH/9ezaGkw0/qBKt8rGO929AIaAI40z+wKJ5iFmDRSPJeEkKDDx0vusxJSX3Y1ff+qzaJE66u+o5nI8BILyKUrPbPvmgWQdWZMvw+NkiCpsM9UdgaxyQBQw9Wi7P5fRCi5EEKb2CdVf/u5zRBy+4ipdKhRYe+l+z87BGDI9FOMYaOQG8Q3OWEq75C+DP4jnX0h7XaY+ybZTC1sh3HqThUNCMX3FjvySFKDrmKMbSXY9lxxn+hz3cp6gCbBiIWRp9ihFxDXDgd/jW0k2OalSaK2siACpcmgfUJWgxoOAWgQ73HCzMqmkxUhKG1OZjI0aCO6pH5Orrdd7wtw9Ngkb+jY4uCPyQxrFqE7mwBw9HhDvtEnEOcWBv8d68pyzE0RurO6KKqhR5ql30DclRj8HdahYxkt3VlfFdbQ44B8r60SALQMdIYR3blaFufocaekSKIg7pSlOycAaOhxRpbF8ook+hmpQM5Fdy4B4OjxDI1KHpFExQ5nctor3xmSzJCKHofkngYjpmSxw5mcfiW2xiQAOHrsGIqkroHJGdE9yCoBwNEjNU0qkUTFjsrkTMgnVUkAOHqkpkkWSedE7KhMznTZokoVARDllSJzU9OUiSQqdlQmZ6baaKkqABw99iSR1NKYnDnxGF4BwNFjUwGYku58BUBFj9Q0cSanX+kTIoYAqOgxU3sqlTgyOXLjAwAcPQ4UPmFCTp0EAYDOPWrpLgQAOHrU0l0oAHD0yNJdSACo6LHt3TE5PE9QeFdLrsrXQ1LBnQ+IAEQAIgARgAhABCACEAGIAEQAIgARgCLlHcSpwcrPMnfIxSnWbbW4sMN0B8h2+QHxrOp2+N7hjL334RPYwzfl4u3v2a70twADADekR6mcQsJuAAAAAElFTkSuQmCC
+
+- !record {model: pos.table, id: pos_terrace_01}:
+    name: Terrace 01
+    shop_id: sale.sale_shop_1
+    image: iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZEMUEzMTFENEJGMzExRTI4RTgxRjY0NDhDNDMzNjg1IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZEMUEzMTFFNEJGMzExRTI4RTgxRjY0NDhDNDMzNjg1Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkQxQTMxMUI0QkYzMTFFMjhFODFGNjQ0OEM0MzM2ODUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkQxQTMxMUM0QkYzMTFFMjhFODFGNjQ0OEM0MzM2ODUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7xX2nFAAAD7UlEQVR42uxb/2dbURS/WyaUUkIIYZQSQigh9KexnzadsZ9K2E8j/0F/DSVTRn8qIz/MGKOEEEJqtSmjlEzHdD+OkSmP0EqlSsjutRPL4n45973zXl723uFDvHdz7znn3Xvu+XIvY/OhLMcBRw9wAM8iQTmOPsd4BuJZPgoKaEiEn6AZBQVcahQwCJqZO3NQwDhMPN1lEadYAVFXwD2LtmWOpxwpjq8cLzmuXIwp/rOieHftUo5ljm2OEvRxyPGGSkkJcFRmLXYPBrSlJvE2KHyHH5K+2hxJCgVUNAxfulBCntAREu0dDX/bFAroaAZwq4QsOEQXgIYLV7hgEF7ghEIBx4ZBJkrIBWi7UqA4E19nFLvAN0QbYdR2A1TAK44MEe+o6eogtB2kG9tD8rNGNWDJ4MOHTQFDjofUg5qU0EJsp4849jhOObocI0AXnu1Bm4Shr3dBCz+thL7CCKq2MLFW64gZNNtfXbPO04plOfBT+NktzAFliC+/Kmm3xFEDpsYuMYA+ljzwMRfKwJQeE+EUafVDQescPwmFn3a918MufAa5RXlRQmhnQhI57VsQWRbBo0vB7zK8wyyHZBgVUDMw/gEZ7OShra6vWtiEzxqsvRuGdwy7Q6jqCPsaZnc89KtTwn5YhF8G70vGZMfHcHwIY8+dygoGRxCze6U89CUbo0yVFJ2u1cm2Hl3t7oHi+SFROPod+rIZ20oeVa0Om7I6UbSvEM6yikXGx1qehoUjIktaqnIFBUIFFBRjOJK21vLYRGmymP9W0TZNqIC0YoxbSVsreeLKEMcni/ZHkmdXmriAMsZgyLGt5cn7ZARfzMkIupJnOk8/29CUt68rBmgTKqCtGKNuSNq4kYfUEaI48uKrIxS7wkT0WrPWqh76rS5CMIQJh6vEwocuHMYkRDoWCZH2oiVEBInU9bmB8RG4n1uQBlsBFOFZU2PwJjhn8jR5KGiN4eqIbuEwwnqfX1Rk/mSGe9D3QtB/XRgRkdl7+CJ9MFg5hU3Y1fgIGAyhD9maX2V/S2Pk3p0uLr9QMFrUzAbq4uh9RX/ig5T8FF5n4I4N/xfFjE1wYEQ5/Iz9e5SlC+82mbnw0WK0Z5Y8Cz/Z4oLangaM/uCWklJIqz5iwZWsMCV3h8om1JDr9jhAQ9xE8kQSL7SQ1jrIPTqLNKrGj4LJCd4g3j/h+GIpgJc7Q784HjPzWeUbCm1vMdoDSZR3hjYMM4GsNvFWYWndHEiivjO0odihxDgJynX3DKbqZ/bnOJtb19SPO0MiohSnRz+C4M+xf4zvDLGIU6yAWAHBk27vvo6CAnS1u6MozDrKO0MLSxR3hkjotwADAJFcu/YEPytUAAAAAElFTkSuQmCC
+
+- !record {model: pos.table, id: pos_terrace_02}:
+    name: Terrace 02
+    shop_id: sale.sale_shop_1
+    image: iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZEMUEzMTFENEJGMzExRTI4RTgxRjY0NDhDNDMzNjg1IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZEMUEzMTFFNEJGMzExRTI4RTgxRjY0NDhDNDMzNjg1Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkQxQTMxMUI0QkYzMTFFMjhFODFGNjQ0OEM0MzM2ODUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkQxQTMxMUM0QkYzMTFFMjhFODFGNjQ0OEM0MzM2ODUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7xX2nFAAAD7UlEQVR42uxb/2dbURS/WyaUUkIIYZQSQigh9KexnzadsZ9K2E8j/0F/DSVTRn8qIz/MGKOEEEJqtSmjlEzHdD+OkSmP0EqlSsjutRPL4n45973zXl723uFDvHdz7znn3Xvu+XIvY/OhLMcBRw9wAM8iQTmOPsd4BuJZPgoKaEiEn6AZBQVcahQwCJqZO3NQwDhMPN1lEadYAVFXwD2LtmWOpxwpjq8cLzmuXIwp/rOieHftUo5ljm2OEvRxyPGGSkkJcFRmLXYPBrSlJvE2KHyHH5K+2hxJCgVUNAxfulBCntAREu0dDX/bFAroaAZwq4QsOEQXgIYLV7hgEF7ghEIBx4ZBJkrIBWi7UqA4E19nFLvAN0QbYdR2A1TAK44MEe+o6eogtB2kG9tD8rNGNWDJ4MOHTQFDjofUg5qU0EJsp4849jhOObocI0AXnu1Bm4Shr3dBCz+thL7CCKq2MLFW64gZNNtfXbPO04plOfBT+NktzAFliC+/Kmm3xFEDpsYuMYA+ljzwMRfKwJQeE+EUafVDQescPwmFn3a918MufAa5RXlRQmhnQhI57VsQWRbBo0vB7zK8wyyHZBgVUDMw/gEZ7OShra6vWtiEzxqsvRuGdwy7Q6jqCPsaZnc89KtTwn5YhF8G70vGZMfHcHwIY8+dygoGRxCze6U89CUbo0yVFJ2u1cm2Hl3t7oHi+SFROPod+rIZ20oeVa0Om7I6UbSvEM6yikXGx1qehoUjIktaqnIFBUIFFBRjOJK21vLYRGmymP9W0TZNqIC0YoxbSVsreeLKEMcni/ZHkmdXmriAMsZgyLGt5cn7ZARfzMkIupJnOk8/29CUt68rBmgTKqCtGKNuSNq4kYfUEaI48uKrIxS7wkT0WrPWqh76rS5CMIQJh6vEwocuHMYkRDoWCZH2oiVEBInU9bmB8RG4n1uQBlsBFOFZU2PwJjhn8jR5KGiN4eqIbuEwwnqfX1Rk/mSGe9D3QtB/XRgRkdl7+CJ9MFg5hU3Y1fgIGAyhD9maX2V/S2Pk3p0uLr9QMFrUzAbq4uh9RX/ig5T8FF5n4I4N/xfFjE1wYEQ5/Iz9e5SlC+82mbnw0WK0Z5Y8Cz/Z4oLangaM/uCWklJIqz5iwZWsMCV3h8om1JDr9jhAQ9xE8kQSL7SQ1jrIPTqLNKrGj4LJCd4g3j/h+GIpgJc7Q784HjPzWeUbCm1vMdoDSZR3hjYMM4GsNvFWYWndHEiivjO0odihxDgJynX3DKbqZ/bnOJtb19SPO0MiohSnRz+C4M+xf4zvDLGIU6yAWAHBk27vvo6CAnS1u6MozDrKO0MLSxR3hkjotwADAJFcu/YEPytUAAAAAElFTkSuQmCC
+
+- !record {model: pos.table, id: pos_terrace_03}:
+    name: Terrace 03
+    shop_id: sale.sale_shop_1
+    image: iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZEMUEzMTFENEJGMzExRTI4RTgxRjY0NDhDNDMzNjg1IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZEMUEzMTFFNEJGMzExRTI4RTgxRjY0NDhDNDMzNjg1Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkQxQTMxMUI0QkYzMTFFMjhFODFGNjQ0OEM0MzM2ODUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkQxQTMxMUM0QkYzMTFFMjhFODFGNjQ0OEM0MzM2ODUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7xX2nFAAAD7UlEQVR42uxb/2dbURS/WyaUUkIIYZQSQigh9KexnzadsZ9K2E8j/0F/DSVTRn8qIz/MGKOEEEJqtSmjlEzHdD+OkSmP0EqlSsjutRPL4n45973zXl723uFDvHdz7znn3Xvu+XIvY/OhLMcBRw9wAM8iQTmOPsd4BuJZPgoKaEiEn6AZBQVcahQwCJqZO3NQwDhMPN1lEadYAVFXwD2LtmWOpxwpjq8cLzmuXIwp/rOieHftUo5ljm2OEvRxyPGGSkkJcFRmLXYPBrSlJvE2KHyHH5K+2hxJCgVUNAxfulBCntAREu0dDX/bFAroaAZwq4QsOEQXgIYLV7hgEF7ghEIBx4ZBJkrIBWi7UqA4E19nFLvAN0QbYdR2A1TAK44MEe+o6eogtB2kG9tD8rNGNWDJ4MOHTQFDjofUg5qU0EJsp4849jhOObocI0AXnu1Bm4Shr3dBCz+thL7CCKq2MLFW64gZNNtfXbPO04plOfBT+NktzAFliC+/Kmm3xFEDpsYuMYA+ljzwMRfKwJQeE+EUafVDQescPwmFn3a918MufAa5RXlRQmhnQhI57VsQWRbBo0vB7zK8wyyHZBgVUDMw/gEZ7OShra6vWtiEzxqsvRuGdwy7Q6jqCPsaZnc89KtTwn5YhF8G70vGZMfHcHwIY8+dygoGRxCze6U89CUbo0yVFJ2u1cm2Hl3t7oHi+SFROPod+rIZ20oeVa0Om7I6UbSvEM6yikXGx1qehoUjIktaqnIFBUIFFBRjOJK21vLYRGmymP9W0TZNqIC0YoxbSVsreeLKEMcni/ZHkmdXmriAMsZgyLGt5cn7ZARfzMkIupJnOk8/29CUt68rBmgTKqCtGKNuSNq4kYfUEaI48uKrIxS7wkT0WrPWqh76rS5CMIQJh6vEwocuHMYkRDoWCZH2oiVEBInU9bmB8RG4n1uQBlsBFOFZU2PwJjhn8jR5KGiN4eqIbuEwwnqfX1Rk/mSGe9D3QtB/XRgRkdl7+CJ9MFg5hU3Y1fgIGAyhD9maX2V/S2Pk3p0uLr9QMFrUzAbq4uh9RX/ig5T8FF5n4I4N/xfFjE1wYEQ5/Iz9e5SlC+82mbnw0WK0Z5Y8Cz/Z4oLangaM/uCWklJIqz5iwZWsMCV3h8om1JDr9jhAQ9xE8kQSL7SQ1jrIPTqLNKrGj4LJCd4g3j/h+GIpgJc7Q784HjPzWeUbCm1vMdoDSZR3hjYMM4GsNvFWYWndHEiivjO0odihxDgJynX3DKbqZ/bnOJtb19SPO0MiohSnRz+C4M+xf4zvDLGIU6yAWAHBk27vvo6CAnS1u6MozDrKO0MLSxR3hkjotwADAJFcu/YEPytUAAAAAElFTkSuQmCC
+

=== added file 'demo/sale_shop.yml'
--- demo/sale_shop.yml	1970-01-01 00:00:00 +0000
+++ demo/sale_shop.yml	2014-07-30 10:55:25 +0000
@@ -0,0 +1,24 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+#    Point Of Sale - Restaurant module for OpenERP
+#    Copyright (C) 2013-2014 GRAP (http://www.grap.coop)
+#    @author Sylvain LE GAL (https://twitter.com/legalsylvain)
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+- !record {model: sale.shop, id: sale.sale_shop_1}:
+    max_covers: 30

=== added directory 'i18n'
=== added file 'i18n/fr.po'
--- i18n/fr.po	1970-01-01 00:00:00 +0000
+++ i18n/fr.po	2014-07-30 10:55:25 +0000
@@ -0,0 +1,210 @@
+##############################################################################
+#
+#    Point Of Sale - Restaurant module for OpenERP
+#    Copyright (C) 2013-2014 GRAP (http://www.grap.coop)
+#    @author Sylvain LE GAL (https://twitter.com/legalsylvain)
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+#	* pos_restaurant
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 7.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-04-16 15:38+0000\n"
+"PO-Revision-Date: 2014-04-16 15:38+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: pos_restaurant
+#: field:pos.table,active:0
+msgid "Active"
+msgstr "Active"
+
+#. module: pos_restaurant
+#: help:pos.table,active:0
+msgid "By unchecking the active field you can disable a table without deleting it."
+msgstr "En décochant cette case, vous pouvez désactiver une table, sans la supprimer."
+
+#. module: pos_restaurant
+#. openerp-web
+#: code:addons/pos_restaurant/static/src/xml/pr.xml:42
+#: code:addons/pos_restaurant/static/src/xml/pr.xml:99
+#, python-format
+msgid "Cancel"
+msgstr "Annuler"
+
+#. module: pos_restaurant
+#: field:pos.table,company_id:0
+msgid "Company"
+msgstr "Société"
+
+#. module: pos_restaurant
+#. openerp-web
+#: code:addons/pos_restaurant/static/src/js/pr.js:51
+#: field:pos.order,covers:0
+#, python-format
+msgid "Covers"
+msgstr "Couverts"
+
+#. module: pos_restaurant
+#. openerp-web
+#: code:addons/pos_restaurant/static/src/xml/pr.xml:39
+#, python-format
+msgid "Covers Quantity Selection"
+msgstr "Sélection du nombre de couverts"
+
+#. module: pos_restaurant
+#: help:pos.order,covers:0
+msgid "Covers in a restaurant"
+msgstr "Nombre de couverts dans la restauration"
+
+#. module: pos_restaurant
+#. openerp-web
+#: code:addons/pos_restaurant/static/src/js/pr.js:182
+#, python-format
+msgid "Del."
+msgstr "Suppr."
+
+#. module: pos_restaurant
+#: model:ir.actions.act_window,help:pos_restaurant.action_view_pos_table
+msgid "Display and manage tables in restaurant."
+msgstr "Afficher et gérer les tables d'un restaurant."
+
+#. module: pos_restaurant
+#: field:pos.table,image:0
+msgid "Image"
+msgstr "Image"
+
+#. module: pos_restaurant
+#: model:res.groups,name:pos_restaurant.res_group_restaurant_manager
+msgid "Manager"
+msgstr "Responsable"
+
+#. module: pos_restaurant
+#: field:sale.shop,max_covers:0
+msgid "Max Covers"
+msgstr "Nombre de couverts maximum"
+
+#. module: pos_restaurant
+#: field:pos.table,name:0
+msgid "Name"
+msgstr "Nom"
+
+#. module: pos_restaurant
+#: code:_description:0
+#: model:ir.model,name:pos_restaurant.model_pos_order
+#, python-format
+msgid "Point of Sale"
+msgstr "Point de Vente"
+
+#. module: pos_restaurant
+#: model:ir.module.category,name:pos_restaurant.ir_module_category_restaurant
+#: model:ir.ui.menu,name:pos_restaurant.menu_pos_restaurant
+msgid "Restaurant"
+msgstr "Restaurant"
+
+#. module: pos_restaurant
+#: code:_description:0
+#: model:ir.model,name:pos_restaurant.model_pos_table
+#, python-format
+msgid "Restaurant table"
+msgstr "Table de restaurant"
+
+#. module: pos_restaurant
+#: model:ir.ui.menu,name:pos_restaurant.menu_table
+msgid "Restaurant tables"
+msgstr "Tables de restaurant"
+
+#. module: pos_restaurant
+#: code:_description:0
+#: model:ir.model,name:pos_restaurant.model_sale_shop
+#, python-format
+msgid "Sales Shop"
+msgstr "Magasin"
+
+#. module: pos_restaurant
+#: model:ir.module.category,description:pos_restaurant.ir_module_category_restaurant
+msgid "Select the level of access of restaurant informations in Point Of Sale"
+msgstr "Sélectionner le niveau d'accès aux informations liées à au restaurant dans le point de vente."
+
+#. module: pos_restaurant
+#: help:pos.table,shop_id:0
+msgid "Select the shop"
+msgstr "Choisir le magasin"
+
+#. module: pos_restaurant
+#: field:pos.table,shop_id:0
+msgid "Shop"
+msgstr "Magasin"
+
+#. module: pos_restaurant
+#. openerp-web
+#: code:addons/pos_restaurant/static/src/js/pr.js:171
+#: field:pos.order,table_id:0
+#, python-format
+msgid "Table"
+msgstr "Table"
+
+#. module: pos_restaurant
+#. openerp-web
+#: code:addons/pos_restaurant/static/src/xml/pr.xml:96
+#, python-format
+msgid "Table Selection"
+msgstr "Sélection d'une table"
+
+#. module: pos_restaurant
+#: sql_constraint:pos.table:0
+msgid "Table name must be unique by shop!"
+msgstr "Les noms de table doivent être unique par magasin!"
+
+#. module: pos_restaurant
+#: model:ir.actions.act_window,name:pos_restaurant.action_view_pos_table
+#: view:pos.table:0
+msgid "Tables"
+msgstr "Tables"
+
+#. module: pos_restaurant
+#: model:res.groups,comment:pos_restaurant.res_group_restaurant_manager
+msgid "The user can see and manage Restaurant field. (Covers, Table, etc.)"
+msgstr "L'utilisateur peut voir et modifier ou supprimer les champs liés à la restauration. (Couverts, Table, etc.)"
+
+#. module: pos_restaurant
+#: model:res.groups,comment:pos_restaurant.res_group_restaurant_user
+msgid "The user can see and use Restaurant field. (Covers, Table, etc.)"
+msgstr "L'utilisateur peut voir et utiliser les champs liés à la restauration. (Couverts, Table, etc.)"
+
+#. module: pos_restaurant
+#: help:sale.shop,max_covers:0
+msgid "This is the number of buttons displayed in the front-end point of sale."
+msgstr "C'est le nombre de boutons affichée dans le point de vente tactile."
+
+#. module: pos_restaurant
+#: model:res.groups,name:pos_restaurant.res_group_restaurant_user
+msgid "User"
+msgstr "Utilisateur"
+
+#. module: pos_restaurant
+#: help:pos.order,table_id:0
+msgid "select the table where the customers is."
+msgstr "Sélectionner la table où les clients se trouvent."
+

=== added directory 'model'
=== added file 'model/__init__.py'
--- model/__init__.py	1970-01-01 00:00:00 +0000
+++ model/__init__.py	2014-07-30 10:55:25 +0000
@@ -0,0 +1,25 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+#    Point Of Sale - Restaurant module for OpenERP
+#    Copyright (C) 2013-2014 GRAP (http://www.grap.coop)
+#    @author Sylvain LE GAL (https://twitter.com/legalsylvain)
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import sale_shop
+import pos_order
+import pos_table

=== added file 'model/pos_order.py'
--- model/pos_order.py	1970-01-01 00:00:00 +0000
+++ model/pos_order.py	2014-07-30 10:55:25 +0000
@@ -0,0 +1,63 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+#    Point Of Sale - Restaurant module for OpenERP
+#    Copyright (C) 2013-2014 GRAP (http://www.grap.coop)
+#    @author Sylvain LE GAL (https://twitter.com/legalsylvain)
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+from openerp.osv import fields
+from openerp.osv.orm import Model
+
+
+class pos_order(Model):
+    _inherit = 'pos.order'
+
+    # Columns section
+    _columns = {
+        'table_id': fields.many2one(
+            'pos.table', 'Table',
+            groups="pos_restaurant.res_group_restaurant_user",
+            help="select the table where the customers is."),
+        'covers': fields.integer(
+            'Covers', groups="pos_restaurant.res_group_restaurant_user",
+            help="Covers in a restaurant"),
+    }
+
+    # Overload section
+    def create_from_ui(self, cr, uid, orders, context=None):
+        """Overload function to save table_id and covers"""
+        # Call Parent function to save new orders
+        order_ids = super(pos_order, self).create_from_ui(
+            cr, uid, orders, context=context)
+
+        orders_saved = self.read(
+            cr, uid, order_ids, ['pos_reference'], context=context)
+
+        # Save extra information related to restaurants
+        for order_saved in orders_saved:
+            for o in orders:
+                if o['data']['name'] == order_saved['pos_reference']:
+                    order = o['data']
+            if list(set(['table_id', 'covers']) & set(order.keys())):
+                vals = {
+                    'table_id': order.get('table_id', False),
+                    'covers': order.get('covers', 0)}
+                super(pos_order, self).write(
+                    cr, uid, [order_saved['id']], vals, context=context)
+
+        return order_ids

=== added file 'model/pos_table.py'
--- model/pos_table.py	1970-01-01 00:00:00 +0000
+++ model/pos_table.py	2014-07-30 10:55:25 +0000
@@ -0,0 +1,61 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+#    Point Of Sale - Restaurant module for OpenERP
+#    Copyright (C) 2013-2014 GRAP (http://www.grap.coop)
+#    @author Sylvain LE GAL (https://twitter.com/legalsylvain)
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+from openerp.osv import fields
+from openerp.osv.orm import Model
+
+
+class pos_table(Model):
+    _description = 'Restaurant table'
+    _name = 'pos.table'
+    _order = 'name'
+
+    # Columns section
+    _columns = {
+        'name': fields.char('Name', required=True, size=64),
+        'image': fields.binary('Image'),
+        'active': fields.boolean(
+            'Active',
+            help="""By unchecking the active field you can disable """
+            """a table without deleting it."""),
+        'shop_id': fields.many2one(
+            'sale.shop', 'Shop', help="Select the shop", required=True,),
+        'company_id': fields.related(
+            'shop_id', 'company_id', type='many2one', relation='res.company',
+            string='Company', store=True, readonly=True, required=False),
+    }
+
+    _defaults = {
+        'active': True,
+    }
+
+    _sql_constraints = [
+        ('name_shop_uniq', 'unique(name,shop_id)',
+            'Table name must be unique by shop!'),
+    ]
+
+    # Overload section
+    def copy(self, cr, uid, id, default={}, context=None):
+        table = self.read(cr, uid, id, ['name'], context=context)
+        data = {'name': '%s (copy)' % (table['name'])}
+        data.update(default)
+        return super(pos_table, self).copy(cr, uid, id, data, context=context)

=== added file 'model/sale_shop.py'
--- model/sale_shop.py	1970-01-01 00:00:00 +0000
+++ model/sale_shop.py	2014-07-30 10:55:25 +0000
@@ -0,0 +1,40 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+#    Point Of Sale - Restaurant module for OpenERP
+#    Copyright (C) 2013-2014 GRAP (http://www.grap.coop)
+#    @author Sylvain LE GAL (https://twitter.com/legalsylvain)
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+from openerp.osv import fields
+from openerp.osv.orm import Model
+
+
+class sale_shop(Model):
+    _inherit = 'sale.shop'
+
+    # Columns section
+    _columns = {
+        'max_covers': fields.integer(
+            'Max Covers', groups="pos_restaurant.res_group_restaurant_manager",
+            help="""This is the number of buttons displayed"""
+            """ in the front-end point of sale."""),
+    }
+
+    _defaults = {
+        'max_covers': 0,
+    }

=== added directory 'security'
=== added file 'security/ir_model_access.yml'
--- security/ir_model_access.yml	1970-01-01 00:00:00 +0000
+++ security/ir_model_access.yml	2014-07-30 10:55:25 +0000
@@ -0,0 +1,48 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+#    Point Of Sale - Restaurant module for OpenERP
+#    Copyright (C) 2013-2014 GRAP (http://www.grap.coop)
+#    @author Sylvain LE GAL (https://twitter.com/legalsylvain)
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+###############################################################################
+# Reader Access
+###############################################################################
+
+- !record {model: ir.model.access, id: ir_model_access_restaurant_user}:
+    group_id: res_group_restaurant_user
+    model_id: pos_restaurant.model_pos_table
+    name: Point Of Sale - Restaurant User
+    perm_read: true
+    perm_create: false
+    perm_write: false
+    perm_unlink: false
+
+###############################################################################
+# Manager Access
+###############################################################################
+
+
+- !record {model: ir.model.access, id: ir_model_access_restaurant_manager}:
+    group_id: res_group_restaurant_manager
+    model_id: pos_restaurant.model_pos_table
+    name: Point Of Sale - Restaurant Manager
+    perm_read: true
+    perm_create: true
+    perm_write: true
+    perm_unlink: true

=== added file 'security/ir_module_category.yml'
--- security/ir_module_category.yml	1970-01-01 00:00:00 +0000
+++ security/ir_module_category.yml	2014-07-30 10:55:25 +0000
@@ -0,0 +1,26 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+#    Point Of Sale - Restaurant module for OpenERP
+#    Copyright (C) 2013-2014 GRAP (http://www.grap.coop)
+#    @author Sylvain LE GAL (https://twitter.com/legalsylvain)
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+- !record {model: ir.module.category, id: ir_module_category_restaurant}:
+    name: Restaurant
+    sequence: 200
+    description: Select the level of access of restaurant informations in Point Of Sale

=== added file 'security/ir_rule.yml'
--- security/ir_rule.yml	1970-01-01 00:00:00 +0000
+++ security/ir_rule.yml	2014-07-30 10:55:25 +0000
@@ -0,0 +1,27 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+#    Point Of Sale - Restaurant module for OpenERP
+#    Copyright (C) 2013-2014 GRAP (http://www.grap.coop)
+#    @author Sylvain LE GAL (https://twitter.com/legalsylvain)
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+- !record {model: ir.rule, id: ir_rule_pos_table}:
+    name: Point Of Sale - Restaurant Table
+    domain_force: '[(''company_id'', ''='', user.company_id.id)]'
+    model_id: pos_restaurant.model_pos_table
+

=== added file 'security/res_groups.yml'
--- security/res_groups.yml	1970-01-01 00:00:00 +0000
+++ security/res_groups.yml	2014-07-30 10:55:25 +0000
@@ -0,0 +1,35 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+#    Point Of Sale - Restaurant module for OpenERP
+#    Copyright (C) 2013-2014 GRAP (http://www.grap.coop)
+#    @author Sylvain LE GAL (https://twitter.com/legalsylvain)
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+- !record {model: res.groups, id: res_group_restaurant_user}:
+    category_id: ir_module_category_restaurant
+    name: User
+    comment: The user can see and use Restaurant field. (Covers, Table, etc.)
+
+- !record {model: res.groups, id: res_group_restaurant_manager}:
+    category_id: ir_module_category_restaurant
+    name: Manager
+    implied_ids:
+        - pos_restaurant.res_group_restaurant_user
+    users:
+        - base.user_root
+    comment: The user can see and manage Restaurant field. (Covers, Table, etc.)

=== added directory 'static'
=== added directory 'static/src'
=== added directory 'static/src/css'
=== added file 'static/src/css/pr.css'
--- static/src/css/pr.css	1970-01-01 00:00:00 +0000
+++ static/src/css/pr.css	2014-07-30 10:55:25 +0000
@@ -0,0 +1,158 @@
+/******************************************************************************
+    Point Of Sale - Restaurant module for OpenERP
+    Copyright (C) 2014 GRAP (http://www.grap.coop)
+    @author Sylvain LE GAL (https://twitter.com/legalsylvain)
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU Affero General Public License as
+    published by the Free Software Foundation, either version 3 of the
+    License, or (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Affero General Public License for more details.
+
+    You should have received a copy of the GNU Affero General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+******************************************************************************/
+
+/*  ********* Current table name  ********* */
+
+.point-of-sale #rightheader #table-name{
+    width:100px;
+}
+.point-of-sale #rightheader #remove-table-button{
+    width:80px;
+}
+
+/*  ********* Current covers quantity  ********* */
+.point-of-sale #rightheader #covers-quantity{
+    width:50px;
+}
+
+/*  ********* Table / Covers PopUp  ********* */
+.point-of-sale .modal-dialog .popup-select-table,
+        .point-of-sale .modal-dialog .popup-select-covers{
+    margin-left:0;
+    margin-top:0;
+    left:5%;
+    width: 90%;
+    top:5%;
+    height:85%;
+}
+.point-of-sale .modal-dialog .popup-select-table .table-header,
+        .point-of-sale .modal-dialog .popup-select-table .covers-header{
+    height:65px;
+}
+
+.point-of-sale .modal-dialog .popup-select-table #table-cancel,
+        .point-of-sale .modal-dialog .popup-select-covers #covers-cancel{
+    top: 0px;
+    position: absolute;
+    right: 10px;
+}
+/*  ********* table / Covers List  ********* */
+
+.point-of-sale .table-list,
+        .point-of-sale .covers-list {
+    padding:10px !important;
+}
+
+.point-of-sale .table-list-container,
+        .point-of-sale .covers-list-container {
+    position:absolute;
+    top:70px;
+    bottom:0px;
+    left:0px;
+    right:0px;
+}
+
+.point-of-sale .table-list-scroller,
+        .point-of-sale .covers-list-scroller{
+    -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+        -ms-box-sizing: border-box;
+            box-sizing: border-box;
+    width:100%;
+    height:100%;
+    overflow: hidden;
+}
+
+/*  ********* Table Scrollbar  ********* */
+/*    Fix incorrect display of buttons.*/
+/*    TODO: found why it is necessary and remove top,bottom and left values*/
+.point-of-sale .table-list-container .scrollbar .up-button,
+        .point-of-sale .covers-list-container .scrollbar .up-button{
+    top: -10px;
+    left: -5px;
+}
+.point-of-sale .table-list-container .scrollbar .down-button,
+        .point-of-sale .covers-list-container .scrollbar .down-button {
+    left: -5px;
+    bottom: -5px;
+}
+
+/*  ********* Table / Covers Item ********* */
+
+.point-of-sale .table,
+        .point-of-sale .covers {
+    position:relative;
+    vertical-align: top;
+    display: inline-block;
+    font-size: 11px;
+    margin: 5px !important;
+    width: 150px;
+    height:150px;
+    background:#fff;
+    border: 1px solid #fff;
+    border-radius: 3px;
+    overflow: hidden;
+    -webkit-box-shadow: 0px 2px 0px #dad8e4, 0px 1px 8px #636480; 
+       -moz-box-shadow: 0px 2px 0px #dad8e4, 0px 1px 8px #636480; 
+            box-shadow: 0px 2px 0px #dad8e4, 0px 1px 8px #636480; 
+}
+
+.point-of-sale .table .table-name,
+        .point-of-sale .covers .covers-quantity{
+    position: absolute;
+    -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+        -ms-box-sizing: border-box;
+            box-sizing: border-box;
+    text-align:center;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    background: -webkit-linear-gradient(-90deg,rgba(255,255,255,0),rgba(255,255,255,1), rgba(255,255,255,1));
+    background:    -moz-linear-gradient(-90deg,rgba(255,255,255,0),rgba(255,255,255,1), rgba(255,255,255,1));
+    background:     -ms-linear-gradient(-90deg,rgba(255,255,255,0),rgba(255,255,255,1), rgba(255,255,255,1));
+    padding: 3px;
+    width:100%;
+}
+.point-of-sale .covers .covers-quantity{
+    font-size: 40px;
+    height: 100%;
+}
+.point-of-sale .covers .covers-quantity .covers-text,
+        .point-of-sale .table .table-name .table-text{
+    position: relative;
+    top: 50%;
+    transform: translateY(-50%);
+    -webkit-transform: translateY(-50%);
+}
+
+.point-of-sale .table .table-name{
+    font-size: 22px;
+    top:64px;
+    height: 86px;
+}
+
+.point-of-sale .table .table-img {
+    position: absolute;
+    top: 0px;
+    left: 0px;
+    width: 150px;
+    height: 64px;
+    background: white;
+    text-align: center;
+}

=== added directory 'static/src/img'
=== added file 'static/src/img/icon.png'
Binary files static/src/img/icon.png	1970-01-01 00:00:00 +0000 and static/src/img/icon.png	2014-07-30 10:55:25 +0000 differ
=== added directory 'static/src/js'
=== added file 'static/src/js/pr.js'
--- static/src/js/pr.js	1970-01-01 00:00:00 +0000
+++ static/src/js/pr.js	2014-07-30 10:55:25 +0000
@@ -0,0 +1,440 @@
+/******************************************************************************
+    Point Of Sale - Restaurant module for OpenERP
+    Copyright (C) 2013-Today GRAP (http://www.grap.coop)
+    @author Sylvain LE GAL (https://twitter.com/legalsylvain)
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU Affero General Public License as
+    published by the Free Software Foundation, either version 3 of the
+    License, or (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Affero General Public License for more details.
+
+    You should have received a copy of the GNU Affero General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+******************************************************************************/
+
+openerp.pos_restaurant = function (instance) {
+    module = instance.point_of_sale;
+    _t = instance.web._t;
+
+    /*************************************************************************
+        Define : CoversOrderWidget that display the covers quantity
+        of the current pos order and buttons to select current covers quantity.
+    */
+    module.CoversOrderWidget = module.PosBaseWidget.extend({
+        template: 'CoversOrderWidget',
+
+        /* Overload Section */
+        init: function(parent, options){
+            this._super(parent,options);
+            this.pos.bind('change:selectedOrder', this.refresh, this);
+        },
+
+        start: function(){
+            this._super();
+            this._build_widgets();
+        },
+
+        /* Custom Section */
+        refresh: function(){
+            this.renderElement();
+            this._build_widgets();
+        },
+
+        _build_widgets: function(){
+            // Create a button to open the covers popup
+            this.select_covers_button = new module.HeaderButtonWidget(this,{
+                label:_t('Covers'),
+                action: function(){
+                    self.screen_selector.show_popup('select-covers');
+                },
+            });
+            this.select_covers_button.replace($('.placeholder-SelectCoversButton'));
+            this.select_covers_button.renderElement();
+        },
+
+        get_name: function(){
+            return this.pos.get('selectedOrder').get_covers();
+        },
+    });
+
+    /*************************************************************************
+        Define : CoversWidget that display a covers quantity
+    */
+    module.CoversWidget = module.PosBaseWidget.extend({
+        template: 'CoversWidget',
+
+        /* Overload Section */
+        init: function(parent, options) {
+            this._super(parent,options);
+            this.quantity = options.quantity;
+        },
+
+        renderElement: function() {
+            this._super();
+            var self = this;
+            $("a", this.$el).click(function(e){
+                self.pos.get('selectedOrder').set_covers(self.quantity);
+                self.pos_widget.covers_order.refresh();
+                self.pos_widget.screen_selector.set_current_screen('products');
+            });
+        },
+    });
+
+    /*************************************************************************
+        Define : CoversListScreenWidget that display a list of covers.
+    */
+    module.CoversListScreenWidget = module.ScreenWidget.extend({
+        template:'CoversListScreenWidget',
+
+        /* Overload Section */
+        start: function() {
+            this._super();
+            var self = this;
+
+            // Display covers list
+            this.covers_list = [];
+            for(var i = 0, len = this.pos.get('max_covers') + 1; i < len; i++){
+                var covers = new module.CoversWidget(this, {
+                    quantity: i,
+                });
+                this.covers_list.push(covers);
+                covers.appendTo(this.$('.covers-list'));
+            }
+
+            // Display scrollbar
+            this.scrollbar = new module.ScrollbarWidget(this,{
+                target_widget:   this,
+                target_selector: '.covers-list-scroller',
+                on_show: function(){
+                    self.$('.covers-list-scroller').css({'padding-right':'62px'},100);
+                },
+                on_hide: function(){
+                    self.$('.covers-list-scroller').css({'padding-right':'0px'},100);
+                },
+            });
+            this.scrollbar.replace(this.$('.placeholder-ScrollbarWidget'));
+        },
+    });
+
+    /*************************************************************************
+        Define : SelectCoversPopupWidget that display a pop up to select
+        covers quantity
+    */
+    module.SelectCoversPopupWidget = module.PopUpWidget.extend({
+        template:'SelectCoversPopupWidget',
+
+        /* Overload Section */
+        start: function(){
+            this._super();
+            this.covers_list_widget = new module.CoversListScreenWidget(this,{});
+            this.covers_list_widget.renderElement();
+            this.covers_list_widget.replace($('.placeholder-CoversListScreenWidget'));
+            this.$('#covers-cancel').off('click').click(function(){
+                self.pos_widget.screen_selector.set_current_screen('products');
+            });
+        },
+
+    });
+
+    /*************************************************************************
+        Define : TableOrderWidget that display the name of the table
+        of the current pos order and buttons to select or remove current table.
+    */
+    module.TableOrderWidget = module.PosBaseWidget.extend({
+        template: 'TableOrderWidget',
+
+        /* Overload Section */
+        init: function(parent, options){
+            this._super(parent,options);
+            this.pos.bind('change:selectedOrder', this.refresh, this);
+        },
+
+        start: function(){
+            this._super();
+            this._build_widgets();
+        },
+
+        /* Custom Section */
+        refresh: function(){
+            this.renderElement();
+            this._build_widgets();
+        },
+
+        _build_widgets: function(){
+            // Create a button to open the table popup
+            this.select_table_button = new module.HeaderButtonWidget(this,{
+                label:_t('Table'),
+                action: function(){
+                    self.screen_selector.show_popup('select-table');
+                },
+            });
+            this.select_table_button.replace($('.placeholder-SelectTableButton'));
+            this.select_table_button.renderElement();
+
+            if (this.pos.get('selectedOrder').get_table_name() !== ""){
+                // Create a button to remove the current table
+                this.remove_table_button = new module.HeaderButtonWidget(this,{
+                    label:_t('Del.'),
+                    action: function(){
+                        this.pos.get('selectedOrder').set_table(undefined);
+                        this.pos_widget.table_order.refresh();
+                        this.hide();
+                    },
+                });
+                this.remove_table_button.replace($('.placeholder-RemoveTableButton'));
+                this.remove_table_button.renderElement();
+            }
+        },
+
+        get_name: function(){
+            return this.pos.get('selectedOrder').get_table_name();
+        },
+    });
+
+    /*************************************************************************
+        Define : TableWidget that display a table
+    */
+    module.TableWidget = module.PosBaseWidget.extend({
+        template: 'TableWidget',
+
+        /* Overload Section */
+        init: function(parent, options) {
+            this._super(parent,options);
+            this.model = options.model;
+        },
+
+        renderElement: function() {
+            this._super();
+            var self = this;
+            this.$('img').replaceWith(this.pos_widget.image_cache.get_image(this.model.get_image_url()));
+            $("a", this.$el).click(function(e){
+                self.pos.get('selectedOrder').set_table(self.model.toJSON());
+                self.pos_widget.table_order.refresh();
+                self.pos_widget.screen_selector.set_current_screen('products');
+            });
+        },
+    });
+
+    /*************************************************************************
+        Define : TableListScreenWidget that display a list of tables.
+    */
+    module.TableListScreenWidget = module.ScreenWidget.extend({
+        template:'TableListScreenWidget',
+
+        /* Overload Section */
+        start: function() {
+            this._super();
+            var self = this;
+
+            // Display table list
+            this.table_list = [];
+            var tables = this.pos.get('table_list') || [];
+            for(var i = 0, len = tables.models.length; i < len; i++){
+                var table = new module.TableWidget(this, {
+                    model: tables.models[i],
+                });
+                this.table_list.push(table);
+                table.appendTo(this.$('.table-list'));
+            }
+
+            // Display scrollbar
+            this.scrollbar = new module.ScrollbarWidget(this,{
+                target_widget:   this,
+                target_selector: '.table-list-scroller',
+                on_show: function(){
+                    self.$('.table-list-scroller').css({'padding-right':'62px'},100);
+                },
+                on_hide: function(){
+                    self.$('.table-list-scroller').css({'padding-right':'0px'},100);
+                },
+            });
+            this.scrollbar.replace(this.$('.placeholder-ScrollbarWidget'));
+        },
+    });
+
+    /*************************************************************************
+        Define : SelectTablePopupWidget that display a pop up to search
+        and select table.
+    */
+    module.SelectTablePopupWidget = module.PopUpWidget.extend({
+        template:'SelectTablePopupWidget',
+
+        /* Overload Section */
+        start: function(){
+            this._super();
+            var self = this;
+            this.table_list_widget = new module.TableListScreenWidget(this,{});
+        },
+
+        show: function(){
+            this._super();
+            var self = this;
+            this.table_list_widget.renderElement();
+            this.table_list_widget.replace($('.placeholder-TableListScreenWidget'));
+            this.$('#table-cancel').off('click').click(function(){
+                self.pos_widget.screen_selector.set_current_screen('products');
+            });
+        },
+
+    });
+
+
+    /*************************************************************************
+        Overload : PosWidget to include button in PosOrderHeaderWidget widget
+        to select or unselect tables
+    */
+    module.PosWidget = module.PosWidget.extend({
+
+        /* Overload Section */
+        build_widgets: function(){
+            this._super();
+            var self = this;
+            if (this.pos.get('table_list').length != 0){
+                // create a pop up 'select-table' to search and select tables
+                this.select_table_popup = new module.SelectTablePopupWidget(this, {});
+                this.select_table_popup.appendTo($('.point-of-sale'));
+                this.select_table_popup.hide();
+                this.screen_selector.popup_set['select-table'] = this.select_table_popup;
+
+                // Add a widget to manage table
+                this.table_order = new module.TableOrderWidget(this,{});
+                this.table_order.appendTo(this.$('#pos_order_header'));
+            }
+            if (this.pos.get('max_covers') > 0){
+                // create a pop up 'select-covers' to covers quantity
+                this.select_covers_popup = new module.SelectCoversPopupWidget(this, {});
+                this.select_covers_popup.appendTo($('.point-of-sale'));
+                this.select_covers_popup.hide();
+                this.screen_selector.popup_set['select-covers'] = this.select_covers_popup;
+
+                // Add a widget to manage covers
+                this.covers_order = new module.CoversOrderWidget(this,{});
+                this.covers_order.appendTo(this.$('#pos_order_header'));
+            }
+        },
+    });
+
+    /*************************************************************************
+        Define : New Model 'module.Table'
+    */
+    module.Table = Backbone.Model.extend({
+        get_image_url: function(){
+            return instance.session.url('/web/binary/image', {model: 'pos.table', field: 'image', id: this.get('id')});
+        },
+    });
+
+    module.TableCollection = Backbone.Collection.extend({
+        model: module.Table,
+    });
+
+    /*************************************************************************
+        Overload : Model 'module.Order'
+//    */
+    module.Order = module.Order.extend({
+        set_covers: function(covers){
+            this.set('covers',covers);
+        },
+        get_covers: function(){
+            return this.get('covers');
+        },
+        set_table: function(table){
+            this.set('table',table);
+        },
+        get_table: function(){
+            return this.get('table');
+        },
+        get_table_name: function(){
+            var table = this.get('table');
+            return table ? table.name : "";
+        },
+    });
+
+    var _initialize_Order_ = module.Order.prototype.initialize;
+    module.Order.prototype.initialize = function(attributes){
+        _initialize_Order_.call(this, attributes);
+        this.set({
+            'table': null,
+            'covers': 0,
+        });
+    };
+
+    var _exportAsJSON_Order_ = module.Order.prototype.exportAsJSON;
+    module.Order.prototype.exportAsJSON = function(){
+        result = _exportAsJSON_Order_.call(this);
+        if (this.pos.get('group_restaurant_user')){
+            result['table_id'] = this.get('table') ? this.get('table').id : undefined;
+            result['covers'] = this.get('covers');
+        }
+        return result;
+    };
+
+    /*************************************************************************
+        Overload : Model 'module.PosModel'
+    */
+    /*
+        Overload: PosModel.initialize() to define one new list.
+        'table_list' are the list of all tables available;
+    */
+    var _initialize_PosModel_ = module.PosModel.prototype.initialize;
+    module.PosModel.prototype.initialize = function(session, attributes){
+         _initialize_PosModel_.call(this, session, attributes);
+        this.set({
+            'group_restaurant_user': false,
+            'table_list': new module.TableCollection(),
+            'max_covers': 0,
+        });
+    };
+
+    /*
+        Overload: PosModel.load_server_data() function to get in memory
+        tables.
+    */
+    var _load_server_data_PosModel_ = module.PosModel.prototype.load_server_data;
+    module.PosModel.prototype.load_server_data = function(){
+        var self = this;
+        var load_def = _load_server_data_PosModel_.call(self).then(function(){
+                return self.load_tables_data();
+            });
+        return load_def;
+    };
+
+    module.PosModel = module.PosModel.extend({
+        load_tables_data: function(){
+            var self = this;
+            var res_users_obj = new instance.web.Model('res.users');
+            
+            var loaded = res_users_obj.call(
+                'has_group',
+                ['pos_restaurant.res_group_restaurant_user'],
+                undefined,{}
+            ).then(function(result){
+                self.set({'group_restaurant_user' : result});
+                if (result){
+                    return self.fetch(
+                        'pos.table',
+                        ['name'],
+                        [['shop_id', '=', self.get('shop').id]]
+                    ).then(function(tables){
+                        self.set({'table_list' : new module.TableCollection(tables)});
+                        return self.fetch(
+                            'sale.shop',
+                            ['max_covers'],
+                            [['id', '=', self.get('shop').id]]
+                        ).then(function(max_covers){
+                            self.set({'max_covers' : max_covers[0].max_covers});
+                        });
+                    });
+                }else{
+                    return true;
+                }
+             });
+            return loaded;
+        },
+    });
+};
+

=== added directory 'static/src/xml'
=== added file 'static/src/xml/pr.xml'
--- static/src/xml/pr.xml	1970-01-01 00:00:00 +0000
+++ static/src/xml/pr.xml	2014-07-30 10:55:25 +0000
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ********************************************************************** -->
+<!--Point Of Sale - Restaurant module for OpenERP                           -->
+<!--Copyright (C) 2013-Today GRAP (http://www.grap.coop)                    -->
+<!--@author Sylvain LE GAL (https://twitter.com/legalsylvain)               -->
+
+<!--This program is free software: you can redistribute it and/or modify    -->
+<!--it under the terms of the GNU Affero General Public License as          -->
+<!--published by the Free Software Foundation, either version 3 of the      -->
+<!--License, or (at your option) any later version.                         -->
+
+<!--This program is distributed in the hope that it will be useful,         -->
+<!--but WITHOUT ANY WARRANTY; without even the implied warranty of          -->
+<!--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           -->
+<!--GNU Affero General Public License for more details.                     -->
+
+<!--You should have received a copy of the GNU Affero General Public License-->
+<!--along with this program.  If not, see <http://www.gnu.org/licenses/>.   -->
+<!-- ********************************************************************** -->
+<templates id="template" xml:space="preserve">
+
+<!-- Covers display -->
+
+    <t t-name="CoversOrderWidget">
+        <div class="extra-label">
+            <span class="placeholder-SelectCoversButton" />
+        </div>
+        <div id="covers-quantity" class="extra-label">
+            <div class="extra-text">
+                <t t-esc="widget.get_name()" />
+            </div>
+        </div>
+    </t>
+
+    <t t-name="SelectCoversPopupWidget">
+        <div class="modal-dialog">
+            <div class="popup popup-select-covers">
+                <div class="covers-header">
+                    <div id="covers-title">
+                        Covers Quantity Selection
+                    </div>
+                    <div id="covers-cancel" class="button">
+                        Cancel
+                    </div>
+                </div>
+                <div class="content-container">
+                    <span class="placeholder-CoversListScreenWidget" />
+                </div>
+            </div>
+        </div>
+    </t>
+
+    <t t-name="CoversListScreenWidget">
+        <div class='covers-list-container'>
+            <div class="covers-list-scroller">
+                <ol id="covers-screen-ol" class="covers-list">
+                </ol>
+            </div>
+            <div class="shadow-top"></div>
+            <span class="placeholder-ScrollbarWidget" />
+        </div>
+    </t>
+
+    <t t-name="CoversWidget">
+        <li class='covers'>
+            <a href="#">
+                <div class="covers-quantity">
+                    <div class="covers-text">
+                        <t t-esc="widget.quantity"/>
+                    </div>
+                </div>
+            </a>
+        </li>
+    </t>
+
+<!-- Table display -->
+
+    <t t-name="TableOrderWidget">
+        <div class="extra-label">
+            <span class="placeholder-SelectTableButton" />
+        </div>
+        <div id="table-name" class="extra-label">
+            <div class="extra-text">
+                <t t-esc="widget.get_name()" />
+            </div>
+        </div>
+        <div id="remove-table-button" class="extra-label">
+            <span class="placeholder-RemoveTableButton" />
+        </div>
+    </t>
+
+    <t t-name="SelectTablePopupWidget">
+        <div class="modal-dialog">
+            <div class="popup popup-select-table">
+                <div class="table-header">
+                    <div id="table-title">
+                        Table Selection
+                    </div>
+                    <div id="table-cancel" class="button">
+                        Cancel
+                    </div>
+                </div>
+                <div class="content-container">
+                    <span class="placeholder-TableListScreenWidget" />
+                </div>
+            </div>
+        </div>
+    </t>
+
+    <t t-name="TableListScreenWidget">
+        <div class='table-list-container'>
+            <div class="table-list-scroller">
+                <ol id="table-screen-ol" class="table-list">
+                </ol>
+            </div>
+            <div class="shadow-top"></div>
+            <span class="placeholder-ScrollbarWidget" />
+        </div>
+    </t>
+
+    <t t-name="TableWidget">
+        <li class='table'>
+            <a href="#">
+                <div class="table-img">
+                    <img sr='' />
+                </div>
+                <div class="table-name">
+                    <div class="table-text">
+                        <t t-esc="widget.model.get('name')"/>
+                    </div>
+                </div>
+            </a>
+        </li>
+    </t>
+
+</templates>

=== added directory 'view'
=== added file 'view/action.xml'
--- view/action.xml	1970-01-01 00:00:00 +0000
+++ view/action.xml	2014-07-30 10:55:25 +0000
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ********************************************************************** -->
+<!--Point Of Sale - Restaurant module for OpenERP                           -->
+<!--Copyright (C) 2013-Today GRAP (http://www.grap.coop)                    -->
+<!--@author Sylvain LE GAL (https://twitter.com/legalsylvain)               -->
+
+<!--This program is free software: you can redistribute it and/or modify    -->
+<!--it under the terms of the GNU Affero General Public License as          -->
+<!--published by the Free Software Foundation, either version 3 of the      -->
+<!--License, or (at your option) any later version.                         -->
+
+<!--This program is distributed in the hope that it will be useful,         -->
+<!--but WITHOUT ANY WARRANTY; without even the implied warranty of          -->
+<!--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           -->
+<!--GNU Affero General Public License for more details.                     -->
+
+<!--You should have received a copy of the GNU Affero General Public License-->
+<!--along with this program.  If not, see <http://www.gnu.org/licenses/>.   -->
+<!-- ********************************************************************** -->
+<openerp>
+    <data>
+
+        <record id="action_view_pos_table" model="ir.actions.act_window">
+            <field name="name">Tables</field>
+            <field name="type">ir.actions.act_window</field>
+            <field name="res_model">pos.table</field>
+            <field name="view_type">form</field>
+            <field name="view_mode">tree,form,kanban</field>
+            <field name="help">Display and manage tables in restaurant.</field>
+        </record>
+
+    </data>
+</openerp>

=== added file 'view/menu.xml'
--- view/menu.xml	1970-01-01 00:00:00 +0000
+++ view/menu.xml	2014-07-30 10:55:25 +0000
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ********************************************************************** -->
+<!--Point Of Sale - Restaurant module for OpenERP                           -->
+<!--Copyright (C) 2013-Today GRAP (http://www.grap.coop)                    -->
+<!--@author Sylvain LE GAL (https://twitter.com/legalsylvain)               -->
+
+<!--This program is free software: you can redistribute it and/or modify    -->
+<!--it under the terms of the GNU Affero General Public License as          -->
+<!--published by the Free Software Foundation, either version 3 of the      -->
+<!--License, or (at your option) any later version.                         -->
+
+<!--This program is distributed in the hope that it will be useful,         -->
+<!--but WITHOUT ANY WARRANTY; without even the implied warranty of          -->
+<!--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           -->
+<!--GNU Affero General Public License for more details.                     -->
+
+<!--You should have received a copy of the GNU Affero General Public License-->
+<!--along with this program.  If not, see <http://www.gnu.org/licenses/>.   -->
+<!-- ********************************************************************** -->
+<openerp>
+    <data>
+        <menuitem id="menu_pos_restaurant"
+            name="Restaurant"
+            parent="point_of_sale.menu_point_root"
+            sequence="50"/>
+
+        <menuitem id="menu_table"
+            name="Restaurant tables"
+            parent="menu_pos_restaurant"
+            action="action_view_pos_table"
+            sequence="1"/>
+    </data>
+
+</openerp>

=== added file 'view/view.xml'
--- view/view.xml	1970-01-01 00:00:00 +0000
+++ view/view.xml	2014-07-30 10:55:25 +0000
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ********************************************************************** -->
+<!--Point Of Sale - Restaurant module for OpenERP                           -->
+<!--Copyright (C) 2013-Today GRAP (http://www.grap.coop)                    -->
+<!--@author Sylvain LE GAL (https://twitter.com/legalsylvain)               -->
+
+<!--This program is free software: you can redistribute it and/or modify    -->
+<!--it under the terms of the GNU Affero General Public License as          -->
+<!--published by the Free Software Foundation, either version 3 of the      -->
+<!--License, or (at your option) any later version.                         -->
+
+<!--This program is distributed in the hope that it will be useful,         -->
+<!--but WITHOUT ANY WARRANTY; without even the implied warranty of          -->
+<!--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           -->
+<!--GNU Affero General Public License for more details.                     -->
+
+<!--You should have received a copy of the GNU Affero General Public License-->
+<!--along with this program.  If not, see <http://www.gnu.org/licenses/>.   -->
+<!-- ********************************************************************** -->
+<openerp>
+    <data>
+
+<!-- View : pos.order -->
+        <record id="view_pos_order_tree" model="ir.ui.view">
+            <field name="name">pos.order.tree</field>
+            <field name="model">pos.order</field>
+            <field name="inherit_id" ref="point_of_sale.view_pos_order_tree" />
+            <field name="arch" type="xml">
+                <field name="partner_id" position="after">
+                    <field name="table_id" />
+                    <field name="covers" />
+                </field>
+            </field>
+        </record>
+
+        <record id="view_pos_order_form" model="ir.ui.view">
+            <field name="name">pos.order.form</field>
+            <field name="model">pos.order</field>
+            <field name="inherit_id" ref="point_of_sale.view_pos_pos_form" />
+            <field name="arch" type="xml">
+                <field name="partner_id" position="after">
+                    <field name="table_id" 
+                        options="{'quick_create':false}"/>
+                    <field name="covers" />
+                </field>
+            </field>
+        </record>
+
+<!-- View : sale.shop -->
+        <record id="view_sale_shop_form" model="ir.ui.view">
+            <field name="name">sale.shop.form</field>
+            <field name="model">sale.shop</field>
+            <field name="inherit_id" ref="sale.view_shop_form" />
+            <field name="arch" type="xml">
+                <field name="pricelist_id" position="after">
+                    <field name="max_covers" />
+                </field>
+            </field>
+        </record>
+
+<!-- View : pos.table -->
+        <record id="view_pos_table_tree" model="ir.ui.view">
+            <field name="name">pos.table.tree</field>
+            <field name="model">pos.table</field>
+            <field name="arch" type="xml">
+                <tree string="Tables">
+                    <field name="name"/>
+                    <field name="shop_id"/>
+                    <field name="company_id" groups="base.group_multi_company"/>
+                    <field name="active"/>
+                </tree>
+            </field>
+        </record>
+
+        <record id="view_pos_table_search" model="ir.ui.view">
+            <field name="name">pos.table.search</field>
+            <field name="model">pos.table</field>
+            <field name="arch" type="xml">
+                <search>
+                   <field name="name" />
+                    <field name="shop_id"/>
+                </search>
+            </field>
+        </record>
+
+        <record id="view_pos_table_form" model="ir.ui.view">
+            <field name="name">pos.table.form</field>
+            <field name="model">pos.table</field>
+            <field name="arch" type="xml">
+                <form string="Tables" version="7.0">
+                    <sheet>
+                        <group>
+                            <group>
+                                <field name="image" widget="image" class="oe_avatar oe_left"/>
+                            </group>
+                            <group>
+                                <field name="name"/>
+                                <field name="shop_id"/>
+                                <field name="company_id" groups="base.group_multi_company"/>
+                                <field name="active"/>
+                            </group>
+                        </group>
+                    </sheet>
+                </form>
+            </field>
+        </record>
+
+        <record id="view_pos_table_kanban" model="ir.ui.view">
+            <field name="name">pos.table.kanban</field>
+            <field name="model">pos.table</field>
+            <field name="arch" type="xml">
+                <kanban>
+                    <field name="name"/>
+                        <templates>
+                        <t t-name="kanban-box">
+                            <div class="oe_kanban_box oe_kanban_color_border">
+                                <div style="height:150px;width:150px;overflow:hidden;">
+                                    <div style="height:40px;width:150px;border-bottom:1px solid #999999;padding-left:5px;">
+                                        <a type="edit">
+                                            <ul>
+                                                <li><field name="name"/></li>
+                                                <li><field name="shop_id"/></li>
+                                            </ul>
+                                        </a>
+                                    </div>
+                                    <div style="height:110px;width:150px;text-align:center;vertical-align:middle;padding: 5px 5px 5px 5px">
+                                        <img t-att-src="kanban_image('pos.table', 'image', record.id.value)" width="95"/>
+                                    </div>
+                                </div>
+                            </div>
+                        </t>
+                </templates>
+                </kanban>
+            </field>
+        </record>
+
+    </data>
+</openerp>


Follow ups