From cbe9297da4151339e33ad47157118f3ebcc24fee Mon Sep 17 00:00:00 2001 From: angel Date: Mon, 22 Sep 2025 16:08:27 +0200 Subject: [PATCH 1/6] [17.0][ADD] pos_early_receipt_printing --- pos_early_receipt_printing/README.rst | 97 ++++ pos_early_receipt_printing/__init__.py | 1 + pos_early_receipt_printing/__manifest__.py | 13 + pos_early_receipt_printing/i18n/ca_ES.po | 31 ++ pos_early_receipt_printing/i18n/es.po | 31 ++ pos_early_receipt_printing/models/__init__.py | 4 + .../models/res_config_settings.py | 29 ++ pos_early_receipt_printing/pyproject.toml | 3 + .../readme/CONFIGURE.md | 5 + .../readme/CONTRIBUTORS.md | 3 + .../readme/DESCRIPTION.md | 2 + pos_early_receipt_printing/readme/USAGE.md | 5 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 447 ++++++++++++++++++ .../views/pos_config_views.xml | 19 + 15 files changed, 690 insertions(+) create mode 100644 pos_early_receipt_printing/README.rst create mode 100644 pos_early_receipt_printing/__init__.py create mode 100644 pos_early_receipt_printing/__manifest__.py create mode 100644 pos_early_receipt_printing/i18n/ca_ES.po create mode 100644 pos_early_receipt_printing/i18n/es.po create mode 100644 pos_early_receipt_printing/models/__init__.py create mode 100644 pos_early_receipt_printing/models/res_config_settings.py create mode 100644 pos_early_receipt_printing/pyproject.toml create mode 100644 pos_early_receipt_printing/readme/CONFIGURE.md create mode 100644 pos_early_receipt_printing/readme/CONTRIBUTORS.md create mode 100644 pos_early_receipt_printing/readme/DESCRIPTION.md create mode 100644 pos_early_receipt_printing/readme/USAGE.md create mode 100644 pos_early_receipt_printing/static/description/icon.png create mode 100644 pos_early_receipt_printing/static/description/index.html create mode 100644 pos_early_receipt_printing/views/pos_config_views.xml diff --git a/pos_early_receipt_printing/README.rst b/pos_early_receipt_printing/README.rst new file mode 100644 index 0000000000..12447e4337 --- /dev/null +++ b/pos_early_receipt_printing/README.rst @@ -0,0 +1,97 @@ +========================== +POS Early Receipt Printing +========================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:13fc5407b7ba4cf532749d1de0384613f09dbfcadba616cc1b64b0af7886dc15 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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-OCA%2Fpos-lightgray.png?logo=github + :target: https://github.com/OCA/pos/tree/17.0/pos_early_receipt_printing + :alt: OCA/pos +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/pos-17-0/pos-17-0-pos_early_receipt_printing + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/pos&target_branch=17.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows you to display the option to print bills from the POS +even if it is not a restaurant type. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +To configure this module, you need to: + +1. Go to Point of Sale module. +2. Select the Point of Sale -> Settings. +3. Checks 'Early Receipt Printing'. + +Usage +===== + +To use this module, you need to: + +1. Open a new session of the configured point of sale. +2. You will see that you can print receipts before completing the sale. + +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 +------- + +* Sygel + +Contributors +------------ + +- `Sygel `__: + + - Valentín Vinagre + - Ángel García de la Chica + +Maintainers +----------- + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/pos `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/pos_early_receipt_printing/__init__.py b/pos_early_receipt_printing/__init__.py new file mode 100644 index 0000000000..0650744f6b --- /dev/null +++ b/pos_early_receipt_printing/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/pos_early_receipt_printing/__manifest__.py b/pos_early_receipt_printing/__manifest__.py new file mode 100644 index 0000000000..38ddf26b45 --- /dev/null +++ b/pos_early_receipt_printing/__manifest__.py @@ -0,0 +1,13 @@ +{ + "name": "POS Early Receipt Printing", + "summary": "Generate bill from Shop", + "version": "17.0.1.0.0", + "category": "POS", + "website": "https://github.com/OCA/pos", + "author": "Sygel, Odoo Community Association (OCA)", + "license": "AGPL-3", + "application": False, + "installable": True, + "depends": ["pos_restaurant"], + "data": ["views/pos_config_views.xml"], +} diff --git a/pos_early_receipt_printing/i18n/ca_ES.po b/pos_early_receipt_printing/i18n/ca_ES.po new file mode 100644 index 0000000000..3c8f9b5825 --- /dev/null +++ b/pos_early_receipt_printing/i18n/ca_ES.po @@ -0,0 +1,31 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * pos_early_receipt_printing +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 14:28+0000\n" +"PO-Revision-Date: 2025-09-19 14:28+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_early_receipt_printing +#: model_terms:ir.ui.view,arch_db:pos_early_receipt_printing.pos_shop_bill_config_view_form +msgid "Allow to print receipt before payment" +msgstr "Permet imprimir el rebut abans del pagament" + +#. module: pos_early_receipt_printing +#: model:ir.model,name:pos_early_receipt_printing.model_res_config_settings +msgid "Config Settings" +msgstr "Ajustos de configuració" + +#. module: pos_early_receipt_printing +#: model_terms:ir.ui.view,arch_db:pos_early_receipt_printing.pos_shop_bill_config_view_form +msgid "Early Receipt Printing" +msgstr "Impressió de rebut inicial" diff --git a/pos_early_receipt_printing/i18n/es.po b/pos_early_receipt_printing/i18n/es.po new file mode 100644 index 0000000000..cf7241d044 --- /dev/null +++ b/pos_early_receipt_printing/i18n/es.po @@ -0,0 +1,31 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * pos_early_receipt_printing +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-19 14:27+0000\n" +"PO-Revision-Date: 2025-09-19 14:27+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_early_receipt_printing +#: model_terms:ir.ui.view,arch_db:pos_early_receipt_printing.pos_shop_bill_config_view_form +msgid "Allow to print receipt before payment" +msgstr "Permitir imprimir el recibo antes del pago" + +#. module: pos_early_receipt_printing +#: model:ir.model,name:pos_early_receipt_printing.model_res_config_settings +msgid "Config Settings" +msgstr "Ajustes de configuración" + +#. module: pos_early_receipt_printing +#: model_terms:ir.ui.view,arch_db:pos_early_receipt_printing.pos_shop_bill_config_view_form +msgid "Early Receipt Printing" +msgstr "Impresión anticipada del recibo" diff --git a/pos_early_receipt_printing/models/__init__.py b/pos_early_receipt_printing/models/__init__.py new file mode 100644 index 0000000000..9cd8dc6796 --- /dev/null +++ b/pos_early_receipt_printing/models/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2025 Ángel García de la Chica Herrera +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import res_config_settings diff --git a/pos_early_receipt_printing/models/res_config_settings.py b/pos_early_receipt_printing/models/res_config_settings.py new file mode 100644 index 0000000000..9bcd997332 --- /dev/null +++ b/pos_early_receipt_printing/models/res_config_settings.py @@ -0,0 +1,29 @@ +# Copyright 2025 Ángel García de la Chica Herrera +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import api, models + + +class ResConfigSettings(models.TransientModel): + _inherit = "res.config.settings" + + @api.depends("pos_module_pos_restaurant", "pos_config_id") + def _compute_pos_module_pos_restaurant(self): + for res_config in self: + if ( + not res_config.pos_module_pos_restaurant + and res_config.pos_config_id.iface_printbill + ): + res_config.update( + { + "pos_iface_printbill": True, + "pos_iface_splitbill": False, + } + ) + return super( + ResConfigSettings, + self.filtered( + lambda x: x.pos_module_pos_restaurant + or not res_config.pos_config_id.iface_printbill + ), + ) diff --git a/pos_early_receipt_printing/pyproject.toml b/pos_early_receipt_printing/pyproject.toml new file mode 100644 index 0000000000..4231d0cccb --- /dev/null +++ b/pos_early_receipt_printing/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/pos_early_receipt_printing/readme/CONFIGURE.md b/pos_early_receipt_printing/readme/CONFIGURE.md new file mode 100644 index 0000000000..0504aaa9c5 --- /dev/null +++ b/pos_early_receipt_printing/readme/CONFIGURE.md @@ -0,0 +1,5 @@ +To configure this module, you need to: + +1. Go to Point of Sale module. +2. Select the Point of Sale -> Settings. +3. Checks 'Early Receipt Printing'. diff --git a/pos_early_receipt_printing/readme/CONTRIBUTORS.md b/pos_early_receipt_printing/readme/CONTRIBUTORS.md new file mode 100644 index 0000000000..4ecb689219 --- /dev/null +++ b/pos_early_receipt_printing/readme/CONTRIBUTORS.md @@ -0,0 +1,3 @@ +- [Sygel](https://www.sygel.es): + - Valentín Vinagre + - Ángel García de la Chica diff --git a/pos_early_receipt_printing/readme/DESCRIPTION.md b/pos_early_receipt_printing/readme/DESCRIPTION.md new file mode 100644 index 0000000000..9bbf4901e2 --- /dev/null +++ b/pos_early_receipt_printing/readme/DESCRIPTION.md @@ -0,0 +1,2 @@ +This module allows you to display the option to print bills from the POS +even if it is not a restaurant type. diff --git a/pos_early_receipt_printing/readme/USAGE.md b/pos_early_receipt_printing/readme/USAGE.md new file mode 100644 index 0000000000..256a0e312e --- /dev/null +++ b/pos_early_receipt_printing/readme/USAGE.md @@ -0,0 +1,5 @@ +To use this module, you need to: + +1. Open a new session of the configured point of sale. +2. You will see that you can print receipts before completing the + sale. diff --git a/pos_early_receipt_printing/static/description/icon.png b/pos_early_receipt_printing/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/pos_early_receipt_printing/static/description/index.html b/pos_early_receipt_printing/static/description/index.html new file mode 100644 index 0000000000..dfc2a271be --- /dev/null +++ b/pos_early_receipt_printing/static/description/index.html @@ -0,0 +1,447 @@ + + + + + +POS Early Receipt Printing + + + +
+

