summaryrefslogtreecommitdiff
path: root/indoteknik_api
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-09-18 16:20:15 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-09-18 16:20:15 +0700
commitadbc9b985f1c5fb2b2f41f79c686b3a573003e62 (patch)
tree27ca97d7c6540ccaf3556efadb9c8b439ac2f2fb /indoteknik_api
parent0ace4356bdbe27c3acd75c33d5259ef950eecb24 (diff)
Update promotion program feature
Diffstat (limited to 'indoteknik_api')
-rw-r--r--indoteknik_api/controllers/api_v1/sale_order.py39
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