summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2024-11-06 09:50:38 +0700
committerit-fixcomart <it@fixcomart.co.id>2024-11-06 09:50:38 +0700
commit4a3ff9e6fc85f534c106198c0ceee4e8c33eba5c (patch)
treef8e7e6673d87da4fded5197716b3cee11bbbea9e
parent9602db0d08b64f50e02d3e25ab3846221bf2cb08 (diff)
<iman> update bug products_inactive on user carts
-rw-r--r--indoteknik_api/controllers/api_v1/cart.py21
-rw-r--r--indoteknik_custom/models/website_user_cart.py24
2 files changed, 42 insertions, 3 deletions
diff --git a/indoteknik_api/controllers/api_v1/cart.py b/indoteknik_api/controllers/api_v1/cart.py
index 2a24b205..7a40b1e2 100644
--- a/indoteknik_api/controllers/api_v1/cart.py
+++ b/indoteknik_api/controllers/api_v1/cart.py
@@ -46,8 +46,25 @@ class Cart(controller.Controller):
def get_cart_count_by_user_id(self, user_id, **kw):
user_id = int(user_id)
query = [('user_id', '=', user_id)]
- carts = request.env['website.user.cart'].search_count(query)
- return self.response(carts)
+ carts = request.env['website.user.cart'].search(query)
+ products_active = []
+ products_inactive = []
+ for cart in carts:
+ if cart.product_id:
+ price = cart.product_id._v2_get_website_price_include_tax()
+ if cart.product_id.active and price > 0:
+ product = cart.with_context(price_for="web").get_products()
+ for product_active in product:
+ products_active.append(product_active)
+ else:
+ product_inactives = cart.with_context(price_for="web").get_products()
+ for inactives in product_inactives:
+ products_inactive.append(inactives)
+ else:
+ program = cart.with_context(price_for="web").get_products()
+ for programs in program:
+ products_active.append(programs)
+ return self.response(len(products_active))
@http.route(PREFIX_USER + 'cart/create-or-update', auth='public', methods=['POST', 'OPTIONS'], csrf=False)
@controller.Controller.must_authorized(private=True, private_key='user_id')
diff --git a/indoteknik_custom/models/website_user_cart.py b/indoteknik_custom/models/website_user_cart.py
index 26e217cb..fbcb0aa4 100644
--- a/indoteknik_custom/models/website_user_cart.py
+++ b/indoteknik_custom/models/website_user_cart.py
@@ -108,8 +108,30 @@ class WebsiteUserCart(models.Model):
parameters.append(('is_selected', '=', True))
carts = self.search(parameters)
+ products_active = []
+ products_inactive = []
+ for cart in carts:
+ if cart.product_id:
+ price = cart.product_id._v2_get_website_price_include_tax()
+ if cart.product_id.active and price > 0:
+ product = cart.with_context(price_for="web").get_products()
+ for product_active in product:
+ products_active.append(product_active)
+ else:
+ product_inactives = cart.with_context(price_for="web").get_products()
+ for inactives in product_inactives:
+ products_inactive.append(inactives)
+ else:
+ program = cart.with_context(price_for="web").get_products()
+ for programs in program:
+ products_active.append(programs)
+ data = {
+ 'product_total': self.search_count(parameters),
+ 'products': products_active,
+ 'products_inactive': products_inactive
+ }
products = carts.get_products()
- return products
+ return products_active
def get_user_checkout(self, user_id, voucher=False, voucher_shipping=False, source=False):
products = self.get_product_by_user(user_id=user_id, selected=True, source=source)