From c452ac57ec1266452d04bbf4c38191aaa6630186 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Thu, 5 Oct 2023 10:07:40 +0700 Subject: Add price context for get product price API --- indoteknik_api/controllers/api_v1/cart.py | 2 +- indoteknik_api/controllers/api_v1/sale_order.py | 2 +- indoteknik_api/controllers/api_v1/voucher.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'indoteknik_api/controllers/api_v1') diff --git a/indoteknik_api/controllers/api_v1/cart.py b/indoteknik_api/controllers/api_v1/cart.py index cb0f5a99..88fa9f88 100644 --- a/indoteknik_api/controllers/api_v1/cart.py +++ b/indoteknik_api/controllers/api_v1/cart.py @@ -18,7 +18,7 @@ class Cart(controller.Controller): carts = user_cart.search(query, limit=limit, offset=offset, order='create_date desc') data = { 'product_total': user_cart.search_count(query), - 'products': carts.get_products() + 'products': carts.with_context(price_for="web").get_products() } return self.response(data) diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index ef4c2688..9668b63e 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -236,7 +236,7 @@ class SaleOrder(controller.Controller): 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, source) + result = cart.with_context(price_for="web").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) diff --git a/indoteknik_api/controllers/api_v1/voucher.py b/indoteknik_api/controllers/api_v1/voucher.py index dfe9ceba..3c056ecd 100644 --- a/indoteknik_api/controllers/api_v1/voucher.py +++ b/indoteknik_api/controllers/api_v1/voucher.py @@ -20,7 +20,7 @@ class Voucher(controller.Controller): if code: visibility.append('private') parameter += [('code', '=', code)] - user_pricelist = request.env.user_pricelist + user_pricelist = request.env.context.get('user_pricelist') if user_pricelist: parameter += [('excl_pricelist_ids', 'not in', [user_pricelist.id])] -- cgit v1.2.3 From 2391bd57ea6f64b20301db81217f0b4810e9dabf Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Thu, 5 Oct 2023 11:55:52 +0700 Subject: Fix sale order API for new pricelist --- indoteknik_api/controllers/api_v1/sale_order.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'indoteknik_api/controllers/api_v1') diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index 9668b63e..df11546f 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -243,7 +243,8 @@ class SaleOrder(controller.Controller): @controller.Controller.must_authorized(private=True, private_key='partner_id') def create_partner_sale_order(self, **kw): config = request.env['ir.config_parameter'] - product_pricelist_default_discount_id = int(config.get_param('product.pricelist.default_discount_id')) + product_pricelist_default_discount_id = int(config.get_param('product.pricelist.tier1_v2')) + user_pricelist = request.env.context.get('user_pricelist').id or False params = self.get_request_params(kw, { 'user_id': ['number'], @@ -268,8 +269,8 @@ class SaleOrder(controller.Controller): parameters = { 'warehouse_id': 8, 'carrier_id': 1, - 'sales_tax_id': 20, - 'pricelist_id': product_pricelist_default_discount_id, + 'sales_tax_id': 23, + 'pricelist_id': user_pricelist or product_pricelist_default_discount_id, 'payment_term_id': 26, 'team_id': 2, 'company_id': 1, -- cgit v1.2.3 From d860aa7969e27717dd4f838961024a909fa016c8 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Thu, 5 Oct 2023 11:56:47 +0700 Subject: Update to delete cart on checkout API --- indoteknik_api/controllers/api_v1/sale_order.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indoteknik_api/controllers/api_v1') diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index df11546f..1f098252 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -334,7 +334,7 @@ class SaleOrder(controller.Controller): sale_order.apply_voucher() cart_ids = [x['cart_id'] for x in carts] - # user_cart.browse(cart_ids).unlink() + user_cart.browse(cart_ids).unlink() return self.response({ 'id': sale_order.id, 'name': sale_order.name -- cgit v1.2.3 From 7f9971a4c838b84fb1223845ccdb8256eb08b72d Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Thu, 5 Oct 2023 14:08:02 +0700 Subject: Fix bug apply voucher on create sale order API --- indoteknik_api/controllers/api_v1/sale_order.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'indoteknik_api/controllers/api_v1') diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index 1f098252..b17c2231 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -321,7 +321,9 @@ class SaleOrder(controller.Controller): 'quantity': cart['quantity'] }) - request.env['sale.order.line'].create(order_lines) + lines = request.env['sale.order.line'].create(order_lines) + for line in lines: + line.product_id_change() request.env['sale.order.promotion'].create(promotions) if len(promotions) > 0: @@ -334,7 +336,7 @@ class SaleOrder(controller.Controller): sale_order.apply_voucher() cart_ids = [x['cart_id'] for x in carts] - user_cart.browse(cart_ids).unlink() + # user_cart.browse(cart_ids).unlink() return self.response({ 'id': sale_order.id, 'name': sale_order.name -- cgit v1.2.3 From 2fa15330d221cb68e5b9acdb4379aa82764f46f0 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Fri, 6 Oct 2023 11:17:53 +0700 Subject: Update flashsale calculation price for web and odoo --- indoteknik_api/controllers/api_v1/sale_order.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'indoteknik_api/controllers/api_v1') diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index b17c2231..8209c751 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -302,18 +302,19 @@ class SaleOrder(controller.Controller): source = params['value']['source'] carts = user_cart.get_product_by_user(user_id=user_id, selected=True, source=source) - order_lines = [] promotions = [] for cart in carts: if cart['cart_type'] == 'product': - order_lines.append({ + order_line = request.env['sale.order.line'].create({ 'company_id': 1, 'order_id': sale_order.id, - 'price_unit': cart['price']['price'], - 'discount': cart['price']['discount_percentage'], 'product_id': cart['id'], 'product_uom_qty': cart['quantity'] }) + order_line.product_id_change() + order_line.onchange_vendor_id() + order_line.price_unit = cart['price']['price'] + order_line.discount = cart['price']['discount_percentage'] elif cart['cart_type'] == 'promotion': promotions.append({ 'order_id': sale_order.id, @@ -321,9 +322,6 @@ class SaleOrder(controller.Controller): 'quantity': cart['quantity'] }) - lines = request.env['sale.order.line'].create(order_lines) - for line in lines: - line.product_id_change() request.env['sale.order.promotion'].create(promotions) if len(promotions) > 0: -- cgit v1.2.3