summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-10-05 14:08:02 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-10-05 14:08:02 +0700
commit7f9971a4c838b84fb1223845ccdb8256eb08b72d (patch)
treeda3a7818b5fc3085bbd82ca85abc17fd372189d4
parentd860aa7969e27717dd4f838961024a909fa016c8 (diff)
Fix bug apply voucher on create sale order API
-rw-r--r--indoteknik_api/controllers/api_v1/sale_order.py6
-rwxr-xr-xindoteknik_custom/models/sale_order.py10
2 files changed, 10 insertions, 6 deletions
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
diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py
index e201496a..728c0bba 100755
--- a/indoteknik_custom/models/sale_order.py
+++ b/indoteknik_custom/models/sale_order.py
@@ -421,8 +421,8 @@ class SaleOrder(models.Model):
order.grand_total = order.amount_total
def action_apply_voucher(self):
- for order in self.order_line:
- if order.program_line_id:
+ for line in self.order_line:
+ if line.order_promotion_id:
raise UserError('Voucher tidak dapat digabung dengan promotion program')
voucher = self.voucher_id
@@ -472,8 +472,10 @@ class SaleOrder(models.Model):
line_contribution = line.price_subtotal / used_total
line_voucher = used_discount * line_contribution
line_voucher_item = line_voucher / line.product_uom_qty
- line_discount_item = line.price_unit * line.discount / 100 + line_voucher_item
- line_voucher_item = line_discount_item / line.price_unit * 100
+
+ line_price_unit = line.price_unit / 1.11 if any(tax.id == 23 for tax in line.tax_id) else line.price_unit
+ line_discount_item = line_price_unit * line.discount / 100 + line_voucher_item
+ line_voucher_item = line_discount_item / line_price_unit * 100
line.amount_voucher_disc = line_voucher
line.discount = line_voucher_item