From 89b2da6c4999bf7f300f85ef01fc76dc9191be95 Mon Sep 17 00:00:00 2001 From: Sylvain LE GAL Date: Sat, 23 Jul 2016 23:23:02 +0200 Subject: [PATCH] [ADD] new blockage; --- pos_access_right/README.rst | 12 ++++ pos_access_right/demo/res_groups.yml | 13 +++++ pos_access_right/models/pos_config.py | 42 +++++++++++++- pos_access_right/security/res_groups.yml | 18 +++++- .../static/description/new_groups.png | Bin 12284 -> 14943 bytes .../static/src/css/pos_access_right.css | 1 + .../static/src/js/pos_access_right.js | 52 ++++++++++++++++++ 7 files changed, 132 insertions(+), 6 deletions(-) diff --git a/pos_access_right/README.rst b/pos_access_right/README.rst index c92fcdab..de30561d 100644 --- a/pos_access_right/README.rst +++ b/pos_access_right/README.rst @@ -6,6 +6,12 @@ Point of Sale - Extra Access Right for Certain Actions ====================================================== +This module extends Odoo Point Of Sale features, restricting possibility +to cashier to make some actions in the Point of Sale (set discount, change +unit prices, etc...) + +this module can be usefull to limit errors and / or fraud. + This module will add the following groups to Odoo: * PoS - Negative Quantity: The cashier can sell negative quantity in Point Of @@ -16,6 +22,12 @@ This module will add the following groups to Odoo: * PoS - Change Unit Price: The cashier can change the unit price of a product in Point Of Sale; +* PoS - Many Orders: The cashier can many orders at the same time; + +* PoS - Delete Order: The cashier can not delete a full order; + +* PoS - Delete Order Line: The cashier can not delete an order line; + .. image:: /pos_access_right/static/description/new_groups.png If a user doesn't belong to a group, he can not use the according feature. diff --git a/pos_access_right/demo/res_groups.yml b/pos_access_right/demo/res_groups.yml index d79411cb..a0efa203 100644 --- a/pos_access_right/demo/res_groups.yml +++ b/pos_access_right/demo/res_groups.yml @@ -16,3 +16,16 @@ - !record {model: res.groups, id: group_pos_change_unit_price}: users: - base.user_root + +- !record {model: res.groups, id: group_pos_multi_order}: + users: + - base.user_root + +- !record {model: res.groups, id: group_pos_delete_order}: + users: + - base.user_root + +- !record {model: res.groups, id: group_pos_delete_order_line}: + users: + - base.user_root + - base.user_demo diff --git a/pos_access_right/models/pos_config.py b/pos_access_right/models/pos_config.py index 19e5fb01..380b6dc0 100644 --- a/pos_access_right/models/pos_config.py +++ b/pos_access_right/models/pos_config.py @@ -30,23 +30,59 @@ class PosConfig(models.Model): help="This field is there to pass the id of the 'PoS - Allow Unit" " Price Change' Group to the Point of Sale Frontend.") + group_pos_multi_order = fields.Many2one( + comodel_name='res.groups', + compute='_compute_group_pos_multi_order', + string='Point of Sale - Many Orders', + help="This field is there to pass the id of the 'PoS - Many Orders" + " Group to the Point of Sale Frontend.") + + group_pos_delete_order = fields.Many2one( + comodel_name='res.groups', + compute='_compute_group_pos_delete_order', + string='Point of Sale - Delete Order', + help="This field is there to pass the id of the 'PoS - Delete Order'" + " Group to the Point of Sale Frontend.") + + group_pos_delete_order_line = fields.Many2one( + comodel_name='res.groups', + compute='_compute_group_pos_delete_order_line', + string='Point of Sale - Delete Order Line', + help="This field is there to pass the id of the 'PoS - Delete Order" + " Line' Group to the Point of Sale Frontend.") + @api.multi def _compute_group_pos_negative_qty(self): - print self.env.ref('pos_access_right.group_pos_negative_qty') for config in self: self.group_pos_negative_qty = \ self.env.ref('pos_access_right.group_pos_negative_qty') @api.multi def _compute_group_pos_discount(self): - print self.env.ref('pos_access_right.group_pos_discount') for config in self: self.group_pos_discount = \ self.env.ref('pos_access_right.group_pos_discount') @api.multi def _compute_group_pos_change_unit_price(self): - print self.env.ref('pos_access_right.group_pos_change_unit_price') for config in self: self.group_pos_change_unit_price = \ self.env.ref('pos_access_right.group_pos_change_unit_price') + + @api.multi + def _compute_group_pos_multi_order(self): + for config in self: + self.group_pos_discount = \ + self.env.ref('pos_access_right.group_pos_multi_order') + + @api.multi + def _compute_group_pos_delete_order(self): + for config in self: + self.group_pos_discount = \ + self.env.ref('pos_access_right.group_pos_delete_order') + + @api.multi + def _compute_group_pos_delete_order_line(self): + for config in self: + self.group_pos_discount = \ + self.env.ref('pos_access_right.group_pos_delete_order_line') diff --git a/pos_access_right/security/res_groups.yml b/pos_access_right/security/res_groups.yml index 96acd08d..d4b4e589 100644 --- a/pos_access_right/security/res_groups.yml +++ b/pos_access_right/security/res_groups.yml @@ -5,13 +5,25 @@ - !record {model: res.groups, id: group_pos_negative_qty}: - name: Point of Sale - Allow Negative Quantity + name: Point of Sale - Negative Quantity category_id: base.module_category_usability - !record {model: res.groups, id: group_pos_discount}: - name: Point of Sale - Allow Discount + name: Point of Sale - Discount category_id: base.module_category_usability - !record {model: res.groups, id: group_pos_change_unit_price}: - name: Point of Sale - Allow Unit Price Change + name: Point of Sale - Unit Price Change + category_id: base.module_category_usability + +- !record {model: res.groups, id: group_pos_multi_order}: + name: Point of Sale - Many Orders + category_id: base.module_category_usability + +- !record {model: res.groups, id: group_pos_delete_order}: + name: Point of Sale - Delete Order + category_id: base.module_category_usability + +- !record {model: res.groups, id: group_pos_delete_order_line}: + name: Point of Sale - Delete Order Line category_id: base.module_category_usability diff --git a/pos_access_right/static/description/new_groups.png b/pos_access_right/static/description/new_groups.png index 11a1c6162326aea50cdbb42eaedbc532e9f0b566..43ce34c84962605a232bed9ecb50f33c85b5ed62 100644 GIT binary patch literal 14943 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