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

[17.0][MIG] pos_discount_all: Migration to 17.0 #1279

Closed
wants to merge 13 commits into from
Closed
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
165 changes: 165 additions & 0 deletions pos_discount_all/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
=====================================
Point of Sale - Display All Discounts
=====================================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:84b6138a5545bb409c1d80a250a656a31103fe38808b1356cdd68e8e0b3b5233
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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_discount_all
: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_discount_all
: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 extends the functionality of point of sale module, to
display on the PoS ticket, the amount of the discount applied for this
sale. Contrary to the logic of Odoo and the OCA
(https://github.com/OCA/sale-workflow/tree/14.0/sale_discount_display_amount)
the amount of the discount is the difference between the theoretical
sale with the default price list and the actual sale amount. So it take
into accounts:

- explicit discount set on pos.order.line. (as for odoo ``sale``
module)
- fixed price set on pos.order.line
- discount generated by specific pricelist

Also the module ignores in the computation of undiscounted amount lines,
the lines with a 'Discount Product'. (see the configure section.)

**Table of contents**

.. contents::
:local:

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

- Go to "Point of Sale > Products"
- Create or edit your discount products
- Check the box "Is a Discount"

|image_template_form|

.. |image_template_form| image:: https://raw.githubusercontent.com/OCA/pos/17.0/pos_discount_all/static/description/product_template_form.png

Usage
=====

Open your point of Sale

Make an order. for exemple, - select the product 'Conference chair
(39.40$)' - select the pricelist -10% - add a discount of 1$

The total discount is 1$ + 10% \* 39.40 = 4.94$

|image_summary|

Note, the discount displayed on the ticket is updated, to take into
account all the discount.

|image_receipt|

.. |image_summary| image:: https://raw.githubusercontent.com/OCA/pos/17.0/pos_discount_all/static/description/order_summary.png
.. |image_receipt| image:: https://raw.githubusercontent.com/OCA/pos/17.0/pos_discount_all/static/description/pos_receipt.png

Development
===========

**Note**

In the javascript file, we could write

.. code:: javascript

const PosDiscountAllOrder = () =>
class extends Order {
}

However, this code doesn't work if ``pos_sale`` module is installed. For
that reason we code the declaration as Odoo does, and add eslint
exception.

.. code:: javascript

// eslint-disable-next-line no-shadow
const PosDiscountAllOrder = (Order) =>
// eslint-disable-next-line no-shadow
class PosDiscountAllOrder extends Order {
}

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

Bugs are tracked on `GitHub Issues <https://github.com/OCA/pos/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 <https://github.com/OCA/pos/issues/new?body=module:%20pos_discount_all%0Aversion:%2017.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://twitter.com/legalsylvain)
- `APSL-Nagarro <https://apsl.tech>`__:

- Antoni Marroig <[email protected]>

Other credits
-------------

The development of this module has been financially supported by:

- UGESS, Union Nationale des Groupements des épiceries Sociales et
Solidaires (https://ugess.org/)

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.

.. |maintainer-legalsylvain| image:: https://github.com/legalsylvain.png?size=40px
:target: https://github.com/legalsylvain
:alt: legalsylvain

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-legalsylvain|

This module is part of the `OCA/pos <https://github.com/OCA/pos/tree/17.0/pos_discount_all>`_ 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_discount_all/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
33 changes: 33 additions & 0 deletions pos_discount_all/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Copyright (C) 2022-Today GRAP (http://www.grap.coop)
# @author Sylvain LE GAL (https://twitter.com/legalsylvain)
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html

{
"name": "Point of Sale - Display All Discounts",
"summary": "Display discount amount on PoS cashier screen and print it on ticket"
"calculated from the difference between a sale with default pricelist",
"version": "17.0.1.0.0",
"category": "Point of Sale",
"maintainers": ["legalsylvain"],
"author": "GRAP,Odoo Community Association (OCA)",
"website": "https://github.com/OCA/pos",
"license": "AGPL-3",
"depends": ["point_of_sale"],
"data": [
"views/view_product_template.xml",
],
"assets": {
"point_of_sale._assets_pos": [
"pos_discount_all/static/src/js/models.esm.js",
"pos_discount_all/static/src/js/order_widget.esm.js",
],
"web.assets_backend": [
"pos_discount_all/static/src/tests/tours/PosDiscountAllTour.tour.js",
],
},
"demo": [
"demo/product_product.xml",
"demo/res_groups.xml",
],
"installable": True,
}
15 changes: 15 additions & 0 deletions pos_discount_all/demo/product_product.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright (C) 2022-Today GRAP (http://www.grap.coop)
@author Sylvain LE GAL (https://twitter.com/legalsylvain)
License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
-->
<odoo>
<record id="product_discount" model="product.product">
<field name="name">Discount Product</field>
<field name="is_discount" eval="True" />
<field name="list_price">-1.0</field>
<field name="taxes_id" eval="[(6,0,[])]" />
<field name="available_in_pos" eval="True" />
</record>
</odoo>
15 changes: 15 additions & 0 deletions pos_discount_all/demo/res_groups.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright (C) 2022-Today GRAP (http://www.grap.coop)
@author Sylvain LE GAL (https://twitter.com/legalsylvain)
License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
-->
<odoo>
<record id="product.group_sale_pricelist" model="res.groups">
<field name="users" eval="[(4, ref('base.user_admin'))]" />
</record>

<record id="product.group_product_pricelist" model="res.groups">
<field name="users" eval="[(4, ref('base.user_admin'))]" />
</record>
</odoo>
60 changes: 60 additions & 0 deletions pos_discount_all/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_discount_all
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-02-11 18:34+0000\n"
"Last-Translator: Ivorra78 <[email protected]>\n"
"Language-Team: none\n"
"Language: es\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 4.17\n"

#. module: pos_discount_all
#: model:ir.model.fields,help:pos_discount_all.field_product_product__is_discount
#: model:ir.model.fields,help:pos_discount_all.field_product_template__is_discount
msgid ""
"Check this box if you use this product to realize discount on sale. If check"
" the sale lines will be ignored when computing the amount without discount. "
"If you use 'Pos Discount' Odoo module, you should check this box for the "
"product you configured as the 'Discount Product' on your PoS config."
msgstr ""
"Marque esta casilla si utiliza este producto para realizar descuentos en "
"rebajas. Si marca las lineas de venta seran ignoradas cuando se calcule la "
"cantidad sin descuento. Si utiliza 'Pos Descuento' módulo de Odoo, debe "
"marcar esta casilla para el producto que ha configurado como el 'Producto de "
"descuento' en su configuración PoS."

#. module: pos_discount_all
#. odoo-javascript
#: code:addons/pos_discount_all/static/src/xml/OrderSummary.xml:0
#, python-format
msgid "Discount Amount:"
msgstr "Importe del Descuento:"

#. module: pos_discount_all
#: model:product.template,name:pos_discount_all.product_discount_product_template
msgid "Discount Product"
msgstr "Producto con Descuento"

#. module: pos_discount_all
#: model:ir.model.fields,field_description:pos_discount_all.field_product_product__is_discount
#: model:ir.model.fields,field_description:pos_discount_all.field_product_template__is_discount
msgid "Is a Discount"
msgstr "Es un Descuento"

#. module: pos_discount_all
#: model:ir.model,name:pos_discount_all.model_pos_session
msgid "Point of Sale Session"
msgstr "Sesión del Punto de Venta"

#. module: pos_discount_all
#: model:ir.model,name:pos_discount_all.model_product_template
msgid "Product"
msgstr "Producto"
55 changes: 55 additions & 0 deletions pos_discount_all/i18n/fr.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_discount_all
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-11-10 12:38+0000\n"
"Last-Translator: LESTRAT21 <[email protected]>\n"
"Language-Team: none\n"
"Language: fr\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 4.17\n"

#. module: pos_discount_all
#: model:ir.model.fields,help:pos_discount_all.field_product_product__is_discount
#: model:ir.model.fields,help:pos_discount_all.field_product_template__is_discount
msgid ""
"Check this box if you use this product to realize discount on sale. If check"
" the sale lines will be ignored when computing the amount without discount. "
"If you use 'Pos Discount' Odoo module, you should check this box for the "
"product you configured as the 'Discount Product' on your PoS config."
msgstr ""

#. module: pos_discount_all
#. odoo-javascript
#: code:addons/pos_discount_all/static/src/xml/OrderSummary.xml:0
#, python-format
msgid "Discount Amount:"
msgstr "Montant de la réduction :"

#. module: pos_discount_all
#: model:product.template,name:pos_discount_all.product_discount_product_template
msgid "Discount Product"
msgstr "Réduction appliquée"

#. module: pos_discount_all
#: model:ir.model.fields,field_description:pos_discount_all.field_product_product__is_discount
#: model:ir.model.fields,field_description:pos_discount_all.field_product_template__is_discount
msgid "Is a Discount"
msgstr "Est une réduction"

#. module: pos_discount_all
#: model:ir.model,name:pos_discount_all.model_pos_session
msgid "Point of Sale Session"
msgstr "Session de caisse"

#. module: pos_discount_all
#: model:ir.model,name:pos_discount_all.model_product_template
msgid "Product"
msgstr "Produit"
Loading
Loading