diff --git a/app/controllers/api/orders_controller.rb b/app/controllers/api/orders_controller.rb index 0c89c647..cab929bd 100755 --- a/app/controllers/api/orders_controller.rb +++ b/app/controllers/api/orders_controller.rb @@ -184,12 +184,16 @@ class Api::OrdersController < Api::ApiController #checked checkin and checkout time def checkin_checkout_time(booking_id) status = true - today = Time.now.utc - booking = Booking.find(params[:booking_id]) - if !booking.nil? - checkout_time = booking.checkout_at.utc - if checkout_time <= today - status = false + if !params[:booking_id].nil? + today = Time.now.utc + booking = Booking.find(params[:booking_id]) + if !booking.nil? + if !booking.checkout_at.nil? + checkout_time = booking.checkout_at.utc + if checkout_time <= today + status = false + end + end end end return status diff --git a/app/controllers/origami/jcb_controller.rb b/app/controllers/origami/jcb_controller.rb index 9c872325..b8c7e7e0 100755 --- a/app/controllers/origami/jcb_controller.rb +++ b/app/controllers/origami/jcb_controller.rb @@ -46,13 +46,13 @@ class Origami::JcbController < BaseOrigamiController shop_details = Shop::ShopDetail # rounding adjustment - if shop_details.is_rounding_adj - new_total = Sale.get_rounding_adjustment(saleObj.grand_total) - rounding_adj = new_total-saleObj.grand_total - saleObj.update_attributes(grand_total: new_total,old_grand_total: saleObj.grand_total,rounding_adjustment:rounding_adj) - end + # if shop_details.is_rounding_adj + # new_total = Sale.get_rounding_adjustment(saleObj.grand_total) + # rounding_adj = new_total-saleObj.grand_total + # saleObj.update_attributes(grand_total: new_total,old_grand_total: saleObj.grand_total,rounding_adjustment:rounding_adj) + # end - saleObj = Sale.find(sale_id) + # saleObj = Sale.find(sale_id) sale_payment = SalePayment.new @status, @sale = sale_payment.process_payment(saleObj, @user, cash, "jcb") end diff --git a/app/controllers/origami/master_controller.rb b/app/controllers/origami/master_controller.rb index 0ad47913..b3813577 100755 --- a/app/controllers/origami/master_controller.rb +++ b/app/controllers/origami/master_controller.rb @@ -45,13 +45,13 @@ class Origami::MasterController < BaseOrigamiController shop_details = Shop::ShopDetail # rounding adjustment - if shop_details.is_rounding_adj - new_total = Sale.get_rounding_adjustment(saleObj.grand_total) - rounding_adj = new_total-saleObj.grand_total - saleObj.update_attributes(grand_total: new_total,old_grand_total: saleObj.grand_total,rounding_adjustment:rounding_adj) - end + # if shop_details.is_rounding_adj + # new_total = Sale.get_rounding_adjustment(saleObj.grand_total) + # rounding_adj = new_total-saleObj.grand_total + # saleObj.update_attributes(grand_total: new_total,old_grand_total: saleObj.grand_total,rounding_adjustment:rounding_adj) + # end - saleObj = Sale.find(sale_id) + # saleObj = Sale.find(sale_id) sale_payment = SalePayment.new @status, @sale = sale_payment.process_payment(saleObj, @user, cash, "master") end diff --git a/app/controllers/origami/mpu_controller.rb b/app/controllers/origami/mpu_controller.rb index 51bcabb1..7b7ef5a0 100755 --- a/app/controllers/origami/mpu_controller.rb +++ b/app/controllers/origami/mpu_controller.rb @@ -45,13 +45,13 @@ class Origami::MpuController < BaseOrigamiController shop_details = Shop::ShopDetail # rounding adjustment - if shop_details.is_rounding_adj - new_total = Sale.get_rounding_adjustment(saleObj.grand_total) - rounding_adj = new_total-saleObj.grand_total - saleObj.update_attributes(grand_total: new_total,old_grand_total: saleObj.grand_total,rounding_adjustment:rounding_adj) - end + # if shop_details.is_rounding_adj + # new_total = Sale.get_rounding_adjustment(saleObj.grand_total) + # rounding_adj = new_total-saleObj.grand_total + # saleObj.update_attributes(grand_total: new_total,old_grand_total: saleObj.grand_total,rounding_adjustment:rounding_adj) + # end - saleObj = Sale.find(sale_id) + # saleObj = Sale.find(sale_id) sale_payment = SalePayment.new @status, @sale = sale_payment.process_payment(saleObj, @user, cash, "mpu") end diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index 1c492338..6fa61bc7 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -28,7 +28,6 @@ class Origami::PaymentsController < BaseOrigamiController shop_details = Shop::ShopDetail # customer= Customer.where('customer_id=' +.customer_id) customer = Customer.find(sale_data.customer_id) - # rounding adjustment if shop_details.is_rounding_adj a = sale_data.grand_total % 25 # Modulus @@ -42,7 +41,6 @@ class Origami::PaymentsController < BaseOrigamiController end end #end rounding adjustment - # get member information rebate = MembershipSetting.find_by_rebate(1) if customer.membership_id != nil && rebate @@ -74,7 +72,6 @@ class Origami::PaymentsController < BaseOrigamiController if(Sale.exists?(sale_id)) saleObj = Sale.find(sale_id) shop_details = Shop::ShopDetail - # rounding adjustment if shop_details.is_rounding_adj a = saleObj.grand_total % 25 # Modulus @@ -167,12 +164,25 @@ class Origami::PaymentsController < BaseOrigamiController @table_no = '' @shop = Shop::ShopDetail + + saleObj = Sale.find(sale_id) + # rounding adjustment if @shop.is_rounding_adj - new_total = Sale.get_rounding_adjustment(@sale_data.grand_total) + a = saleObj.grand_total % 25 # Modulus + b = saleObj.grand_total / 25 # Division + #not calculate rounding if modulus is 0 and division is even + #calculate rounding if modulus is zero or not zero and division are not even + if (a != 0.0 && b%2 != 0.0) || (a==0.0 && b%2 !=0) + new_total = Sale.get_rounding_adjustment(saleObj.grand_total) + @rounding_adj = new_total-saleObj.grand_total + else + @rounding_adj = @sale_data.rounding_adjustment + end else - new_total = @sale_data.grand_total + @rounding_adj = @sale_data.rounding_adjustment end - @rounding_adj = new_total-@sale_data.grand_total + #end rounding adjustment + #get customer amount @customer = Customer.find(@sale_data.customer_id) diff --git a/app/controllers/origami/redeem_payments_controller.rb b/app/controllers/origami/redeem_payments_controller.rb index b0f40d34..2fdedf32 100755 --- a/app/controllers/origami/redeem_payments_controller.rb +++ b/app/controllers/origami/redeem_payments_controller.rb @@ -6,12 +6,13 @@ class Origami::RedeemPaymentsController < BaseOrigamiController sale_data = Sale.find_by_sale_id(@sale_id) @shop = Shop::ShopDetail - if @shop.is_rounding_adj - new_total = Sale.get_rounding_adjustment(sale_data.grand_total) - else - new_total = sale_data.grand_total - end - @rounding_adj = new_total-sale_data.grand_total + # if @shop.is_rounding_adj + # new_total = Sale.get_rounding_adjustment(sale_data.grand_total) + # else + # new_total = sale_data.grand_total + # end + # @rounding_adj = new_total-sale_data.grand_total + @rounding_adj = sale_data.rounding_adjustment @payparcount = 0 others = 0 diff --git a/app/controllers/origami/unionpay_controller.rb b/app/controllers/origami/unionpay_controller.rb index a3f7e6ed..fc15b7f5 100644 --- a/app/controllers/origami/unionpay_controller.rb +++ b/app/controllers/origami/unionpay_controller.rb @@ -46,13 +46,13 @@ class Origami::UnionpayController < BaseOrigamiController shop_details = Shop::ShopDetail # rounding adjustment - if shop_details.is_rounding_adj - new_total = Sale.get_rounding_adjustment(saleObj.grand_total) - rounding_adj = new_total-saleObj.grand_total - saleObj.update_attributes(grand_total: new_total,old_grand_total: saleObj.grand_total,rounding_adjustment:rounding_adj) - end + # if shop_details.is_rounding_adj + # new_total = Sale.get_rounding_adjustment(saleObj.grand_total) + # rounding_adj = new_total-saleObj.grand_total + # saleObj.update_attributes(grand_total: new_total,old_grand_total: saleObj.grand_total,rounding_adjustment:rounding_adj) + # end - saleObj = Sale.find(sale_id) + # saleObj = Sale.find(sale_id) #end rounding adjustment sale_payment = SalePayment.new @status, @sale = sale_payment.process_payment(saleObj, @user, cash, "unionpay") diff --git a/app/controllers/origami/visa_controller.rb b/app/controllers/origami/visa_controller.rb index af4d31f0..b872aec3 100755 --- a/app/controllers/origami/visa_controller.rb +++ b/app/controllers/origami/visa_controller.rb @@ -44,13 +44,13 @@ class Origami::VisaController < BaseOrigamiController shop_details = Shop::ShopDetail # rounding adjustment - if shop_details.is_rounding_adj - new_total = Sale.get_rounding_adjustment(saleObj.grand_total) - rounding_adj = new_total-saleObj.grand_total - saleObj.update_attributes(grand_total: new_total,old_grand_total: saleObj.grand_total,rounding_adjustment:rounding_adj) - end + # if shop_details.is_rounding_adj + # new_total = Sale.get_rounding_adjustment(saleObj.grand_total) + # rounding_adj = new_total-saleObj.grand_total + # saleObj.update_attributes(grand_total: new_total,old_grand_total: saleObj.grand_total,rounding_adjustment:rounding_adj) + # end - saleObj = Sale.find(sale_id) + # saleObj = Sale.find(sale_id) #end rounding adjustment sale_payment = SalePayment.new @status, @sale = sale_payment.process_payment(saleObj, @user, cash, "visa") diff --git a/app/models/sale.rb b/app/models/sale.rb index 58dbfa50..f6aed95e 100755 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -470,8 +470,23 @@ class Sale < ApplicationRecord end def adjust_rounding - self.grand_total - self.rounding_adjustment = 0.00 + shop_details = Shop::ShopDetail + # rounding adjustment + if shop_details.is_rounding_adj + a = self.grand_total % 25 # Modulus + b = self.grand_total / 25 # Division + #not calculate rounding if modulus is 0 and division is even + #calculate rounding if modulus is zero or not zero and division are not even + if (a != 0.0 && b%2 != 0.0) || (a==0.0 && b%2 !=0) + new_total = Sale.get_rounding_adjustment(self.grand_total) + self.rounding_adjustment = new_total - self.grand_total + else + self.rounding_adjustment = 0.00 + end + else + self.rounding_adjustment = 0.00 + end + end #Generate new Receipt No when it is not assigned @@ -740,7 +755,7 @@ def self.get_by_shift_items(shift_sale_range, shift, from, to, status) SUM(case when (sale_payments.payment_method='creditnote') then (sale_payments.payment_amount) else 0 end) as credit_amount, SUM(case when (sale_payments.payment_method='foc') then (sale_payments.payment_amount) else 0 end) as foc_amount") .joins("join sale_payments on sale_payments.sale_id = sales.sale_id") - .where("sales.shift_sale_id in (?) and sale_status = 'completed' and sale_status!='void' and sale_payments.payment_amount != 0 ", shift.to_a) + .where("sales.shift_sale_id in (?) and sale_status = 'completed' and sale_payments.payment_amount != 0 ", shift.to_a) sale_cash.each do |s_c| total_cash_amount += s_c.cash_amount.to_f total_card_amount += s_c.card_amount.to_f @@ -760,7 +775,7 @@ def self.get_by_shift_items(shift_sale_range, shift, from, to, status) SUM(case when (sale_payments.payment_method='creditnote') then (sale_payments.payment_amount) else 0 end) as credit_amount, SUM(case when (sale_payments.payment_method='foc') then (sale_payments.payment_amount) else 0 end) as foc_amount") .joins("join sale_payments on sale_payments.sale_id = sales.sale_id") - .where("sales.shift_sale_id in (?) and sale_status = 'completed' and sale_status!='void' and sale_payments.payment_amount != 0 ", shift_sale_range.to_a) + .where("sales.shift_sale_id in (?) and sale_status = 'completed' and sale_payments.payment_amount != 0 ", shift_sale_range.to_a) sale_cash.each do |s_c| total_cash_amount += s_c.cash_amount.to_f total_card_amount += s_c.card_amount.to_f @@ -780,7 +795,7 @@ def self.get_by_shift_items(shift_sale_range, shift, from, to, status) SUM(case when (sale_payments.payment_method='creditnote') then (sale_payments.payment_amount) else 0 end) as credit_amount, SUM(case when (sale_payments.payment_method='foc') then (sale_payments.payment_amount) else 0 end) as foc_amount") .joins("join sale_payments on sale_payments.sale_id = sales.sale_id") - .where("sales.receipt_date between ? and ? and sale_status = 'completed' and sale_status!='void' and sale_payments.payment_amount != 0 ", from,to) + .where("sales.receipt_date between ? and ? and sale_status = 'completed' and sale_payments.payment_amount != 0 ", from,to) sale_cash.each do |s_c| total_cash_amount += s_c.cash_amount.to_f total_card_amount += s_c.card_amount.to_f diff --git a/app/views/reports/saleitem/index.html.erb b/app/views/reports/saleitem/index.html.erb index a96b80f8..387a97a5 100644 --- a/app/views/reports/saleitem/index.html.erb +++ b/app/views/reports/saleitem/index.html.erb @@ -130,10 +130,7 @@ <% count = count + 1 %> <% sub_total += sale.grand_total %> <% #sub_qty += sale.total_item %> - <% if sale.status_type!="Discount" && sale.status_type!="foc" - sub_qty += sale.total_item - end %> - <% if sale.status_type == "foc" && sale.price > 0 + <% if sale.status_type!="Discount" && (!sale.product_name.include? "FOC") sub_qty += sale.total_item end %>