Skip to content

Commit

Permalink
[IMP-FIX] sale_loyalty_criteria_multi_product: Continue migration to …
Browse files Browse the repository at this point in the history
…16.0

- Migration scripts
- Adapt views and tests
- Set correct permissions
- Move loyalty.criteria(coupon.criteria) model from loyalty.program to loyalty.rule

TT44317
  • Loading branch information
pilarvargas-tecnativa committed Feb 28, 2024
1 parent f2d4892 commit a261f59
Show file tree
Hide file tree
Showing 19 changed files with 483 additions and 302 deletions.
66 changes: 35 additions & 31 deletions loyalty_criteria_multi_product/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Loyalty multi product criteria
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:14cc357aae1663d18bd236ad6ff623fbbd90fed3fb5c846668fbcfa547b041d3
!! source digest: sha256:3ef49fdacdc1cee17f90c6312d1abc3629c29a4bac59d5ae2161cc476d73901a
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
Expand All @@ -17,73 +17,76 @@ Loyalty multi product criteria
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fsale--promotion-lightgray.png?logo=github
:target: https://github.com/OCA/sale-promotion/tree/16.0-mig-coupon_criteria_multi_product/loyalty_criteria_multi_product
:target: https://github.com/OCA/sale-promotion/tree/16.0/loyalty_criteria_multi_product
:alt: OCA/sale-promotion
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/sale-promotion-16-0-mig-coupon_criteria_multi_product/sale-promotion-16-0-mig-coupon_criteria_multi_product-loyalty_criteria_multi_product
:target: https://translation.odoo-community.org/projects/sale-promotion-16-0/sale-promotion-16-0-loyalty_criteria_multi_product
: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/sale-promotion&target_branch=16.0-mig-coupon_criteria_multi_product
:target: https://runboat.odoo-community.org/builds?repo=OCA/sale-promotion&target_branch=16.0
:alt: Try me on Runboat

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

Base module that allows to define complex rules on products to fulfill the conditions
of a loyalty program, so for a given set of products we could define a minimum quantity
and another for others, being all those criterias mandatory for the loyalty to be
and another for others, being all those criterias mandatory for the program to be
applied.

**Table of contents**

.. contents::
:local:

Use Cases / Context
===================

The functionality of the "Repeat" option that was included in this module is now included
in the rules of an odoo promotion. In this functionality a criterion was established in
which any of the products defined in the list of the criterion itself had to be in the
sales order lines in the minimum quantity established for the promotion to be applied.
This functionality can now be applied in the following way:

- Defining or editing a promotion.
- Modifying the rules to indicate a minimum quantity and selecting the products,
either by domain, specific products, product category or tag.

This way the promotion will be applicable when any of those products are in the order l
ines and the total of all or one of them meets the minimum quantity, as it was done when
the "Repeat" option was checked.

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

To configure multiple product criterias:

#. Go to *Sales > Catalog > Discount & Loyalty* and select or create a new one.
#. On the *Loyalty Criteria* field choose *Multi Product*.
#. Go to *Sales > Product > Loyalty Programs* and select or create a new one.
#. Go to rules. On the *Loyalty Criteria* field choose *Multi Product*.
#. The standard domain will be hidden and a criteria list will be shown.
#. Add as many criterias as needed for the desired promotion behavior.

In the list of criterias we can configure:

- Qty: The minimum quantity of products in the sale order to fulfill the condition.
- Products: The products that should be present to fulfill the condition.
- Repeat: The sum of quantities of any product in the criteria must be at least the one
defined in the minimum quantities. If not set, the minimum quantity will be the number
of products defined in the criteria, as all of them must be in the order to fulfill
the condition.

Some examples:

===== ================ ========
Qty Products Repeat
===== ================ ========
===== ================
Qty Products
===== ================
1 Prod A
===== ================ ========
===== ================

A unit of Product A must be in the sale order.

===== ================ ========
Qty Products Repeat
===== ================ ========
===== ================
Qty Products
===== ================
2 Prod B, Prod C
===== ================ ========
===== ================

A unit of Product B and Product C must be in the sale order.

===== ================ ========
Qty Products Repeat
===== ================ ========
3 Prod D, Prod E X
===== ================ ========

Either Product D or Product E or both must be in the sale order and the sum of their
quantities must be three.

Also note that all the defined criterias must be fulfilled or the program won't be
applied.

Expand All @@ -93,7 +96,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues <https://github.com/OCA/sale-promotion/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/sale-promotion/issues/new?body=module:%20loyalty_criteria_multi_product%0Aversion:%2016.0-mig-coupon_criteria_multi_product%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
`feedback <https://github.com/OCA/sale-promotion/issues/new?body=module:%20loyalty_criteria_multi_product%0Aversion:%2016.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.

Expand All @@ -113,6 +116,7 @@ Contributors
* Pedro M. Baeza
* David Vidal
* Stefan Ungureanu
* Pilar Vargas

* `Domatix <https://www.domatix.com>`_:

