Skip to content

Commit

Permalink
Merge PR #156 into 16.0
Browse files Browse the repository at this point in the history
Signed-off-by legalsylvain
  • Loading branch information
OCA-git-bot committed May 12, 2024
2 parents af9be54 + 4688df3 commit 958926c
Show file tree
Hide file tree
Showing 20 changed files with 922 additions and 0 deletions.
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(
"header"
)

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

@api.model
def _get_receipt_environment_part(self, part):
section_name = "pos_environment_%s" % part
line_list = []
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])
elif "__%s" % (self.env.user.lang) in item[0]:
# depend of the language
line_list.append(item[1])
return "\n".join(line_list)
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

0 comments on commit 958926c

Please sign in to comment.