diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-04-18 15:45:05 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-04-18 15:45:05 +0700 |
| commit | 60d754cb1b2044adafddd4893212028a3264f620 (patch) | |
| tree | 4b034580ffe571245c3b7b51810a50952b70d53d /indoteknik_api/models/product_product.py | |
| parent | 456d4b07e52c3664fd2c22e2b7748cbb2912539d (diff) | |
price tier on user session, variant and product
Diffstat (limited to 'indoteknik_api/models/product_product.py')
| -rw-r--r-- | indoteknik_api/models/product_product.py | 34 |
1 files changed, 29 insertions, 5 deletions
diff --git a/indoteknik_api/models/product_product.py b/indoteknik_api/models/product_product.py index 9c59040f..a648ad51 100644 --- a/indoteknik_api/models/product_product.py +++ b/indoteknik_api/models/product_product.py @@ -1,4 +1,5 @@ from odoo import models +from odoo.http import request import math @@ -26,9 +27,32 @@ class ProductProduct(models.Model): } return data - def v2_api_single_response(self, product_product): - product_pricelist_default_discount_id = self.env['ir.config_parameter'].get_param('product.pricelist.default_discount_id') - product_pricelist_default_discount_id = int(product_pricelist_default_discount_id) + def v2_api_single_response(self, product_product, pricelist=False): + config = self.env['ir.config_parameter'] + product_pricelist_tier1 = int(config.get_param('product.pricelist.tier1')) + product_pricelist_tier2 = int(config.get_param('product.pricelist.tier2')) + product_pricelist_tier3 = int(config.get_param('product.pricelist.tier3')) + + discount_percentage = product_product._get_website_disc(0) + price_discount = product_product._get_website_price_after_disc_and_tax() + + price_tier = False + pricelists = { + 'tier1': product_product._get_pricelist_tier1, + 'tier2': product_product._get_pricelist_tier2, + 'tier3': product_product._get_pricelist_tier3, + } + if pricelist.id == product_pricelist_tier1: price_tier = 'tier1' + if pricelist.id == product_pricelist_tier2: price_tier = 'tier2' + if pricelist.id == product_pricelist_tier3: price_tier = 'tier3' + + if price_tier: + price = pricelists[price_tier]() + discount_key = 'discount_%s' % price_tier + price_key = 'price_%s' % price_tier + if price[discount_key] > 0: discount_percentage = price[discount_key] + if price[price_key] > 0: price_discount = price[price_key] + product_template = product_product.product_tmpl_id data = { 'id': product_product.id, @@ -41,8 +65,8 @@ class ProductProduct(models.Model): 'name': product_product.display_name, 'price': { 'price': product_product._get_website_price_exclude_tax(), - 'discount_percentage': product_product._get_website_disc(0), - 'price_discount': product_product._get_website_price_after_disc_and_tax() + 'discount_percentage': discount_percentage, + 'price_discount': price_discount }, 'stock': product_product.qty_stock_vendor, 'weight': product_product.weight, |
