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

[FW][FIX] pos_restaurant: Grant loyalty points for products only #162268

Commits on May 16, 2024

  1. [FIX] pos_restaurant: Grant loyalty points for products only

    Steps to reproduce:
    - Install POS app.
    - Go to POS > Products > Discount & Loyalty
    - Create a New program with:
        - Program Type: Loyalty Cards
        - Conditional rules:
            - Minimum Quantity: 2
            - Grant: 1 Loyalty Points per unit paid
    - Rewards:
        - Reward Type: Discount
        - Discount: 100 % one Cheapest Product
        - In exchange of 2 Loyalty Points
    - Start a new POS session
    - Select a Customer
    - Add two different products.
    - Notice the Loyalty Points of +2 shown. This is Correct
    - Click on the Reward button
    - Notice how the Loyalty Points are now +3 which is obviously wrong given we only have two products. Basically it's as if the reward line (100% discount) is taken into consideration as the cheapest product.
    
    Investigation:
    - Inside `_updatePrograms`, `pointsForPrograms()` are calculated.
    - we sum the lines quantities regardless of whether it's a reward line or not https://github.com/odoo/odoo/blob/e5c3ba58964f47cfd41d337e39e1bf25eaa25379/addons/pos_loyalty/static/src/js/Loyalty.js#L906
    - By doing so, the reward lines are taken into consideration and the rule is triggerd by skipping this if clause https://github.com/odoo/odoo/blob/e5c3ba58964f47cfd41d337e39e1bf25eaa25379/addons/pos_loyalty/static/src/js/Loyalty.js#L917-L921
    
    opw-3855323
    
    X-original-commit: 6336e45
    AH-Yussef committed May 16, 2024
    Configuration menu
    Copy the full SHA
    dcfc022 View commit details
    Browse the repository at this point in the history