From 719dc824379bff729a97007432ef6871954b0980 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Fri, 14 Apr 2023 15:21:31 +0700 Subject: bug fix --- indoteknik_api/controllers/api_v1/sale_order.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'indoteknik_api/controllers/api_v1/sale_order.py') diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index 76fbfddb..e019b325 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -232,7 +232,7 @@ class SaleOrder(controller.Controller): parameters = { 'warehouse_id': 8, 'carrier_id': 1, - 'sales_tax_id': 23, + 'sales_tax_id': 21, 'pricelist_id': product_pricelist_default_discount_id, 'payment_term_id': 26, 'team_id': 2, @@ -259,7 +259,7 @@ class SaleOrder(controller.Controller): 'order_id': sale_order.id, 'product_id': line['product_id'], 'product_uom_qty': line['quantity'], - 'price_subtotal': product._get_website_price_exclude_tax(), + 'price_unit': product._get_website_price_exclude_tax(), 'discount': product._get_website_disc(0) }) request.env['sale.order.line'].create(parameters) -- cgit v1.2.3 From 456d4b07e52c3664fd2c22e2b7748cbb2912539d Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Mon, 17 Apr 2023 15:01:33 +0700 Subject: api checkout so with pricelist tier --- indoteknik_api/controllers/api_v1/sale_order.py | 31 ++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) (limited to 'indoteknik_api/controllers/api_v1/sale_order.py') diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index e019b325..e237ebaa 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -213,8 +213,10 @@ class SaleOrder(controller.Controller): @http.route(PREFIX_PARTNER + 'sale_order/checkout', auth='public', method=['POST', 'OPTIONS'], csrf=False) @controller.Controller.must_authorized(private=True, private_key='partner_id') def create_partner_sale_order(self, **kw): - product_pricelist_default_discount_id = request.env['ir.config_parameter'].get_param('product.pricelist.default_discount_id') - product_pricelist_default_discount_id = int(product_pricelist_default_discount_id) + product_pricelist_default_discount_id = int(request.env['ir.config_parameter'].get_param('product.pricelist.default_discount_id')) + product_pricelist_tier1 = int(request.env['ir.config_parameter'].get_param('product.pricelist.tier1')) + product_pricelist_tier2 = int(request.env['ir.config_parameter'].get_param('product.pricelist.tier2')) + product_pricelist_tier3 = int(request.env['ir.config_parameter'].get_param('product.pricelist.tier3')) params = self.get_request_params(kw, { 'partner_id': ['number'], @@ -252,15 +254,38 @@ class SaleOrder(controller.Controller): sale_order = request.env['sale.order'].create([parameters]) order_line = json.loads(params['value']['order_line']) parameters = [] + + partner = request.env['res.partner'].browse(params['value']['partner_id']) + partner_pricelist = partner.property_product_pricelist for line in order_line: product = request.env['product.product'].search([('id', '=', line['product_id'])], limit=1) + discount = product._get_website_disc(0) + + price_tier = False + pricelist = { + 'tier1': product._get_pricelist_tier1, + 'tier2': product._get_pricelist_tier2, + 'tier3': product._get_pricelist_tier3, + } + if partner_pricelist.id == product_pricelist_tier1: + price_tier = 'tier1' + if partner_pricelist.id == product_pricelist_tier2: + price_tier = 'tier2' + if partner_pricelist.id == product_pricelist_tier3: + price_tier = 'tier3' + + if price_tier: + price = pricelist[price_tier]() + discount_key = 'discount_%s' % price_tier + if price[discount_key] > 0: discount = price[discount_key] + parameters.append({ 'company_id': 1, 'order_id': sale_order.id, 'product_id': line['product_id'], 'product_uom_qty': line['quantity'], 'price_unit': product._get_website_price_exclude_tax(), - 'discount': product._get_website_disc(0) + 'discount': discount }) request.env['sale.order.line'].create(parameters) return self.response({ -- cgit v1.2.3 From 60d754cb1b2044adafddd4893212028a3264f620 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Tue, 18 Apr 2023 15:45:05 +0700 Subject: price tier on user session, variant and product --- indoteknik_api/controllers/api_v1/sale_order.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'indoteknik_api/controllers/api_v1/sale_order.py') diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index e237ebaa..44986166 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -213,10 +213,11 @@ class SaleOrder(controller.Controller): @http.route(PREFIX_PARTNER + 'sale_order/checkout', auth='public', method=['POST', 'OPTIONS'], csrf=False) @controller.Controller.must_authorized(private=True, private_key='partner_id') def create_partner_sale_order(self, **kw): - product_pricelist_default_discount_id = int(request.env['ir.config_parameter'].get_param('product.pricelist.default_discount_id')) - product_pricelist_tier1 = int(request.env['ir.config_parameter'].get_param('product.pricelist.tier1')) - product_pricelist_tier2 = int(request.env['ir.config_parameter'].get_param('product.pricelist.tier2')) - product_pricelist_tier3 = int(request.env['ir.config_parameter'].get_param('product.pricelist.tier3')) + config = request.env['ir.config_parameter'] + product_pricelist_default_discount_id = int(config.get_param('product.pricelist.default_discount_id')) + product_pricelist_tier1 = int(config.get_param('product.pricelist.tier1')) + product_pricelist_tier2 = int(config.get_param('product.pricelist.tier2')) + product_pricelist_tier3 = int(config.get_param('product.pricelist.tier3')) params = self.get_request_params(kw, { 'partner_id': ['number'], -- cgit v1.2.3 From e45332c61d9724a790fcb9a46f849ec4147ce46c Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Tue, 18 Apr 2023 15:51:02 +0700 Subject: fix bug no user pricelist --- indoteknik_api/controllers/api_v1/sale_order.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'indoteknik_api/controllers/api_v1/sale_order.py') diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index 44986166..685d5a21 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -268,12 +268,10 @@ class SaleOrder(controller.Controller): 'tier2': product._get_pricelist_tier2, 'tier3': product._get_pricelist_tier3, } - if partner_pricelist.id == product_pricelist_tier1: - price_tier = 'tier1' - if partner_pricelist.id == product_pricelist_tier2: - price_tier = 'tier2' - if partner_pricelist.id == product_pricelist_tier3: - price_tier = 'tier3' + pricelist_id = pricelist.id or False + if pricelist_id == product_pricelist_tier1: price_tier = 'tier1' + if pricelist_id == product_pricelist_tier2: price_tier = 'tier2' + if pricelist_id == product_pricelist_tier3: price_tier = 'tier3' if price_tier: price = pricelist[price_tier]() -- cgit v1.2.3 From ebbf7e832b570f1d2ecec838983b7582ade78af4 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Tue, 18 Apr 2023 15:59:47 +0700 Subject: fix bug no user pricelist --- indoteknik_api/controllers/api_v1/sale_order.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'indoteknik_api/controllers/api_v1/sale_order.py') diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index 685d5a21..950d98db 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -268,10 +268,10 @@ class SaleOrder(controller.Controller): 'tier2': product._get_pricelist_tier2, 'tier3': product._get_pricelist_tier3, } - pricelist_id = pricelist.id or False - if pricelist_id == product_pricelist_tier1: price_tier = 'tier1' - if pricelist_id == product_pricelist_tier2: price_tier = 'tier2' - if pricelist_id == product_pricelist_tier3: price_tier = 'tier3' + partner_pricelist_id = partner_pricelist.id if partner_pricelist else False + if partner_pricelist_id == product_pricelist_tier1: price_tier = 'tier1' + if partner_pricelist_id == product_pricelist_tier2: price_tier = 'tier2' + if partner_pricelist_id == product_pricelist_tier3: price_tier = 'tier3' if price_tier: price = pricelist[price_tier]() -- cgit v1.2.3 From 6fa5de951abc02884eb37cdc6786c0f3d141ccc5 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Thu, 27 Apr 2023 16:49:05 +0700 Subject: fix validation request, add context in sale order, add benchmark apache_solr --- indoteknik_api/controllers/api_v1/sale_order.py | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'indoteknik_api/controllers/api_v1/sale_order.py') diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index 950d98db..425dd296 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -53,6 +53,7 @@ class SaleOrder(controller.Controller): 'name': [], 'limit': ['default:0', 'number'], 'offset': ['default:0', 'number'], + 'context': [] }) limit = params['value']['limit'] offset = params['value']['offset'] @@ -61,6 +62,13 @@ class SaleOrder(controller.Controller): partner_child_ids = self.get_partner_child_ids(params['value']['partner_id']) domain = [('partner_id', 'in', partner_child_ids)] + + context = params['value']['context'] + if context == 'quotation': + domain += [('approval_status', '=', False)] + if not context: + domain += [('approval_status', '!=', False)] + if params['value']['name']: name = params['value']['name'].replace(' ', '%') domain += [ -- cgit v1.2.3