From 569f074a4eb676512df716e1405dfdf5ae140227 Mon Sep 17 00:00:00 2001 From: Zoey Date: Wed, 3 Jul 2019 14:15:09 +0630 Subject: [PATCH 1/4] all items foc case fixed --- app/controllers/api/bill_controller.rb | 2 +- app/controllers/oqs/print_controller.rb | 4 +- .../origami/request_bills_controller.rb | 2 +- app/models/sale_item.rb | 42 +++++++++---------- 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/app/controllers/api/bill_controller.rb b/app/controllers/api/bill_controller.rb index 214e1300..1614bb1e 100755 --- a/app/controllers/api/bill_controller.rb +++ b/app/controllers/api/bill_controller.rb @@ -131,7 +131,7 @@ class Api::BillController < Api::ApiController #member_info = Customer.get_member_account(customer) # printer = Printer::ReceiptPrinter.new(print_settings) - # printer.print_receipt_bill(print_settings,@sale_items,@sale_data,customer.name, item_price_by_accounts, member_info, shop_details) + # printer.print_receipt_bill(print_settings, false, nil,@sale_items,@sale_data,customer.name, item_price_by_accounts, member_info, shop_details) end def request_bill diff --git a/app/controllers/oqs/print_controller.rb b/app/controllers/oqs/print_controller.rb index abf20018..751e1c01 100755 --- a/app/controllers/oqs/print_controller.rb +++ b/app/controllers/oqs/print_controller.rb @@ -51,7 +51,7 @@ class Oqs::PrintController < ApplicationController ai.save end - # 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) + # filename, receipt_no, cashier_printer = printer.print_receipt_bill(print_settings, false, nil,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) if ENV["SERVER_MODE"] == "cloud" result = { :filepath => filename, @@ -119,7 +119,7 @@ class Oqs::PrintController < ApplicationController ai.save end - # 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) + # filename, receipt_no, cashier_printer = printer.print_receipt_bill(print_settings, false, nil,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) if ENV["SERVER_MODE"] == "cloud" result = { :filepath => filename, diff --git a/app/controllers/origami/request_bills_controller.rb b/app/controllers/origami/request_bills_controller.rb index 422e1372..9905ebaf 100755 --- a/app/controllers/origami/request_bills_controller.rb +++ b/app/controllers/origami/request_bills_controller.rb @@ -120,7 +120,7 @@ class Origami::RequestBillsController < ApplicationController # printer = Printer::ReceiptPrinter.new(print_settings) - # printer.print_receipt_bill(print_settings,@sale_items,@sale_data,customer.name, item_price_by_accounts,member_info,shop_details) + # printer.print_receipt_bill(print_settings, false, nil,@sale_items,@sale_data,customer.name, item_price_by_accounts,member_info,shop_details) end end diff --git a/app/models/sale_item.rb b/app/models/sale_item.rb index 86e9cabc..f813f111 100755 --- a/app/models/sale_item.rb +++ b/app/models/sale_item.rb @@ -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 From 4cfd6c410351f8d9d3ceb7f9ed2d4309dfc7e2fb Mon Sep 17 00:00:00 2001 From: Zoey Date: Thu, 4 Jul 2019 09:51:13 +0630 Subject: [PATCH 2/4] prefix --- app/models/sale_order.rb | 9 ++------- dump.rdb | Bin 1214380 -> 1216332 bytes 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/app/models/sale_order.rb b/app/models/sale_order.rb index e3b86f02..7a7b6f4b 100755 --- a/app/models/sale_order.rb +++ b/app/models/sale_order.rb @@ -33,13 +33,8 @@ class SaleOrder < ApplicationRecord private def generate_sale_order_id - prefix = "SOI" - if ENV["SERVER_MODE"] == 'cloud' - prefix = "CSOI" - end - - self.class.name - saleOrderId = SeedGenerator.generate_id(self.class.name, prefix) + # self.class.name + saleOrderId = SeedGenerator.generate_id(self.class.name, "SOI") self.sale_order_id = saleOrderId end end diff --git a/dump.rdb b/dump.rdb index c2a99dc8ef9aeb33b85311b8d7bddd8533bb13c6..baa97410dc1e34d54759c7a4c147114026c81b64 100644 GIT binary patch delta 3321 zcmb`JO>A6O702h}y*F{}I;n{h8r=GI8d@WHCinZpLh86Jq%ta`DpD6!6~C`ZhT1dn zn;EHYI(m+f+65xE89`7blF2Rt)RqP*8$`!MLLk8kAz)E(BUOr66zGDgts$KEY)|UM zY8}$WS=i%yedl+7=YP*n7pH!AZfXffueC>>{cu;a9{7dXVD?w&=_9ER2b@~Da54;> zS$8Jrrv97ys4#4rVbBQY`>vF(Pd++wD(}rW^?H6H|I~cdo2t1_*TUz5Fh8Dm!sGV- z;b)#5&nJJMpJ;^5U_3w944Q#mwEUp#G-n$2Sms+5-`;Z|VrAbCJmyGNb`_RL27)<) zNZTIu-~^4pKjt*@6POEvnG%Q;5fg|qF`iEc)#-1pX6$}WCDuhIh{D7k-5rLt@Yrln zuRF&}FYIqtE7eM);>=WD2z=YCRqG9>+OSu1-38J8Yh--gnGL>DdfZ;hmYvGXYPQ;4 z%u1z*y*T|3e0+KNNE z+IKnjB~g?sjwPiu5P`Ej4TNw}2re}r&j+dM^i!*uQGh`OD@wuymN&tezZFKbN#jkR z@m3GUVh_fdtQ1<^V7%6Y(K%;Pqy!bM_kR8ET!N#tcAGe&Pqaf(f&%4IPCe}~ zthmoS9Z0?{4#{FUFe8Yt8**5jNKT8=zPEJW7BkjiMBA#dJ&f6fGZrNPR;o^qMrT8e zADNPCp<4b_;p#()8JWq)KHZFHr;S3X;>bnJ;hv_7`kZq~ahYt3LMT8%l+uiX8k>DG zzzHF`C6qF$$*x>b%%H&(!nzxCW$-f*MVSu!>*&E8CJ_ zT19|@5yr7rTN*`hRD@*H9Dz_T|0=d4+G;@*59Z;jpg>CQk!sw4Wc*|i5k((@2klvR=V|ps59V%NZE$xDL3vrMDe=JGY{Ydm+F!|`#>(*C) z93xqKV`k;gi|x0~5d*RAaQkg*-}3MK%(Ykke(8zj(+3Ttx~b(C54EpapBt0~Bnw1z zQ)^e>fB&)es(J4|!n=>A`XSmI6Y;!}RI5~P_ zp5%~%MFo!nWqLe+vJ(0E_#asauDjtJx4)dNKOY7*H=1EQGnRJ4_~myhPsP#LH!lmTTzSy1t3yP*1@c0=_; z4M5!mH3+o_YA@8?myhO#RAjDwFxdIS^6AeT0`9K;g!Qlix}f+(0~c6i-*s~FlA3z;(&+yH%R(_L delta 1454 zcma)+PiP!f9LHxjyOYgKHc2OK+C*bsMo6pfu5aeO`M3VbEFmH-DINqVS~jyYZ{phB zo$c(dP)gXS2QMb6jf6mGX>CvspUZnLh9_&p$(aF(q350yxY)jwP599a1VjZ5|qtj9@J~(wt@;;#!ST9q7@g ziVhe&j4anRuv>r@QDrFWu455oSPB3`HXXH2oV-;Rvy!4h3?fN{G78iX)=^3%mH9_E zqkxwo*3}Hup{gh*;C$cn^JO}VwP2o)G%8?mqF5mgD3f~gNzVcEcB5AJ%EZrCtTH(Y zT+auIO0kqZSuD+z%%6ZWKNJ2LJ?YKO8_cYE2#hoCWZ!1b5{Q^6*JdIgu0E=HSKG zSp%s^LyIqb@XL2EcFf7S>VGDzE6!`w^K^yzPSS{fZcicL`L4okgAcRKo%H3}3eCY0 zg}7LT$d(aSuq9yyT84of0EB%Ef>A!BC{V?^c4PP?9cOf`LR~XK#P`7~@teYT+fMkX zz~(LC16TXNUiN-(XK#buRk)o!fhxSX7B{f0ApHh`ckKyOm5#u|g7$t}AhZ8Jt+hU0 z7UJ=(kJ9Kwr!#mZ4YiQjdiDD^=C(@&a=k%0d0&h+2ot=+&$XVVjS_spjRi}5Z}1H_ z9BUUtYjs(e=Jj^ZFkAK`@4nf&+^?i%ogSbQxA$IX&fxpYwjRRzfGbOB>KmXM*DWUtri)xJ%`98tB}=Y471p>v207Kq;IPA^RjR( hxXw)p12>oA#uL$YpN=GDBV_*icJ<}CFU?=WzXA6$$%Oy_ From 931df461b5228a9263e29782bb6e3857bad7141e Mon Sep 17 00:00:00 2001 From: Zoey Date: Mon, 22 Jul 2019 13:59:06 +0630 Subject: [PATCH 3/4] kbzpay --- app/models/kbz_pay.rb | 26 +++++++++++++------------- app/models/sale_payment.rb | 5 +++-- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/app/models/kbz_pay.rb b/app/models/kbz_pay.rb index 90fbac14..15ea0e92 100644 --- a/app/models/kbz_pay.rb +++ b/app/models/kbz_pay.rb @@ -6,18 +6,16 @@ class KbzPay 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 @@ -59,18 +57,20 @@ class KbzPay end - def self.query(receipt_no, current_user) + def self.query(receipt_no, current_user, url, key, app_id, code) 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 diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index 53d9f1cc..ea9a4965 100755 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -31,10 +31,11 @@ class SalePayment < ApplicationRecord 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 From 1a11b9e2e7ded5dff75145ac68c3a9134a62e04e Mon Sep 17 00:00:00 2001 From: Zoey Date: Mon, 22 Jul 2019 15:57:33 +0630 Subject: [PATCH 4/4] kbzpay --- app/controllers/origami/payments_controller.rb | 2 +- app/models/kbz_pay.rb | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) 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/models/kbz_pay.rb b/app/models/kbz_pay.rb index 15ea0e92..5893e048 100644 --- a/app/models/kbz_pay.rb +++ b/app/models/kbz_pay.rb @@ -3,6 +3,9 @@ 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 @@ -46,18 +49,22 @@ 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, 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 = app_id @@ -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'