From 2eaf89174847a6a9be5729d1df42ec832e5ef213 Mon Sep 17 00:00:00 2001 From: Phyo Date: Mon, 4 Sep 2017 10:22:54 +0630 Subject: [PATCH] Promotion multiple order --- app/models/promotion.rb | 34 ++++++++++++-------- app/views/settings/promotions/_form.html.erb | 30 ++++++++--------- 2 files changed, 36 insertions(+), 28 deletions(-) diff --git a/app/models/promotion.rb b/app/models/promotion.rb index dfab86e9..624818f1 100644 --- a/app/models/promotion.rb +++ b/app/models/promotion.rb @@ -28,8 +28,13 @@ class Promotion < ApplicationRecord end def self.combine_item(saleObj) - order_id = saleObj.sale_orders[0].order_id - itemList = OrderItem.where("order_id = ?", order_id).group(:item_instance_code).sum(:qty) + # order_id = saleObj.sale_orders[0].order_id + # itemList = OrderItem.where("order_id = ?", order_id).group(:item_instance_code).sum(:qty) + itemList = [] + saleObj.sale_orders.each do |so| + itemList << OrderItem.where("order_id = ?",so.order_id).group(:item_instance_code).sum(:qty) + end + return itemList end def self.is_promo_day(promoList, day, orderitemList, sale_id) @@ -46,13 +51,15 @@ class Promotion < ApplicationRecord def self.find_promo_item(promo, orderitem, sale_id) # item_code = OrderItem.find_by_item_instance_code(orderitem[0]).item_code - if promo.original_product.to_s == orderitem[0] - if promo.min_qty.to_i > orderitem[1].to_i - return false - else - check_promo_type(promo,orderitem, sale_id) - end - end + orderitem.each do |odr_item| + if promo.original_product.to_s == odr_item[0] + if promo.min_qty.to_i > odr_item[1].to_i + return false + else + check_promo_type(promo,odr_item, sale_id) + end + end + end end def self.check_promo_type(promo, orderitem, sale_id) @@ -126,7 +133,6 @@ class Promotion < ApplicationRecord # AA - 10 # 3 # BB # orderList, #S34345 def self.give_promotion_second_product(orderitem_count, foc_min_qty, promo_product, orderitem, sale_id) puts "..... orderitem_count: " + orderitem_count.to_s + " / foc_min_qty: " + foc_min_qty.to_s + " /promo_product: " + promo_product + " orderitem: " + orderitem.to_s - byebug promotion_qty = orderitem_count.to_i / foc_min_qty.to_i # get foc item qty foc_qty = find_second_item_qty(sale_id, promo_product) if (foc_qty < promotion_qty) @@ -212,9 +218,11 @@ class Promotion < ApplicationRecord saleObj = Sale.find_by_sale_id(sale_id) itemList = combine_item(saleObj) itemList.each do |item| - if item[0] == promo_item - return item[1] - end + item.each do |i| + if i[0] == promo_item + return i[1] + end + end end return 0 end diff --git a/app/views/settings/promotions/_form.html.erb b/app/views/settings/promotions/_form.html.erb index bea1f981..c832461d 100644 --- a/app/views/settings/promotions/_form.html.erb +++ b/app/views/settings/promotions/_form.html.erb @@ -41,16 +41,16 @@
- <%= f.hidden_field :promo_day, :value => "", :class => "form-control col-md-1" %> -
Sun
-
Mon
-
Tue
-
Wed
-
Thu
-
Fri
-
Sat
+ <%= f.hidden_field :promo_day, :value => "", :class => "form-control col-md-1" %> +
Sun
+
Mon
+
Tue
+
Wed
+
Thu
+
Fri
+
Sat
- +
<%= f.input :promo_type,input_html: { class: "" }, @@ -166,13 +166,13 @@ $(document).ready(function(){ var form = document.getElementById("new_promotion"); - var inputs = form.getElementsByTagName("input"); + var inputs = $("input"); var arr = []; var count = 0; var day = "["; - -$(".select").click(function() { - + +$(".selectDay").click(function() { + // debugger; day = "["; for (var j = 8; j <=15; j += 1){ @@ -192,8 +192,8 @@ $(".select").click(function() { } document.getElementById("promotion_promo_day").value = ''; document.getElementById("promotion_promo_day").value = day; - }); - + }); + $("#promotion_original_product").select2(); $(".item_code_place").select2(); $(".item_code_place").on('change', function(event) {