From 876b44f2525418b93a37bd24319f8ca2aba553d6 Mon Sep 17 00:00:00 2001 From: FrankC013 Date: Wed, 27 Mar 2024 08:54:26 +0100 Subject: [PATCH] [ADD] point_of_sale_rescue_orders: new module --- point_of_sale_rescue_orders/README.rst | 62 +++ point_of_sale_rescue_orders/__init__.py | 1 + point_of_sale_rescue_orders/__manifest__.py | 12 + .../models/__init__.py | 1 + .../models/pos_session.py | 33 ++ .../readme/CONTRIBUTORS.rst | 3 + .../readme/DESCRIPTION.rst | 1 + .../static/description/img.png | Bin 0 -> 4894 bytes .../static/description/index.html | 419 ++++++++++++++++++ .../odoo/addons/point_of_sale_rescue_orders | 1 + setup/point_of_sale_rescue_orders/setup.py | 6 + 11 files changed, 539 insertions(+) create mode 100644 point_of_sale_rescue_orders/README.rst create mode 100644 point_of_sale_rescue_orders/__init__.py create mode 100644 point_of_sale_rescue_orders/__manifest__.py create mode 100644 point_of_sale_rescue_orders/models/__init__.py create mode 100644 point_of_sale_rescue_orders/models/pos_session.py create mode 100644 point_of_sale_rescue_orders/readme/CONTRIBUTORS.rst create mode 100644 point_of_sale_rescue_orders/readme/DESCRIPTION.rst create mode 100644 point_of_sale_rescue_orders/static/description/img.png create mode 100644 point_of_sale_rescue_orders/static/description/index.html create mode 120000 setup/point_of_sale_rescue_orders/odoo/addons/point_of_sale_rescue_orders create mode 100644 setup/point_of_sale_rescue_orders/setup.py diff --git a/point_of_sale_rescue_orders/README.rst b/point_of_sale_rescue_orders/README.rst new file mode 100644 index 000000000..78aeb61a1 --- /dev/null +++ b/point_of_sale_rescue_orders/README.rst @@ -0,0 +1,62 @@ +=========================== +Point of Sale Rescue Orders +=========================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:a0b790e009809dfd1160e6d0b7b9e05b88ed746a80750f7c54a4dd2e7ff12aab + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-nuobit%2Fodoo--addons-lightgray.png?logo=github + :target: https://github.com/nuobit/odoo-addons/tree/16.0/point_of_sale_rescue_orders + :alt: nuobit/odoo-addons + +|badge1| |badge2| |badge3| + +This module allows you to close session in POS when you have orders still open + +**Table of contents** + +.. contents:: + :local: + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* NuoBiT Solutions SL + +Contributors +~~~~~~~~~~~~ + +* `NuoBiT `__: + + * Frank Cespedes + +Maintainers +~~~~~~~~~~~ + +This module is part of the `nuobit/odoo-addons `_ project on GitHub. + +You are welcome to contribute. diff --git a/point_of_sale_rescue_orders/__init__.py b/point_of_sale_rescue_orders/__init__.py new file mode 100644 index 000000000..0650744f6 --- /dev/null +++ b/point_of_sale_rescue_orders/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/point_of_sale_rescue_orders/__manifest__.py b/point_of_sale_rescue_orders/__manifest__.py new file mode 100644 index 000000000..f13918bc8 --- /dev/null +++ b/point_of_sale_rescue_orders/__manifest__.py @@ -0,0 +1,12 @@ +# Copyright NuoBiT Solutions - Frank Cespedes +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +{ + "name": "Point of Sale Rescue Orders", + "version": "16.0.1.0.0", + "summary": "This module allows you to close session in POS when you have orders still open", + "category": "Sales/Point of Sale", + "author": "NuoBiT Solutions SL", + "website": "https://github.com/nuobit/odoo-addons", + "license": "AGPL-3", + "depends": ["point_of_sale"], +} diff --git a/point_of_sale_rescue_orders/models/__init__.py b/point_of_sale_rescue_orders/models/__init__.py new file mode 100644 index 000000000..f7116e3d4 --- /dev/null +++ b/point_of_sale_rescue_orders/models/__init__.py @@ -0,0 +1 @@ +from . import pos_session diff --git a/point_of_sale_rescue_orders/models/pos_session.py b/point_of_sale_rescue_orders/models/pos_session.py new file mode 100644 index 000000000..341c465fb --- /dev/null +++ b/point_of_sale_rescue_orders/models/pos_session.py @@ -0,0 +1,33 @@ +# Copyright NuoBiT Solutions - Frank Cespedes +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) + +from odoo import models + + +class PosSession(models.Model): + _inherit = "pos.session" + + def post_closing_cash_details(self, counted_cash): + orders = self.order_ids.filtered(lambda x: x.state == "draft") + if orders: + session = self.env["pos.session"].create( + { + "user_id": self.env.uid, + "config_id": self.config_id.id, + "rescue": True, + } + ) + orders.write({"session_id": session.id}) + return super(PosSession, self).post_closing_cash_details(counted_cash) + + def _validate_session( + self, + balancing_account=False, + amount_to_balance=0, + bank_payment_method_diffs=None, + ): + res = super(PosSession, self)._validate_session() + self.config_id.session_ids.filtered( + lambda x: x.state != "closed" + ).rescue = False + return res diff --git a/point_of_sale_rescue_orders/readme/CONTRIBUTORS.rst b/point_of_sale_rescue_orders/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..277078c8e --- /dev/null +++ b/point_of_sale_rescue_orders/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* `NuoBiT `__: + + * Frank Cespedes diff --git a/point_of_sale_rescue_orders/readme/DESCRIPTION.rst b/point_of_sale_rescue_orders/readme/DESCRIPTION.rst new file mode 100644 index 000000000..5177dd2e7 --- /dev/null +++ b/point_of_sale_rescue_orders/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +This module allows you to close session in POS when you have orders still open diff --git a/point_of_sale_rescue_orders/static/description/img.png b/point_of_sale_rescue_orders/static/description/img.png new file mode 100644 index 0000000000000000000000000000000000000000..6035861aa996f07f4f83a31acf3dec4ca4511ed4 GIT binary patch literal 4894 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 + + + + + +Point of Sale Rescue Orders + + + +
+

Point of Sale Rescue Orders

+ + +

Beta License: AGPL-3 nuobit/odoo-addons

+

This module allows you to close session in POS when you have orders still open

+

Table of contents

+ +
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • NuoBiT Solutions SL
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is part of the nuobit/odoo-addons project on GitHub.

+

You are welcome to contribute.

+
+
+
+ + diff --git a/setup/point_of_sale_rescue_orders/odoo/addons/point_of_sale_rescue_orders b/setup/point_of_sale_rescue_orders/odoo/addons/point_of_sale_rescue_orders new file mode 120000 index 000000000..254137037 --- /dev/null +++ b/setup/point_of_sale_rescue_orders/odoo/addons/point_of_sale_rescue_orders @@ -0,0 +1 @@ +../../../../point_of_sale_rescue_orders \ No newline at end of file diff --git a/setup/point_of_sale_rescue_orders/setup.py b/setup/point_of_sale_rescue_orders/setup.py new file mode 100644 index 000000000..28c57bb64 --- /dev/null +++ b/setup/point_of_sale_rescue_orders/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)