pos_loyalty_discount_before.../README.md

1.9 KiB

POS Loyalty Discount Before Tax

This module modifies the loyalty reward discount calculation in POS to apply discounts before tax calculation and ensures that discount values are displayed as tax-exclusive in both the POS receipt and accounting entries.

Features

  1. Discount Calculation Before Tax: All loyalty rewards are calculated on the tax-exclusive amount rather than the tax-inclusive amount.

  2. Tax-Exclusive Display: Discount values are displayed as tax-exclusive in the POS receipt.

  3. Proper Accounting Entries: Accounting entries are created with tax only on the credit side, ensuring compliance with accounting standards.

Technical Changes

JavaScript Changes

  • Modified static/src/overrides/models/loyalty.js to calculate discounts on tax-exclusive amounts
  • Ensured discount line values are tax-exclusive for display purposes

Backend Changes

  • Created models/pos_order.py to handle accounting entries for loyalty discounts
  • Created models/loyalty_reward.py to ensure discount products are properly configured
  • Created models/account_move.py to ensure discount lines in account moves are tax-exclusive
  • Created models/pos_session.py to handle session-level accounting for loyalty discounts

Installation

  1. Copy the module to your Odoo addons directory
  2. Update the apps list in Odoo
  3. Install the "POS Loyalty Discount Before Tax" module

Configuration

No additional configuration is required. The module automatically applies the changes to all loyalty programs in POS.

Usage

The module works automatically with all existing loyalty programs. Discounts will be calculated on tax-exclusive amounts and displayed as such in the POS interface and accounting entries.

Compatibility

This module is compatible with Odoo 17 and requires the following modules:

  • point_of_sale
  • pos_loyalty

License

LGPL-3