POS Early Receipt Printing

+ + +

Beta License: AGPL-3 OCA/pos Translate me on Weblate Try me on Runboat

+

This module allows you to display the option to print bills from the POS +even if it is not a restaurant type.

+

Table of contents

+ +
+

Configuration

+

To configure this module, you need to:

+
    +
  1. Go to Point of Sale module.
  2. +
  3. Select the Point of Sale -> Settings.
  4. +
  5. Checks ‘Early Receipt Printing’.
  6. +
+
+
+

Usage

+

To use this module, you need to:

+
    +
  1. Open a new session of the configured point of sale.
  2. +
  3. You will see that you can print receipts before completing the sale.
  4. +
+
+
+

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

+
    +
  • Sygel
  • +
+
+
+

Contributors

+
    +
  • Sygel:
      +
    • Valentín Vinagre
    • +
    • Ángel García de la Chica
    • +
    +
  • +
+
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/pos project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/pos_early_receipt_printing/views/pos_config_views.xml b/pos_early_receipt_printing/views/pos_config_views.xml new file mode 100644 index 0000000000..d556bc5946 --- /dev/null +++ b/pos_early_receipt_printing/views/pos_config_views.xml @@ -0,0 +1,19 @@ + + + + pos.shop.bill.config.view.form + + pos.config + + + + + + + + + From d47ef6c4a5152fef185431e8a875a39b80f263f0 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Thu, 25 Sep 2025 11:16:26 +0000 Subject: [PATCH 2/6] [UPD] Update pos_early_receipt_printing.pot --- pos_early_receipt_printing/i18n/ca_ES.po | 1 + pos_early_receipt_printing/i18n/es.po | 1 + .../i18n/pos_early_receipt_printing.pot | 29 +++++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 pos_early_receipt_printing/i18n/pos_early_receipt_printing.pot diff --git a/pos_early_receipt_printing/i18n/ca_ES.po b/pos_early_receipt_printing/i18n/ca_ES.po index 3c8f9b5825..0d911a9046 100644 --- a/pos_early_receipt_printing/i18n/ca_ES.po +++ b/pos_early_receipt_printing/i18n/ca_ES.po @@ -10,6 +10,7 @@ msgstr "" "PO-Revision-Date: 2025-09-19 14:28+0000\n" "Last-Translator: \n" "Language-Team: \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" diff --git a/pos_early_receipt_printing/i18n/es.po b/pos_early_receipt_printing/i18n/es.po index cf7241d044..4ade46db3c 100644 --- a/pos_early_receipt_printing/i18n/es.po +++ b/pos_early_receipt_printing/i18n/es.po @@ -10,6 +10,7 @@ msgstr "" "PO-Revision-Date: 2025-09-19 14:27+0000\n" "Last-Translator: \n" "Language-Team: \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" diff --git a/pos_early_receipt_printing/i18n/pos_early_receipt_printing.pot b/pos_early_receipt_printing/i18n/pos_early_receipt_printing.pot new file mode 100644 index 0000000000..994a2ccc81 --- /dev/null +++ b/pos_early_receipt_printing/i18n/pos_early_receipt_printing.pot @@ -0,0 +1,29 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * pos_early_receipt_printing +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \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_early_receipt_printing +#: model_terms:ir.ui.view,arch_db:pos_early_receipt_printing.pos_shop_bill_config_view_form +msgid "Allow to print receipt before payment" +msgstr "" + +#. module: pos_early_receipt_printing +#: model:ir.model,name:pos_early_receipt_printing.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: pos_early_receipt_printing +#: model_terms:ir.ui.view,arch_db:pos_early_receipt_printing.pos_shop_bill_config_view_form +msgid "Early Receipt Printing" +msgstr "" From 20ed6fa12cc89c6e479ba95ffc4b6f969f186415 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Thu, 25 Sep 2025 11:21:03 +0000 Subject: [PATCH 3/6] [BOT] post-merge updates --- pos_early_receipt_printing/README.rst | 8 +++-- .../static/description/index.html | 30 +++++++++++-------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/pos_early_receipt_printing/README.rst b/pos_early_receipt_printing/README.rst index 12447e4337..8d5ad37138 100644 --- a/pos_early_receipt_printing/README.rst +++ b/pos_early_receipt_printing/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ========================== POS Early Receipt Printing ========================== @@ -7,13 +11,13 @@ POS Early Receipt Printing !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:13fc5407b7ba4cf532749d1de0384613f09dbfcadba616cc1b64b0af7886dc15 + !! source digest: sha256:b72f153c5e0f9c73d969259c3d3e6d0285d4a323258d5d3b77bace56ee643223 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |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 +.. |badge2| image:: https://img.shields.io/badge/license-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-OCA%2Fpos-lightgray.png?logo=github diff --git a/pos_early_receipt_printing/static/description/index.html b/pos_early_receipt_printing/static/description/index.html index dfc2a271be..e40bb66861 100644 --- a/pos_early_receipt_printing/static/description/index.html +++ b/pos_early_receipt_printing/static/description/index.html @@ -3,7 +3,7 @@ -POS Early Receipt Printing +README.rst -
-

POS Early Receipt Printing

+
+ + +Odoo Community Association + +
+

POS Early Receipt Printing

-

Beta License: AGPL-3 OCA/pos Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/pos Translate me on Weblate Try me on Runboat

This module allows you to display the option to print bills from the POS even if it is not a restaurant type.

Table of contents

@@ -387,7 +392,7 @@

POS Early Receipt Printing

-

Configuration

+

Configuration

To configure this module, you need to:

  1. Go to Point of Sale module.
  2. @@ -396,7 +401,7 @@

    Configuration

-

Usage

+

Usage

To use this module, you need to:

  1. Open a new session of the configured point of sale.
  2. @@ -404,7 +409,7 @@

    Usage

-

Bug Tracker

+

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 @@ -412,15 +417,15 @@

Bug Tracker

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

-

Credits

+

Credits

-

Authors

+

Authors

  • Sygel
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -443,5 +448,6 @@

Maintainers

+
From 26ef9a03cc54dfc017149a5ac040e301d587313e Mon Sep 17 00:00:00 2001 From: mymage Date: Sun, 28 Sep 2025 15:13:42 +0000 Subject: [PATCH 4/6] Added translation using Weblate (Italian) --- pos_early_receipt_printing/i18n/it.po | 30 +++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 pos_early_receipt_printing/i18n/it.po diff --git a/pos_early_receipt_printing/i18n/it.po b/pos_early_receipt_printing/i18n/it.po new file mode 100644 index 0000000000..4d2a335a86 --- /dev/null +++ b/pos_early_receipt_printing/i18n/it.po @@ -0,0 +1,30 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * pos_early_receipt_printing +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. module: pos_early_receipt_printing +#: model_terms:ir.ui.view,arch_db:pos_early_receipt_printing.pos_shop_bill_config_view_form +msgid "Allow to print receipt before payment" +msgstr "" + +#. module: pos_early_receipt_printing +#: model:ir.model,name:pos_early_receipt_printing.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: pos_early_receipt_printing +#: model_terms:ir.ui.view,arch_db:pos_early_receipt_printing.pos_shop_bill_config_view_form +msgid "Early Receipt Printing" +msgstr "" From a1a99da7bbdc8033362fe779009863e4c54c7bd7 Mon Sep 17 00:00:00 2001 From: mymage Date: Wed, 12 Nov 2025 06:47:23 +0000 Subject: [PATCH 5/6] Translated using Weblate (Italian) Currently translated at 100.0% (3 of 3 strings) Translation: pos-17.0/pos-17.0-pos_early_receipt_printing Translate-URL: https://translation.odoo-community.org/projects/pos-17-0/pos-17-0-pos_early_receipt_printing/it/ --- pos_early_receipt_printing/i18n/it.po | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pos_early_receipt_printing/i18n/it.po b/pos_early_receipt_printing/i18n/it.po index 4d2a335a86..eaaf96e4f4 100644 --- a/pos_early_receipt_printing/i18n/it.po +++ b/pos_early_receipt_printing/i18n/it.po @@ -6,25 +6,27 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 17.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2025-11-12 09:42+0000\n" +"Last-Translator: mymage \n" "Language-Team: none\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.10.4\n" #. module: pos_early_receipt_printing #: model_terms:ir.ui.view,arch_db:pos_early_receipt_printing.pos_shop_bill_config_view_form msgid "Allow to print receipt before payment" -msgstr "" +msgstr "Consente di stampare la ricevuta prima del pagamento" #. module: pos_early_receipt_printing #: model:ir.model,name:pos_early_receipt_printing.model_res_config_settings msgid "Config Settings" -msgstr "" +msgstr "Impostazioni configurazione" #. module: pos_early_receipt_printing #: model_terms:ir.ui.view,arch_db:pos_early_receipt_printing.pos_shop_bill_config_view_form msgid "Early Receipt Printing" -msgstr "" +msgstr "Stampa ricevuta in anticipo" From 313dcec7499db7b69ac3adcf18bc76f04647b7ac Mon Sep 17 00:00:00 2001 From: Angel Rivas Date: Fri, 5 Jun 2026 13:58:53 +0200 Subject: [PATCH 6/6] [MIG] pos_early_receipt_printing: Migration to 18.0 --- pos_early_receipt_printing/README.rst | 42 +++++++++----- pos_early_receipt_printing/__manifest__.py | 7 ++- pos_early_receipt_printing/i18n/ca_ES.po | 23 +++++--- pos_early_receipt_printing/i18n/es.po | 21 +++++-- .../models/res_config_settings.py | 17 ++---- .../readme/CONFIGURE.md | 12 +++- .../readme/CONTRIBUTORS.md | 2 + pos_early_receipt_printing/readme/USAGE.md | 8 ++- .../static/description/index.html | 56 +++++++++++-------- .../static/src/xml/control_buttons.xml | 23 ++++++++ pos_early_receipt_printing/tests/__init__.py | 3 + .../tests/test_pos_early_receipt_printing.py | 42 ++++++++++++++ .../views/pos_config_views.xml | 20 +++++++ 13 files changed, 204 insertions(+), 72 deletions(-) create mode 100644 pos_early_receipt_printing/static/src/xml/control_buttons.xml create mode 100644 pos_early_receipt_printing/tests/__init__.py create mode 100644 pos_early_receipt_printing/tests/test_pos_early_receipt_printing.py diff --git a/pos_early_receipt_printing/README.rst b/pos_early_receipt_printing/README.rst index 8d5ad37138..f7c40f4b57 100644 --- a/pos_early_receipt_printing/README.rst +++ b/pos_early_receipt_printing/README.rst @@ -1,7 +1,3 @@ -.. image:: https://odoo-community.org/readme-banner-image - :target: https://odoo-community.org/get-involved?utm_source=readme - :alt: Odoo Community Association - ========================== POS Early Receipt Printing ========================== @@ -17,17 +13,17 @@ POS Early Receipt Printing .. |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/license-AGPL--3-blue.png +.. |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-OCA%2Fpos-lightgray.png?logo=github - :target: https://github.com/OCA/pos/tree/17.0/pos_early_receipt_printing + :target: https://github.com/OCA/pos/tree/18.0/pos_early_receipt_printing :alt: OCA/pos .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/pos-17-0/pos-17-0-pos_early_receipt_printing + :target: https://translation.odoo-community.org/projects/pos-18-0/pos-18-0-pos_early_receipt_printing :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/pos&target_branch=17.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/pos&target_branch=18.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -45,17 +41,31 @@ Configuration To configure this module, you need to: -1. Go to Point of Sale module. -2. Select the Point of Sale -> Settings. -3. Checks 'Early Receipt Printing'. +1. Go to **Point of Sale**. + +2. Open **Point of Sale → Settings**. + +3. Enable **Early Receipt Printing**: + + - For **shop** Point of Sale configurations, the option is available + in the **Bills & Receipts** section. + - For **restaurant** Point of Sale configurations, the option remains + available in the **Restaurant Mode** section. + +Alternatively, you can configure the option directly from the Point of +Sale configuration form: **Point of Sale → Dashboard → (⋮) → Edit** and +enable **Early Receipt Printing**. Usage ===== To use this module, you need to: -1. Open a new session of the configured point of sale. -2. You will see that you can print receipts before completing the sale. +1. Configure **Early Receipt Printing** on the desired Point of Sale. +2. Open a new Point of Sale session. +3. Create an order and add one or more products. +4. Click **Actions**. +5. Click **Bill** to print a receipt before completing the payment. Bug Tracker =========== @@ -63,7 +73,7 @@ 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 `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -82,6 +92,8 @@ Contributors - Valentín Vinagre - Ángel García de la Chica + - Ángel Rivas + - Harald Panten Maintainers ----------- @@ -96,6 +108,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -This module is part of the `OCA/pos `_ project on GitHub. +This module is part of the `OCA/pos `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/pos_early_receipt_printing/__manifest__.py b/pos_early_receipt_printing/__manifest__.py index 38ddf26b45..c8b3032450 100644 --- a/pos_early_receipt_printing/__manifest__.py +++ b/pos_early_receipt_printing/__manifest__.py @@ -1,7 +1,7 @@ { "name": "POS Early Receipt Printing", "summary": "Generate bill from Shop", - "version": "17.0.1.0.0", + "version": "18.0.1.0.0", "category": "POS", "website": "https://github.com/OCA/pos", "author": "Sygel, Odoo Community Association (OCA)", @@ -10,4 +10,9 @@ "installable": True, "depends": ["pos_restaurant"], "data": ["views/pos_config_views.xml"], + "assets": { + "point_of_sale._assets_pos": [ + "pos_early_receipt_printing/static/src/xml/control_buttons.xml", + ], + }, } diff --git a/pos_early_receipt_printing/i18n/ca_ES.po b/pos_early_receipt_printing/i18n/ca_ES.po index 0d911a9046..35e391bf76 100644 --- a/pos_early_receipt_printing/i18n/ca_ES.po +++ b/pos_early_receipt_printing/i18n/ca_ES.po @@ -4,29 +4,38 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 17.0+e\n" +"Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-19 14:28+0000\n" -"PO-Revision-Date: 2025-09-19 14:28+0000\n" +"POT-Creation-Date: 2026-06-08 06:23+0000\n" +"PO-Revision-Date: 2026-06-08 08:25+0200\n" "Last-Translator: \n" "Language-Team: \n" -"Language: \n" +"Language: ca_ES\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.9\n" #. module: pos_early_receipt_printing #: model_terms:ir.ui.view,arch_db:pos_early_receipt_printing.pos_shop_bill_config_view_form +#: model_terms:ir.ui.view,arch_db:pos_early_receipt_printing.res_config_settings_view_form_pos_printbill msgid "Allow to print receipt before payment" msgstr "Permet imprimir el rebut abans del pagament" +#. module: pos_early_receipt_printing +#. odoo-javascript +#: code:addons/pos_early_receipt_printing/static/src/xml/control_buttons.xml:0 +msgid "Bill" +msgstr "Factura" + #. module: pos_early_receipt_printing #: model:ir.model,name:pos_early_receipt_printing.model_res_config_settings msgid "Config Settings" -msgstr "Ajustos de configuració" +msgstr "Paràmetres de configuració" #. module: pos_early_receipt_printing #: model_terms:ir.ui.view,arch_db:pos_early_receipt_printing.pos_shop_bill_config_view_form +#: model_terms:ir.ui.view,arch_db:pos_early_receipt_printing.res_config_settings_view_form_pos_printbill msgid "Early Receipt Printing" msgstr "Impressió de rebut inicial" diff --git a/pos_early_receipt_printing/i18n/es.po b/pos_early_receipt_printing/i18n/es.po index 4ade46db3c..6489a44c05 100644 --- a/pos_early_receipt_printing/i18n/es.po +++ b/pos_early_receipt_printing/i18n/es.po @@ -4,23 +4,31 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 17.0+e\n" +"Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-19 14:27+0000\n" -"PO-Revision-Date: 2025-09-19 14:27+0000\n" +"POT-Creation-Date: 2026-06-08 06:23+0000\n" +"PO-Revision-Date: 2026-06-08 08:24+0200\n" "Last-Translator: \n" "Language-Team: \n" -"Language: \n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.9\n" #. module: pos_early_receipt_printing #: model_terms:ir.ui.view,arch_db:pos_early_receipt_printing.pos_shop_bill_config_view_form +#: model_terms:ir.ui.view,arch_db:pos_early_receipt_printing.res_config_settings_view_form_pos_printbill msgid "Allow to print receipt before payment" msgstr "Permitir imprimir el recibo antes del pago" +#. module: pos_early_receipt_printing +#. odoo-javascript +#: code:addons/pos_early_receipt_printing/static/src/xml/control_buttons.xml:0 +msgid "Bill" +msgstr "Factura" + #. module: pos_early_receipt_printing #: model:ir.model,name:pos_early_receipt_printing.model_res_config_settings msgid "Config Settings" @@ -28,5 +36,6 @@ msgstr "Ajustes de configuración" #. module: pos_early_receipt_printing #: model_terms:ir.ui.view,arch_db:pos_early_receipt_printing.pos_shop_bill_config_view_form +#: model_terms:ir.ui.view,arch_db:pos_early_receipt_printing.res_config_settings_view_form_pos_printbill msgid "Early Receipt Printing" msgstr "Impresión anticipada del recibo" diff --git a/pos_early_receipt_printing/models/res_config_settings.py b/pos_early_receipt_printing/models/res_config_settings.py index 9bcd997332..131f8cb1e7 100644 --- a/pos_early_receipt_printing/models/res_config_settings.py +++ b/pos_early_receipt_printing/models/res_config_settings.py @@ -9,21 +9,12 @@ class ResConfigSettings(models.TransientModel): @api.depends("pos_module_pos_restaurant", "pos_config_id") def _compute_pos_module_pos_restaurant(self): + res = super()._compute_pos_module_pos_restaurant() for res_config in self: if ( not res_config.pos_module_pos_restaurant and res_config.pos_config_id.iface_printbill ): - res_config.update( - { - "pos_iface_printbill": True, - "pos_iface_splitbill": False, - } - ) - return super( - ResConfigSettings, - self.filtered( - lambda x: x.pos_module_pos_restaurant - or not res_config.pos_config_id.iface_printbill - ), - ) + res_config.pos_iface_printbill = True + res_config.pos_iface_splitbill = False + return res diff --git a/pos_early_receipt_printing/readme/CONFIGURE.md b/pos_early_receipt_printing/readme/CONFIGURE.md index 0504aaa9c5..1572e9a5f9 100644 --- a/pos_early_receipt_printing/readme/CONFIGURE.md +++ b/pos_early_receipt_printing/readme/CONFIGURE.md @@ -1,5 +1,11 @@ To configure this module, you need to: -1. Go to Point of Sale module. -2. Select the Point of Sale -> Settings. -3. Checks 'Early Receipt Printing'. +1. Go to **Point of Sale**. +2. Open **Point of Sale → Settings**. +3. Enable **Early Receipt Printing**: + + * For **shop** Point of Sale configurations, the option is available in the **Bills & Receipts** section. + * For **restaurant** Point of Sale configurations, the option remains available in the **Restaurant Mode** section. + +Alternatively, you can configure the option directly from the Point of Sale configuration form: +**Point of Sale → Dashboard → (⋮) → Edit** and enable **Early Receipt Printing**. diff --git a/pos_early_receipt_printing/readme/CONTRIBUTORS.md b/pos_early_receipt_printing/readme/CONTRIBUTORS.md index 4ecb689219..c4d8a80821 100644 --- a/pos_early_receipt_printing/readme/CONTRIBUTORS.md +++ b/pos_early_receipt_printing/readme/CONTRIBUTORS.md @@ -1,3 +1,5 @@ - [Sygel](https://www.sygel.es): - Valentín Vinagre - Ángel García de la Chica + - Ángel Rivas + - Harald Panten diff --git a/pos_early_receipt_printing/readme/USAGE.md b/pos_early_receipt_printing/readme/USAGE.md index 256a0e312e..6da3633c4a 100644 --- a/pos_early_receipt_printing/readme/USAGE.md +++ b/pos_early_receipt_printing/readme/USAGE.md @@ -1,5 +1,7 @@ To use this module, you need to: -1. Open a new session of the configured point of sale. -2. You will see that you can print receipts before completing the - sale. +1. Configure **Early Receipt Printing** on the desired Point of Sale. +2. Open a new Point of Sale session. +3. Create an order and add one or more products. +4. Click **Actions**. +5. Click **Bill** to print a receipt before completing the payment. diff --git a/pos_early_receipt_printing/static/description/index.html b/pos_early_receipt_printing/static/description/index.html index e40bb66861..c413f17e1e 100644 --- a/pos_early_receipt_printing/static/description/index.html +++ b/pos_early_receipt_printing/static/description/index.html @@ -3,7 +3,7 @@ -README.rst +POS Early Receipt Printing -
+
+

