Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[16.0][MIG] pos_environment #156

Merged
merged 13 commits into from
May 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
server_environment_files/

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
Expand Down
142 changes: 142 additions & 0 deletions pos_environment/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
==========================================
Point of Sale - Custom Bill by Environment
==========================================

.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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%2Fserver--env-lightgray.png?logo=github
:target: https://github.com/OCA/server-env/tree/12.0/pos_environment
:alt: OCA/server-env
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/server-env-12-0/server-env-12-0-pos_environment
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/254/12.0
:alt: Try me on Runbot

|badge1| |badge2| |badge3| |badge4| |badge5|

This module extends the Odoo point of sale module to allow administrator
to customize the bill printed by the point of sale, with a text depending
on your environment. (Development, , Pre Production, Production, etc...)

This module is based on the mechanism introduced by the ``server_environment``
module.

**Note**

This module works with or without IoT Box.

**Table of contents**

.. contents::
:local:

Configuration
=============

* Open your module ``server_environment_files``

* In each environment folder, create a new file named ``pos_environment.conf``
(for exemple)

* In each file, write a section like this one, depending on your environment

.. code-block::

[pos_environment_header]
line_1 = ===============================
line_2 = TICKET EDITED ON A TEST
line_3 = ENVIRONMENT
line_4 = ===============================

[pos_environment_footer]
line_1 = ===============================
line_2 = THIS TICKET HAS BEEN EDITED
line_3 = ON A TEST ENVIRONMENT
line_4 = -------------------------------
line_5 = IT CAN NOT BE CONSIDERED
line_6 = AS A PROOF OF PURCHASE
line_7 = ===============================

**Internationalisation**

If you deploy Odoo in a multi languages context, you can add a suffix
``__xx_xx`` in the name of each line, where ``xx_xx`` is the language.
The text will be displayed on the bill, depending of the language of the
current user. Sample :

.. code-block::

line_1 = ===============================
line_2__en_US = TICKET EDITED ON A TEST SERVER
line_2__fr_FR = TICKET EDITE SUR SERVEUR DE TEST
line_3 = -------------------------------

**Note**

To be sure that your server is correctly configured, you can check the settings
in the Point of Sale configuration.


.. figure:: https://raw.githubusercontent.com/OCA/server-env/12.0/pos_environment/static/description/pos_config_form.png

Usage
=====

* Open Your Point of Sale

* Realize a sale

* The printed bill will display the custom message

.. figure:: https://raw.githubusercontent.com/OCA/server-env/12.0/pos_environment/static/description/receipt.png

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-env/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/server-env/issues/new?body=module:%20pos_environment%0Aversion:%2012.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

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

Credits
=======

Authors
~~~~~~~

* GRAP

Contributors
~~~~~~~~~~~~

