From cc7923a039a6161eb555f3053b9c3cb4bebc1eba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A0n=20Todorovich?= Date: Tue, 4 Aug 2020 13:38:35 +0200 Subject: [PATCH] [ADD] pos_session_closing_stock_error --- pos_session_closing_stock_error/__init__.py | 1 + .../__manifest__.py | 19 ++++++ .../models/__init__.py | 2 + .../models/pos_config.py | 11 +++ .../models/pos_session.py | 20 ++++++ .../readme/CONFIGURE.rst | 2 + .../readme/CONTRIBUTORS.rst | 1 + .../readme/DESCRIPTION.rst | 7 ++ .../static/description/error_msg.png | Bin 0 -> 17614 bytes .../description/session_with_errors.png | Bin 0 -> 60766 bytes .../tests/__init__.py | 1 + .../tests/test_pos.py | 64 ++++++++++++++++++ .../views/pos_config_views.xml | 22 ++++++ 13 files changed, 150 insertions(+) create mode 100644 pos_session_closing_stock_error/__init__.py create mode 100644 pos_session_closing_stock_error/__manifest__.py create mode 100644 pos_session_closing_stock_error/models/__init__.py create mode 100644 pos_session_closing_stock_error/models/pos_config.py create mode 100644 pos_session_closing_stock_error/models/pos_session.py create mode 100644 pos_session_closing_stock_error/readme/CONFIGURE.rst create mode 100644 pos_session_closing_stock_error/readme/CONTRIBUTORS.rst create mode 100644 pos_session_closing_stock_error/readme/DESCRIPTION.rst create mode 100644 pos_session_closing_stock_error/static/description/error_msg.png create mode 100644 pos_session_closing_stock_error/static/description/session_with_errors.png create mode 100644 pos_session_closing_stock_error/tests/__init__.py create mode 100644 pos_session_closing_stock_error/tests/test_pos.py create mode 100644 pos_session_closing_stock_error/views/pos_config_views.xml diff --git a/pos_session_closing_stock_error/__init__.py b/pos_session_closing_stock_error/__init__.py new file mode 100644 index 00000000..0650744f --- /dev/null +++ b/pos_session_closing_stock_error/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/pos_session_closing_stock_error/__manifest__.py b/pos_session_closing_stock_error/__manifest__.py new file mode 100644 index 00000000..b449e013 --- /dev/null +++ b/pos_session_closing_stock_error/__manifest__.py @@ -0,0 +1,19 @@ +# Copyright 2020 Druidoo - Iván Todorovich +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). +{ + "name": "Point of Sale - Prevent closing sessions with stock errors", + "summary": "Prevent closing PoS Sessions that have stock errors", + "version": "12.0.1.0.0", + "development_status": "Beta", + "category": "Point of Sale", + "website": "https://github.com/OCA/pos", + "author": "Druidoo, Odoo Community Association (OCA)", + "maintainers": ["ivantodorovich"], + "license": "LGPL-3", + "depends": [ + "point_of_sale", + ], + "data": [ + "views/pos_config_views.xml", + ], +} diff --git a/pos_session_closing_stock_error/models/__init__.py b/pos_session_closing_stock_error/models/__init__.py new file mode 100644 index 00000000..20c47743 --- /dev/null +++ b/pos_session_closing_stock_error/models/__init__.py @@ -0,0 +1,2 @@ +from . import pos_config +from . import pos_session diff --git a/pos_session_closing_stock_error/models/pos_config.py b/pos_session_closing_stock_error/models/pos_config.py new file mode 100644 index 00000000..b5d3b3f5 --- /dev/null +++ b/pos_session_closing_stock_error/models/pos_config.py @@ -0,0 +1,11 @@ +from odoo import models, fields + + +class PosConfig(models.Model): + _inherit = 'pos.config' + + allow_session_closing_with_stock_errors = fields.Boolean( + string="Allow closing sessions with stock errors", + help="If disabled, closing a session that has stock errors " + "will be blocked.", + ) diff --git a/pos_session_closing_stock_error/models/pos_session.py b/pos_session_closing_stock_error/models/pos_session.py new file mode 100644 index 00000000..9354ce24 --- /dev/null +++ b/pos_session_closing_stock_error/models/pos_session.py @@ -0,0 +1,20 @@ +from odoo import models, _ +from odoo.exceptions import ValidationError + + +class PosSession(models.Model): + _inherit = 'pos.session' + + def action_pos_session_close(self): + for rec in self: + if ( + rec.picking_count + and not rec.config_id.allow_session_closing_with_stock_errors + ): + raise ValidationError(_( + "It's not possible to close the session %s because it has " + "%i picking error(s).\nPlease resolve them or enable " + "'Allow closing sessions with stock errors' in " + "PoS Configuration: %s.") % ( + rec.name, rec.picking_count, rec.config_id.name)) + return super().action_pos_session_close() diff --git a/pos_session_closing_stock_error/readme/CONFIGURE.rst b/pos_session_closing_stock_error/readme/CONFIGURE.rst new file mode 100644 index 00000000..d5023ff9 --- /dev/null +++ b/pos_session_closing_stock_error/readme/CONFIGURE.rst @@ -0,0 +1,2 @@ +In any Point of Sale configuration (pos.config), disable "Allow closing sessions with stock errors" +to prevent closing sessions with stock errors. diff --git a/pos_session_closing_stock_error/readme/CONTRIBUTORS.rst b/pos_session_closing_stock_error/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000..25a7ad47 --- /dev/null +++ b/pos_session_closing_stock_error/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Iván Todorovich diff --git a/pos_session_closing_stock_error/readme/DESCRIPTION.rst b/pos_session_closing_stock_error/readme/DESCRIPTION.rst new file mode 100644 index 00000000..a804ff36 --- /dev/null +++ b/pos_session_closing_stock_error/readme/DESCRIPTION.rst @@ -0,0 +1,7 @@ +Prevent closing PoS Sessions that have stock.picking errors. + +These errors usually happen when selecting a wrong serial/lot number in the POS. + +.. image:: ../static/description/session_with_errors.png + +.. image:: ../static/description/error_msg.png diff --git a/pos_session_closing_stock_error/static/description/error_msg.png b/pos_session_closing_stock_error/static/description/error_msg.png new file mode 100644 index 0000000000000000000000000000000000000000..fde766ddf8e9eecab5e331d4570d5f27827bd3c3 GIT binary patch literal 17614 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 z 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 STbrlDRabrvLOp%;_J0A#_Y>*> literal 0 HcmV?d00001 diff --git a/pos_session_closing_stock_error/tests/__init__.py b/pos_session_closing_stock_error/tests/__init__.py new file mode 100644 index 00000000..abf4b32c --- /dev/null +++ b/pos_session_closing_stock_error/tests/__init__.py @@ -0,0 +1 @@ +from . import test_pos diff --git a/pos_session_closing_stock_error/tests/test_pos.py b/pos_session_closing_stock_error/tests/test_pos.py new file mode 100644 index 00000000..494d5a48 --- /dev/null +++ b/pos_session_closing_stock_error/tests/test_pos.py @@ -0,0 +1,64 @@ +from odoo import fields +from odoo.exceptions import ValidationError +from odoo.tests.common import TransactionCase + + +class TestPos(TransactionCase): + + def setUp(self): + super().setUp() + self.pos_config = self.env.ref('point_of_sale.pos_config_main').copy({ + 'name': 'Block PoS Session with Stock Error', + 'allow_session_closing_with_stock_errors': False, + }) + self.product_tracking = self.env.ref( + 'point_of_sale.desk_organizer' + ).copy({ + 'name': 'Product with Tracking', + 'tracking': 'serial', + }) + + def test_session_closing_with_errors(self): + pos_session = self.env['pos.session'].create({ + 'config_id': self.pos_config.id, + }) + # We create an order that will generate errors + # (the product requires a serial number) + pos_order = self.env['pos.order'].create({ + 'session_id': pos_session.id, + 'lines': [(0, 0, { + 'name': 'OL/0001', + 'product_id': self.product_tracking.id, + 'tax_ids': False, + 'qty': 1.0, + 'price_unit': 1000, + 'price_subtotal': 1000, + 'price_subtotal_incl': 1000, + })], + 'amount_total': 1000.0, + 'amount_tax': 0.0, + 'amount_paid': 1000.0, + 'amount_return': 0.0, + }) + # Register order payment + pos_order.add_payment({ + 'amount': 1000, + 'payment_date': fields.Datetime.now(), + 'statement_id': pos_session.statement_ids[0].id, + 'payment_name': 'PAY', + 'journal': pos_session.statement_ids[0].journal_id.id, + }) + # Set ending balance in statement + pos_session.statement_ids[0].write({ + 'balance_end_real': pos_session.statement_ids[0].balance_end + }) + pos_order.action_pos_order_paid() + # Blocked because we have errors + with self.assertRaises(ValidationError): + pos_session.action_pos_session_close() + # Enable closing with errors + self.pos_config.write({ + 'allow_session_closing_with_stock_errors': True, + }) + # Should be possible to close now + pos_session.action_pos_session_close() diff --git a/pos_session_closing_stock_error/views/pos_config_views.xml b/pos_session_closing_stock_error/views/pos_config_views.xml new file mode 100644 index 00000000..1f3b0b6e --- /dev/null +++ b/pos_session_closing_stock_error/views/pos_config_views.xml @@ -0,0 +1,22 @@ + + + + pos.config + + +
+
+
+ +
+
+
+
+
+
+
+