Expand All @@ -139,6 +143,6 @@ Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-chienandalu|

This module is part of the `OCA/sale-promotion <https://github.com/OCA/sale-promotion/tree/16.0-mig-coupon_criteria_multi_product/loyalty_criteria_multi_product>`_ project on GitHub.
This module is part of the `OCA/sale-promotion <https://github.com/OCA/sale-promotion/tree/16.0/loyalty_criteria_multi_product>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
4 changes: 2 additions & 2 deletions loyalty_criteria_multi_product/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@
"author": "Tecnativa, Odoo Community Association (OCA)",
"maintainers": ["chienandalu"],
"license": "AGPL-3",
"depends": ["loyalty", "sales_team"],
"data": ["views/loyalty_program_views.xml", "security/ir.model.access.csv"],
"depends": ["loyalty"],
"data": ["security/ir.model.access.csv", "views/loyalty_rule_views.xml"],
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * loyalty_criteria_multi_product
# * coupon_criteria_multi_product
#
msgid ""
msgstr ""
Expand All @@ -13,115 +13,115 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: loyalty_criteria_multi_product
#: model:ir.model.fields,help:loyalty_criteria_multi_product.field_coupon_program__coupon_criteria
#. module: coupon_criteria_multi_product
#: model:ir.model.fields,help:coupon_criteria_multi_product.field_coupon_program__coupon_criteria
msgid ""
"- Domain: Standard behavior. The products are evaluated by domain.\n"
"- Multi product: different rules can be applied to different products and all of the have to be fulfilled"
msgstr ""

#. module: loyalty_criteria_multi_product
#: model:ir.model.fields,help:loyalty_criteria_multi_product.field_coupon_criteria__repeat_product
#. module: coupon_criteria_multi_product
#: model:ir.model.fields,help:coupon_criteria_multi_product.field_coupon_criteria__repeat_product
msgid "Can product quantities count multiple times or not"
msgstr ""

#. module: loyalty_criteria_multi_product
#: model:ir.model,name:loyalty_criteria_multi_product.model_coupon_criteria
#. module: coupon_criteria_multi_product
#: model:ir.model,name:coupon_criteria_multi_product.model_coupon_criteria
msgid "Coupon Multi Product Criteria"
msgstr ""

#. module: loyalty_criteria_multi_product
#: model:ir.model.fields,field_description:loyalty_criteria_multi_product.field_coupon_program__coupon_criteria
#. module: coupon_criteria_multi_product
#: model:ir.model.fields,field_description:coupon_criteria_multi_product.field_coupon_program__coupon_criteria
msgid "Coupon criteria"
msgstr ""

#. module: loyalty_criteria_multi_product
#: model:ir.model,name:loyalty_criteria_multi_product.model_coupon_program
#. module: coupon_criteria_multi_product
#: model:ir.model,name:coupon_criteria_multi_product.model_coupon_program
msgid "Coupon display on a website"
msgstr ""

#. module: loyalty_criteria_multi_product
#: model:ir.model.fields,field_description:loyalty_criteria_multi_product.field_coupon_criteria__create_uid
#. module: coupon_criteria_multi_product
#: model:ir.model.fields,field_description:coupon_criteria_multi_product.field_coupon_criteria__create_uid
msgid "Created by"
msgstr ""

#. module: loyalty_criteria_multi_product
#: model:ir.model.fields,field_description:loyalty_criteria_multi_product.field_coupon_criteria__create_date
#. module: coupon_criteria_multi_product
#: model:ir.model.fields,field_description:coupon_criteria_multi_product.field_coupon_criteria__create_date
msgid "Created on"
msgstr ""

#. module: loyalty_criteria_multi_product
#: model:ir.model.fields,field_description:loyalty_criteria_multi_product.field_coupon_criteria__display_name
#. module: coupon_criteria_multi_product
#: model:ir.model.fields,field_description:coupon_criteria_multi_product.field_coupon_criteria__display_name
msgid "Display Name"
msgstr ""

#. module: loyalty_criteria_multi_product
#: model:ir.model.fields.selection,name:loyalty_criteria_multi_product.selection__coupon_program__coupon_criteria__domain
#. module: coupon_criteria_multi_product
#: model:ir.model.fields.selection,name:coupon_criteria_multi_product.selection__coupon_program__coupon_criteria__domain
msgid "Domain"
msgstr ""

#. module: loyalty_criteria_multi_product
#: model:ir.model.fields,field_description:loyalty_criteria_multi_product.field_coupon_criteria__id
#. module: coupon_criteria_multi_product
#: model:ir.model.fields,field_description:coupon_criteria_multi_product.field_coupon_criteria__id
msgid "ID"
msgstr ""

#. module: loyalty_criteria_multi_product
#: model:ir.model.fields,field_description:loyalty_criteria_multi_product.field_coupon_criteria____last_update
#. module: coupon_criteria_multi_product
#: model:ir.model.fields,field_description:coupon_criteria_multi_product.field_coupon_criteria____last_update
msgid "Last Modified on"
msgstr ""

#. module: loyalty_criteria_multi_product
#: model:ir.model.fields,field_description:loyalty_criteria_multi_product.field_coupon_criteria__write_uid
#. module: coupon_criteria_multi_product
#: model:ir.model.fields,field_description:coupon_criteria_multi_product.field_coupon_criteria__write_uid
msgid "Last Updated by"
msgstr ""

#. module: loyalty_criteria_multi_product
#: model:ir.model.fields,field_description:loyalty_criteria_multi_product.field_coupon_criteria__write_date
#. module: coupon_criteria_multi_product
#: model:ir.model.fields,field_description:coupon_criteria_multi_product.field_coupon_criteria__write_date
msgid "Last Updated on"
msgstr ""

#. module: loyalty_criteria_multi_product
#: model:ir.model.fields,field_description:loyalty_criteria_multi_product.field_coupon_criteria__rule_min_quantity
#. module: coupon_criteria_multi_product
#: model:ir.model.fields,field_description:coupon_criteria_multi_product.field_coupon_criteria__rule_min_quantity
msgid "Min. Quantity"
msgstr ""

#. module: loyalty_criteria_multi_product
#: model:ir.model.fields,help:loyalty_criteria_multi_product.field_coupon_criteria__rule_min_quantity
#. module: coupon_criteria_multi_product
#: model:ir.model.fields,help:coupon_criteria_multi_product.field_coupon_criteria__rule_min_quantity
msgid "Minimum required product quantity to get the reward"
msgstr ""

#. module: loyalty_criteria_multi_product
#: model:ir.model.fields.selection,name:loyalty_criteria_multi_product.selection__coupon_program__coupon_criteria__multi_product
#. module: coupon_criteria_multi_product
#: model:ir.model.fields.selection,name:coupon_criteria_multi_product.selection__coupon_program__coupon_criteria__multi_product
msgid "Multi Product"
msgstr ""

#. module: loyalty_criteria_multi_product
#: model:ir.model.fields,field_description:loyalty_criteria_multi_product.field_coupon_program__coupon_criteria_ids
#. module: coupon_criteria_multi_product
#: model:ir.model.fields,field_description:coupon_criteria_multi_product.field_coupon_program__coupon_criteria_ids
msgid "Multi Product Criterias"
msgstr ""

#. module: loyalty_criteria_multi_product
#: model:ir.model.fields,field_description:loyalty_criteria_multi_product.field_coupon_criteria__product_ids
#. module: coupon_criteria_multi_product
#: model:ir.model.fields,field_description:coupon_criteria_multi_product.field_coupon_criteria__product_ids
msgid "Product"
msgstr ""

#. module: loyalty_criteria_multi_product
#: model:ir.model.fields,field_description:loyalty_criteria_multi_product.field_coupon_criteria__program_id
#. module: coupon_criteria_multi_product
#: model:ir.model.fields,field_description:coupon_criteria_multi_product.field_coupon_criteria__program_id
msgid "Program"
msgstr ""

#. module: loyalty_criteria_multi_product
#: model_terms:ir.ui.view,arch_db:loyalty_criteria_multi_product.coupon_program_view_form_common
#. module: coupon_criteria_multi_product
#: model_terms:ir.ui.view,arch_db:coupon_criteria_multi_product.coupon_program_view_form_common
msgid "Qty"
msgstr ""

#. module: loyalty_criteria_multi_product
#: model:ir.model.fields,field_description:loyalty_criteria_multi_product.field_coupon_criteria__repeat_product
#. module: coupon_criteria_multi_product
#: model:ir.model.fields,field_description:coupon_criteria_multi_product.field_coupon_criteria__repeat_product
msgid "Repeat"
msgstr ""

#. module: loyalty_criteria_multi_product
#: code:addons/loyalty_criteria_multi_product/models/coupon_criteria.py:0
#. module: coupon_criteria_multi_product
#: code:addons/coupon_criteria_multi_product/models/coupon_criteria.py:0
#, python-format
msgid ""
"The minimum quantity can't be different from the number of products. Set the"
Expand Down
Loading

0 comments on commit a261f59

Please sign in to comment.