* Sylvain LE GAL (https://www.twitter.com/legalsylvain)

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/server-env <https://github.com/OCA/server-env/tree/12.0/pos_environment>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions pos_environment/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
26 changes: 26 additions & 0 deletions pos_environment/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Copyright (C) 2019 - Today: GRAP (http://www.grap.coop)
# @author: Sylvain LE GAL (https://twitter.com/legalsylvain)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
"name": "Point of Sale - Custom Bill by Environment",
"summary": "Custom messages on the bill depending on the environment",
"version": "16.0.1.0.1",
"category": "Point of Sale",
"author": "GRAP,Odoo Community Association (OCA)",
"maintainers": ["legalsylvain"],
"website": "https://github.com/OCA/server-env",
"license": "AGPL-3",
"depends": [
"point_of_sale",
"server_environment",
],
"data": [
"views/res_config_settings_views.xml",
],
"assets": {
"point_of_sale.assets": [
"pos_environment/static/src/xml/ReceiptScreen.xml",
],
},
"installable": True,
}
37 changes: 37 additions & 0 deletions pos_environment/i18n/fr.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_environment
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-07-31 13:08+0000\n"
"PO-Revision-Date: 2019-07-31 13:08+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"
"Plural-Forms: \n"

#. module: pos_environment
#: model_terms:ir.ui.view,arch_db:pos_environment.view_pos_config_form
msgid "Environment Settings"
msgstr "Paramétrages liés à l'environnement"

#. module: pos_environment
#: model:ir.model,name:pos_environment.model_pos_config
msgid "Point of Sale Configuration"
msgstr "Paramétrage du point de vente"

#. module: pos_environment
#: model:ir.model.fields,field_description:pos_environment.field_pos_config__receipt_environment_footer
msgid "Receipt Environment Footer"
msgstr "Pied du ticket (selon environnement)"

#. module: pos_environment
#: model:ir.model.fields,field_description:pos_environment.field_pos_config__receipt_environment_header
msgid "Receipt Environment Header"
msgstr "Entête du ticket (selon environnement)"
35 changes: 35 additions & 0 deletions pos_environment/i18n/pos_environment.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_environment
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.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_environment
#: model_terms:ir.ui.view,arch_db:pos_environment.view_pos_config_form
msgid "Environment Settings"
msgstr ""

#. module: pos_environment
#: model:ir.model,name:pos_environment.model_pos_config
msgid "Point of Sale Configuration"
msgstr ""

#. module: pos_environment
#: model:ir.model.fields,field_description:pos_environment.field_pos_config__receipt_environment_footer
msgid "Receipt Environment Footer"
msgstr ""

#. module: pos_environment
#: model:ir.model.fields,field_description:pos_environment.field_pos_config__receipt_environment_header
msgid "Receipt Environment Header"
msgstr ""

2 changes: 2 additions & 0 deletions pos_environment/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from . import pos_config
from . import res_config_settings
45 changes: 45 additions & 0 deletions pos_environment/models/pos_config.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Copyright (C) 2018 - Today: GRAP (http://www.grap.coop)
# @author: Sylvain LE GAL (https://twitter.com/legalsylvain)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import api, fields, models

from odoo.addons.server_environment import serv_config


class PosConfig(models.Model):
_inherit = "pos.config"

receipt_environment_header = fields.Text(
compute="_compute_receipt_environment_header",
)

receipt_environment_footer = fields.Text(
compute="_compute_receipt_environment_footer",
)

def _compute_receipt_environment_header(self):
for config in self:
config.receipt_environment_header = self._get_receipt_environment_part(

Check warning on line 22 in pos_environment/models/pos_config.py

View check run for this annotation

Codecov / codecov/patch

pos_environment/models/pos_config.py#L22

Added line #L22 was not covered by tests
"header"
)

def _compute_receipt_environment_footer(self):
for config in self:
config.receipt_environment_footer = self._get_receipt_environment_part(

Check warning on line 28 in pos_environment/models/pos_config.py

View check run for this annotation

Codecov / codecov/patch

pos_environment/models/pos_config.py#L28

Added line #L28 was not covered by tests
"footer"
)

@api.model
def _get_receipt_environment_part(self, part):
section_name = "pos_environment_%s" % part
line_list = []

Check warning on line 35 in pos_environment/models/pos_config.py

View check run for this annotation

Codecov / codecov/patch

pos_environment/models/pos_config.py#L34-L35

Added lines #L34 - L35 were not covered by tests
if serv_config.has_section(section_name):
# Parse each line
for item in serv_config.items(section_name):
if "__" not in item[0]:
# Universal line
line_list.append(item[1])

Check warning on line 41 in pos_environment/models/pos_config.py

View check run for this annotation

Codecov / codecov/patch

pos_environment/models/pos_config.py#L41

Added line #L41 was not covered by tests
elif "__%s" % (self.env.user.lang) in item[0]:
# depend of the language
line_list.append(item[1])
return "\n".join(line_list)

Check warning on line 45 in pos_environment/models/pos_config.py

View check run for this annotation

Codecov / codecov/patch

pos_environment/models/pos_config.py#L44-L45

Added lines #L44 - L45 were not covered by tests
16 changes: 16 additions & 0 deletions pos_environment/models/res_config_settings.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Copyright (C) 2023 - Today: GRAP (http://www.grap.coop)
# @author: Sylvain LE GAL (https://twitter.com/legalsylvain)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import fields, models


class ResConfigSettings(models.TransientModel):
_inherit = "res.config.settings"

receipt_environment_header = fields.Text(
related="pos_config_id.receipt_environment_header"
)

receipt_environment_footer = fields.Text(
related="pos_config_id.receipt_environment_footer"
)
45 changes: 45 additions & 0 deletions pos_environment/readme/CONFIGURE.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
* Open your module ``server_environment_files``

* In each environment folder, create a new file named ``pos_environment.conf``
(for exemple)

* In each file, write a section like this one, depending on your environment

.. code-block::

[pos_environment_header]
line_1 = ===============================
line_2 = TICKET EDITED ON A TEST
line_3 = ENVIRONMENT
line_4 = ===============================

[pos_environment_footer]
line_1 = ===============================
line_2 = THIS TICKET HAS BEEN EDITED
line_3 = ON A TEST ENVIRONMENT
line_4 = -------------------------------
line_5 = IT CAN NOT BE CONSIDERED
line_6 = AS A PROOF OF PURCHASE
line_7 = ===============================

**Internationalisation**

If you deploy Odoo in a multi languages context, you can add a suffix
``__xx_xx`` in the name of each line, where ``xx_xx`` is the language.
The text will be displayed on the bill, depending of the language of the
current user. Sample :

.. code-block::

line_1 = ===============================
line_2__en_US = TICKET EDITED ON A TEST SERVER
line_2__fr_FR = TICKET EDITE SUR SERVEUR DE TEST
line_3 = -------------------------------

**Note**

To be sure that your server is correctly configured, you can check the settings
in the Point of Sale configuration.


.. figure:: ../static/description/res_config_settings_form.png
1 change: 1 addition & 0 deletions pos_environment/readme/CONTRIBUTORS.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* Sylvain LE GAL (https://www.twitter.com/legalsylvain)
16 changes: 16 additions & 0 deletions pos_environment/readme/DESCRIPTION.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
This module extends the Odoo point of sale module to allow administrator
to customize the bill printed by the point of sale, with a text depending
on your environment. (Development, , Pre Production, Production, etc...)

The displayed and printed bill will display the custom message

.. figure:: ../static/description/receipt.png

This module is based on the mechanism introduced by the ``server_environment``
module.

**Note**

This module provides a feature that is legally required in some countries
(such as France, under the law on accounting certification)
where test and production receipts must be distinguishable.
Binary file added pos_environment/static/description/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading