From 001002a2c56d241cf2340155683f43a8c62ac7b6 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Wed, 13 Nov 2024 13:30:27 +0700 Subject: add free product to so line when promotion --- indoteknik_custom/models/promotion/sale_order.py | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'indoteknik_custom/models/promotion') diff --git a/indoteknik_custom/models/promotion/sale_order.py b/indoteknik_custom/models/promotion/sale_order.py index cb9a6f92..be820c6f 100644 --- a/indoteknik_custom/models/promotion/sale_order.py +++ b/indoteknik_custom/models/promotion/sale_order.py @@ -6,6 +6,16 @@ class SaleOrder(models.Model): order_promotion_ids = fields.One2many('sale.order.promotion', 'order_id', 'Promotions') + def add_free_product(self, promotions): + for promotion in promotions: + program_line = self.env['promotion.program.line'].browse(promotion['program_line_id']) + for free_product in program_line.free_product_ids: + self.env['sale.order.line'].create({ + 'order_id': self.id, + 'name': "Free Product " + free_product.product_id.display_name, + 'display_type': 'line_note' + }) + def apply_promotion_program(self): userdata = { 'user_id': self.partner_id.user_id.id, -- cgit v1.2.3 From 0080b6b1da5f181cee32fae7bb5166ce65165374 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Fri, 29 Nov 2024 09:53:07 +0700 Subject: cr note product promotion --- indoteknik_custom/models/promotion/sale_order.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'indoteknik_custom/models/promotion') diff --git a/indoteknik_custom/models/promotion/sale_order.py b/indoteknik_custom/models/promotion/sale_order.py index be820c6f..1c31d060 100644 --- a/indoteknik_custom/models/promotion/sale_order.py +++ b/indoteknik_custom/models/promotion/sale_order.py @@ -10,11 +10,12 @@ class SaleOrder(models.Model): for promotion in promotions: program_line = self.env['promotion.program.line'].browse(promotion['program_line_id']) for free_product in program_line.free_product_ids: - self.env['sale.order.line'].create({ - 'order_id': self.id, - 'name': "Free Product " + free_product.product_id.display_name, - 'display_type': 'line_note' - }) + if free_product.product_id.merchandise_ok: + self.env['sale.order.line'].create({ + 'order_id': self.id, + 'name': f"Free Product {free_product.product_id.display_name} Quantity ({free_product.qty})", + 'display_type': 'line_note' + }) def apply_promotion_program(self): userdata = { -- cgit v1.2.3