From 61142b7244de3a3c889bbdd432354311f3efe139 Mon Sep 17 00:00:00 2001 From: phyusin Date: Thu, 25 Jan 2018 17:34:13 +0630 Subject: [PATCH 1/4] add void in sale item again --- app/models/sale.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/models/sale.rb b/app/models/sale.rb index 58dbfa50..aa28344e 100755 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -740,7 +740,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 +760,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 +780,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 From d4e2d5be2585993f6d31710fdb6e27f3fb17430e Mon Sep 17 00:00:00 2001 From: phyusin Date: Thu, 25 Jan 2018 18:06:24 +0630 Subject: [PATCH 2/4] change sale item 'foc' --- app/views/reports/saleitem/index.html.erb | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) 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 %> From aa129ad469982099d2c75b8079cf05b93ab557a6 Mon Sep 17 00:00:00 2001 From: phyusin Date: Sun, 28 Jan 2018 16:12:59 +0630 Subject: [PATCH 3/4] heck rounding adjustment error --- app/controllers/api/orders_controller.rb | 16 +++++++++------ app/controllers/origami/jcb_controller.rb | 12 +++++------ app/controllers/origami/master_controller.rb | 12 +++++------ app/controllers/origami/mpu_controller.rb | 12 +++++------ .../origami/payments_controller.rb | 10 +--------- .../origami/redeem_payments_controller.rb | 13 ++++++------ .../origami/unionpay_controller.rb | 12 +++++------ app/controllers/origami/visa_controller.rb | 12 +++++------ app/models/sale.rb | 20 +++++++++++++++++-- 9 files changed, 66 insertions(+), 53 deletions(-) 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..1023bf68 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,7 @@ class Origami::PaymentsController < BaseOrigamiController @table_no = '' @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 + @rounding_adj = @sale_data.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 aa28344e..e41fb458 100755 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -470,8 +470,24 @@ class Sale < ApplicationRecord end def adjust_rounding - self.grand_total - self.rounding_adjustment = 0.00 + saleObj = Sale.find(self.sale_id) + shop_details = Shop::ShopDetail + # rounding adjustment + if shop_details.is_rounding_adj + 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) + self.rounding_adjustment = new_total-saleObj.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 From 2a09945d36d7a19867b39a85dc3e3ec58afed4d6 Mon Sep 17 00:00:00 2001 From: phyusin Date: Sun, 28 Jan 2018 16:29:59 +0630 Subject: [PATCH 4/4] check add to existing invoice --- .../origami/payments_controller.rb | 20 ++++++++++++++++++- app/models/sale.rb | 9 ++++----- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index 1023bf68..6fa61bc7 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -164,7 +164,25 @@ class Origami::PaymentsController < BaseOrigamiController @table_no = '' @shop = Shop::ShopDetail - @rounding_adj = @sale_data.rounding_adjustment + + saleObj = Sale.find(sale_id) + # rounding adjustment + if @shop.is_rounding_adj + 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 + @rounding_adj = @sale_data.rounding_adjustment + end + #end rounding adjustment + #get customer amount @customer = Customer.find(@sale_data.customer_id) diff --git a/app/models/sale.rb b/app/models/sale.rb index e41fb458..f6aed95e 100755 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -470,17 +470,16 @@ class Sale < ApplicationRecord end def adjust_rounding - saleObj = Sale.find(self.sale_id) shop_details = Shop::ShopDetail # rounding adjustment if shop_details.is_rounding_adj - a = saleObj.grand_total % 25 # Modulus - b = saleObj.grand_total / 25 # Division + 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(saleObj.grand_total) - self.rounding_adjustment = new_total-saleObj.grand_total + new_total = Sale.get_rounding_adjustment(self.grand_total) + self.rounding_adjustment = new_total - self.grand_total else self.rounding_adjustment = 0.00 end