summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-11-17 17:20:23 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-11-17 17:20:23 +0700
commit96af7230bdd79234fadeca8110b65dafa5b70a53 (patch)
treef3f37c555fe939852db2659f52e344e48acc1202
parentfa27a62a2ecc046020e57849838b633d78a99c36 (diff)
parentf168734f000ea34fc3a15bdf4b6af9f4fe797d06 (diff)
Merge branch 'master' of git@bitbucket.org:altafixco/indoteknik-addons.git
-rw-r--r--indoteknik_api/controllers/api_v1/login.py2
-rw-r--r--indoteknik_api/controllers/api_v1/product.py19
-rw-r--r--indoteknik_api/models/product_pricelist.py34
3 files changed, 31 insertions, 24 deletions
diff --git a/indoteknik_api/controllers/api_v1/login.py b/indoteknik_api/controllers/api_v1/login.py
index cc440d26..5c6251ae 100644
--- a/indoteknik_api/controllers/api_v1/login.py
+++ b/indoteknik_api/controllers/api_v1/login.py
@@ -15,7 +15,7 @@ class Cart(controller.Controller):
email = kw.get('email')
password = kw.get('password')
if not email or not password:
- return self.response(code=400, description='username and password is required')
+ return self.response(code=400, description='email and password is required')
try:
uid = request.session.authenticate(config.get('db_name'), email, password)
diff --git a/indoteknik_api/controllers/api_v1/product.py b/indoteknik_api/controllers/api_v1/product.py
index 667347d4..09ea459d 100644
--- a/indoteknik_api/controllers/api_v1/product.py
+++ b/indoteknik_api/controllers/api_v1/product.py
@@ -79,7 +79,7 @@ class Product(controller.Controller):
if not self.authenticate():
return self.response(code=401, description='Unauthorized')
- query = [('sale_ok', '=', True)]
+ name = kw.get('name')
solr_flag = kw.get('flag')
limit = int(kw.get('limit', 0))
offset = int(kw.get('offset', 0))
@@ -87,16 +87,17 @@ class Product(controller.Controller):
if not solr_flag:
return self.response(code=400, description='flag is required')
- if solr_flag:
- query.append(('solr_flag', '=', int(solr_flag)))
-
- product_variants = request.env['product.product'].search(query)
- product_variant_ids = [x.id for x in product_variants]
query = [
- '|',
- ('solr_flag', '=', int(solr_flag)),
- ('product_variant_ids', 'in', product_variant_ids)
+ ('sale_ok', '=', True),
+ ('solr_flag', '=', int(solr_flag))
]
+ if name:
+ name = '%' + name.replace(' ', '%') + '%'
+ query += [
+ '|',
+ ('default_code', 'ilike', name),
+ ('name', 'ilike', name),
+ ]
product_templates = request.env['product.template'].search(query, limit=limit, offset=offset)
data = {
'product_total': request.env['product.template'].search_count(query),
diff --git a/indoteknik_api/models/product_pricelist.py b/indoteknik_api/models/product_pricelist.py
index 6a011934..4e5c9501 100644
--- a/indoteknik_api/models/product_pricelist.py
+++ b/indoteknik_api/models/product_pricelist.py
@@ -5,21 +5,10 @@ from datetime import datetime
class ProductPricelist(models.Model):
_inherit = 'product.pricelist'
-
- def compute_price(self, pricelist_id: int, product_id: int):
- """
- Compute price with tax, discount formula, and fixed_price
- @param pricelist_id: id of product.pricelist
- @param product_id: id of product.product
- @return: returns price value from pricelist.
- """
+
+ def get_product_price(self, pricelist_id: int, product_id: int):
price = 0
discounts = []
-
- is_flash_sale_product = self.is_flash_sale_product(product_id)
- if is_flash_sale_product:
- pricelist_id = is_flash_sale_product
-
is_compute_formula = True
while is_compute_formula:
pricelist = self.env['product.pricelist.item'].search([
@@ -35,7 +24,24 @@ class ProductPricelist(models.Model):
is_compute_formula = False
else:
is_compute_formula = False
-
+ return price, discounts
+
+ def compute_price(self, pricelist_id: int, product_id: int):
+ """
+ Compute price with tax, discount formula, and fixed_price
+ @param pricelist_id: id of product.pricelist
+ @param product_id: id of product.product
+ @return: returns price value from pricelist.
+ """
+ is_flash_sale_product = self.is_flash_sale_product(product_id)
+ if is_flash_sale_product:
+ pricelist_id = is_flash_sale_product
+
+ price, discounts = self.get_product_price(pricelist_id, product_id)
+ if price == 0:
+ product_pricelist_default_price_id = self.env['ir.config_parameter'].get_param('product.pricelist.default_price_id')
+ price, discounts = self.get_product_price(int(product_pricelist_default_price_id), product_id)
+
price_discount = price
discount_percentage = 0
if price > 0: