summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-09-07 15:49:55 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-09-07 15:49:55 +0700
commitf73449303d21622036a7e69945836fbc01b8f951 (patch)
treefcc412798fe7d7a5e48553247eff0723e0d98fd9 /indoteknik_custom/models
parent1d60288adef95392dfbfc2f170409a611be526ea (diff)
Add apply voucher validation on sale order
Diffstat (limited to 'indoteknik_custom/models')
-rwxr-xr-xindoteknik_custom/models/sale_order.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py
index 85ef3ad8..8317e1fd 100755
--- a/indoteknik_custom/models/sale_order.py
+++ b/indoteknik_custom/models/sale_order.py
@@ -377,6 +377,28 @@ class SaleOrder(models.Model):
order.grand_total = order.delivery_amt + order.amount_total
else:
order.grand_total = order.amount_total
+
+ def action_apply_voucher(self):
+ for order in self.order_line:
+ if order.program_line_id:
+ raise UserError('Voucher tidak dapat digabung dengan promotion program')
+
+ voucher = self.voucher_id
+ if voucher.limit > 0 and voucher.count_order >= voucher.limit:
+ raise UserError('Voucher tidak dapat digunakan karena sudah habis digunakan')
+
+ partner_voucher_orders = []
+ for order in voucher.order_ids:
+ if order.partner_id.id == self.partner_id.id:
+ partner_voucher_orders.append(order)
+
+ if voucher.limit_user > 0 and len(partner_voucher_orders) >= voucher.limit_user:
+ raise UserError('Voucher tidak dapat digunakan karena Customer ini sudah menghabiskan kuota voucher')
+
+ if self.pricelist_id.id in [x.id for x in voucher.excl_pricelist_ids]:
+ raise UserError('Voucher tidak dapat digunakan karena pricelist ini tidak berlaku pada voucher')
+
+ self.apply_voucher()
def apply_voucher(self):
order_line = []