From 1c478ae632300e48543ca3debd0a1a716f32c256 Mon Sep 17 00:00:00 2001 From: Myat Zin Wai Maw Date: Fri, 21 Jun 2019 16:01:05 +0630 Subject: [PATCH 01/14] update order --- app/controllers/api/api_controller.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/app/controllers/api/api_controller.rb b/app/controllers/api/api_controller.rb index caa1efb5..a5112ffe 100755 --- a/app/controllers/api/api_controller.rb +++ b/app/controllers/api/api_controller.rb @@ -21,7 +21,6 @@ class Api::ApiController < ActionController::API def current_login_employee @employee = Employee.find_by_token_session(current_token) - puts @employee.to_json end # def lookup_domain From ae373fe365c56df1a13fcca4e5b46b971592b3e3 Mon Sep 17 00:00:00 2001 From: Nweni Date: Mon, 24 Jun 2019 10:10:01 +0630 Subject: [PATCH 02/14] callback kbzpay --- .../api/payment/callback_controller.rb | 15 +++++++++++++++ .../api/payment/mobilepayment_controller.rb | 8 ++------ app/controllers/origami/payments_controller.rb | 2 ++ 3 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 app/controllers/api/payment/callback_controller.rb diff --git a/app/controllers/api/payment/callback_controller.rb b/app/controllers/api/payment/callback_controller.rb new file mode 100644 index 00000000..c2acb4d8 --- /dev/null +++ b/app/controllers/api/payment/callback_controller.rb @@ -0,0 +1,15 @@ +class Api::Payment::CallbackController < Api::ApiController + + skip_before_action :authenticate + + def kbzpay + Rails.logger.info params[:Request] + callback_value = params[:Request] + trade_status = params[:Request][:trade_status] + total_amount = params[:Request][:total_amount] + if trade_status == "PAY_SUCCESS" + merch_order_id = params[:Request][:merch_order_id] + end + end + +end diff --git a/app/controllers/api/payment/mobilepayment_controller.rb b/app/controllers/api/payment/mobilepayment_controller.rb index 42ab5919..220cbbeb 100644 --- a/app/controllers/api/payment/mobilepayment_controller.rb +++ b/app/controllers/api/payment/mobilepayment_controller.rb @@ -28,7 +28,7 @@ class Api::Payment::MobilepaymentController < Api::ApiController 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 end end @@ -41,7 +41,7 @@ class Api::Payment::MobilepaymentController < Api::ApiController @cash ={"change_amount"=>sale_payment[3],"balance_amount"=>sale_payment[4] ,"receipt_url"=>''} end @out = true,@cash - + else @out =false,"Something wrong!" sale_payment = SalePayment.new @@ -53,8 +53,4 @@ class Api::Payment::MobilepaymentController < Api::ApiController end - def kbz_pay - - end - end diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index 71a364e2..4ec893ad 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -102,6 +102,8 @@ class Origami::PaymentsController < BaseOrigamiController printer = Printer::ReceiptPrinter.new(print_settings) + status, qr = KbzPay.pay(amount, receipt_no) + filename, receipt_no, cashier_printer = printer.print_receipt_bill(print_settings,cashier_terminal,sale_items,sale_data,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info, shop_detail, "Frt",current_balance,nil,other_amount,nil,nil,nil) result = { From 68b16eeee70766dfbd9d5648ef2c6674dba57241 Mon Sep 17 00:00:00 2001 From: Zoey Date: Mon, 24 Jun 2019 10:19:10 +0630 Subject: [PATCH 03/14] kbzpay qrcode --- Gemfile | 1 + Gemfile.lock | 7 ++++++ .../origami/payments_controller.rb | 6 +++++- app/models/printer/receipt_printer.rb | 8 +++---- app/pdf/order_item_pdf.rb | 2 +- app/pdf/receipt_bill_pdf.rb | 15 ++++++++++++- config/initializers/action_controller.rb | 10 ++++----- config/puma.rb | 20 +++++++++--------- dump.rdb | Bin 1214655 -> 1214380 bytes 9 files changed, 47 insertions(+), 22 deletions(-) diff --git a/Gemfile b/Gemfile index 6005cae2..33a88bd0 100644 --- a/Gemfile +++ b/Gemfile @@ -47,6 +47,7 @@ gem 'jquery-fileupload-rails' gem 'cups' gem 'prawn' gem 'prawn-table' +gem 'prawn-qrcode' gem 'to_xls-rails' gem 'rubyzip', '= 1.0.0' gem 'axlsx', '= 2.0.1' diff --git a/Gemfile.lock b/Gemfile.lock index d046bd28..b0e3f84d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -79,6 +79,7 @@ GEM mime-types (>= 1.16) chartkick (2.2.5) chronic (0.10.2) + chunky_png (1.3.11) coffee-rails (4.2.2) coffee-script (>= 2.2.0) railties (>= 4.0.0) @@ -177,6 +178,9 @@ GEM prawn (2.2.2) pdf-core (~> 0.7.0) ttfunk (~> 1.5) + prawn-qrcode (0.3.1) + prawn (>= 1) + rqrcode (>= 0.4.1) prawn-table (0.2.2) prawn (>= 1.3.0, < 3.0.0) puma (3.10.0) @@ -218,6 +222,8 @@ GEM nokogiri rubyzip spreadsheet (> 0.6.4) + rqrcode (0.10.1) + chunky_png (~> 1.0) rspec-core (3.7.0) rspec-support (~> 3.7.0) rspec-expectations (3.7.0) @@ -341,6 +347,7 @@ DEPENDENCIES pdfjs_viewer-rails pg prawn + prawn-qrcode prawn-table puma (~> 3.0) rack-cors diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index 37d3daa1..3b9fda76 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -102,7 +102,11 @@ class Origami::PaymentsController < BaseOrigamiController printer = Printer::ReceiptPrinter.new(print_settings) - filename, receipt_no, cashier_printer = printer.print_receipt_bill(print_settings,cashier_terminal,sale_items,sale_data,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info, shop_detail, "Frt",current_balance,nil,other_amount,nil,nil,nil) + #TODO :: KBZPAY ( QR ) + # On/Off setting ( show or not qr ) + qrCode = "00020101021202021110500346KBZ005ab0ed5c1ed09d1c4585ff1313170389160831435294600062000040732kp1e78f7efddca190042638341afb88d50200006KBZPay0106KBZPay5303MMK5802MM62170813PAY_BY_QRCODE64060002my6304FBBD" + kbz_pay_status = PaymentMethodSetting.where(:payment_method => 'KBZPay').last + filename, receipt_no, cashier_printer = printer.print_receipt_bill(print_settings, kbz_pay_status, qrCode, cashier_terminal,sale_items,sale_data,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info, shop_detail, "Frt",current_balance,nil,other_amount,nil,nil,nil) result = { :filepath => filename, diff --git a/app/models/printer/receipt_printer.rb b/app/models/printer/receipt_printer.rb index 04951a12..b45c722b 100755 --- a/app/models/printer/receipt_printer.rb +++ b/app/models/printer/receipt_printer.rb @@ -188,20 +188,20 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker end #Bill Receipt Print - def print_receipt_bill(printer_settings,cashier_terminal,sale_items,sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info = nil,rebate_amount=nil,shop_details, printed_status,balance,card_data,other_amount,latest_order_no,card_balance_amount,order_reservation) + def print_receipt_bill(printer_settings, kbz_pay_status, qr_code, cashier_terminal,sale_items,sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info = nil,rebate_amount=nil,shop_details, printed_status,balance,card_data,other_amount,latest_order_no,card_balance_amount,order_reservation) #Use CUPS service #Generate PDF #Print if !printer_settings.nil? if !printer_settings.unique_code.strip.downcase.include? ("receiptbillorder") - pdf = ReceiptBillPdf.new(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details,printed_status,balance,card_data,other_amount,latest_order_no,card_balance_amount) + pdf = ReceiptBillPdf.new(printer_settings, kbz_pay_status, qr_code, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details,printed_status,balance,card_data,other_amount,latest_order_no,card_balance_amount) settings = PrintSetting.all if !settings.nil? settings.each do |setting| if setting.unique_code == 'ReceiptBillPdf' - pdf = ReceiptBillPdf.new(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details,printed_status,balance,card_data,other_amount,latest_order_no,card_balance_amount) + pdf = ReceiptBillPdf.new(printer_settings, kbz_pay_status, qr_code, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details,printed_status,balance,card_data,other_amount,latest_order_no,card_balance_amount) elsif setting.unique_code == 'ReceiptBillStarPdf' - pdf = ReceiptBillStarPdf.new(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details,printed_status,balance,card_data,other_amount,latest_order_no,card_balance_amount) + pdf = ReceiptBillStarPdf.new(printer_settings, kbz_pay_status, qr_code, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details,printed_status,balance,card_data,other_amount,latest_order_no,card_balance_amount) end end end diff --git a/app/pdf/order_item_pdf.rb b/app/pdf/order_item_pdf.rb index 946a0adf..58937093 100755 --- a/app/pdf/order_item_pdf.rb +++ b/app/pdf/order_item_pdf.rb @@ -17,7 +17,7 @@ class OrderItemPdf < Prawn::Document self.item_description_width = self.page_width - (self.price_width + self.qty_width + self.total_width) self.label_width=90 - super(:margin => self.margin_top, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height]) + super(:margin => [self.margin_top, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height]) # super(:margin => [10, 5, 30, 5], :page_size => [200,400]) # db font setup diff --git a/app/pdf/receipt_bill_pdf.rb b/app/pdf/receipt_bill_pdf.rb index 97f6dfc2..00068313 100755 --- a/app/pdf/receipt_bill_pdf.rb +++ b/app/pdf/receipt_bill_pdf.rb @@ -1,9 +1,10 @@ +# require 'prawn/qrcode' class ReceiptBillPdf < Prawn::Document include ActionView::Helpers::NumberHelper attr_accessor :label_width,:price_column_width,:page_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:total_width,:item_description_width, :description_width, :price_num_width, :line_move - def initialize(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info = nil,rebate_amount = nil,shop_details, printed_status,current_balance,card_data,other_charges_amount,latest_order_no,card_balance_amount) + def initialize(printer_settings, kbz_pay_status, qr_code, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info = nil,rebate_amount = nil,shop_details, printed_status,current_balance,card_data,other_charges_amount,latest_order_no,card_balance_amount) self.page_width = printer_settings.page_width self.page_height = printer_settings.page_height self.header_font_size = printer_settings.header_font_size.to_i @@ -101,6 +102,10 @@ class ReceiptBillPdf < Prawn::Document if shop_details.note && !shop_details.note.nil? shop_note(shop_details) end + + if kbz_pay_status + pay_by_kbzpay(printed_status, qr_code) + end footer(printed_status) end @@ -679,6 +684,14 @@ class ReceiptBillPdf < Prawn::Document move_down line_move end + def pay_by_kbzpay(status, qr_code) + if status == 'Paid' + move_down line_move + print_qr_code(qr_code, pos: [20, cursor], extent: 200, stroke: true) + stroke_horizontal_rule + end + end + def footer(printed_status) move_down line_move stroke_horizontal_rule diff --git a/config/initializers/action_controller.rb b/config/initializers/action_controller.rb index 205c330a..85f38ec5 100644 --- a/config/initializers/action_controller.rb +++ b/config/initializers/action_controller.rb @@ -21,11 +21,11 @@ class ActionController::Base end else # check for license file - if check_license - current_license(ENV["SX_PROVISION_URL"]) - else - redirect_to activate_path - end + # if check_license + # current_license(ENV["SX_PROVISION_URL"]) + # else + # redirect_to activate_path + # end end end diff --git a/config/puma.rb b/config/puma.rb index fd89392f..6a545bed 100755 --- a/config/puma.rb +++ b/config/puma.rb @@ -1,10 +1,10 @@ -application_path="#{File.expand_path("../..", __FILE__)}" -directory application_path -#environment ENV.fetch("RAILS_ENV") { "production" } -environment "production" -pidfile "#{application_path}/tmp/puma/pid" -state_path "#{application_path}/tmp/puma/state" -stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log" -port ENV.fetch("PORT") { 62158 } -workers 2 -preload_app! +# application_path="#{File.expand_path("../..", __FILE__)}" +# directory application_path +# #environment ENV.fetch("RAILS_ENV") { "production" } +# environment "production" +# pidfile "#{application_path}/tmp/puma/pid" +# state_path "#{application_path}/tmp/puma/state" +# stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log" +# port ENV.fetch("PORT") { 62158 } +# workers 2 +# preload_app! diff --git a/dump.rdb b/dump.rdb index e903798e4b40f394d793cda2ef381b90b659e350..c2a99dc8ef9aeb33b85311b8d7bddd8533bb13c6 100644 GIT binary patch delta 429 zcmW;Jze_?<6bJD8p8C`>s}p32(op2|;5|i4A!;t7S+L-hR|u5y*Q`*fo4p85G(~fR zTLh7}h-j&$KOkG08X6*~q&m;xbKnl=-0!`oZ7!ZQ7x#7b>DIIQ?J5^}TFvp?O=o?M zeS3_pjJjRmMs7XJ1^Z<`(?i`)Z#$1h9sF)RD&(&F6xzKb9yP#kz6D3Lu#i}Pv1F7I z8Dlfc(;|vy6@2DH5GVFPF)MyY_se_oWVMaiW2zQ8zpKK94G*diz*HS3@sf&}OenKz zL=z0(>kz_31LD|ffPxje9sg?JS9)`rINyMPtVOU>gMiIyxY~s&Jf`;js*xp1=F?^bXWrg_Z5OsSc#(E+ Wosz9rjt+$5g8jWV50{@8KEyxw;hBv9 delta 756 zcmY+CO-$2Z7{}Yu55{1^1c8BJyc)Tz(6=93S525lF@|0JAlS9BAs0HX5z&}4|?_H#YAk>cQqb7{PG^2ywCIepa1{y&fGzBZWm5} z%f%Lsx*IMsxGJi?zBP1?IO^5x3RicKRxMj7Abt@)rv^g3^y=A;|AkKbcj+{h=LFu* zuwyZ(;AgZMo^0+#y*zFQa zVq%ys427XF45m}-#>6o_m;|O5(}zi7j$!&S1J6rrYJP+1EE5eLq!dns`&Y=9U4D!? zPAi;H2wL;osVO?zACK=5lz<5LzV2Us|)EA5s)$&U0EI3D6!XV0j%A#+e}zahdq zmmigGkOV=cb=yFKrIl4hka$(nbV<-*PBS2)D6>|v4~s8~hZ8r!vh8{`t%`sO{(S*i zfbZdW$XJ}vJfK23$BTu6oL8nLv5=PqB@61N0XnT|J_|f;V<~gCbK23oc3dKJ~Y z%=ro3uIUZOK{b61sDhjYD-F~@E>N!m168yJVHHpJFPlrti*?7e9n)I_3t5m^ClM}W z5~OKlE)<79llQJW$^R69b$X>?B9E?UmW!w|0-BfVY$*vj0gBTw4;5aLsB*(y!)JPG zwLf&uG(OBr!4Q#*%&t4Oj$9n3_O)2+(^d-lah7l0-%6#a&UK@xykq=%=8Qi>pTbcY z^k*1`3B`-!?5;mcj>e%FOh)!#uf}-nRgC#7kYpoymKVk!rVb*55;BJqHyi#)K6u~U h9AR=CFX9}0q*eb3-QV1r>4UhzZ+i~yt?F-&{s5f-_BQ|k From 6ecebe1aa593e46c80a85a8b4f0c669d67c1d287 Mon Sep 17 00:00:00 2001 From: Zoey Date: Mon, 24 Jun 2019 14:03:14 +0630 Subject: [PATCH 04/14] kbzpay qrcode generating --- config/initializers/action_controller.rb | 10 +++++----- config/puma.rb | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/config/initializers/action_controller.rb b/config/initializers/action_controller.rb index 85f38ec5..205c330a 100644 --- a/config/initializers/action_controller.rb +++ b/config/initializers/action_controller.rb @@ -21,11 +21,11 @@ class ActionController::Base end else # check for license file - # if check_license - # current_license(ENV["SX_PROVISION_URL"]) - # else - # redirect_to activate_path - # end + if check_license + current_license(ENV["SX_PROVISION_URL"]) + else + redirect_to activate_path + end end end diff --git a/config/puma.rb b/config/puma.rb index 6a545bed..fd89392f 100755 --- a/config/puma.rb +++ b/config/puma.rb @@ -1,10 +1,10 @@ -# application_path="#{File.expand_path("../..", __FILE__)}" -# directory application_path -# #environment ENV.fetch("RAILS_ENV") { "production" } -# environment "production" -# pidfile "#{application_path}/tmp/puma/pid" -# state_path "#{application_path}/tmp/puma/state" -# stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log" -# port ENV.fetch("PORT") { 62158 } -# workers 2 -# preload_app! +application_path="#{File.expand_path("../..", __FILE__)}" +directory application_path +#environment ENV.fetch("RAILS_ENV") { "production" } +environment "production" +pidfile "#{application_path}/tmp/puma/pid" +state_path "#{application_path}/tmp/puma/state" +stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log" +port ENV.fetch("PORT") { 62158 } +workers 2 +preload_app! From cd2e00394569e9706c3d88a648956871f43db53a Mon Sep 17 00:00:00 2001 From: Zoey Date: Mon, 24 Jun 2019 14:10:03 +0630 Subject: [PATCH 05/14] kbzpay qrcode --- app/controllers/origami/payments_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index 4f99a8a6..4eba48a2 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -279,7 +279,7 @@ class Origami::PaymentsController < BaseOrigamiController other_amount = SaleItem.calculate_other_charges(sale_items) printer = Printer::ReceiptPrinter.new(print_settings) - filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings,cashier_terminal,sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_detail, "Paid",current_balance,card_data,other_amount,latest_order_no,card_balance_amount,nil) + filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings, false, nil, cashier_terminal,sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_detail, "Paid",current_balance,card_data,other_amount,latest_order_no,card_balance_amount,nil) render json: JSON.generate({:status => saleObj.rebate_status, :message => "Can't Rebate coz of Sever Error ", :filename => filename, :receipt_no => sale_receipt_no, :printer_name => printer_name}) From 88c5dc21443a041132fddf24f1aab320dab088e8 Mon Sep 17 00:00:00 2001 From: Zoey Date: Mon, 24 Jun 2019 14:22:44 +0630 Subject: [PATCH 06/14] kbzpay setting --- .../origami/payments_controller.rb | 11 ++++++---- config/initializers/action_controller.rb | 10 +++++----- config/puma.rb | 20 +++++++++---------- 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index 4eba48a2..35610936 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -105,12 +105,15 @@ class Origami::PaymentsController < BaseOrigamiController #TODO :: KBZPAY ( QR ) # On/Off setting ( show or not qr ) # qrCode = "00020101021202021110500346KBZ005ab0ed5c1ed09d1c4585ff1313170389160831435294600062000040732kp1e78f7efddca190042638341afb88d50200006KBZPay0106KBZPay5303MMK5802MM62170813PAY_BY_QRCODE64060002my6304FBBD" - kbz_pay_status = PaymentMethodSetting.where(:payment_method => 'KBZPay').last + kbz_pay_setting = PaymentMethodSetting.where(:payment_method => 'KBZPay').last status = false - if kbz_pay_status - - status, qr = KbzPay.pay(sale_data.grand_total, sale_data.receipt_no) + qr = nil + + if !kbz_pay_setting.nil? + if kbz_pay_setting.is_active == true + status, qr = KbzPay.pay(sale_data.grand_total, sale_data.receipt_no) + end end filename, receipt_no, cashier_printer = printer.print_receipt_bill(print_settings, status, qr, cashier_terminal,sale_items,sale_data,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info, shop_detail, "Frt",current_balance,nil,other_amount,nil,nil,nil) diff --git a/config/initializers/action_controller.rb b/config/initializers/action_controller.rb index 205c330a..85f38ec5 100644 --- a/config/initializers/action_controller.rb +++ b/config/initializers/action_controller.rb @@ -21,11 +21,11 @@ class ActionController::Base end else # check for license file - if check_license - current_license(ENV["SX_PROVISION_URL"]) - else - redirect_to activate_path - end + # if check_license + # current_license(ENV["SX_PROVISION_URL"]) + # else + # redirect_to activate_path + # end end end diff --git a/config/puma.rb b/config/puma.rb index fd89392f..6a545bed 100755 --- a/config/puma.rb +++ b/config/puma.rb @@ -1,10 +1,10 @@ -application_path="#{File.expand_path("../..", __FILE__)}" -directory application_path -#environment ENV.fetch("RAILS_ENV") { "production" } -environment "production" -pidfile "#{application_path}/tmp/puma/pid" -state_path "#{application_path}/tmp/puma/state" -stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log" -port ENV.fetch("PORT") { 62158 } -workers 2 -preload_app! +# application_path="#{File.expand_path("../..", __FILE__)}" +# directory application_path +# #environment ENV.fetch("RAILS_ENV") { "production" } +# environment "production" +# pidfile "#{application_path}/tmp/puma/pid" +# state_path "#{application_path}/tmp/puma/state" +# stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log" +# port ENV.fetch("PORT") { 62158 } +# workers 2 +# preload_app! From 56b8115ac910d3ae8e76c35637e61080e1b97bbd Mon Sep 17 00:00:00 2001 From: Zoey Date: Mon, 24 Jun 2019 14:23:06 +0630 Subject: [PATCH 07/14] ... --- config/initializers/action_controller.rb | 10 +++++----- config/puma.rb | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/config/initializers/action_controller.rb b/config/initializers/action_controller.rb index 85f38ec5..205c330a 100644 --- a/config/initializers/action_controller.rb +++ b/config/initializers/action_controller.rb @@ -21,11 +21,11 @@ class ActionController::Base end else # check for license file - # if check_license - # current_license(ENV["SX_PROVISION_URL"]) - # else - # redirect_to activate_path - # end + if check_license + current_license(ENV["SX_PROVISION_URL"]) + else + redirect_to activate_path + end end end diff --git a/config/puma.rb b/config/puma.rb index 6a545bed..fd89392f 100755 --- a/config/puma.rb +++ b/config/puma.rb @@ -1,10 +1,10 @@ -# application_path="#{File.expand_path("../..", __FILE__)}" -# directory application_path -# #environment ENV.fetch("RAILS_ENV") { "production" } -# environment "production" -# pidfile "#{application_path}/tmp/puma/pid" -# state_path "#{application_path}/tmp/puma/state" -# stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log" -# port ENV.fetch("PORT") { 62158 } -# workers 2 -# preload_app! +application_path="#{File.expand_path("../..", __FILE__)}" +directory application_path +#environment ENV.fetch("RAILS_ENV") { "production" } +environment "production" +pidfile "#{application_path}/tmp/puma/pid" +state_path "#{application_path}/tmp/puma/state" +stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log" +port ENV.fetch("PORT") { 62158 } +workers 2 +preload_app! From 438cefcc49d25db0d32703179dc8f54159ac4fde Mon Sep 17 00:00:00 2001 From: Myat Zin Wai Maw Date: Tue, 25 Jun 2019 10:27:31 +0630 Subject: [PATCH 08/14] Inventory report --- app/controllers/origami/payments_controller.rb | 2 +- app/models/inventory_definition.rb | 2 +- app/models/stock_check_item.rb | 2 +- config/puma.rb | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index 2a180b56..98f7d082 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -102,7 +102,7 @@ class Origami::PaymentsController < BaseOrigamiController printer = Printer::ReceiptPrinter.new(print_settings) - status, qr = KbzPay.pay(amount, receipt_no) + # status, qr = KbzPay.pay(amount, receipt_no) filename, receipt_no, cashier_printer = printer.print_receipt_bill(print_settings,cashier_terminal,sale_items,sale_data,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info, shop_detail, "Frt",current_balance,nil,other_amount,nil,nil,nil) diff --git a/app/models/inventory_definition.rb b/app/models/inventory_definition.rb index f56de536..189d8dc7 100755 --- a/app/models/inventory_definition.rb +++ b/app/models/inventory_definition.rb @@ -102,7 +102,7 @@ class InventoryDefinition < ApplicationRecord OR mii.item_instance_name LIKE ? OR mc.name LIKE ?","%#{filter}%","%#{filter}%","%#{filter}%", "%#{filter}%","%#{filter}%","%#{filter}%","%#{filter}%") .group("mi.menu_category_id,inventory_definitions.item_code") - .order("acc.title desc,mi.menu_category_id desc,balance ASC") + .order("mi.name asc,acc.title desc,mi.menu_category_id desc,balance ASC") end end diff --git a/app/models/stock_check_item.rb b/app/models/stock_check_item.rb index 05ee98a7..67e8b3aa 100755 --- a/app/models/stock_check_item.rb +++ b/app/models/stock_check_item.rb @@ -15,7 +15,7 @@ class StockCheckItem < ApplicationRecord end def self.find_journal(item_code) - journal = StockJournal.where('item_code=?', item_code).order('created_at desc').take + journal = StockJournal.where('item_code=?', item_code).order("id DESC").first if journal return journal.id, journal.balance else diff --git a/config/puma.rb b/config/puma.rb index fd89392f..a0dae8b3 100755 --- a/config/puma.rb +++ b/config/puma.rb @@ -1,6 +1,6 @@ application_path="#{File.expand_path("../..", __FILE__)}" directory application_path -#environment ENV.fetch("RAILS_ENV") { "production" } +environment ENV.fetch("RAILS_ENV") { "production" } environment "production" pidfile "#{application_path}/tmp/puma/pid" state_path "#{application_path}/tmp/puma/state" From 79d8eb94ef9a7a6a6b23c23e81da77d1409e8a6e Mon Sep 17 00:00:00 2001 From: Zoey Date: Wed, 26 Jun 2019 11:42:51 +0630 Subject: [PATCH 09/14] kbzpay --- .../api/payment/callback_controller.rb | 3 + .../origami/payments_controller.rb | 114 +++++++++++------- .../origami/table_invoices_controller.rb | 2 +- .../reports/payment_method_controller.rb | 2 +- app/models/kbz_pay.rb | 107 +++++++++++++--- app/models/payment.rb | 6 + app/models/sale.rb | 3 + app/models/sale_payment.rb | 60 +++++++-- app/pdf/receipt_bill_pdf.rb | 4 +- app/views/origami/home/show.html.erb | 20 +++ app/views/origami/payments/show.html.erb | 24 +++- app/views/reports/dailysale/index.html.erb | 14 +++ app/views/reports/dailysale/index.xls.erb | 12 ++ .../reports/payment_method/index.html.erb | 6 +- .../reports/payment_method/index.xls.erb | 6 +- config/routes.rb | 1 + dump.rdb | Bin 1214380 -> 1214755 bytes 17 files changed, 306 insertions(+), 78 deletions(-) create mode 100644 app/models/payment.rb diff --git a/app/controllers/api/payment/callback_controller.rb b/app/controllers/api/payment/callback_controller.rb index c2acb4d8..89162fc4 100644 --- a/app/controllers/api/payment/callback_controller.rb +++ b/app/controllers/api/payment/callback_controller.rb @@ -9,6 +9,9 @@ class Api::Payment::CallbackController < Api::ApiController total_amount = params[:Request][:total_amount] if trade_status == "PAY_SUCCESS" merch_order_id = params[:Request][:merch_order_id] + + status, filename, sale_receipt_no, printer_name = Payment.pay(getCloudDomain, cash, sale_id, member_info, type, tax_type, path, latest_order_no, shop_detail, current_user, 'kbzpay', merch_order_id) + render json: JSON.generate({:status => status, :message => "Can't Rebate coz of Sever Error ", :filename => filename, :receipt_no => sale_receipt_no, :printer_name => printer_name}) end end diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index 35610936..6c487d66 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -105,14 +105,17 @@ class Origami::PaymentsController < BaseOrigamiController #TODO :: KBZPAY ( QR ) # On/Off setting ( show or not qr ) # qrCode = "00020101021202021110500346KBZ005ab0ed5c1ed09d1c4585ff1313170389160831435294600062000040732kp1e78f7efddca190042638341afb88d50200006KBZPay0106KBZPay5303MMK5802MM62170813PAY_BY_QRCODE64060002my6304FBBD" - kbz_pay_setting = PaymentMethodSetting.where(:payment_method => 'KBZPay').last + kbz_pay_setting = PaymentMethodSetting.where(:payment_method => KbzPay::KBZ_PAY).last status = false qr = nil if !kbz_pay_setting.nil? if kbz_pay_setting.is_active == true - status, qr = KbzPay.pay(sale_data.grand_total, sale_data.receipt_no) + 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) end end @@ -124,6 +127,8 @@ class Origami::PaymentsController < BaseOrigamiController :printer_url => print_settings.api_settings } + # status, qr = KbzPay.query(sale_payment.sale_payment_id) + # Mobile Print render :json => result.to_json # end @@ -137,6 +142,7 @@ class Origami::PaymentsController < BaseOrigamiController tax_type = params[:tax_type] path = request.fullpath latest_order_no = nil + is_kbz = params[:is_kbz] if(Sale.exists?(sale_id)) saleObj = Sale.find(sale_id) @@ -158,12 +164,22 @@ class Origami::PaymentsController < BaseOrigamiController end #end rounding adjustment - sale_payment = SalePayment.new - if path.include? ("credit_payment") - sale_payment.process_payment(saleObj, current_user, cash, "cash", nil, true) - else - sale_payment.process_payment(saleObj, current_user, cash, "cash") + # if pay_from = 'kbzpay' + # salePayment = SalePayment.find(sale_payment_id) + # salePayment.process_kbz_payment(salePayment.sale_id, sale_data.grand_total, cash, 'paid') + # else + # sp = SalePayment.where('sale_id=? and payment_method=? and payment_status=?', sale_id, 'kbzpay', 'paid').last + if sp.nil? #is_kbz + Rails.logger.info '################ CASH PAYMENT #################' + sale_payment = SalePayment.new + if path.include? ("credit_payment") + sale_payment.process_payment(saleObj, current_user, cash, "cash", nil, true) + else + sale_payment.process_payment(saleObj, current_user, cash, "cash") + end end + + # end if !path.include? ("credit_payment") rebate_amount = nil @@ -233,7 +249,7 @@ class Origami::PaymentsController < BaseOrigamiController end #orders print out - if params[:type] == "quick_service" + if type == "quick_service" booking = Booking.find_by_sale_id(sale_id) if booking.dining_facility_id.to_i>0 table_id = booking.dining_facility_id @@ -284,13 +300,22 @@ class Origami::PaymentsController < BaseOrigamiController printer = Printer::ReceiptPrinter.new(print_settings) filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings, false, nil, cashier_terminal,sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_detail, "Paid",current_balance,card_data,other_amount,latest_order_no,card_balance_amount,nil) - render json: JSON.generate({:status => saleObj.rebate_status, :message => "Can't Rebate coz of Sever Error ", :filename => filename, :receipt_no => sale_receipt_no, :printer_name => printer_name}) - #end end end + + # status, filename, sale_receipt_no, printer_name = Payment.pay(getCloudDomain, cash, sale_id, member_info, type, tax_type, path, latest_order_no, shop_detail, current_user, nil, nil) + render json: JSON.generate({:status => saleObj.rebate_status, :message => "Can't Rebate coz of Sever Error ", :filename => filename, :receipt_no => sale_receipt_no, :printer_name => printer_name}) end + # def kbz_query + # sale_id = params[:sale_id] + # table_id = params[:table_id] + # sp = SalePayment.where('sale_id=?', sale_id).last + # status, table_id = KbzPay.query(sp.sale_payment_id) + # render json: JSON.generate({:status => status, :table_id => table_id, :message => @message}) + # end + def show display_type = Lookup.find_by_lookup_type("display_type") if !display_type.nil? && display_type.value.to_i ==2 @@ -317,6 +342,7 @@ class Origami::PaymentsController < BaseOrigamiController if Sale.exists?(sale_id) @cash = 0.0 + @kbz_pay_amount = 0.0 @other = 0.0 @ppamount = 0.0 @visacount= 0.0 @@ -341,6 +367,9 @@ class Origami::PaymentsController < BaseOrigamiController @pdf_view = @lookup_pdf.value end + amount = SalePayment.get_kbz_pay_amount(sale_id, current_user) + @kbz_pay_amount += amount.to_f + #for changable on/off @changable_tax = true lookup_changable_tax = Lookup.collection_of('changable_tax') @@ -463,39 +492,40 @@ class Origami::PaymentsController < BaseOrigamiController else @sale_payment_data = SalePayment.get_sale_payments(@sale_data) end - @sale_payment_data.each do |spay| - if spay.payment_method == "cash" - @cash += spay.payment_amount - end - if spay.payment_method !="creditnote" - @other_payment += spay.payment_amount - end + @sale_payment_data.each do |spay| + if spay.payment_method == "cash" + @cash += spay.payment_amount + end + if spay.payment_method !="creditnote" + @other_payment += spay.payment_amount + end + + if spay.payment_method == "mpu" + @other += spay.payment_amount + elsif spay.payment_method == "paypar" + @ppamount += spay.payment_amount + elsif spay.payment_method == "visa" + @visacount += spay.payment_amount + elsif spay.payment_method == "jcb" + @jcbcount += spay.payment_amount + elsif spay.payment_method == "master" + @mastercount += spay.payment_amount + elsif spay.payment_method == "unionpay" + @unionpaycount += spay.payment_amount + elsif spay.payment_method == "JunctionPay" + @junctionpaycount += spay.payment_amount + elsif spay.payment_method == "creditnote" + @credit += spay.payment_amount + elsif spay.payment_method == "paymal" + @paymalcount += spay.payment_amount + elsif spay.payment_method == "alipay" + @alipaycount += spay.payment_amount + elsif spay.payment_method == "dinga" + @dingacount += spay.payment_amount + elsif spay.payment_method == "giftvoucher" + @giftvouchercount += spay.payment_amount + end - if spay.payment_method == "mpu" - @other += spay.payment_amount - elsif spay.payment_method == "paypar" - @ppamount += spay.payment_amount - elsif spay.payment_method == "visa" - @visacount += spay.payment_amount - elsif spay.payment_method == "jcb" - @jcbcount += spay.payment_amount - elsif spay.payment_method == "master" - @mastercount += spay.payment_amount - elsif spay.payment_method == "unionpay" - @unionpaycount += spay.payment_amount - elsif spay.payment_method == "JunctionPay" - @junctionpaycount += spay.payment_amount - elsif spay.payment_method == "creditnote" - @credit += spay.payment_amount - elsif spay.payment_method == "paymal" - @paymalcount += spay.payment_amount - elsif spay.payment_method == "alipay" - @alipaycount += spay.payment_amount - elsif spay.payment_method == "dinga" - @dingacount += spay.payment_amount - elsif spay.payment_method == "giftvoucher" - @giftvouchercount += spay.payment_amount - end end end end diff --git a/app/controllers/origami/table_invoices_controller.rb b/app/controllers/origami/table_invoices_controller.rb index 0e94c7c4..7082e44c 100755 --- a/app/controllers/origami/table_invoices_controller.rb +++ b/app/controllers/origami/table_invoices_controller.rb @@ -30,7 +30,7 @@ class Origami::TableInvoicesController < BaseOrigamiController end def show - puts 'Catch me if you can.......................' + # puts 'Catch me if you can.......................' @table = DiningFacility.find(params[:table_id]) @membership = MembershipSetting::MembershipSetting @payment_methods = PaymentMethodSetting.all diff --git a/app/controllers/reports/payment_method_controller.rb b/app/controllers/reports/payment_method_controller.rb index 659b51e4..414c4e07 100644 --- a/app/controllers/reports/payment_method_controller.rb +++ b/app/controllers/reports/payment_method_controller.rb @@ -2,7 +2,7 @@ class Reports::PaymentMethodController < BaseReportController # authorize_resource :class => false def index - @payments = [["All Payment",''],["Cash Payment","cash"], ["Credit Payment","creditnote"], + @payments = [["All Payment",''],["Cash Payment","cash"], ["KBZ Payment", KbzPay::KBZ_PAY], ["Credit Payment","creditnote"], ["FOC Payment","foc"], ["MPU Payment","mpu"], ["Visa Payment","visa"], ["Master Payment","master"], ["JCB Payment","jcb"],["UnionPay Payment","unionpay"], ["Alipay Payment","alipay"],["Paymal Payment", "paymal"],["Dinga Payment","dinga"], diff --git a/app/models/kbz_pay.rb b/app/models/kbz_pay.rb index 2fb740f2..c342a035 100644 --- a/app/models/kbz_pay.rb +++ b/app/models/kbz_pay.rb @@ -1,5 +1,7 @@ class KbzPay + KBZ_PAY = 'KBZPay' + def self.pay(amount, receipt_no) datetime = DateTime.now.strftime("%d%m%Y%H%M") @@ -14,26 +16,28 @@ class KbzPay 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 + "×tamp="+datetime+"&total_amount="+amount.to_s+"&trade_type="+kbz_trade_type+"&trans_currency="+ kbz_currency+"&version="+kbz_version+"&key="+kbz_api_key + 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 Rails.logger.info params sign = Digest::SHA256.hexdigest(params) - str = {"timestamp": datetime, - "method": kbz_method, - "notify_url": kbz_callback_url, - "nonce_str": nounce_str.to_s, - "sign_type": "SHA256", - "sign": sign, - "version": kbz_version, - "biz_content": { - "merch_order_id": receipt_no, - "merch_code": kbz_merch_code, - "appid": kbz_app_id, - "trade_type": kbz_trade_type, - "total_amount": amount.to_s, - "trans_currency": kbz_currency - } - } + str = { + "timestamp": datetime, + "method": kbz_method, + "notify_url": kbz_callback_url, + "nonce_str": nounce_str.to_s, + "sign_type": "SHA256", + "sign": sign, + "version": kbz_version, + "biz_content": { + "merch_order_id": receipt_no, + "merch_code": kbz_merch_code, + "appid": kbz_app_id, + "trade_type": kbz_trade_type, + "total_amount": amount.to_s, + "timeout_express": "20m", + "trans_currency": kbz_currency + } + } result = HTTParty.post(kbz_provider_url, :body => { :Request => str}.to_json, @@ -51,4 +55,71 @@ class KbzPay end -end + def self.query(receipt_no, current_user) + amount = 0 + datetime = DateTime.now.strftime("%d%m%Y%H%M") + kbz_app_id = "kp1e78f7efddca190042638341afb88d" + kbz_merch_code = "200004" + kbz_method = 'kbz.payment.queryorder' + kbz_trade_type = "APP" + kbz_api_key = "code2lab123456" + 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 + + Rails.logger.info params + sign = Digest::SHA256.hexdigest(params) + str = {"timestamp": datetime, + "method": kbz_method, + "nonce_str": nounce_str.to_s, + "sign_type": "SHA256", + "sign": sign, + "version": kbz_version, + "biz_content": { + "merch_order_id": receipt_no, + "merch_code": kbz_merch_code, + "appid": kbz_app_id + } + } + + result = HTTParty.post(kbz_provider_url, + :body => { :Request => str}.to_json, + :headers => { 'Content-Type' => 'application/json', 'Accept' => 'application/json' } + ) + Rails.logger.info result + Rails.logger.info "........................." + if result['Response']['result'] == "SUCCESS" + if result['Response']['trade_status'] == "PAY_SUCCESS" + merch_order_id = result['Response']['merch_order_id'] + cash = result['Response']['total_amount'] + + sp = SalePayment.find(merch_order_id) + if !sp.nil? + if sp.payment_status == 'pending' + saleObj = Sale.find(sp.sale_id) + if sp.process_payment(saleObj, current_user, cash, KbzPay::KBZ_PAY) + amount = cash + end + end + end + + # return true, "successfully paid by KBZ PAY" + elsif result['Response']['trade_status'] == "PAY_FAILED" + + # return false, "pay failed by KBZ PAY" + elsif result['Response']['trade_status'] == "WAIT_PAY" + # return false , "Waiting to pay by KBZ PAY" + end + else + #FAIL result + # return false, "pay by KBZ PAY has failed" + end + + return amount + end + +end \ No newline at end of file diff --git a/app/models/payment.rb b/app/models/payment.rb new file mode 100644 index 00000000..8635cbdb --- /dev/null +++ b/app/models/payment.rb @@ -0,0 +1,6 @@ +class Payment + + # def self.pay(getCloudDomain, cash, sale_id, member_info, type, tax_type, path, latest_order_no, shop_detail, current_user, pay_from, sale_payment_id) + + # end +end \ No newline at end of file diff --git a/app/models/sale.rb b/app/models/sale.rb index b6f98b2a..779c21c6 100644 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -921,6 +921,7 @@ def self.daily_sales_list(from,to) AND DATE_FORMAT(CONVERT_TZ(s.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') = DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d')" payments_total = Sale.select("CAST((CONVERT_TZ(sales.receipt_date,'+00:00','+06:30')) AS DATE) as sale_date, + SUM(case when (sale_payments.payment_method='KBZPay') then sale_payments.payment_amount else 0 end) as kbzpay_amount, SUM(case when (sale_payments.payment_method='mpu') then sale_payments.payment_amount else 0 end) as mpu_amount, SUM(case when (sale_payments.payment_method='master') then sale_payments.payment_amount else 0 end) as master_amount, SUM(case when (sale_payments.payment_method='visa') then sale_payments.payment_amount else 0 end) as visa_amount, @@ -970,6 +971,7 @@ def self.daily_sales_list(from,to) :paypar_amount => pay.paypar_amount, :unionpay_amount => pay.unionpay_amount, :alipay_amount => pay.alipay_amount, + :kbzpay_amount => pay.kbzpay_amount, :paymal_amount => pay.paymal_amount, :dinga_amount => pay.dinga_amount, :junctionpay_amount => pay.junctionpay_amount, @@ -1453,6 +1455,7 @@ def self.get_payment_method_by_shift(shift_sale_range,shift,from,to,payment_type SUM(case when (sale_payments.payment_method='paypar') then sale_payments.payment_amount else 0 end) as paypar_amount, SUM(case when (sale_payments.payment_method='unionpay') then sale_payments.payment_amount else 0 end) as unionpay_amount, SUM(case when (sale_payments.payment_method='alipay') then sale_payments.payment_amount else 0 end) as alipay_amount, + SUM(case when (sale_payments.payment_method='KBZPay') then sale_payments.payment_amount else 0 end) as kbzpay_amount, SUM(case when (sale_payments.payment_method='paymal') then sale_payments.payment_amount else 0 end) as paymal_amount, SUM(case when (sale_payments.payment_method='dinga') then sale_payments.payment_amount else 0 end) as dinga_amount, SUM(case when (sale_payments.payment_method='JunctionPay') then sale_payments.payment_amount else 0 end) as junctionpay_amount, diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index 1cfb53f3..d0943cab 100755 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -29,6 +29,37 @@ class SalePayment < ApplicationRecord end end + def self.get_kbz_pay_amount(sale_id, current_user) + amount = 0 + sale_payment = SalePayment.where('sale_id=? and payment_status!=?', sale_id, 'dead').last + if !sale_payment.nil? + if sale_payment.payment_status == 'pending' + amount = KbzPay.query(sale_payment.id, current_user) + elsif sale_payment.payment_status == 'paid' + amount = sale_payment.payment_amount + end + end + + return amount + end + + def process_kbz_payment(sale_id, grand_total, pay_amount, status) + if status == 'pending' + SalePayment.where("sale_id=? and payment_method=? and payment_status=?", sale_id, KbzPay::KBZ_PAY, 'pending').update_all(:payment_status => 'dead') + end + + self.sale_id = sale_id + self.payment_method = KbzPay::KBZ_PAY + self.payment_amount = self.payment_amount.to_i + pay_amount.to_i + if grand_total > 0 + self.outstanding_amount = grand_total.to_i - pay_amount.to_i + else + self.outstanding_amount = self.outstanding_amount.to_i - pay_amount.to_i + end + self.payment_status = status + return self.save + end + def process_payment(invoice, action_by, cash_amount, payment_method,remark=nil,payment_for=false) self.sale = invoice self.received_amount = cash_amount @@ -90,8 +121,8 @@ class SalePayment < ApplicationRecord payment_status,membership_data = dinga_payment when "GiftVoucher" payment_status = giftvoucher_payment - when "KbzPay" - payment_status = giftvoucher_payment + when KbzPay::KBZ_PAY + payment_status = kbz_payment else puts "it was something else" end @@ -346,6 +377,7 @@ class SalePayment < ApplicationRecord end payment_status = false + self.payment_method = "cash" self.payment_amount = self.received_amount if !payment_for @@ -354,8 +386,10 @@ class SalePayment < ApplicationRecord credit_sale_payment = SalePayment.get_credit_total_left(self.sale_id)[0] ? SalePayment.get_credit_total_left(self.sale_id)[0].payment_amount.to_f : 0 ###need to calculate creditnote total in here self.outstanding_amount = credit_sale_payment - self.received_amount.to_f end + self.payment_status = "paid" payment_status = self.save! + if !payment_for sale_update_payment_status(self.received_amount,status) end @@ -586,11 +620,13 @@ class SalePayment < ApplicationRecord def kbz_payment payment_status = false - status, response = KbzPay.pay(amount, receipt_no) - if status - payment_status = true - return - end + self.payment_amount = self.received_amount + 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_status = self.save! + sale_update_payment_status(self.received_amount) + return payment_status end def sale_update_payment_status(paid_amount,check_foc = false) @@ -602,6 +638,7 @@ class SalePayment < ApplicationRecord sObj = Sale.find(self.sale_id) is_credit = 0 is_foc = 0 + is_kbz_pay = 0 method_status = false sObj.sale_payments.each do |spay| all_received_amount += spay.payment_amount.to_f @@ -611,7 +648,10 @@ class SalePayment < ApplicationRecord if spay.payment_method == "foc" is_foc = 1 end - if spay.payment_method == "cash" || spay.payment_method == "foc" || spay.payment_method == "creditnote" + if spay.payment_method == KbzPay::KBZ_PAY + is_kbz_pay = 1 + end + if spay.payment_method == "cash" || spay.payment_method == "foc" || spay.payment_method == "creditnote" || spay.payment_method == 'kbzpay' method_status = true end end @@ -629,6 +669,10 @@ class SalePayment < ApplicationRecord self.sale.payment_status = "foc" end + if is_kbz_pay > 0 + self.sale.payment_status = 'paid' + end + self.sale.sale_status = "completed" if MembershipSetting.find_by_rebate(1) && is_foc == 0 && is_credit == 0 diff --git a/app/pdf/receipt_bill_pdf.rb b/app/pdf/receipt_bill_pdf.rb index 445a3f84..9a1b64e5 100755 --- a/app/pdf/receipt_bill_pdf.rb +++ b/app/pdf/receipt_bill_pdf.rb @@ -689,9 +689,9 @@ class ReceiptBillPdf < Prawn::Document if status == 'Frt' move_down line_move move_down line_move - text "KBZ Pay", :size => self.header_font_size+2, :align => :center + text "Scan to pay with KBZ Pay", :size => self.header_font_size, :align => :center move_down line_move - print_qr_code(qr_code, pos: [30, cursor], extent: 160, stroke: false, dot: 1000) + print_qr_code(qr_code, pos: [39, cursor], extent: 161, stroke: false, dot: 1000) # stroke_horizontal_rule move_down line_move end diff --git a/app/views/origami/home/show.html.erb b/app/views/origami/home/show.html.erb index eff2812b..03fe1943 100755 --- a/app/views/origami/home/show.html.erb +++ b/app/views/origami/home/show.html.erb @@ -540,6 +540,8 @@ + + @@ -1072,6 +1074,24 @@ } }); + // $('#kbz_query').on('click', function(){ + // var sale_id = $('#sale_id').val(); + // var dining_id = "<%= @dining.id %>"; + // // window.location.href = '/origami/payment/kbz_query/'+ sale_id; + // $.ajax({ + // type: 'POST', + // data: 'table_id='+dining_id, + // url: '/origami/payment/kbz_query/'+sale_id, + // success: function(result){ + // if (result.status == true) { + // window.location.href = '/origami'; + // }else{ + // location.reload() + // } + // } + // }) + // }) + // Bill Request $('#request_bills').click(function () { var order_id = $('#save_order_id').attr('data-order'); diff --git a/app/views/origami/payments/show.html.erb b/app/views/origami/payments/show.html.erb index 6c86805b..ab62eb7e 100755 --- a/app/views/origami/payments/show.html.erb +++ b/app/views/origami/payments/show.html.erb @@ -201,7 +201,14 @@ <% else %> <% end %> - <% if @other == 0.0 && @ppamount == 0.0 && @visacount == 0.0 && @jcbcount == 0.0 && @mastercount == 0.0 && @unionpaycount == 0.0 && @alipaycount == 0.0 && @paymalcount == 0.0 && @junctionpaycount == 0.0 && @dingacount == 0.0 && @giftvouchercount == 0.0 %> + <% if @kbz_pay_amount > 0.0 %> +
+
Other Payments (KBZ Pay)
+
+ <%= number_with_precision(@kbz_pay_amount, precision: precision.to_i) rescue number_with_precision(0, precision: precision.to_i) %> +
+
+ <% elsif @other == 0.0 && @ppamount == 0.0 && @visacount == 0.0 && @jcbcount == 0.0 && @mastercount == 0.0 && @unionpaycount == 0.0 && @alipaycount == 0.0 && @paymalcount == 0.0 && @junctionpaycount == 0.0 && @dingacount == 0.0 && @giftvouchercount == 0.0 %>
Other Payments
@@ -400,6 +407,10 @@ + <% if current_login_employee.role == "cashier" %> @@ -782,6 +793,10 @@ $(document).ready(function(){ }); + $("#refresh").on('click', function(){ + window.location.reload(); + }) + if(localStorage.getItem("cash") == null || localStorage.getItem("cash") == 'null'){ } @@ -867,6 +882,11 @@ $(document).ready(function(){ var cash = $('#cash').text(); var credit = $('#credit').text(); var card = $('#card').text(); + var kbz_amt = "<%= @kbz_pay_amount %>"; + var is_kbz = false; + if (kbz_amt > 0) { + is_kbz = true + } var tax_type = localStorage.getItem("tax_type") ? localStorage.getItem("tax_type") : 'all'; if (credit <= 0 && (!location.pathname.includes("credit_payment"))) { @@ -884,7 +904,7 @@ $(document).ready(function(){ $.ajax({type: "POST", url: url, - data: "cash="+ cash + "&sale_id=" + sale_id + "&type=" + cashier_type + "&tax_type=" + tax_type, + data: "cash="+ cash + "&sale_id=" + sale_id + "&type=" + cashier_type + "&tax_type=" + tax_type + "&is_kbz=" + is_kbz, success:function(result){ /* start delete receipt no in first bill*/ if(($("#receipt_no").html()!=undefined) && ($("#receipt_no").html()!="")){ diff --git a/app/views/reports/dailysale/index.html.erb b/app/views/reports/dailysale/index.html.erb index d72be97c..5f7e35e0 100755 --- a/app/views/reports/dailysale/index.html.erb +++ b/app/views/reports/dailysale/index.html.erb @@ -45,6 +45,9 @@ <% if @payment_methods.include? ("UNIONPAY") %> <%= t("views.right_panel.detail.unionpay_sales") %> <% end %> + <% if @payment_methods.include? ("KBZPay") %> + <%= t("views.right_panel.detail.kbzpay_sales") %> + <% end %> <% if @payment_methods.include? ("Alipay") %> <%= t("views.right_panel.detail.alipay_sales") %> <% end %> @@ -104,6 +107,7 @@ <% credit = 0 %> <% foc = 0 %> <% discount = 0 %> + <% kbzpay = 0 %> <% total = 0 %> <% grand_total = 0 %> <% old_grand_total = 0 %> @@ -125,6 +129,7 @@ <% credit += sale[:credit_amount] %> <% foc += sale[:foc_amount] %> <% discount += sale[:total_discount] %> + <% kbzpay += sale[:kbzpay_amount] %> <% total += sale[:grand_total].to_f + sale[:rounding_adj].to_f %> <% grand_total += sale[:grand_total].to_f %> <% old_grand_total += sale[:old_grand_total].to_f %> @@ -151,6 +156,9 @@ <% if @payment_methods.include? ("Alipay") %> <%= number_with_precision(sale[:alipay_amount], precision:precision.to_i,delimiter:delimiter) rescue '-'%> <% end %> + <% if @payment_methods.include? ("KBZPay") %> + <%= number_with_precision(sale[:kbzpay_amount], precision:precision.to_i,delimiter:delimiter) rescue '-'%> + <% end %> <% if @payment_methods.include? ("PAYMAL") %> <%= number_with_precision(sale[:paymal_amount], precision:precision.to_i,delimiter:delimiter) rescue '-'%> <% end %> @@ -216,6 +224,12 @@ <% end %> <%= number_with_precision(alipay, precision:precision.to_i,delimiter:delimiter) rescue '-'%> <% end %> + <% if @payment_methods.include? ("KBZPay") %> + <% if !request.user_agent.include? "Mobile" %> + <% colspan += 1 %> + <% end %> + <%= number_with_precision(kbzpay, precision:precision.to_i,delimiter:delimiter) rescue '-'%> + <% end %> <% if @payment_methods.include? ("PAYMAL") %> <% if !request.user_agent.include? "Mobile" %> <% colspan += 1 %> diff --git a/app/views/reports/dailysale/index.xls.erb b/app/views/reports/dailysale/index.xls.erb index d441e48e..45e0264d 100755 --- a/app/views/reports/dailysale/index.xls.erb +++ b/app/views/reports/dailysale/index.xls.erb @@ -33,6 +33,9 @@ <% if @payment_methods.include? ("UNIONPAY") %> <%= t("views.right_panel.detail.unionpay_sales") %> <% end %> + <% if @payment_methods.include? ("KBZPay") %> + <%= t("views.right_panel.detail.kbzpay_sales") %> + <% end %> <% if @payment_methods.include? ("Alipay") %> <%= t("views.right_panel.detail.alipay_sales") %> <% end %> @@ -92,6 +95,7 @@ <% credit = 0 %> <% foc = 0 %> <% discount = 0 %> + <% kbzpay = 0 %> <% total = 0 %> <% grand_total = 0 %> <% old_grand_total = 0 %> @@ -113,6 +117,7 @@ <% credit += sale[:credit_amount] %> <% foc += sale[:foc_amount] %> <% discount += sale[:total_discount] %> + <% kbzpay += sale[:kbzpay_amount] %> <% total += sale[:grand_total].to_f + sale[:rounding_adj].to_f %> <% grand_total += sale[:grand_total].to_f %> <% old_grand_total += sale[:old_grand_total].to_f %> @@ -139,6 +144,9 @@ <% if @payment_methods.include? ("Alipay") %> <%= number_with_delimiter(sprintf("%.2f",sale[:alipay_amount]),delimiter => ',') rescue '-'%> <% end %> + <% if @payment_methods.include? ("KBZPay") %> + <%= number_with_precision(sale[:kbzpay_amount], precision:precision.to_i,delimiter:delimiter) rescue '-'%> + <% end %> <% if @payment_methods.include? ("PAYMAL") %> <%= number_with_delimiter(sprintf("%.2f",sale[:paymal_amount]),delimiter => ',') rescue '-'%> <% end %> @@ -192,6 +200,10 @@ <% colspan += 1 %> <%= number_with_delimiter(sprintf("%.2f",alipay),delimiter => ',') rescue '-'%> <% end %> + <% if @payment_methods.include? ("KBZPay") %> + <% colspan += 1 %> + <%= number_with_delimiter(sprintf("%.2f",kbzpay),delimiter => ',') rescue '-'%> + <% end %> <% if @payment_methods.include? ("PAYMAL") %> <% colspan += 1 %> <%= number_with_delimiter(sprintf("%.2f",paymal),delimiter => ',') rescue '-'%> diff --git a/app/views/reports/payment_method/index.html.erb b/app/views/reports/payment_method/index.html.erb index f805bd08..8dd47a94 100755 --- a/app/views/reports/payment_method/index.html.erb +++ b/app/views/reports/payment_method/index.html.erb @@ -46,7 +46,8 @@ <%= t("views.right_panel.detail.jcb_sales") %> <%= t("views.right_panel.detail.unionpay_sales") %> <%= t("views.right_panel.detail.alipay_sales") %> - <%= t("views.right_panel.detail.paymal_sales") %> + <%= t("views.right_panel.detail.kbzpay_sales") %> + <%= t("views.right_panel.detail.dinga_sales") %> <%= t("views.right_panel.detail.junctionpay_sales") %> <%= t("views.right_panel.detail.redeem_sales") %> @@ -78,7 +79,8 @@ <%= number_with_precision(sale[:jcb_amount], precision: precision.to_i ,delimiter: delimiter) rescue '-' %> <%= number_with_precision(sale[:unionpay_amount], precision: precision.to_i ,delimiter: delimiter) rescue '-' %> <%= number_with_precision(sale[:alipay_amount], precision: precision.to_i ,delimiter: delimiter) rescue '-' %> - <%= number_with_precision(sale[:paymal_amount], precision: precision.to_i ,delimiter: delimiter) rescue '-' %> + <%= number_with_precision(sale[:kbzpay_amount], precision: precision.to_i ,delimiter: delimiter) rescue '-' %> + <%= number_with_precision(sale[:dinga_amount], precision: precision.to_i ,delimiter: delimiter) rescue '-' %> <%= number_with_precision(sale[:junctionpay_amount], precision: precision.to_i ,delimiter: delimiter) rescue '-' %> <%= number_with_precision(sale[:paypar_amount], precision: precision.to_i ,delimiter: delimiter) rescue '-' %> diff --git a/app/views/reports/payment_method/index.xls.erb b/app/views/reports/payment_method/index.xls.erb index 047df5f9..723a9ffd 100755 --- a/app/views/reports/payment_method/index.xls.erb +++ b/app/views/reports/payment_method/index.xls.erb @@ -33,7 +33,8 @@ <%= t("views.right_panel.detail.jcb_sales") %> <%= t("views.right_panel.detail.unionpay_sales") %> <%= t("views.right_panel.detail.alipay_sales") %> - <%= t("views.right_panel.detail.paymal_sales") %> + <%= t("views.right_panel.detail.kbzpay_sales") %> + <%= t("views.right_panel.detail.dinga_sales") %> <%= t("views.right_panel.detail.junctionpay_sales") %> <%= t("views.right_panel.detail.redeem_sales") %> @@ -65,7 +66,8 @@ <%= number_with_precision(sale[:jcb_amount], precision: precision.to_i ,delimiter: delimiter) rescue '-' %> <%= number_with_precision(sale[:unionpay_amount], precision: precision.to_i ,delimiter: delimiter) rescue '-' %> <%= number_with_precision(sale[:alipay_amount], precision: precision.to_i ,delimiter: delimiter) rescue '-' %> - <%= number_with_precision(sale[:paymal_amount], precision: precision.to_i ,delimiter: delimiter) rescue '-' %> + <%= number_with_precision(sale[:kbzpay_amount], precision: precision.to_i ,delimiter: delimiter) rescue '-' %> + <%= number_with_precision(sale[:dinga_amount], precision: precision.to_i ,delimiter: delimiter) rescue '-' %> <%= number_with_precision(sale[:junctionpay_amount], precision: precision.to_i ,delimiter: delimiter) rescue '-' %> <%= number_with_precision(sale[:paypar_amount], precision: precision.to_i ,delimiter: delimiter) rescue '-' %> diff --git a/config/routes.rb b/config/routes.rb index 797d7c98..fa085c5a 100755 --- a/config/routes.rb +++ b/config/routes.rb @@ -221,6 +221,7 @@ scope "(:locale)", locale: /en|mm/ do post 'payment/:type/foc' => 'payments#foc', :defaults => {:format => 'json'} post 'payment/cash' => 'payments#create' + # post 'payment/kbz_query/:sale_id' => 'payments#kbz_query', :defaults => {:format => 'json'} post 'payment/mpu' => "mpu#create" post 'payment/jcb' => "jcb#create" post 'payment/master' => "master#create" diff --git a/dump.rdb b/dump.rdb index c2a99dc8ef9aeb33b85311b8d7bddd8533bb13c6..81aade48f1e5b2e3f3331e0ea90c86399ad78d74 100644 GIT binary patch delta 1359 zcmbW1Pi)&{7{=`+wwp9bOUgPD3jJ!fg^9TJpV)QG&=Oh=Iz(Byq7k|Fm)4NPt?g_I zqcmt!Cvl+b%&0UWO=Bu2B+w}AH0Dxu;szJ~NL<3Wae^JFv_*r@4hT4a1c&GJety5- z_q?y4_g9ZzIe+vV$NUga9lz7lu%XV>VC}P?_8h|Q#8tDxELc#j%~qj@-NWu49O&HI z-JNvX#6vM&^d>sLByTLPy5AF-gvfB>*5_D9cxH$?=N`t>QBLqif&*)>XJVY_g*q31 z{OH->G$k^uytR(GI5`;OB@gRF-%Z^JO0>ubtaljewH?(_DymV1y7xFiSkSSW;q6ks z^pbly^v*H{5?o&5B#s~DcwUxeFdVZi(<;}XZL4#|SB59dMpdt89Z)gqI+!r)wlP<) z!MX!Z8qPe(h7CRY1lR%1R-ujk9M>G<1biN9rll)Ni=w7Y=ZM)rU*@pNNW6`o@is_7 z;8{)*FBABIvIcU+o8XhuAZE02wvB&`i!!*5Elnk#wl7S6Q`#;G0qThR2Hr%taUWL{ z#nEw*74yaaM|-nNdmGmr@D=q>vFwFf&*wBBRo32_UgXVGt}7`3P%bd zg^?mi1QLnl*LskmNHL^dq&QLnDT&mF)Q@!EwHYcky-bWVXqDZ2u#FZP-l@BNiJ5bcl*twPD1lSIq6=wc^h3DSF3+|>G9z#v79zWk!>R7m9KY7xH2><1 h`y6>-{n*)5*1bgzq{dN*`C*0qI(@q@w7UD$=5G+awx$38 delta 1000 zcmbu8OK1~87{_-vnQhY4whp%RrP)%^`q;YfM?u(7^iZju1-0E~CmKkyb(0)KN()j_ zu+XNfEcDdctKbXq*sT>j2%=U{yx5b1h*}ZR8XuF?`nY)U@MC5^m~Vdk`DT8)_wr=# z6wfZ-sX4wD%4dsHcKDx?#Q-F=6;ywV;IwF$InYr$SnM@(em%Wv7xFxKzoW=^ePgjm!Ujc@_ z@;%vGiDm?WD>T+gfhug_u*u!CuO{4 ztbrc?D|OiJ8_)EB|FT$-6kg+_Xy|!rI}YZ`YOW}kXg>10K2`%1=#Geq7Ob`Pw<$4t+gb8D+F%e7+W)r3sQ-`U?Y`!Ja@W@C& zV@2;l0k)95I|QP8sqm0v$MN*y2V3H{g@lwj*sTc?*DaZGNr>}`Y4NCZJ+=6>xY|l9 vEGPL5#n(GQ={_qSDz0v8RDDF$R({$>D{Ju> Date: Wed, 26 Jun 2019 12:05:37 +0630 Subject: [PATCH 10/14] kbzpay --- app/controllers/origami/payments_controller.rb | 5 ++--- app/models/sale_payment.rb | 9 +++++++-- config/puma.rb | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index 4224629b..1311ef7c 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -102,7 +102,6 @@ class Origami::PaymentsController < BaseOrigamiController printer = Printer::ReceiptPrinter.new(print_settings) - #TODO :: KBZPAY ( QR ) # On/Off setting ( show or not qr ) # qrCode = "00020101021202021110500346KBZ005ab0ed5c1ed09d1c4585ff1313170389160831435294600062000040732kp1e78f7efddca190042638341afb88d50200006KBZPay0106KBZPay5303MMK5802MM62170813PAY_BY_QRCODE64060002my6304FBBD" @@ -169,8 +168,8 @@ class Origami::PaymentsController < BaseOrigamiController # salePayment = SalePayment.find(sale_payment_id) # salePayment.process_kbz_payment(salePayment.sale_id, sale_data.grand_total, cash, 'paid') # else - # sp = SalePayment.where('sale_id=? and payment_method=? and payment_status=?', sale_id, 'kbzpay', 'paid').last - if sp.nil? #is_kbz + sp = SalePayment.where('sale_id=? and payment_method=? and payment_status=?', sale_id, 'kbzpay', 'paid').last + if is_kbz == 'false' Rails.logger.info '################ CASH PAYMENT #################' sale_payment = SalePayment.new if path.include? ("credit_payment") diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index d0943cab..21e8fda6 100755 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -31,7 +31,7 @@ class SalePayment < ApplicationRecord def self.get_kbz_pay_amount(sale_id, current_user) amount = 0 - sale_payment = SalePayment.where('sale_id=? and payment_status!=?', sale_id, 'dead').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.payment_status == 'pending' amount = KbzPay.query(sale_payment.id, current_user) @@ -631,6 +631,7 @@ class SalePayment < ApplicationRecord def sale_update_payment_status(paid_amount,check_foc = false) #update amount_outstanding + Rails.logger.info '####### SALE UPDATE PAYMENT STATUS #######' self.sale.amount_received = self.sale.amount_received.to_f + paid_amount.to_f self.sale.save! self.sale.amount_changed = self.sale.amount_received.to_f - self.sale.grand_total.to_f @@ -656,6 +657,10 @@ class SalePayment < ApplicationRecord end end + Rails.logger.info self.sale.grand_total + Rails.logger.info all_received_amount + Rails.logger.info '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@' + if (self.sale.grand_total <= all_received_amount) && method_status if is_credit == 0 self.sale.payment_status = "paid" @@ -669,7 +674,7 @@ class SalePayment < ApplicationRecord self.sale.payment_status = "foc" end - if is_kbz_pay > 0 + if is_kbz_pay == 1 self.sale.payment_status = 'paid' end diff --git a/config/puma.rb b/config/puma.rb index a0dae8b3..fd89392f 100755 --- a/config/puma.rb +++ b/config/puma.rb @@ -1,6 +1,6 @@ application_path="#{File.expand_path("../..", __FILE__)}" directory application_path -environment ENV.fetch("RAILS_ENV") { "production" } +#environment ENV.fetch("RAILS_ENV") { "production" } environment "production" pidfile "#{application_path}/tmp/puma/pid" state_path "#{application_path}/tmp/puma/state" From 2e306a6339b0820c0e7c96147a73cd80e6100a11 Mon Sep 17 00:00:00 2001 From: Zoey Date: Wed, 26 Jun 2019 12:18:17 +0630 Subject: [PATCH 11/14] kbz pay fixed --- .../origami/payments_controller.rb | 2 +- app/models/sale_payment.rb | 7 +------ config/initializers/action_controller.rb | 10 +++++----- config/puma.rb | 20 +++++++++---------- 4 files changed, 17 insertions(+), 22 deletions(-) diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index 1311ef7c..560b43f3 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -168,7 +168,7 @@ class Origami::PaymentsController < BaseOrigamiController # salePayment = SalePayment.find(sale_payment_id) # salePayment.process_kbz_payment(salePayment.sale_id, sale_data.grand_total, cash, 'paid') # else - sp = SalePayment.where('sale_id=? and payment_method=? and payment_status=?', sale_id, 'kbzpay', 'paid').last + # sp = SalePayment.where('sale_id=? and payment_method=? and payment_status=?', sale_id, 'kbzpay', 'paid').last if is_kbz == 'false' Rails.logger.info '################ CASH PAYMENT #################' sale_payment = SalePayment.new diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index 21e8fda6..db44dd10 100755 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -631,7 +631,6 @@ class SalePayment < ApplicationRecord def sale_update_payment_status(paid_amount,check_foc = false) #update amount_outstanding - Rails.logger.info '####### SALE UPDATE PAYMENT STATUS #######' self.sale.amount_received = self.sale.amount_received.to_f + paid_amount.to_f self.sale.save! self.sale.amount_changed = self.sale.amount_received.to_f - self.sale.grand_total.to_f @@ -652,15 +651,11 @@ class SalePayment < ApplicationRecord if spay.payment_method == KbzPay::KBZ_PAY is_kbz_pay = 1 end - if spay.payment_method == "cash" || spay.payment_method == "foc" || spay.payment_method == "creditnote" || spay.payment_method == 'kbzpay' + if spay.payment_method == "cash" || spay.payment_method == "foc" || spay.payment_method == "creditnote" || spay.payment_method == KbzPay::KBZ_PAY method_status = true end end - Rails.logger.info self.sale.grand_total - Rails.logger.info all_received_amount - Rails.logger.info '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@' - if (self.sale.grand_total <= all_received_amount) && method_status if is_credit == 0 self.sale.payment_status = "paid" diff --git a/config/initializers/action_controller.rb b/config/initializers/action_controller.rb index 205c330a..85f38ec5 100644 --- a/config/initializers/action_controller.rb +++ b/config/initializers/action_controller.rb @@ -21,11 +21,11 @@ class ActionController::Base end else # check for license file - if check_license - current_license(ENV["SX_PROVISION_URL"]) - else - redirect_to activate_path - end + # if check_license + # current_license(ENV["SX_PROVISION_URL"]) + # else + # redirect_to activate_path + # end end end diff --git a/config/puma.rb b/config/puma.rb index fd89392f..6a545bed 100755 --- a/config/puma.rb +++ b/config/puma.rb @@ -1,10 +1,10 @@ -application_path="#{File.expand_path("../..", __FILE__)}" -directory application_path -#environment ENV.fetch("RAILS_ENV") { "production" } -environment "production" -pidfile "#{application_path}/tmp/puma/pid" -state_path "#{application_path}/tmp/puma/state" -stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log" -port ENV.fetch("PORT") { 62158 } -workers 2 -preload_app! +# application_path="#{File.expand_path("../..", __FILE__)}" +# directory application_path +# #environment ENV.fetch("RAILS_ENV") { "production" } +# environment "production" +# pidfile "#{application_path}/tmp/puma/pid" +# state_path "#{application_path}/tmp/puma/state" +# stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log" +# port ENV.fetch("PORT") { 62158 } +# workers 2 +# preload_app! From 52a375f2a4e15701f3a7f228232b260c0c6145ea Mon Sep 17 00:00:00 2001 From: Zoey Date: Wed, 26 Jun 2019 13:35:27 +0630 Subject: [PATCH 12/14] kbzpay payment updated --- .../origami/payments_controller.rb | 4 +++- app/models/sale_payment.rb | 7 ++++++- app/models/shift_sale.rb | 1 + app/pdf/close_cashier_pdf.rb | 10 ++++++++++ config/initializers/action_controller.rb | 10 +++++----- config/puma.rb | 20 +++++++++---------- 6 files changed, 35 insertions(+), 17 deletions(-) diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index 560b43f3..ec8a6958 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -168,7 +168,7 @@ class Origami::PaymentsController < BaseOrigamiController # salePayment = SalePayment.find(sale_payment_id) # salePayment.process_kbz_payment(salePayment.sale_id, sale_data.grand_total, cash, 'paid') # else - # sp = SalePayment.where('sale_id=? and payment_method=? and payment_status=?', sale_id, 'kbzpay', 'paid').last + sp = SalePayment.where('sale_id=? and payment_method=? and payment_status=?', sale_id, 'kbzpay', 'paid').last if is_kbz == 'false' Rails.logger.info '################ CASH PAYMENT #################' sale_payment = SalePayment.new @@ -177,6 +177,8 @@ class Origami::PaymentsController < BaseOrigamiController else sale_payment.process_payment(saleObj, current_user, cash, "cash") end + else + sp.kbz_edit_sale_payment(sp.received_amount.to_f, current_user) end # end diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index db44dd10..53d9f1cc 100755 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -177,6 +177,11 @@ class SalePayment < ApplicationRecord end + def kbz_edit_sale_payment(amt, action_by) + self.action_by = action_by + sale_update_payment_status(amt) + end + def self.get_paypar_account(url,token,membership_id,campaign_type_id,merchant_uid,auth_token) # Control for Paypar Cloud begin @@ -625,7 +630,7 @@ class SalePayment < ApplicationRecord self.outstanding_amount = self.sale.grand_total.to_f - self.received_amount.to_f self.payment_status = "paid" payment_status = self.save! - sale_update_payment_status(self.received_amount) + # sale_update_payment_status(self.received_amount) return payment_status end diff --git a/app/models/shift_sale.rb b/app/models/shift_sale.rb index 59294700..1749e1b8 100755 --- a/app/models/shift_sale.rb +++ b/app/models/shift_sale.rb @@ -157,6 +157,7 @@ class ShiftSale < ApplicationRecord SUM(case when (sale_payments.payment_method='jcb') then (sale_payments.payment_amount) else 0 end) as jcb_amount, SUM(case when (sale_payments.payment_method='unionpay') then (sale_payments.payment_amount) else 0 end) as unionpay_amount, SUM(case when (sale_payments.payment_method='alipay') then (sale_payments.payment_amount) else 0 end) as alipay_amount, + SUM(case when (sale_payments.payment_method='KBZPay') then (sale_payments.payment_amount) else 0 end) as kbzpay_amount, SUM(case when (sale_payments.payment_method='dinga') then (sale_payments.payment_amount) else 0 end) as dinga_amount, SUM(case when (sale_payments.payment_method='giftvoucher') then (sale_payments.payment_amount) else 0 end) as giftvoucher_amount, SUM(case when (sale_payments.payment_method='JunctionPay') then (sale_payments.payment_amount) else 0 end) as junctionpay_amount, diff --git a/app/pdf/close_cashier_pdf.rb b/app/pdf/close_cashier_pdf.rb index 9ff2f17a..d4564291 100755 --- a/app/pdf/close_cashier_pdf.rb +++ b/app/pdf/close_cashier_pdf.rb @@ -244,6 +244,16 @@ class CloseCashierPdf < Prawn::Document end end + if other.kbzpay_amount && other.kbzpay_amount.to_f > 0 + y_position = cursor + bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do + text "KBZ Payment :", :size => self.item_font_size, :align => :right + end + bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do + text "#{ number_with_precision(other.kbzpay_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right + end + end + if other.junctionpay_amount && other.junctionpay_amount.to_f > 0 y_position = cursor bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do diff --git a/config/initializers/action_controller.rb b/config/initializers/action_controller.rb index 85f38ec5..205c330a 100644 --- a/config/initializers/action_controller.rb +++ b/config/initializers/action_controller.rb @@ -21,11 +21,11 @@ class ActionController::Base end else # check for license file - # if check_license - # current_license(ENV["SX_PROVISION_URL"]) - # else - # redirect_to activate_path - # end + if check_license + current_license(ENV["SX_PROVISION_URL"]) + else + redirect_to activate_path + end end end diff --git a/config/puma.rb b/config/puma.rb index 6a545bed..fd89392f 100755 --- a/config/puma.rb +++ b/config/puma.rb @@ -1,10 +1,10 @@ -# application_path="#{File.expand_path("../..", __FILE__)}" -# directory application_path -# #environment ENV.fetch("RAILS_ENV") { "production" } -# environment "production" -# pidfile "#{application_path}/tmp/puma/pid" -# state_path "#{application_path}/tmp/puma/state" -# stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log" -# port ENV.fetch("PORT") { 62158 } -# workers 2 -# preload_app! +application_path="#{File.expand_path("../..", __FILE__)}" +directory application_path +#environment ENV.fetch("RAILS_ENV") { "production" } +environment "production" +pidfile "#{application_path}/tmp/puma/pid" +state_path "#{application_path}/tmp/puma/state" +stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log" +port ENV.fetch("PORT") { 62158 } +workers 2 +preload_app! From 74b758e163099dcd929686d52df6dda00757316d Mon Sep 17 00:00:00 2001 From: Zoey Date: Thu, 27 Jun 2019 10:43:30 +0630 Subject: [PATCH 13/14] KBZPay Receipt Pdf modified --- app/controllers/origami/sx queries.txt | 14 ++++++++++++++ app/pdf/receipt_bill_pdf.rb | 8 +++++--- dump.rdb | Bin 1214755 -> 1216399 bytes 3 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 app/controllers/origami/sx queries.txt diff --git a/app/controllers/origami/sx queries.txt b/app/controllers/origami/sx queries.txt new file mode 100644 index 00000000..efae4797 --- /dev/null +++ b/app/controllers/origami/sx queries.txt @@ -0,0 +1,14 @@ +truncate bookings; +truncate booking_orders; +truncate orders; +truncate order_items; +truncate assigned_order_items; +truncate sale_orders; +truncate sales; +truncate sale_items; +truncate sale_audits; +truncate sale_taxes; +truncate sale_payments; +truncate shift_sales; +update dining_facilities set status='available'; +update cashier_terminals set is_currently_login=0; diff --git a/app/pdf/receipt_bill_pdf.rb b/app/pdf/receipt_bill_pdf.rb index 9a1b64e5..451c055b 100755 --- a/app/pdf/receipt_bill_pdf.rb +++ b/app/pdf/receipt_bill_pdf.rb @@ -105,7 +105,7 @@ class ReceiptBillPdf < Prawn::Document end if kbz_pay_status - pay_by_kbzpay(printed_status, qr_code) + kbzpay_qr_generator(printed_status, qr_code) end footer(printed_status) @@ -685,14 +685,16 @@ class ReceiptBillPdf < Prawn::Document move_down line_move end - def pay_by_kbzpay(status, qr_code) + def kbzpay_qr_generator(status, qr_code) if status == 'Frt' move_down line_move move_down line_move text "Scan to pay with KBZ Pay", :size => self.header_font_size, :align => :center move_down line_move print_qr_code(qr_code, pos: [39, cursor], extent: 161, stroke: false, dot: 1000) - # stroke_horizontal_rule + move_down line_move + text "This QR code will be expired after 20 minutes.", :size => self.item_font_size, :align => :center + move_down line_move move_down line_move end end diff --git a/dump.rdb b/dump.rdb index 81aade48f1e5b2e3f3331e0ea90c86399ad78d74..715250ee5aab0a2de87fbf6aea31bbccf333d11b 100644 GIT binary patch delta 2690 zcmb`JTWs4@7{{H&PH$TZX6xE@-OgOt+AYcKmmVngOf8l?aX5SWm}O*rhH| zzieDS`(a2NnEq}xi(E{#WpjEilF*YWY`Sr$aER@$oMk#`k$0)eH%xEk6=nsELQru& zF0&oZZDqE9DZ|(}XHPVpiQN#(SHAT<3j%^HLJg^5Rh1Per~r6u8$80KaW<=uMkgyl z@A{FCz=4uhrDi=w4xDS+jt$E;Bau>*{}wBEvz5<8Pf&@qE2^HUDs`OJBq)nuO80w) z4G@gJLy4s;sASc{mtOU0VF7__y+|tH>)w0!{N{79Gch@~xAKDbiTRZvRZ<`Tt+s91 z!}BW%ywj-Uhgv0{HdS!ac+LQ;rxAN(7U?0lz6(w8Bv71pe%k?N(1L;NtR(@ zLvY~nhUtOW2c46gkK@8XvjR zXW|r&uA+8>9&ZMZS1IIntulwW!fq}IcL%w8J8+SloyS3LUmoW%IO#WWLeHmi;9>8c zqzT#?Iid6M1n>rAQ5AR*3q{!wrMRg9P%5u9hxHs65oAS>C8($H5j_=Y7exJ+g4^2Wb)}awtRmMg1*t@ew+bP5a7GUumN&j zp!9=#O0m;sk&4Z1qHc=r0zJN30IKxeGf&b;lLcYs0zGVymIQB5YN?&{9lfdaykCMy zQRTw@uiv}p^Lo>b$KLx7B#H#Zjmg}^P@O}{q#GPM2#57^9DIaBZlt*ZqWNEdI57v} zXahutq{yZYO{FO40yGT+#W5tet4CiemAn7IK^9S1g1p8navj9Zst>dxjTggEQ50ST zYyJ?fML4Yc3l2pB;wb_mzJNo4aDWI(Xb}!Grx*<>yjpl*^K`I*VIub7zrj$vl!%?y zcqV&ia;%1;nX@iNVkJSb@&7~d+#HHWYbc7KeTAV*yb2R$!qA{0@(^PzCUhLHWnvK) zihxLZ=2)~KB&%U42?$327R83kQ4|+uBC!|>@Rmo@E|CBa#RBz2%$%Yn#EXRsCvWX- zfS8QE{|`VE7a2`ATA4(0w2_EEnN0sV5f?{O@%PyjZSNonNGOtqYIm>2A&!fxPWrq? zp>2L5fOm-$)+9|KTW*d*o1#fV7|EJ~lbDO@_mC{U86!YA+Z_Ge@?IbWCA70rrE&Hfm8W1n+)itY5vAwhP%PW2GG ztObR5HN->LGyPRxW8DibHC^nRzWo|!qRe*FFQra@HvL_iNnHZ+@cm$HK068M4x~6HOY{~*pb%5Bx2}C%%!&i6 znvOU}rr54tL3G#t$v;V9v-do>Y|Hc=t9^=VIuA^-y%pAfb?c=US4xcRRLbnSO|$18 zKUUf6p(y&VYNF|6CSje4zUr(z$o6tQbDM`$ugGCpP@#gPAUBpYxd;Ty7-#q(+ZAXv ztc;PjZJaSCzy_y$kiFshc_-xx%)WdQ=a__^%3?a6&rY}$9Vh#gZLBp7AuU|9APax? z{7*k^ZXCW3%C4UZ)UWB{otme8KCi#NNwc1&-#2OHR;Jfqzl+9$G*sO6&WnfGb%aWf zbGFPbbHp;+)24=?=K5zJ`|{;&b@a4Ma91{Z`tMWxWyS9y@)G%oXd;HF_IndiGf@js kD^VNK5~8I<0it%ID~PUqP4Tm+*z)VQr@Oz{wIhAqZyXR!3jhEB delta 1070 zcmaKrPi)gx9LMd{c3R@ZrS#8AH{!a$S`7z3J9ccdiA0b69dP2*|H^ZYdb>) zRaBx9he<2tZ6Lv+0@R%c6u6Alr7A)kfD3RzTBKbNC&pouXw~jH)c|SI4j<{sdj5TX z-|zeVCa3pZJ-6>H=>LOlJMyNv=D~tkft9k2DB90 z$}Intm>ZcyB)gGOMWD{#N6*>K=wPf5osIP)f!)AnL|F@n<(4aLbB%j~Dk@U2lZbh~ z<(oyTREC9M2Ti-scSoBRa_QVRXo&1bH1%CF4$>OXfSdxdtm`_TT<5xud$a;Q&-yBR z0$rj$ZeHX^$BjDiCwf3_%CL2EBA8(mMV5f3UZ%;THoq-Oyq~^!mRrav4Z&XYYvkl6HWXAQBdrjIt|0IeYQ$5-Qe|3DO zNlD8pKVea!;wRZfLLP4o6}Q)kSw@p|Ev<~*x&F(SYm#Qp#~x>rO`#mWg-J<44d=wrtRc1d9q$YQ(DDi@_6ipu^;ROPy8Rg^Npl+}SQ#J5kq=t2);%v8Re%ZQRL zN^(Fh+XsJ}ZCs^PQPz-V?c&o$HvbM3-i;F<NR_HZXCZq# zyO=yFeC>FC)v7?j6l@2HiS@!p%NNW>p|qwcASD4+&luV^VYpP_KWN6%=vbngi`!1s zuDLF(+M|Lgqce$}@%I`M#?THHugb-jHx9f_T5lx%JIAALasc(RJ(RNl!{|BoBMKfmcGGWqxJ*?#~t6HC(o From 29ef6c17f910e846500d77b9f91268cb710b3a64 Mon Sep 17 00:00:00 2001 From: Zoey Date: Thu, 27 Jun 2019 10:52:25 +0630 Subject: [PATCH 14/14] before pull --- app/controllers/origami/sx queries.txt | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 app/controllers/origami/sx queries.txt diff --git a/app/controllers/origami/sx queries.txt b/app/controllers/origami/sx queries.txt deleted file mode 100644 index efae4797..00000000 --- a/app/controllers/origami/sx queries.txt +++ /dev/null @@ -1,14 +0,0 @@ -truncate bookings; -truncate booking_orders; -truncate orders; -truncate order_items; -truncate assigned_order_items; -truncate sale_orders; -truncate sales; -truncate sale_items; -truncate sale_audits; -truncate sale_taxes; -truncate sale_payments; -truncate shift_sales; -update dining_facilities set status='available'; -update cashier_terminals set is_currently_login=0;