POS Early Receipt Printing

- - -Odoo Community Association - -
-

POS Early Receipt Printing

-

Beta License: AGPL-3 OCA/pos Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/pos Translate me on Weblate Try me on Runboat

This module allows you to display the option to print bills from the POS even if it is not a restaurant type.

Table of contents

@@ -392,50 +387,64 @@

POS Early Receipt Printing

-

Configuration

+

Configuration

To configure this module, you need to:

    -
  1. Go to Point of Sale module.
  2. -
  3. Select the Point of Sale -> Settings.
  4. -
  5. Checks ‘Early Receipt Printing’.
  6. +
  7. Go to Point of Sale.
  8. +
  9. Open Point of Sale → Settings.
  10. +
  11. Enable Early Receipt Printing:
      +
    • For shop Point of Sale configurations, the option is available +in the Bills & Receipts section.
    • +
    • For restaurant Point of Sale configurations, the option remains +available in the Restaurant Mode section.
    • +
    +
+

Alternatively, you can configure the option directly from the Point of +Sale configuration form: Point of Sale → Dashboard → (⋮) → Edit and +enable Early Receipt Printing.

-

Usage

+

Usage

To use this module, you need to:

    -
  1. Open a new session of the configured point of sale.
  2. -
  3. You will see that you can print receipts before completing the sale.
  4. +
  5. Configure Early Receipt Printing on the desired Point of Sale.
  6. +
  7. Open a new Point of Sale session.
  8. +
  9. Create an order and add one or more products.
  10. +
  11. Click Actions.
  12. +
  13. Click Bill to print a receipt before completing the payment.
