diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-07-26 10:24:51 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-07-26 10:24:51 +0700 |
| commit | 1469c56e6c0964ad279c3dfc621be8551407363b (patch) | |
| tree | 130c89a32efafcd9ba3402c2a09981c013b568df | |
| parent | c765b6ccc3da5051d7cb8e3997012fa6f46dd1f8 (diff) | |
Add source on get checkout and post checkout API
| -rw-r--r-- | indoteknik_api/controllers/api_v1/sale_order.py | 9 | ||||
| -rw-r--r-- | indoteknik_custom/models/website_user_cart.py | 15 |
2 files changed, 17 insertions, 7 deletions
diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index 208789af..a8b2fd11 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -237,8 +237,9 @@ class SaleOrder(controller.Controller): def get_user_checkout_so(self, user_id, **kw): cart = request.env['website.user.cart'] voucher_code = kw.get('voucher') + source = kw.get('source') voucher = request.env['voucher'].search([('code', '=', voucher_code)], limit=1) - result = cart.get_user_checkout(user_id, voucher) + result = cart.get_user_checkout(user_id, voucher, source) return self.response(result) @http.route(PREFIX_PARTNER + 'sale_order/checkout', auth='public', method=['POST', 'OPTIONS'], csrf=False) @@ -259,7 +260,8 @@ class SaleOrder(controller.Controller): 'delivery_amount': ['number', 'default:0'], 'carrier_id': [], 'delivery_service_type': [], - 'voucher': [] + 'voucher': [], + 'source': [] }) if not params['valid']: @@ -297,7 +299,8 @@ class SaleOrder(controller.Controller): user_id = params['value']['user_id'] user_cart = request.env['website.user.cart'] - products = user_cart.get_product_by_user(user_id=user_id, selected=True) + source = params['value']['source'] + products = user_cart.get_product_by_user(user_id=user_id, selected=True, source=source) for product in products: total_qty = product['quantity'] price_unit = product['price']['price'] diff --git a/indoteknik_custom/models/website_user_cart.py b/indoteknik_custom/models/website_user_cart.py index 73f39d23..4d85e64d 100644 --- a/indoteknik_custom/models/website_user_cart.py +++ b/indoteknik_custom/models/website_user_cart.py @@ -40,17 +40,24 @@ class WebsiteUserCart(models.Model): def get_products(self): return [x.get_product() for x in self] - def get_product_by_user(self, user_id, selected = False): + def get_product_by_user(self, user_id, selected=False, source=False): user_id = int(user_id) - parameters = [('user_id', '=', user_id)] + source = source if source else 'add_to_cart' + + parameters = [ + ('user_id', '=', user_id), + ('source', '=', source) + ] + if selected: parameters.append(('is_selected', '=', True)) + carts = self.search(parameters) products = carts.get_products() return products - def get_user_checkout(self, user_id, voucher=False): - products = self.get_product_by_user(user_id=user_id, selected=True) + def get_user_checkout(self, user_id, voucher=False, source=False): + products = self.get_product_by_user(user_id=user_id, selected=True, source=source) total_purchase = sum(x['price']['price'] * x['quantity'] for x in products) total_discount = sum((x['price']['price'] - x['price']['price_discount']) * x['quantity'] for x in products) subtotal = total_purchase - total_discount |
