summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-07-26 10:24:51 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-07-26 10:24:51 +0700
commit1469c56e6c0964ad279c3dfc621be8551407363b (patch)
tree130c89a32efafcd9ba3402c2a09981c013b568df
parentc765b6ccc3da5051d7cb8e3997012fa6f46dd1f8 (diff)
Add source on get checkout and post checkout API
-rw-r--r--indoteknik_api/controllers/api_v1/sale_order.py9
-rw-r--r--indoteknik_custom/models/website_user_cart.py15
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