-

Bug Tracker

+

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.

+feedback.

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

-

Credits

+

Credits

-

Authors

+

Authors

  • Sygel
-

Contributors

+

Contributors

  • Sygel:
    • Valentín Vinagre
    • Ángel García de la Chica
    • +
    • Ángel Rivas
    • +
    • Harald Panten
-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -443,11 +452,10 @@

Maintainers

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

-

This module is part of the OCA/pos project on GitHub.

+

This module is part of the OCA/pos project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

-
diff --git a/pos_early_receipt_printing/static/src/xml/control_buttons.xml b/pos_early_receipt_printing/static/src/xml/control_buttons.xml new file mode 100644 index 0000000000..d19018b8dc --- /dev/null +++ b/pos_early_receipt_printing/static/src/xml/control_buttons.xml @@ -0,0 +1,23 @@ + + + + + + + + + + diff --git a/pos_early_receipt_printing/tests/__init__.py b/pos_early_receipt_printing/tests/__init__.py new file mode 100644 index 0000000000..20dca70253 --- /dev/null +++ b/pos_early_receipt_printing/tests/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import test_pos_early_receipt_printing diff --git a/pos_early_receipt_printing/tests/test_pos_early_receipt_printing.py b/pos_early_receipt_printing/tests/test_pos_early_receipt_printing.py new file mode 100644 index 0000000000..ef8059bf77 --- /dev/null +++ b/pos_early_receipt_printing/tests/test_pos_early_receipt_printing.py @@ -0,0 +1,42 @@ +# Copyright 2025 Ángel Rivas +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + + +from odoo.tests.common import TransactionCase + + +class TestPosEarlyReceiptPrinting(TransactionCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.pos_config = cls.env.ref("point_of_sale.pos_config_main").copy( + { + "name": "Test POS Early Receipt", + "module_pos_restaurant": False, + "iface_printbill": True, + "iface_splitbill": True, + } + ) + + def test_printbill_enabled_without_restaurant(self): + settings = self.env["res.config.settings"].create( + { + "pos_config_id": self.pos_config.id, + "pos_module_pos_restaurant": False, + } + ) + settings._compute_pos_module_pos_restaurant() + self.assertTrue(settings.pos_iface_printbill) + self.assertFalse(settings.pos_iface_splitbill) + + def test_printbill_disabled_without_restaurant_when_not_enabled_on_pos(self): + self.pos_config.iface_printbill = False + settings = self.env["res.config.settings"].create( + { + "pos_config_id": self.pos_config.id, + "pos_module_pos_restaurant": False, + } + ) + settings._compute_pos_module_pos_restaurant() + self.assertFalse(settings.pos_iface_printbill) + self.assertFalse(settings.pos_iface_splitbill) diff --git a/pos_early_receipt_printing/views/pos_config_views.xml b/pos_early_receipt_printing/views/pos_config_views.xml index d556bc5946..121c35a7e8 100644 --- a/pos_early_receipt_printing/views/pos_config_views.xml +++ b/pos_early_receipt_printing/views/pos_config_views.xml @@ -16,4 +16,24 @@ + + res.config.settings.view.form.pos.printbill + res.config.settings + + + + + + + + +