Rebate Option

This commit is contained in:
Phyo
2017-06-20 13:22:27 +06:30
parent 90be2b8d63
commit 80362f87fe
4 changed files with 44 additions and 42 deletions

View File

@@ -6,7 +6,8 @@ class Origami::RedeemPaymentsController < BaseOrigamiController
sale_data = Sale.find_by_sale_id(@sale_id) sale_data = Sale.find_by_sale_id(@sale_id)
# limit redeem_amount # limit redeem_amount
food_prices, beverage_prices = SaleItem.calculate_food_beverage(sale_data.sale_items) rebate_prices = SaleItem.calculate_food_beverage(sale_data.sale_items)
nonrebate_prices = sale_data.total_amount - rebate_prices
@payparcount = 0 @payparcount = 0
others = 0 others = 0
sale_data.sale_payments.each do |sale_payment| sale_data.sale_payments.each do |sale_payment|
@@ -16,11 +17,11 @@ class Origami::RedeemPaymentsController < BaseOrigamiController
others = others + sale_payment.payment_amount others = others + sale_payment.payment_amount
end end
end end
is_bervage_exceed = others - (beverage_prices + sale_data.total_tax) non_rebate_exceed = others - (nonrebate_prices + sale_data.total_tax)
if is_bervage_exceed < 0 if non_rebate_exceed < 0
@food_prices = food_prices - @payparcount @redeem_prices = rebate_prices - @payparcount
else else
@food_prices = food_prices - @payparcount -is_bervage_exceed @redeem_prices = rebate_prices - @payparcount -non_rebate_exceed
end end
if sale_data if sale_data

View File

@@ -32,48 +32,49 @@ class SaleItem < ApplicationRecord
# Calculate food total and beverage total # Calculate food total and beverage total
def self.calculate_food_beverage(sale_items) def self.calculate_food_beverage(sale_items)
food_prices=0
beverage_prices=0
sale_items.each do |si| rebateacc = Account.where("rebate=?",true)
food_price, beverage_price = self.get_price(si.sale_item_id) puts "Account that can rebate"
rebateacc.each do |i|
food_prices = food_prices + food_price puts i.title
beverage_prices = beverage_prices + beverage_price
end end
puts food_prices prices=0
puts beverage_prices sale_items.each do |si|
return food_prices, beverage_prices price = self.get_price(si.sale_item_id,rebateacc)
prices = prices + price
end
return prices
end end
# get food price or beverage price for item # get food price or beverage price for item
def self.get_price(sale_item_id) def self.get_price(sale_item_id,rebateacc)
food_price=0 price=0
beverage_price=0
item=SaleItem.select("sale_items.price , menu_items.account_id") item=SaleItem.select("sale_items.price , menu_items.account_id")
.joins("left join menu_items on menu_items.item_code = sale_items.product_code") .joins("left join menu_items on menu_items.item_code = sale_items.product_code")
.where("sale_items.sale_item_id=?", sale_item_id.to_s) .where("sale_items.sale_item_id=?", sale_item_id.to_s)
if item[0].account_id == 1
food_price = item[0].price rebateacc.each do |i|
else if item[0].account_id == i.id
beverage_price = item[0].price price = item[0].price
end end
return food_price, beverage_price
end
def self.get_overall_discount(sale_id)
price = 0.0
item=SaleItem.where("product_code=?", sale_id)
item.each do|i|
price += i.price
end end
return price return price
end end
# def self.get_overall_discount(sale_id)
# price = 0.0
# item=SaleItem.where("product_code=?", sale_id)
#
# item.each do|i|
# price += i.price
# end
#
# return price
# end
private private
def generate_custom_id def generate_custom_id
self.sale_item_id = SeedGenerator.generate_id(self.class.name, "SLI") self.sale_item_id = SeedGenerator.generate_id(self.class.name, "SLI")

View File

@@ -241,7 +241,9 @@ class SalePayment < ApplicationRecord
end end
def rebat(sObj) def rebat(sObj)
food_prices, beverage_prices = SaleItem.calculate_food_beverage(sObj.sale_items) rebate_prices = SaleItem.calculate_food_beverage(sObj.sale_items)
puts "rebate_prices"
puts rebate_prices
generic_customer_id = sObj.customer.membership_id generic_customer_id = sObj.customer.membership_id
if generic_customer_id != nil || generic_customer_id != "" || generic_customer_id != 0 if generic_customer_id != nil || generic_customer_id != "" || generic_customer_id != 0
paypar = sObj.sale_payments paypar = sObj.sale_payments
@@ -251,12 +253,10 @@ class SalePayment < ApplicationRecord
payparcost = payparcost + pp.payment_amount payparcost = payparcost + pp.payment_amount
end end
end end
overall_dis = SaleItem.get_overall_discount(sObj.id) # overall_dis = SaleItem.get_overall_discount(sObj.id)
total_amount = food_prices - payparcost + overall_dis overall_dis = sObj.total_discount
puts "total_amount"
puts food_prices total_amount = rebate_prices - payparcost + overall_dis
puts payparcost
puts total_amount
if total_amount > 0 if total_amount > 0
receipt_no = sObj.receipt_no receipt_no = sObj.receipt_no
membership = MembershipSetting.find_by_membership_type("paypar_url") membership = MembershipSetting.find_by_membership_type("paypar_url")

View File

@@ -6,7 +6,7 @@
<div class="row"> <div class="row">
<div class="form-group col-lg-12 col-md-12 col-sm-12"> <div class="form-group col-lg-12 col-md-12 col-sm-12">
<label class="col-lg-4 col-md-4 col-sm-4">You can redeem upto </label> <label class="col-lg-4 col-md-4 col-sm-4">You can redeem upto </label>
<input type="text" name="" id="" class="form-control col-lg-7 col-md-7 col-sm-7" readonly="" value="<%= @food_prices %>" data-value="<%=@sale_id %>" data-member-value="<%= @membership_id %>"> <input type="text" name="" id="" class="form-control col-lg-7 col-md-7 col-sm-7" readonly="" value="<%= @redeem_prices %>" data-value="<%=@sale_id %>" data-member-value="<%= @membership_id %>">
</div> </div>
<hr> <hr>
</div> </div>
@@ -38,7 +38,7 @@
<!-- <% if @payparcount > 0 %> <!-- <% if @payparcount > 0 %>
<p class="">Last time rebate amount is <%= @payparcount %></p> <p class="">Last time rebate amount is <%= @payparcount %></p>
<% end %> <% end %>
<p class="">You can rebate upto <span style="color:red;" id="food_prices"><%= @food_prices %></span></p> --> <p class="">You can rebate upto <span style="color:red;" id="food_prices"><%= @redeem_prices %></span></p> -->
</div> </div>
<div class="col-lg-6 col-md-7 col-sm-7"> <div class="col-lg-6 col-md-7 col-sm-7">
@@ -151,7 +151,7 @@ $("#redeem").click(function(){
}else if(valid_amount< redeem_amount){ }else if(valid_amount< redeem_amount){
alert(" Insufficient Amount!") alert(" Insufficient Amount!")
}else{ }else{
if(redeem_amount <= "<%= @food_prices %>"){ if(redeem_amount <= "<%= @redeem_prices %>"){
$.ajax({ $.ajax({
type: "POST", type: "POST",
url: "<%=origami_payment_paypar_path%>", url: "<%=origami_payment_paypar_path%>",