diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-09-18 16:20:15 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-09-18 16:20:15 +0700 |
| commit | adbc9b985f1c5fb2b2f41f79c686b3a573003e62 (patch) | |
| tree | 27ca97d7c6540ccaf3556efadb9c8b439ac2f2fb /indoteknik_api/controllers | |
| parent | 0ace4356bdbe27c3acd75c33d5259ef950eecb24 (diff) | |
Update promotion program feature
Diffstat (limited to 'indoteknik_api/controllers')
| -rw-r--r-- | indoteknik_api/controllers/api_v1/sale_order.py | 39 |
1 files changed, 14 insertions, 25 deletions
diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index adc89f66..2c6958d8 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -302,43 +302,32 @@ class SaleOrder(controller.Controller): 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'] price_discount =product['price']['discount_percentage'] - if product['program'] and product['program']['type']['value'] != 'special_price': - total_qty += sum(x['quantity'] for x in product['program']['items']) - price_unit = product['subtotal'] / total_qty - price_discount = 0 - - param = { + order_line = { 'company_id': 1, 'order_id': sale_order.id, 'price_unit': price_unit, - 'discount': price_discount - } - - primary_product = { - **param, + 'discount': price_discount, 'product_id': product['id'], 'product_uom_qty': product['quantity'] } + if product['program']: - primary_product.update({ + order_line.update({ 'program_line_id': product['program']['id'] }) - parameters.append(primary_product) - - if not product['program']: - continue - - for item in product['program']['items']: - parameters.append({ - **param, - 'product_id': item['id'], - 'product_uom_qty': item['quantity'], - }) + + parameters.append(order_line) + # if product['program'] and product['program']['type']['value'] != 'special_price': + # total_qty += sum(x['quantity'] for x in product['program']['items']) + # price_unit = product['subtotal'] / total_qty + # price_discount = 0 request.env['sale.order.line'].create(parameters) + + if any(x['program'] for x in products): + sale_order.apply_promotion_program() voucher_code = params['value']['voucher'] voucher = request.env['voucher'].search([('code', '=', voucher_code)]) @@ -347,7 +336,7 @@ class SaleOrder(controller.Controller): sale_order.apply_voucher() cart_ids = [x['cart_id'] for x in products] - user_cart.browse(cart_ids).unlink() + # user_cart.browse(cart_ids).unlink() return self.response({ 'id': sale_order.id, 'name': sale_order.name |
