From 1d92a264a666e2c6bdf4705502bd58ff6d08cf7b Mon Sep 17 00:00:00 2001 From: William Braeckman Date: Mon, 7 Mar 2022 12:33:37 +0100 Subject: [PATCH] [ADD] sale_loyalty: manage loyalty in sales orders This module replaces both sale_coupon and sale_gift_card aswell as adding new loyalty programs feature to sale. TaskId-2675382 --- addons/sale/models/res_config_settings.py | 2 +- .../sale/views/res_config_settings_views.xml | 4 +- addons/sale_loyalty/__init__.py | 5 + addons/sale_loyalty/__manifest__.py | 21 + .../sale_loyalty/data/sale_loyalty_data.xml | 11 + addons/sale_loyalty/models/__init__.py | 9 + addons/sale_loyalty/models/loyalty_card.py | 31 + addons/sale_loyalty/models/loyalty_program.py | 22 + addons/sale_loyalty/models/loyalty_reward.py | 16 + addons/sale_loyalty/models/sale_order.py | 972 +++++++++++ .../models/sale_order_coupon_points.py | 17 + addons/sale_loyalty/models/sale_order_line.py | 116 ++ .../sale_loyalty/security/ir.model.access.csv | 16 + addons/sale_loyalty/tests/__init__.py | 12 + addons/sale_loyalty/tests/common.py | 201 +++ .../sale_loyalty/tests/test_buy_gift_card.py | 36 + addons/sale_loyalty/tests/test_loyalty.py | 78 + .../tests/test_pay_with_gift_card.py | 71 + .../tests/test_program_multi_company.py | 83 + .../tests/test_program_numbers.py | 1463 +++++++++++++++++ .../sale_loyalty/tests/test_program_rules.py | 276 ++++ .../test_program_with_code_operations.py | 333 ++++ .../test_program_without_code_operations.py | 64 + .../sale_loyalty/tests/test_sale_invoicing.py | 61 + .../sale_loyalty/views/loyalty_card_views.xml | 13 + .../views/loyalty_program_views.xml | 11 + .../sale_loyalty/views/sale_order_views.xml | 20 + addons/sale_loyalty/views/templates.xml | 60 + addons/sale_loyalty/wizard/__init__.py | 5 + .../wizard/sale_loyalty_coupon_wizard.py | 30 + .../sale_loyalty_coupon_wizard_views.xml | 29 + .../wizard/sale_loyalty_reward_wizard.py | 54 + .../sale_loyalty_reward_wizard_views.xml | 49 + 33 files changed, 4188 insertions(+), 3 deletions(-) create mode 100644 addons/sale_loyalty/__init__.py create mode 100644 addons/sale_loyalty/__manifest__.py create mode 100644 addons/sale_loyalty/data/sale_loyalty_data.xml create mode 100644 addons/sale_loyalty/models/__init__.py create mode 100644 addons/sale_loyalty/models/loyalty_card.py create mode 100644 addons/sale_loyalty/models/loyalty_program.py create mode 100644 addons/sale_loyalty/models/loyalty_reward.py create mode 100644 addons/sale_loyalty/models/sale_order.py create mode 100644 addons/sale_loyalty/models/sale_order_coupon_points.py create mode 100644 addons/sale_loyalty/models/sale_order_line.py create mode 100644 addons/sale_loyalty/security/ir.model.access.csv create mode 100644 addons/sale_loyalty/tests/__init__.py create mode 100644 addons/sale_loyalty/tests/common.py create mode 100644 addons/sale_loyalty/tests/test_buy_gift_card.py create mode 100644 addons/sale_loyalty/tests/test_loyalty.py create mode 100644 addons/sale_loyalty/tests/test_pay_with_gift_card.py create mode 100644 addons/sale_loyalty/tests/test_program_multi_company.py create mode 100644 addons/sale_loyalty/tests/test_program_numbers.py create mode 100644 addons/sale_loyalty/tests/test_program_rules.py create mode 100644 addons/sale_loyalty/tests/test_program_with_code_operations.py create mode 100644 addons/sale_loyalty/tests/test_program_without_code_operations.py create mode 100644 addons/sale_loyalty/tests/test_sale_invoicing.py create mode 100644 addons/sale_loyalty/views/loyalty_card_views.xml create mode 100644 addons/sale_loyalty/views/loyalty_program_views.xml create mode 100644 addons/sale_loyalty/views/sale_order_views.xml create mode 100644 addons/sale_loyalty/views/templates.xml create mode 100644 addons/sale_loyalty/wizard/__init__.py create mode 100644 addons/sale_loyalty/wizard/sale_loyalty_coupon_wizard.py create mode 100644 addons/sale_loyalty/wizard/sale_loyalty_coupon_wizard_views.xml create mode 100644 addons/sale_loyalty/wizard/sale_loyalty_reward_wizard.py create mode 100644 addons/sale_loyalty/wizard/sale_loyalty_reward_wizard_views.xml diff --git a/addons/sale/models/res_config_settings.py b/addons/sale/models/res_config_settings.py index a077b690030..806a81187d9 100644 --- a/addons/sale/models/res_config_settings.py +++ b/addons/sale/models/res_config_settings.py @@ -77,7 +77,7 @@ class ResConfigSettings(models.TransientModel): module_product_email_template = fields.Boolean("Specific Email") module_sale_amazon = fields.Boolean("Amazon Sync") - module_sale_coupon = fields.Boolean("Coupons & Promotions") + module_sale_loyalty = fields.Boolean("Coupons & Loyalty") module_sale_margin = fields.Boolean("Margins") #=== ONCHANGE METHODS ===# diff --git a/addons/sale/views/res_config_settings_views.xml b/addons/sale/views/res_config_settings_views.xml index b7bec091b48..2b778e70fbe 100644 --- a/addons/sale/views/res_config_settings_views.xml +++ b/addons/sale/views/res_config_settings_views.xml @@ -105,10 +105,10 @@ id="coupon_settings" title="Boost your sales with two kinds of discount programs: promotions and coupon codes. Specific conditions can be set (products, customers, minimum purchase amount, period). Rewards can be discounts (% or amount) or free products.">
- +
-