diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index b15062d6..2c76f132 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -115,7 +115,7 @@ class Origami::PaymentsController < BaseOrigamiController sale_payment = SalePayment.new sale_payment.process_kbz_payment(sale_id, sale_data.grand_total, 0, 'pending') - status, qr = KbzPay.pay(sale_data.grand_total, sale_payment.sale_payment_id, kbz_pay_method.gateway_url, kbz_pay_method.auth_token, kbz_pay_method.merchant_account_id, kbz_pay_method.additional_parameters) + status, qr = KbzPay.pay(sale_data.grand_total.to_i, sale_payment.sale_payment_id, kbz_pay_method.gateway_url, kbz_pay_method.auth_token, kbz_pay_method.merchant_account_id, kbz_pay_method.additional_parameters) end end diff --git a/app/controllers/reports/receipt_no_controller.rb b/app/controllers/reports/receipt_no_controller.rb index 5e2fbc23..b05db409 100755 --- a/app/controllers/reports/receipt_no_controller.rb +++ b/app/controllers/reports/receipt_no_controller.rb @@ -86,7 +86,7 @@ authorize_resource :class => false :body => { :orders => @orders, :order_items => @order_items, :sale_orders => @sale_orders, - :sale => @sales, + :sales => @sales, :sale_items => @sale_items, :sale_audits => @sale_audits, :sale_payments => @sale_payments, diff --git a/app/models/assigned_order_item.rb b/app/models/assigned_order_item.rb index 1fd1e4a2..9359fd66 100755 --- a/app/models/assigned_order_item.rb +++ b/app/models/assigned_order_item.rb @@ -24,7 +24,7 @@ class AssignedOrderItem < ApplicationRecord order_item.delivery_status = item['delivery_status'] order_item.save end - puts '....... Assigned Order Item sync completed .......' + Rails.logger.debug '....... Assigned Order Item sync completed .......' end end diff --git a/app/models/kbz_pay.rb b/app/models/kbz_pay.rb index 90fbac14..5893e048 100644 --- a/app/models/kbz_pay.rb +++ b/app/models/kbz_pay.rb @@ -3,21 +3,22 @@ class KbzPay KBZ_PAY = 'KBZPay' def self.pay(amount, receipt_no, url, key, app_id, code) + shop = Shop.first + prefix = shop.shop_code + receipt_no = "#{prefix}#{receipt_no}" datetime = DateTime.now.strftime("%d%m%Y%H%M") kbz_app_id = app_id - kbz_merch_code = code - # kbz_app_id = "kp1e78f7efddca190042638341afb88d" - # kbz_merch_code = "200004" + kbz_merch_code = code + kbz_api_key = key + kbz_provider_url = "#{url}/precreate" + kbz_method = 'kbz.payment.precreate' kbz_trade_type = "PAY_BY_QRCODE" - kbz_api_key = key - # kbz_api_key = "code2lab123456" kbz_version = "1.0" - kbz_provider_url = url - # kbz_provider_url = "http://api.kbzpay.com/payment/gateway/uat/precreate" kbz_currency = "MMK" kbz_callback_url = "https://staging-v2.doemal.com/api/v3/ordering/kbz_callback" + nounce_str = SecureRandom.base64(32).first(32).upcase params = "appid="+kbz_app_id+"&merch_code="+kbz_merch_code+"&merch_order_id="+receipt_no.to_s+"&method="+kbz_method+"&nonce_str="+nounce_str.to_s+"¬ify_url="+ kbz_callback_url + "&timeout_express=20m×tamp="+datetime+"&total_amount="+amount.to_s+"&trade_type="+kbz_trade_type+"&trans_currency="+ kbz_currency+"&version="+kbz_version+"&key="+kbz_api_key @@ -48,29 +49,35 @@ class KbzPay :headers => { 'Content-Type' => 'application/json', 'Accept' => 'application/json' } ) Rails.logger.info result + Rails.logger.info '====================================' if result['Response']['result'] == "SUCCESS" #TODO QR return qr = result['Response']['qrCode'] return true, qr else + # Rails.logger.debug result['Response'] return false, result['Response'] - puts result['Response'] end end - def self.query(receipt_no, current_user) + def self.query(receipt_no, current_user, url, key, app_id, code) + shop = Shop.first + prefix = shop.shop_code + receipt_no = "#{prefix}#{receipt_no}" amount = 0 datetime = DateTime.now.strftime("%d%m%Y%H%M") - kbz_app_id = "kp1e78f7efddca190042638341afb88d" - kbz_merch_code = "200004" + kbz_app_id = app_id + kbz_merch_code = code + kbz_api_key = key + kbz_provider_url = "#{url}/queryorder" + kbz_method = 'kbz.payment.queryorder' - kbz_trade_type = "APP" - kbz_api_key = "code2lab123456" + kbz_trade_type = "PAY_BY_QRCODE" kbz_version = "1.0" - kbz_provider_url = "http://api.kbzpay.com/payment/gateway/uat/queryorder" kbz_currency = "MMK" kbz_callback_url = "https://staging-v2.doemal.com/api/v3/ordering/kbz_callback" + nounce_str = SecureRandom.base64(32).first(32).upcase params = "appid="+kbz_app_id+"&merch_code="+kbz_merch_code+"&merch_order_id="+receipt_no.to_s+"&method="+kbz_method+"&nonce_str="+nounce_str.to_s+"×tamp="+datetime+"&version="+kbz_version+"&key="+kbz_api_key @@ -101,6 +108,8 @@ class KbzPay merch_order_id = result['Response']['merch_order_id'] cash = result['Response']['total_amount'] + merch_order_id.slice! "#{prefix}" + sp = SalePayment.find(merch_order_id) if !sp.nil? if sp.payment_status == 'pending' diff --git a/app/models/order.rb b/app/models/order.rb index 7ffeb82b..26451207 100755 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -584,7 +584,7 @@ class Order < ApplicationRecord order.guest_info = o['guest_info'] order.save end - puts '...... order sync completed .....' + Rails.logger.debug '...... order sync completed .....' end end diff --git a/app/models/order_item.rb b/app/models/order_item.rb index ec8d00a7..c5d715f3 100755 --- a/app/models/order_item.rb +++ b/app/models/order_item.rb @@ -91,7 +91,7 @@ class OrderItem < ApplicationRecord order_item.completed_by = item['completed_by'] order_item.save end - puts '...... order item sync completed. .....' + Rails.logger.debug '...... order item sync completed. .....' end end diff --git a/app/models/sale.rb b/app/models/sale.rb index 15a27809..acbb25b7 100644 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -59,7 +59,7 @@ class Sale < ApplicationRecord sale.equal_persons = s['equal_persons'] sale.save end - puts '........ Sale data sync completed .......' + Rails.logger.debug '........ Sale data sync completed .......' end end def generate_invoice_from_booking(booking_id, requested_by, cashier, order_source = nil, current_checkin_induties_count) diff --git a/app/models/sale_audit.rb b/app/models/sale_audit.rb index 471873e7..36734ec1 100755 --- a/app/models/sale_audit.rb +++ b/app/models/sale_audit.rb @@ -24,7 +24,7 @@ class SaleAudit < ApplicationRecord sale_audit.remark = sa['remark'] sale_audit.save end - puts '....... Sale Audit sync completed .......' + Rails.logger.debug '....... Sale Audit sync completed .......' end end diff --git a/app/models/sale_item.rb b/app/models/sale_item.rb index 86e9cabc..d8be28b7 100755 --- a/app/models/sale_item.rb +++ b/app/models/sale_item.rb @@ -52,7 +52,7 @@ class SaleItem < ApplicationRecord sale_item['is_taxable'] = si['is_taxable'] sale_item.save end - puts '....... Sale Item sync completed ......' + Rails.logger.debug '....... Sale Item sync completed ......' end end @@ -62,29 +62,29 @@ class SaleItem < ApplicationRecord item.save menu_category = MenuCategory.get_menu_category(item.product_code) #get menu category for menu items - sale_item = SaleItem.new - sale_item.menu_category_code = menu_category.code ? menu_category.code : nil - sale_item.menu_category_name = menu_category.name - sale_item.product_code = item.product_code - sale_item.item_instance_code = item.item_instance_code - sale_item.product_name = item.product_name + " (#{type.upcase})" - sale_item.product_alt_name = item.product_alt_name - sale_item.account_id = item.account_id - sale_item.status = type - sale_item.remark = type - if type == "foc" || type == "promotion" || type == "void" || type == "waste" || type == "spoile" - sale_item.qty = qty * (-1) - else - sale_item.qty = qty - end + # sale_item = SaleItem.new + # sale_item.menu_category_code = menu_category.code ? menu_category.code : nil + # sale_item.menu_category_name = menu_category.name + # sale_item.product_code = item.product_code + # sale_item.item_instance_code = item.item_instance_code + # sale_item.product_name = item.product_name + " (#{type.upcase})" + # sale_item.product_alt_name = item.product_alt_name + # sale_item.account_id = item.account_id + # sale_item.status = type + # sale_item.remark = type + # if type == "foc" || type == "promotion" || type == "void" || type == "waste" || type == "spoile" + # sale_item.qty = qty * (-1) + # else + # sale_item.qty = qty + # end - sale_item.unit_price = item_price # * (-1) - sale_item.taxable_price = (price) * (-1) - sale_item.price = (price) * (-1) + # sale_item.unit_price = item_price # * (-1) + # sale_item.taxable_price = (price) * (-1) + # sale_item.price = (price) * (-1) - sale_item.is_taxable = 1 - sale_item.sale_id = sale_id - sale_item.save + # sale_item.is_taxable = 1 + # sale_item.sale_id = sale_id + # sale_item.save sale = Sale.find(sale_id) sale.compute_by_sale_items(sale.id, sale.sale_items, sale.total_discount) end diff --git a/app/models/sale_order.rb b/app/models/sale_order.rb index 3e4fc085..ab50e228 100755 --- a/app/models/sale_order.rb +++ b/app/models/sale_order.rb @@ -27,7 +27,7 @@ class SaleOrder < ApplicationRecord sale_order.order_id = so['order_id'] sale_order.save end - puts '......... Sale Order sync completed ........' + Rails.logger.debug '......... Sale Order sync completed ........' end end diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index 53d9f1cc..4808860a 100755 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -25,16 +25,17 @@ class SalePayment < ApplicationRecord payment.payment_status = sp['payment_status'] payment.save end - puts '....... Sale Payment sync completed ......' + Rails.logger.debug '....... Sale Payment sync completed ......' end end def self.get_kbz_pay_amount(sale_id, current_user) amount = 0 + kbz_pay_method = PaymentMethodSetting.where(:payment_method => KbzPay::KBZ_PAY).last sale_payment = SalePayment.where('sale_id=? and payment_method=? and payment_status!=?', sale_id, KbzPay::KBZ_PAY, 'dead').last - if !sale_payment.nil? + if !sale_payment.nil? and !kbz_pay_method.nil? if sale_payment.payment_status == 'pending' - amount = KbzPay.query(sale_payment.id, current_user) + amount = KbzPay.query(sale_payment.id, current_user, kbz_pay_method.gateway_url, kbz_pay_method.auth_token, kbz_pay_method.merchant_account_id, kbz_pay_method.additional_parameters) elsif sale_payment.payment_status == 'paid' amount = sale_payment.payment_amount end diff --git a/app/models/sale_tax.rb b/app/models/sale_tax.rb index 44622c24..bd89ec1b 100755 --- a/app/models/sale_tax.rb +++ b/app/models/sale_tax.rb @@ -21,7 +21,7 @@ class SaleTax < ApplicationRecord tax.inclusive = t['inclusive'] tax.save end - puts '...... Sale Tax sync completed .....' + Rails.logger.debug '...... Sale Tax sync completed .....' end end diff --git a/app/models/seed_generator.rb b/app/models/seed_generator.rb index 94b7217e..2a363dd8 100755 --- a/app/models/seed_generator.rb +++ b/app/models/seed_generator.rb @@ -31,7 +31,7 @@ class SeedGenerator < ApplicationRecord seed.next = sg['next'] seed.save end - puts '....... Seed Generator sync completed! .......' + Rails.logger.debug '....... Seed Generator sync completed! .......' end end diff --git a/app/models/shift_sale.rb b/app/models/shift_sale.rb index 1749e1b8..2d263c21 100755 --- a/app/models/shift_sale.rb +++ b/app/models/shift_sale.rb @@ -39,7 +39,7 @@ class ShiftSale < ApplicationRecord shift_sale = nil # if ShiftSale.exists?(ss['id']) - shift_sale = ShiftSale.find(ss['id']) + shift_sale = ShiftSale.find_by_id(ss['id']) # status = 'updated' if shift_sale.nil? shift_sale = ShiftSale.new @@ -73,7 +73,7 @@ class ShiftSale < ApplicationRecord shift_sale.save end - puts "....... Shift Sale sync completed ......" + Rails.logger.debug "....... Shift Sale sync completed ......" end end