From fe9b1ace900c4a0bfc87f47b5a28e35785df3be6 Mon Sep 17 00:00:00 2001 From: phyusin Date: Tue, 13 Nov 2018 17:21:45 +0630 Subject: [PATCH] shift double update for sx cashier --- app/controllers/api/payments_controller.rb | 12 ++- app/models/sale_payment.rb | 91 ++++++++++++---------- 2 files changed, 57 insertions(+), 46 deletions(-) diff --git a/app/controllers/api/payments_controller.rb b/app/controllers/api/payments_controller.rb index d23dcf5e..2f67a484 100755 --- a/app/controllers/api/payments_controller.rb +++ b/app/controllers/api/payments_controller.rb @@ -34,16 +34,20 @@ class Api::PaymentsController < Api::ApiController if status == true && @membership_data["status"] == true sale_payment = SalePayment.new - sale_payment.process_payment(sale, current_login_employee, 0, "cash") + status = sale_payment.process_payment(sale, current_login_employee, 0, "cash") #card_balance amount for Paymal payment card_balance_amount = SaleAudit.getCardBalanceAmount(params[:sale_id]) render json: JSON.generate({:status => true, :balance_amount => card_balance_amount,:receipt_no => sale.receipt_no, :message => "Payment successful."}) else - if @membership_data["card_balance_amount"] != "null" - render json: JSON.generate({:status => false, :balance_amount => @membership_data["card_balance_amount"], :error_message => @membership_data["message"]}) + if @membership_data + if @membership_data["card_balance_amount"] != "null" + render json: JSON.generate({:status => false, :balance_amount => @membership_data["card_balance_amount"], :error_message => @membership_data["message"]}) + else + render json: JSON.generate({:status => false, :error_message => @membership_data["message"]}) + end else - render json: JSON.generate({:status => false, :error_message => @membership_data["message"]}) + render json: JSON.generate({:status => false, :error_message => "Payment failed!"}) end end else diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index 5a0fe2ba..04e1c981 100755 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -73,39 +73,46 @@ class SalePayment < ApplicationRecord puts "it was something else" end - #record an payment in sale-audit - remark = "Payment #{payment_method}- for Invoice #{invoice.receipt_no} Due [#{amount_due}]| pay amount -> #{cash_amount} | Payment Status ->#{payment_status}" - if payment_for - shift = ShiftSale.current_open_shift(self.sale.cashier_id) - if !shift.nil? - shift_sale_id = shift.id + if payment_status + #record an payment in sale-audit + remark = "Payment #{payment_method}- for Invoice #{invoice.receipt_no} Due [#{amount_due}]| pay amount -> #{cash_amount} | Payment Status ->#{payment_status}" + if payment_for + shift = ShiftSale.current_open_shift(self.sale.cashier_id) + if !shift.nil? + shift_sale_id = shift.id + else + shift = ShiftSale.current_shift + shift_sale_id = shift.id + end + + remark = "#{self.sale_payment_id}||#{shift_sale_id} -> #{remark}" + + sale_audit = SaleAudit.record_payment(invoice.id, remark, action_by.name) + if payment_method == "cash" + update_shift_for_credit_payment + end else - shift = ShiftSale.current_shift - shift_sale_id = shift.id + sale_audit = SaleAudit.record_payment(invoice.id, remark, action_by.name) end - - remark = "#{self.sale_payment_id}||#{shift_sale_id} -> #{remark}" - sale_audit = SaleAudit.record_payment(invoice.id, remark, action_by.name) - if payment_method == "cash" - update_shift_for_credit_payment + # update complete order items in oqs + booking = Booking.find_by_sale_id(sale_id) + booking.booking_orders.each do |sodr| + assigned =AssignedOrderItem.where("order_id = '#{ sodr.order_id }'").pluck(:assigned_order_item_id) + AssignedOrderItem.where('assigned_order_item_id IN (?)', assigned).update_all(delivery_status: true) + # AssignedOrderItem.where("order_id = '#{ sodr.order_id }'").find_each do |aoi| + # aoi.delivery_status = 1 + # aoi.save + # end end + + return true, self.save,membership_data else - sale_audit = SaleAudit.record_payment(invoice.id, remark, action_by.name) + #record an payment in sale-audit + remark = "Payment failed - Grand Total [#{invoice.grand_total}] | Due [#{amount_due}] | Paid [#{invoice.amount_received}]" + sale_audit = SaleAudit.record_payment(invoice.id, remark,action_by.name) + return false, "Payment failed" end - - # update complete order items in oqs - booking = Booking.find_by_sale_id(sale_id) - booking.booking_orders.each do |sodr| - assigned =AssignedOrderItem.where("order_id = '#{ sodr.order_id }'").pluck(:assigned_order_item_id) - AssignedOrderItem.where('assigned_order_item_id IN (?)', assigned).update_all(delivery_status: true) - # AssignedOrderItem.where("order_id = '#{ sodr.order_id }'").find_each do |aoi| - # aoi.delivery_status = 1 - # aoi.save - # end - end - - return true, self.save,membership_data else #record an payment in sale-audit remark = "No outstanding Amount - Grand Total [#{invoice.grand_total}] | Due [#{amount_due}] | Paid [#{invoice.amount_received}]" @@ -324,7 +331,7 @@ class SalePayment < ApplicationRecord self.outstanding_amount = credit_sale_payment - self.received_amount.to_f end self.payment_status = "paid" - payment_method = self.save! + payment_status = self.save! if !payment_for sale_update_payment_status(self.received_amount,status) end @@ -346,7 +353,7 @@ class SalePayment < ApplicationRecord # self.outstanding_amount = self.sale.grand_total.to_f - self.received_amount.to_f self.outstanding_amount = 0.00 self.payment_status = "paid" - payment_method = self.save! + payment_status = self.save! # sale_update_payment_status(self.received_amount) sale_update_payment_status(0) return payment_status @@ -360,7 +367,7 @@ class SalePayment < ApplicationRecord self.customer_id = self.customer_id self.outstanding_amount = 0 - self.received_amount.to_f self.payment_status = "outstanding" - payment_method = self.save! + payment_status = self.save! sale_update_payment_status(self.received_amount) return payment_status @@ -378,7 +385,7 @@ class SalePayment < ApplicationRecord self.outstanding_amount = credit_payment[0].payment_amount.to_f - self.received_amount.to_f end self.payment_status = "paid" - payment_method = self.save! + payment_status = self.save! if payment_for update_shift_for_credit_payment else @@ -396,7 +403,7 @@ class SalePayment < ApplicationRecord self.payment_reference = self.voucher_no self.outstanding_amount = self.sale.grand_total- self.received_amount self.payment_status = "paid" - payment_method = self.save! + payment_status = self.save! sale_update_payment_status(self.received_amount) return payment_status @@ -412,7 +419,7 @@ class SalePayment < ApplicationRecord self.payment_reference = self.giftcard_no self.outstanding_amount = self.sale.grand_total- self.received_amount self.payment_status = "paid" - payment_method = self.save! + payment_status = self.save! sale_update_payment_status(self.received_amount) return payment_status @@ -436,9 +443,9 @@ class SalePayment < ApplicationRecord self.payment_amount = self.received_amount self.payment_reference = self.voucher_no self.outstanding_amount = self.sale.grand_total.to_f - self.received_amount.to_f - self.payment_status = "pending" - payment_method = self.save! - SalePayment.where(:sale_payment_id => self.sale_payment_id).update_all(:payment_status => 'paid') + self.payment_status = "paid" + payment_status = self.save! + # SalePayment.where(:sale_payment_id => self.sale_payment_id).update_all(:payment_status => 'paid') sale_update_payment_status(self.received_amount.to_f) else @@ -470,8 +477,8 @@ class SalePayment < ApplicationRecord self.payment_reference = self.voucher_no self.outstanding_amount = self.sale.grand_total.to_f - self.received_amount.to_f self.payment_status = "paid" - payment_method = self.save! - SalePayment.where(:sale_payment_id => self.sale_payment_id).update_all(:payment_status => 'paid') + payment_status = self.save! + # SalePayment.where(:sale_payment_id => self.sale_payment_id).update_all(:payment_status => 'paid') sale_update_payment_status(self.received_amount.to_f) else @@ -490,7 +497,7 @@ class SalePayment < ApplicationRecord # self.payment_reference = self.payment_reference self.outstanding_amount = self.sale.grand_total- self.received_amount self.payment_status = "paid" - payment_method = self.save! + payment_status = self.save! sale_update_payment_status(self.received_amount) return payment_status end @@ -520,7 +527,7 @@ class SalePayment < ApplicationRecord self.payment_reference = self.voucher_no self.outstanding_amount = self.sale.grand_total.to_f - self.received_amount.to_f self.payment_status = "paid" - payment_method = self.save! + payment_status = self.save! SalePayment.where(:sale_payment_id => self.sale_payment_id).update_all(:payment_status => 'paid') sale_update_payment_status(self.received_amount.to_f) @@ -539,12 +546,12 @@ class SalePayment < ApplicationRecord self.payment_reference = self.payment_reference self.outstanding_amount = self.sale.grand_total.to_f - self.received_amount.to_f self.payment_status = "paid" - payment_method = self.save! + payment_status = self.save! sale_update_payment_status(self.received_amount) return payment_status end - def sale_update_payment_status(paid_amount,check_foc = false) + def sale_update_payment_status(paid_amount,check_foc = false) #update amount_outstanding self.sale.amount_received = self.sale.amount_received.to_f + paid_amount.to_f self.sale.save!