From d794e023b8b28c879ad66826e462c5a45d7b8032 Mon Sep 17 00:00:00 2001 From: Myat Zin Wai Maw Date: Mon, 13 Jan 2020 15:08:04 +0630 Subject: [PATCH] payment --- app/controllers/api/payments_controller.rb | 7 +- app/models/customer.rb | 2 +- app/models/sale.rb | 4 +- .../api/payments/paymal_payment.json.jbuilder | 1 + db/migrate/20200111044418_add_shopcode.rb | 13 +++ .../20200112075013_add_remove_indexs.rb | 103 ++++++++++++++++++ 6 files changed, 124 insertions(+), 6 deletions(-) create mode 100644 db/migrate/20200111044418_add_shopcode.rb create mode 100644 db/migrate/20200112075013_add_remove_indexs.rb diff --git a/app/controllers/api/payments_controller.rb b/app/controllers/api/payments_controller.rb index e8ac5d7d..16c6b0ed 100755 --- a/app/controllers/api/payments_controller.rb +++ b/app/controllers/api/payments_controller.rb @@ -26,6 +26,7 @@ class Api::PaymentsController < Api::ApiController sale = Sale.find_by_sale_id(params[:sale_id]) sale_id=sale.sale_id if !sale.nil? + @paid_amount = sale.grand_total current_shift = ShiftSale.current_shift current_login_employee =Employee.find(current_shift.employee_id) @shop =Shop.find_by_shop_code(sale.shop_code) @@ -33,8 +34,8 @@ class Api::PaymentsController < Api::ApiController sale_items = SaleItem.get_all_sale_items(sale_id) if @status sale_payment = SalePayment.new - status, @sale, @membership_data = sale_payment.process_payment(sale, current_login_employee, sale.grand_total, "paymal",params[:account_no]) - if status == true && @membership_data["status"] == true + @status, @sale, @membership_data = sale_payment.process_payment(sale, current_login_employee, sale.grand_total, "paymal",params[:account_no]) + if @status && @membership_data["status"] == true sale_payment = SalePayment.new status = sale_payment.process_payment(sale, current_login_employee, 0, "cash") #card_balance amount for Paymal payment @@ -151,7 +152,7 @@ class Api::PaymentsController < Api::ApiController printer = Printer::ReceiptPrinter.new(print_settings) filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings, false, nil, cashier_terminal,sale_items,sale,params[:card_no], item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,@shop, 'Foodcourt',current_balance,card_data,other_amount,latest_order_no,card_balance_amount,nil,transaction_ref) - render json: JSON.generate({:status => true, :balance_amount => card_balance_amount,:receipt_no => sale.receipt_no,:order_no => latest_order_no, :message => "complete"}) + render json: JSON.generate({:status => true, :balance_amount => card_balance_amount,:receipt_no => sale.receipt_no,:order_no => latest_order_no, :message => "complete", :paid_amount => sale.grand_total}) end end else diff --git a/app/models/customer.rb b/app/models/customer.rb index 977ef50c..431549ad 100755 --- a/app/models/customer.rb +++ b/app/models/customer.rb @@ -25,7 +25,7 @@ class Customer < ApplicationRecord self.email = pin.to_s + "@gmail.com" self.pin_code = pin.to_s self.pin_sent_at = Time.now - tax_profiles=TaxProfile.where(group_type: "food_court") + tax_profiles=TaxProfile.where(group_type: "online_order") tax_ids =[] tax_profiles.each {|tax| tax_ids << "#{tax.id}"} self.tax_profiles = tax_ids diff --git a/app/models/sale.rb b/app/models/sale.rb index 773bf41d..c8bcb21e 100644 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -528,7 +528,7 @@ class Sale < ApplicationRecord if order_source.to_s == "emenu" order_source = "cashier" elsif order_source.to_s == "app" - order_source = "food_court" + order_source = "online_order" end tax_profiles = unique_tax_profiles(order_source, self.customer_id) @@ -650,7 +650,7 @@ class Sale < ApplicationRecord if order_source.to_s == "emenu" order_source = "cashier" elsif order_source.to_s == "app" - order_source = "food_court" + order_source = "online_order" end # tax_data = TaxProfile.unscope(:order).where("group_type=?",order_source).pluck(:id) diff --git a/app/views/api/payments/paymal_payment.json.jbuilder b/app/views/api/payments/paymal_payment.json.jbuilder index 57957ec8..74f3fb64 100644 --- a/app/views/api/payments/paymal_payment.json.jbuilder +++ b/app/views/api/payments/paymal_payment.json.jbuilder @@ -1,3 +1,4 @@ json.status @status json.message @message json.balance_amount @balance +json.paid_amount @paid_amount diff --git a/db/migrate/20200111044418_add_shopcode.rb b/db/migrate/20200111044418_add_shopcode.rb new file mode 100644 index 00000000..e0a168a5 --- /dev/null +++ b/db/migrate/20200111044418_add_shopcode.rb @@ -0,0 +1,13 @@ +class AddShopcode < ActiveRecord::Migration[5.1] + def change + add_column :dining_charges, :shop_code, :string, :default => '262' + add_column :order_items, :shop_code, :string, :default => '262' + add_column :promotion_products, :shop_code, :string, :default => '262' + add_column :sale_audits, :shop_code, :string, :default => '262' + add_column :sale_items, :shop_code, :string, :default => '262' + add_column :sale_payments, :shop_code, :string, :default => '262' + add_column :sale_taxes, :shop_code, :string, :default => '262' + add_column :menu_item_instances, :shop_code, :string, :default => '262' + add_column :menu_items, :shop_code, :string, :default => '262' + end +end diff --git a/db/migrate/20200112075013_add_remove_indexs.rb b/db/migrate/20200112075013_add_remove_indexs.rb new file mode 100644 index 00000000..d8889afe --- /dev/null +++ b/db/migrate/20200112075013_add_remove_indexs.rb @@ -0,0 +1,103 @@ +class AddRemoveIndexs < ActiveRecord::Migration[5.1] + def change + remove_index "menu_items", name: "index_item_code" + add_index :menu_items, [:shop_code, :item_code] + + remove_index "orders", name: "index_source" + remove_index "orders", name: "index_date" + remove_index "orders", name: "index_status" + add_index :orders, [:shop_code, :status] + add_index :orders, [:shop_code, :source] + add_index :orders, [:shop_code, :date] + add_index :orders, [:shop_code, :source, :status, :date], name: "index_orders_on_source_status" + + remove_index "order_items", name: "index_order_id" + + remove_index "dining_facilities", name: "index_status" + remove_index "dining_facilities", name: "index_type" + remove_index "dining_facilities", name: "index_is_active" + remove_index "dining_facilities", name: "index_status_type_is_active" + add_index :dining_facilities, [:shop_code, :is_active] + add_index :dining_facilities, [:shop_code, :status] + add_index :dining_facilities, [:shop_code, :type] + add_index :dining_facilities, [:shop_code, :is_active, :status], name: 'index_dining_facilities_on_active_status' + + remove_index "sale_items", name: "index_sale_items" + remove_index "sale_items", name: "index_sale_id" + remove_index "sale_items", name: "index_account_id" + remove_index "sale_items", name: "index_status" + remove_index "sale_items", name: "index_remark" + remove_index "sale_items", name: "index_qty" + remove_index "sale_items", name: "index_unit_ptice" + remove_index "sale_items", name: "index_taxable_price" + remove_index "sale_items", name: "index_ptice" + remove_index "sale_items", name: "index_is_taxable" + add_index :sale_items, [:shop_code, :status] + + remove_index "sale_taxes", name: "index_sale_id" + + remove_index "sale_payments", name: "index_sale_id" + remove_index "sale_payments", name: "index_payment_method" + remove_index "sale_payments", name: "index_sale_id_payment_method" + add_index :sale_payments, [:shop_code, :payment_method] + + remove_index "sale_orders", name: "index_sale_id" + remove_index "sale_orders", name: "index_order_id" + + remove_index "sale_audits", name: "index_sale_audits" + + remove_index "lookups", name: "index_lookup_type" + add_index :lookups, [:shop_code, :lookup_type] + + remove_index "bookings", name: "index_bookings" + remove_index "bookings", name: "index_checkin_at" + remove_index "bookings", name: "index_checkout_by" + remove_index "bookings", name: "index_reserved_by" + remove_index "bookings", name: "index_booking_status" + add_index :bookings, [:shop_code, :booking_status] + + remove_index "seed_generators", name: "index_seed_model" + add_index :seed_generators, [:shop_code, :model] + + remove_index "assigned_order_items", name: "index_assigned_order_items" + remove_index "assigned_order_items", name: "index_item_code" + remove_index "assigned_order_items", name: "index_instance_code" + remove_index "assigned_order_items", name: "index_order_queue_station_id" + remove_index "assigned_order_items", name: "index_delivery_status" + remove_index "assigned_order_items", name: "index_created_at" + add_index :assigned_order_items, [:shop_code, :item_code] + add_index :assigned_order_items, [:shop_code, :instance_code] + add_index :assigned_order_items, [:shop_code, :item_code, :instance_code],name:'index_assigned_items_on_codes' + + remove_index "booking_orders", name: "index_booking_id" + remove_index "booking_orders", name: "index_order_id" + + remove_index "customers", name: "index_membership_id" + remove_index "customers", name: "index_customer_type" + add_index :customers, [:shop_code, :customer_type] + + remove_index "shift_sales", name: "index_shift_started_at" + remove_index "shift_sales", name: "index_shift_closed_at" + remove_index "shift_sales", name: "index_shift_started_at_closed_at" + add_index :shift_sales, [:shop_code, :shift_started_at, :shift_closed_at],name:'index_shifts_on_time' + + remove_index "print_settings", name: "index_unique_code" + add_index :print_settings, [:shop_code, :unique_code] + + remove_index "sales", name: "index_sales" + remove_index "sales", name: "index_receipt_date" + remove_index "sales", name: "index_payment_status" + remove_index "sales", name: "index_sale_status" + remove_index "sales", name: "index_sale_shift_sale_id" + add_index :sales, [:shop_code, :sale_status] + add_index :sales, [:shop_code, :payment_status] + add_index :sales, [:shop_code, :sale_status, :payment_status] + + remove_index "promotions", name: "index_promotions" + remove_index "promotions", name: "index_promo_start_date" + remove_index "promotions", name: "index_promo_end_date" + remove_index "promotions", name: "index_promo_start_hour" + remove_index "promotions", name: "index_promo_end_hour" + add_index :promotions, [:shop_code, :promo_start_date, :promo_end_date, :promo_start_hour, :promo_end_hour], name: 'index_promotions_on_time' + end +end