From 99c943a865f067a19b93bd9c38b1c16ec6383bca Mon Sep 17 00:00:00 2001 From: Thein Lin Kyaw Date: Fri, 20 Dec 2019 16:38:21 +0630 Subject: [PATCH] fix api addorder and foc payment status --- .../origami/addorders_controller.rb | 2 +- .../origami/payments_controller.rb | 10 +++---- app/models/order.rb | 4 +-- app/models/sale_payment.rb | 27 ++++++++++++------- 4 files changed, 25 insertions(+), 18 deletions(-) diff --git a/app/controllers/origami/addorders_controller.rb b/app/controllers/origami/addorders_controller.rb index 2e36aaa1..4e02e811 100755 --- a/app/controllers/origami/addorders_controller.rb +++ b/app/controllers/origami/addorders_controller.rb @@ -230,7 +230,7 @@ class Origami::AddordersController < BaseOrigamiController end end - def process_order_queue(order_id,table_id,order_source) + def process_order_queue(order_id, table_id, order_source) #Send to background job for processing order = Order.find(order_id) sidekiq = Lookup.find_by_lookup_type("sidekiq") diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index 3103ca38..6eab7738 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -550,11 +550,14 @@ class Origami::PaymentsController < BaseOrigamiController current_balance = nil order_source = params[:type] - if(Sale.exists?(sale_id)) + if Sale.exists?(sale_id) saleObj = Sale.find(sale_id) #calculate cash acmount cash = saleObj.total_amount + sale_payment = SalePayment.new + sale_payment.process_payment(saleObj, current_user, cash, "foc" ,remark) + if saleObj.discount_type == "member_discount" saleObj.update_attributes(grand_total: 0, rounding_adjustment: 0, amount_received: 0, amount_changed: 0) saleObj.compute_by_sale_items(0, nil, order_source) @@ -562,9 +565,6 @@ class Origami::PaymentsController < BaseOrigamiController saleObj.update_attributes(grand_total: 0, rounding_adjustment: 0, amount_received: 0, amount_changed: 0) - sale_payment = SalePayment.new - sale_payment.process_payment(saleObj, current_user, cash, "foc" ,remark) - bookings = Booking.where("sale_id='#{sale_id}'") if bookings[0].dining_facility_id.to_i > 0 table = DiningFacility.find(bookings[0].dining_facility_id) @@ -573,8 +573,6 @@ class Origami::PaymentsController < BaseOrigamiController ActionCable.server.broadcast "order_channel",table: table,type:type,from:from end - - # For Cashier by Zone bookings = Booking.where("sale_id='#{sale_id}'") diff --git a/app/models/order.rb b/app/models/order.rb index 0a6b8ddb..2fd99631 100755 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -402,7 +402,7 @@ class Order < ApplicationRecord end #Process order items and send to order queue - def self.process_order_queue(order_id,table_id,source) + def self.process_order_queue(order_id, table_id, source) print_status = nil cup_status = nil @@ -422,7 +422,7 @@ class Order < ApplicationRecord else if order oqs = OrderQueueStation.new - oqs.process_order(order, table_id, order_source) + oqs.process_order(order, table_id, source) end from = getCloudDomain #get sub domain in cloud mode assign_order = AssignedOrderItem.assigned_order_item_by_job(order_id) diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index 7bf5b323..da482303 100755 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -77,18 +77,26 @@ class SalePayment < ApplicationRecord if payment_for invoice_sale_payments = SalePayment.get_sale_payment_for_credit(invoice) amount_due = SalePayment.get_credit_amount_due_left(self.sale_id)[0] ? SalePayment.get_credit_amount_due_left(self.sale_id)[0].payment_amount.to_f : 0 + puts "amount_due => #{amount_due}" else invoice_sale_payments = invoice.sale_payments amount_due = invoice.grand_total + puts "amount_due => #{amount_due}" end + puts "amount_due => #{amount_due}" + invoice_sale_payments.each do |payment| if (payment.payment_status == "paid" ) amount_due = amount_due - payment.payment_amount end end + puts "Cash Amount -> #{cash_amount}" - if (amount_due > 0) + puts "payment_method -> #{payment_method}" + + puts "Amount Due => #{amount_due}" + if amount_due > 0 payment_status = false membership_data = nil #route to payment type @@ -118,6 +126,7 @@ class SalePayment < ApplicationRecord when "paypar" payment_status = paypar_payment when "foc" + puts ">>>>> FOC <<<<<" payment_status = foc_payment when "paymal" payment_status,membership_data = paymal_payment @@ -418,19 +427,19 @@ class SalePayment < ApplicationRecord def foc_payment payment_status = false - + sale = self.sale # add to sale item with foc - sale_items = SaleItem.where("sale_id='#{ self.sale.sale_id }'") + sale_items = sale.sale_items sale_items.each do|item| - SaleItem.update_existing_item(item.qty, item, self.sale.sale_id, "foc", item.unit_price, item.price) + SaleItem.update_existing_item(item.qty, item, sale.sale_id, "foc", item.unit_price, item.price) end - sale = Sale.find(self.sale.sale_id) + sale.compute_by_sale_items(sale.total_discount,'','','',"foc") self.payment_method = "foc" self.payment_amount = self.received_amount - # self.outstanding_amount = self.sale.grand_total.to_f - self.received_amount.to_f + self.outstanding_amount = 0.00 self.payment_status = "paid" payment_status = self.save! @@ -654,12 +663,12 @@ class SalePayment < ApplicationRecord is_foc = sale.sale_payments.any? { |x| x.payment_method == "foc" } if (sale.grand_total <= all_received_amount) + sale.payment_status = "paid" if is_credit sale.payment_status = "outstanding" - elsif is_foc + end + if is_foc sale.payment_status = "foc" - else - sale.payment_status = "paid" end sale.sale_status = "completed"