From 2d2a154c17a69f640524ab27b9453ae7b919456d Mon Sep 17 00:00:00 2001 From: phyusin Date: Thu, 11 Jan 2018 11:46:05 +0630 Subject: [PATCH 1/8] check multiple other payments in receipt --- app/assets/javascripts/origami.js | 2 +- .../origami/payments_controller.rb | 24 ++++++++++--------- app/models/sale.rb | 3 +-- app/pdf/receipt_bill_pdf.rb | 22 +++++++++-------- 4 files changed, 27 insertions(+), 24 deletions(-) diff --git a/app/assets/javascripts/origami.js b/app/assets/javascripts/origami.js index 5bdbe861..64ff62ab 100755 --- a/app/assets/javascripts/origami.js +++ b/app/assets/javascripts/origami.js @@ -318,7 +318,7 @@ function resCBPay(resMsg,card_sale_trans_id,cmd_type,payment_type,bnk_bill_amoun closeOnCancel: false, allowOutsideClick: false }, function () { - window.location.href = '/origami/sale/'+ sale_id + "/payment/others_payment/MPU"; + window.location.href = '/origami/sale/'+ sale_id + "/payment/others_payment/"+payment_type.toUpperCase(); }); } } diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index 88577ac4..3c43ce0b 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -123,14 +123,15 @@ class Origami::PaymentsController < BaseOrigamiController card_data = Array.new card_sale_trans_ref_no = Sale.getCardSaleTrans(sale_id) if !card_sale_trans_ref_no.nil? - card_res_date = card_sale_trans_ref_no.res_date.strftime("%Y-%m-%d").to_s - card_res_time = card_sale_trans_ref_no.res_time.strftime("%H:%M").to_s - card_no = card_sale_trans_ref_no.pan.last(4) + card_sale_trans_ref_no.each do |cash_sale_trans| + card_res_date = cash_sale_trans.res_date.strftime("%Y-%m-%d").to_s + card_res_time = cash_sale_trans.res_time.strftime("%H:%M").to_s + card_no = cash_sale_trans.pan.last(4) card_no = card_no.rjust(19,"**** **** **** ") - card_data.push({'res_date' => card_res_date, 'res_time' => card_res_time, 'batch_no' => card_sale_trans_ref_no.batch_no, 'trace' => card_sale_trans_ref_no.trace, 'pan' => card_no, 'app' => card_sale_trans_ref_no.app, 'tid' => card_sale_trans_ref_no.terminal_id, 'app_code' => card_sale_trans_ref_no.app_code, 'ref_no' => card_sale_trans_ref_no.ref_no, 'mid' => card_sale_trans_ref_no.merchant_id}) + card_data.push({'res_date' => card_res_date, 'res_time' => card_res_time, 'batch_no' => cash_sale_trans.batch_no, 'trace' => cash_sale_trans.trace, 'pan' => card_no, 'app' => cash_sale_trans.app, 'tid' => cash_sale_trans.terminal_id, 'app_code' => cash_sale_trans.app_code, 'ref_no' => cash_sale_trans.ref_no, 'mid' => cash_sale_trans.merchant_id}) + end end - puts "card_data" - puts card_data.to_json + # get printer info print_settings=PrintSetting.find_by_unique_code(unique_code) # Calculate Food and Beverage Total @@ -257,13 +258,14 @@ class Origami::PaymentsController < BaseOrigamiController card_data = Array.new card_sale_trans_ref_no = Sale.getCardSaleTrans(sale_id) if !card_sale_trans_ref_no.nil? - card_res_date = card_sale_trans_ref_no.res_date.strftime("%Y-%m-%d").to_s - card_res_time = card_sale_trans_ref_no.res_time.strftime("%H:%M").to_s - card_no = card_sale_trans_ref_no.pan.last(4) + card_sale_trans_ref_no.each do |cash_sale_trans| + card_res_date = cash_sale_trans.res_date.strftime("%Y-%m-%d").to_s + card_res_time = cash_sale_trans.res_time.strftime("%H:%M").to_s + card_no = cash_sale_trans.pan.last(4) card_no = card_no.rjust(19,"**** **** **** ") - card_data.push({'res_date' => card_res_date, 'res_time' => card_res_time, 'batch_no' => card_sale_trans_ref_no.batch_no, 'trace' => card_sale_trans_ref_no.trace, 'pan' => card_no, 'app' => card_sale_trans_ref_no.app, 'tid' => card_sale_trans_ref_no.terminal_id, 'app_code' => card_sale_trans_ref_no.app_code, 'ref_no' => card_sale_trans_ref_no.ref_no, 'mid' => card_sale_trans_ref_no.merchant_id}) + card_data.push({'res_date' => card_res_date, 'res_time' => card_res_time, 'batch_no' => cash_sale_trans.batch_no, 'trace' => cash_sale_trans.trace, 'pan' => card_no, 'app' => cash_sale_trans.app, 'tid' => cash_sale_trans.terminal_id, 'app_code' => cash_sale_trans.app_code, 'ref_no' => cash_sale_trans.ref_no, 'mid' => cash_sale_trans.merchant_id}) + end end - # get printer info print_settings=PrintSetting.find_by_unique_code(unique_code) diff --git a/app/models/sale.rb b/app/models/sale.rb index ee55159c..e0918d5f 100755 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -1129,8 +1129,7 @@ end def self.getCardSaleTrans(sale_id) query = Sale.select("cst.res_date,cst.res_time,cst.trace,cst.pan,cst.batch_no,cst.exp_date,cst.app,cst.res_type,cst.ref_no,cst.terminal_id,cst.merchant_id,cst.app_code") .joins("JOIN card_sale_trans as cst on cst.sale_id = sales.sale_id") - .where("sales.sale_id=?",sale_id) - .first() + .where("sales.sale_id=? and status = 'Approved'",sale_id) return query end diff --git a/app/pdf/receipt_bill_pdf.rb b/app/pdf/receipt_bill_pdf.rb index ab33d6e4..8c719825 100755 --- a/app/pdf/receipt_bill_pdf.rb +++ b/app/pdf/receipt_bill_pdf.rb @@ -517,17 +517,19 @@ class ReceiptBillPdf < Prawn::Document move_down 5 y_position = cursor - if !card_data[0].nil? - if card_data[0]['app'] == 'CUP' - card_data[0]['app'] = 'UNIONPAY' - elsif card_data[0]['app'] == 'MASTERCARD' - card_data[0]['app'] = 'MASTER' + if !card_data.nil? + card_data.each do |data| + if data['app'] == 'CUP' + data['app'] = 'UNIONPAY' + elsif data['app'] == 'MASTERCARD' + data['app'] = 'MASTER' + end + text "DATE/TIME: #{data['res_date']} #{data['res_time']} ", :size => @item_font_size, :align => :left + text "BATCH NUM: #{data['batch_no']} TRACE#: #{data['trace']}",:size => @item_font_size, :align => :left + text "RREF NUM: #{data['ref_no']} APPR CODE: #{data['app_code']} ",:size => @item_font_size, :align => :left + text "TID: #{data['tid']} ",:size => @item_font_size, :align => :left + text "#{data['app']} #{data['pan']} ",:size => @item_font_size, :align => :left end - text "DATE/TIME: #{card_data[0]['res_date']} #{card_data[0]['res_time']} ", :size => @item_font_size, :align => :left - text "BATCH NUM: #{card_data[0]['batch_no']} TRACE#: #{card_data[0]['trace']}",:size => @item_font_size, :align => :left - text "RREF NUM: #{card_data[0]['ref_no']} APPR CODE: #{card_data[0]['app_code']} ",:size => @item_font_size, :align => :left - text "TID: #{card_data[0]['tid']} ",:size => @item_font_size, :align => :left - text "#{card_data[0]['app']} #{card_data[0]['pan']} ",:size => @item_font_size, :align => :left end end end From bb2c8694a5e0559716a61650040a9be1fb6920d3 Mon Sep 17 00:00:00 2001 From: phyusin Date: Thu, 11 Jan 2018 16:08:17 +0630 Subject: [PATCH 2/8] add unionpay process for payment --- .../javascripts/origami/unionpay.coffee | 3 + app/assets/stylesheets/origami/unionpay.scss | 3 + .../origami/payments_controller.rb | 5 +- .../origami/unionpay_controller.rb | 61 +++++ app/helpers/origami/unionpay_helper.rb | 2 + app/pdf/receipt_bill_pdf.rb | 10 +- app/views/origami/payments/show.html.erb | 53 ++-- .../origami/unionpay/create.json.jbuilder | 5 + app/views/origami/unionpay/index.html.erb | 247 ++++++++++++++++++ config/routes.rb | 2 + .../origami/unionpay_controller_spec.rb | 5 + spec/helpers/origami/unionpay_helper_spec.rb | 15 ++ 12 files changed, 388 insertions(+), 23 deletions(-) create mode 100644 app/assets/javascripts/origami/unionpay.coffee create mode 100644 app/assets/stylesheets/origami/unionpay.scss create mode 100644 app/controllers/origami/unionpay_controller.rb create mode 100644 app/helpers/origami/unionpay_helper.rb create mode 100755 app/views/origami/unionpay/create.json.jbuilder create mode 100755 app/views/origami/unionpay/index.html.erb create mode 100644 spec/controllers/origami/unionpay_controller_spec.rb create mode 100644 spec/helpers/origami/unionpay_helper_spec.rb diff --git a/app/assets/javascripts/origami/unionpay.coffee b/app/assets/javascripts/origami/unionpay.coffee new file mode 100644 index 00000000..24f83d18 --- /dev/null +++ b/app/assets/javascripts/origami/unionpay.coffee @@ -0,0 +1,3 @@ +# Place all the behaviors and hooks related to the matching controller here. +# All this logic will automatically be available in application.js. +# You can use CoffeeScript in this file: http://coffeescript.org/ diff --git a/app/assets/stylesheets/origami/unionpay.scss b/app/assets/stylesheets/origami/unionpay.scss new file mode 100644 index 00000000..6daa3524 --- /dev/null +++ b/app/assets/stylesheets/origami/unionpay.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the origami/unionpay controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index 3c43ce0b..8e10b0e1 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -155,6 +155,7 @@ class Origami::PaymentsController < BaseOrigamiController @visacount= 0.0 @jcbcount= 0.0 @mastercount = 0.0 + @unionpaycount = 0.0 @credit = 0.0 @sale_data = Sale.find_by_sale_id(sale_id) @balance = 0.00 @@ -216,6 +217,8 @@ class Origami::PaymentsController < BaseOrigamiController @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 == "creditnote" @credit += spay.payment_amount end @@ -272,7 +275,7 @@ class Origami::PaymentsController < BaseOrigamiController # Calculate price_by_accounts item_price_by_accounts = SaleItem.calculate_price_by_accounts(saleObj.sale_items) discount_price_by_accounts = SaleItem.get_discount_price_by_accounts(saleObj.sale_items) - + printer = Printer::ReceiptPrinter.new(print_settings) printer.print_receipt_bill(print_settings,cashier_terminal,saleObj.sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details, "Re-print",current_balance,card_data) end diff --git a/app/controllers/origami/unionpay_controller.rb b/app/controllers/origami/unionpay_controller.rb new file mode 100644 index 00000000..a3f7e6ed --- /dev/null +++ b/app/controllers/origami/unionpay_controller.rb @@ -0,0 +1,61 @@ +class Origami::UnionpayController < BaseOrigamiController + def index + @sale_id = params[:sale_id] + + # limit unionpay_amount + sale_data = Sale.find_by_sale_id(@sale_id) + total = sale_data.grand_total + @unionpaycount = 0 + others = 0 + + @shop = Shop::ShopDetail + if @shop.is_rounding_adj + new_total = Sale.get_rounding_adjustment(sale_data.grand_total) + else + new_total = sale_data.grand_total + end + @rounding_adj = new_total-sale_data.grand_total + + sale_data.sale_payments.each do |sale_payment| + if sale_payment.payment_method == "unionpay" + @unionpaycount = @unionpaycount + sale_payment.payment_amount + else + others = others + sale_payment.payment_amount + end + end + puts "unionpaycount" + puts @unionpaycount + @can_unionpay = total - @unionpaycount - others + @member_discount = MembershipSetting.find_by_discount(1) + @sub_total = sale_data.total_amount + @membership_id = sale_data.customer.membership_id + #for bank integration + @receipt_no = sale_data.receipt_no + bank_integration = Lookup.collection_of('bank_integration') + @bank_integration = 0 + if !bank_integration[0].nil? + @bank_integration = bank_integration[0][1] + end + end + + def create + cash = params[:amount] + sale_id = params[:sale_id] + if(Sale.exists?(sale_id)) + saleObj = Sale.find(sale_id) + shop_details = Shop::ShopDetail + + # rounding adjustment + if shop_details.is_rounding_adj + 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 + + saleObj = Sale.find(sale_id) + #end rounding adjustment + sale_payment = SalePayment.new + @status, @sale = sale_payment.process_payment(saleObj, @user, cash, "unionpay") + end + end +end diff --git a/app/helpers/origami/unionpay_helper.rb b/app/helpers/origami/unionpay_helper.rb new file mode 100644 index 00000000..3911575e --- /dev/null +++ b/app/helpers/origami/unionpay_helper.rb @@ -0,0 +1,2 @@ +module Origami::UnionpayHelper +end diff --git a/app/pdf/receipt_bill_pdf.rb b/app/pdf/receipt_bill_pdf.rb index 8c719825..16b1fd58 100755 --- a/app/pdf/receipt_bill_pdf.rb +++ b/app/pdf/receipt_bill_pdf.rb @@ -512,12 +512,12 @@ class ReceiptBillPdf < Prawn::Document #start card sale trans data def card_sale_data(card_data) - move_down 5 - stroke_horizontal_rule - move_down 5 + if card_data != nil && !card_data.empty? + move_down 5 + stroke_horizontal_rule + move_down 5 - y_position = cursor - if !card_data.nil? + y_position = cursor card_data.each do |data| if data['app'] == 'CUP' data['app'] = 'UNIONPAY' diff --git a/app/views/origami/payments/show.html.erb b/app/views/origami/payments/show.html.erb index 77770247..dfff29cc 100755 --- a/app/views/origami/payments/show.html.erb +++ b/app/views/origami/payments/show.html.erb @@ -182,13 +182,13 @@ <% if @visacount != 0.0 %>
-
Visa
+
VISA
<%= @visacount %>
<% else %> <% end %> @@ -210,17 +210,31 @@ <% if @mastercount != 0.0 %>
-
Master
+
MASTER
<%= @mastercount %>
<% else %> <% end %> + + <% if @unionpaycount != 0.0 %> +
+
+
UNIONPAY
+
<%= @unionpaycount %>
+
+ <% else %> + + <% end %>
Balance
<%= @sale_data.grand_total rescue 0 %>
@@ -303,7 +317,7 @@ }else if(payment_type=="Credit"){ $("#card_payment").hide(); $("#others_payment").hide(); - }else if(payment_type=="MPU"||payment_type=="VISA"||payment_type=="JCB"||payment_type=="Master"){ + }else if(payment_type=="MPU"||payment_type=="VISA"||payment_type=="JCB"||payment_type=="Master" || payment_type=="UNIONPAY"){ $("#credit_payment").hide(); } /* end check first bill or not*/ @@ -361,17 +375,18 @@ update_balance(); break; case 'nett': - var credit1 = $('#credit').text(); - var card1 = $('#others').text(); - var paypar1 = $('#ppamount').text(); - var visa1 = $('#visacount').text(); - var jcb1 = $('#jcbcount').text(); - var master1 = $('#mastercount').text(); - var othertotal = parseFloat(credit1) + parseFloat(card1) + parseFloat(paypar1) + parseFloat(visa1) + parseFloat(jcb1) + parseFloat(master1); - var total = $('#amount_due').text(); - var amt = parseFloat(total) - parseFloat(othertotal); - $('#cash').text(parseFloat(amt).toFixed(2)); - update_balance(); + var credit1 = $('#credit').text(); + var card1 = $('#others').text(); + var paypar1 = $('#ppamount').text(); + var visa1 = $('#visacount').text(); + var jcb1 = $('#jcbcount').text(); + var master1 = $('#mastercount').text(); + var unionpay1 = $('#unionpaycount').text(); + var othertotal = parseFloat(credit1) + parseFloat(card1) + parseFloat(paypar1) + parseFloat(visa1) + parseFloat(jcb1) + parseFloat(master1) + parseFloat(unionpay1); + var total = $('#amount_due').text(); + var amt = parseFloat(total) - parseFloat(othertotal); + $('#cash').text(parseFloat(amt).toFixed(2)); + update_balance(); break; } event.handled = true; @@ -412,6 +427,9 @@ else if(payment_type == "Master" && $('#mastercount').text()==0 && sub_total != 0.0){ swal("Opps","Please Pay with Master Payment","warning"); } + else if(payment_type == "UNIONPAY" && $('#unionpaycount').text()==0 && sub_total != 0.0){ + swal("Opps","Please Pay with UNIONPAY Payment","warning"); + } else if(payment_type == "Credit" && $('#credit').text()==0 && sub_total != 0.0){ swal("Opps","Please Pay with Credit Payment","warning"); }else{ @@ -515,8 +533,9 @@ var visa = $('#visacount').text(); var jcb = $('#jcbcount').text(); var master = $('#mastercount').text(); + var unionpay = $('#unionpaycount').text(); var amount_due = $('#amount_due').text(); - var total = parseFloat(cash) + parseFloat(credit) + parseFloat(card) + parseFloat(paypar) + parseFloat(visa) + parseFloat(jcb) + parseFloat(master) + var total = parseFloat(cash) + parseFloat(credit) + parseFloat(card) + parseFloat(paypar) + parseFloat(visa) + parseFloat(jcb) + parseFloat(master) + parseFloat(unionpay) var result = parseFloat(amount_due) - parseFloat(total); $('#balance').text(result.toFixed(2)); } diff --git a/app/views/origami/unionpay/create.json.jbuilder b/app/views/origami/unionpay/create.json.jbuilder new file mode 100755 index 00000000..9767a7d8 --- /dev/null +++ b/app/views/origami/unionpay/create.json.jbuilder @@ -0,0 +1,5 @@ +if(@status) + json.status @status +else + json.status false +end diff --git a/app/views/origami/unionpay/index.html.erb b/app/views/origami/unionpay/index.html.erb new file mode 100755 index 00000000..37476be9 --- /dev/null +++ b/app/views/origami/unionpay/index.html.erb @@ -0,0 +1,247 @@ +
+ + +
UNIONPAY Payment
+
+
+ + + +
+
+ <% if @bank_integration == '1' %> +
+
+ + +
+
+
+ <% end %> + +
+
+ + <%@can_unionpay = @can_unionpay +@rounding_adj%> + +
+
+
+ <% if @unionpaycount != 0 %> +
+
+ + +
+
+
+ <% end %> +
+
+ + +
+
+
+
+
+ +
0.0
+
+
+
+
+
+
+ +
+
+
+
+
+
1
+
2
+
3
+
+
+
4
+
5
+
6
+
+
+
7
+
8
+
9
+
+
+
0
+
.
+
00
+
+
+
Nett
+
Del
+
Clr
+
+
+
+
+
1000
+
3000
+
+
+
5000
+
10000
+
+
+
Pay
+
+
+
+
+
+ +
+ +
+
+
+ diff --git a/config/routes.rb b/config/routes.rb index 5f57f339..a31dcb5c 100755 --- a/config/routes.rb +++ b/config/routes.rb @@ -156,6 +156,7 @@ scope "(:locale)", locale: /en|mm/ do post 'payment/jcb' => "jcb#create" post 'payment/master' => "master#create" post 'payment/visa' => "visa#create" + post 'payment/unionpay' => "unionpay#create" post 'payment/paypar' => 'paypar_payments#create' post 'payment/credit' => 'credit_payments#create' post 'payment/voucher' => 'voucher_payments#create' @@ -166,6 +167,7 @@ scope "(:locale)", locale: /en|mm/ do get 'sale/:sale_id/payment/others_payment/VISA' => "visa#index" get 'sale/:sale_id/payment/others_payment/Master' => "master#index" get 'sale/:sale_id/payment/others_payment/JCB' => "jcb#index" + get 'sale/:sale_id/payment/others_payment/UNIONPAY' => "unionpay#index" get 'sale/:sale_id/payment/others_payment/Redeem' => "redeem_payments#index" get 'sale/:sale_id/payment/others_payment/Voucher' => "voucher#index" diff --git a/spec/controllers/origami/unionpay_controller_spec.rb b/spec/controllers/origami/unionpay_controller_spec.rb new file mode 100644 index 00000000..059b5577 --- /dev/null +++ b/spec/controllers/origami/unionpay_controller_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe Origami::UnionpayController, type: :controller do + +end diff --git a/spec/helpers/origami/unionpay_helper_spec.rb b/spec/helpers/origami/unionpay_helper_spec.rb new file mode 100644 index 00000000..5fce324c --- /dev/null +++ b/spec/helpers/origami/unionpay_helper_spec.rb @@ -0,0 +1,15 @@ +require 'rails_helper' + +# Specs in this file have access to a helper object that includes +# the Origami::UnionpayHelper. For example: +# +# describe Origami::UnionpayHelper do +# describe "string concat" do +# it "concats two strings with spaces" do +# expect(helper.concat_strings("this","that")).to eq("this that") +# end +# end +# end +RSpec.describe Origami::UnionpayHelper, type: :helper do + pending "add some examples to (or delete) #{__FILE__}" +end From 9f7ce6d4953c08cdc9f67bf4ee742448c093a7ab Mon Sep 17 00:00:00 2001 From: phyusin Date: Thu, 11 Jan 2018 17:36:40 +0630 Subject: [PATCH 3/8] check payment type --- app/assets/javascripts/origami.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/origami.js b/app/assets/javascripts/origami.js index 64ff62ab..712ce8f7 100755 --- a/app/assets/javascripts/origami.js +++ b/app/assets/javascripts/origami.js @@ -309,6 +309,9 @@ function resCBPay(resMsg,card_sale_trans_id,cmd_type,payment_type,bnk_bill_amoun } }); }else{ + if(payment_type!="master"){ + payment_type = payment_type.toUpperCase(); + } swal({ title: 'Oops', text: "Transaction is " + (jobj.STATUS).toLowerCase(), @@ -318,7 +321,7 @@ function resCBPay(resMsg,card_sale_trans_id,cmd_type,payment_type,bnk_bill_amoun closeOnCancel: false, allowOutsideClick: false }, function () { - window.location.href = '/origami/sale/'+ sale_id + "/payment/others_payment/"+payment_type.toUpperCase(); + window.location.href = '/origami/sale/'+ sale_id + "/payment/others_payment/"+payment_type; }); } } From 63991886964d8430a4a06b032b477808ffcf7e24 Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Fri, 12 Jan 2018 09:23:41 +0630 Subject: [PATCH 4/8] update customer and ability --- app/models/ability.rb | 10 +++++----- app/models/customer.rb | 8 ++++++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/models/ability.rb b/app/models/ability.rb index 02b2618f..e6cdf9c3 100755 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -104,11 +104,11 @@ class Ability can :index, :other_charge can :create, :other_charge - can :index, :discount - can :create, :discount - can :remove_discount_items, :discount - can :remove_all_discount, :discount - can :member_discount, :discount + # can :index, :discount + # can :create, :discount + # can :remove_discount_items, :discount + # can :remove_all_discount, :discount + # can :member_discount, :discount can :first_bill, :payment can :show, :payment diff --git a/app/models/customer.rb b/app/models/customer.rb index c228e3e6..949093ea 100755 --- a/app/models/customer.rb +++ b/app/models/customer.rb @@ -146,9 +146,10 @@ class Customer < ApplicationRecord if sale.customer.membership_id response = self.rebat(Sale.find(sale.sale_id)) #record an payment in sale-audit + if !response.nil? remark = "UPdate Rebate Response - #{response} for Customer #{sale.customer_id} Sale Id [#{sale.sale_id}]| pay amount -> #{sale.amount_received} " sale_audit = SaleAudit.record_paymal(sale.sale_id, remark, 1) - + end if response["status"] == true status = sale.update_attributes(rebate_status: "true") end @@ -159,8 +160,9 @@ class Customer < ApplicationRecord def self.rebat(sObj) rebate_prices,campaign_method = SaleItem.calculate_rebate_by_account(sObj.sale_items) generic_customer_id = sObj.customer.membership_id - if generic_customer_id.present? + + if generic_customer_id.present? paypar = sObj.sale_payments payparcost = 0 credit = 0 @@ -171,6 +173,7 @@ class Customer < ApplicationRecord end if pp.payment_method == "creditnote" credit = 1 + sObj.update_attributes(rebate_status: nil) end end # overall_dis = SaleItem.get_overall_discount(sObj.id) @@ -287,6 +290,7 @@ class Customer < ApplicationRecord end end else + puts "no Response" response = { "status": "no_member", "message": "Not membership"} end end From cc710a992f6571593be1c4db12afee06620ba141 Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Fri, 12 Jan 2018 14:33:30 +0630 Subject: [PATCH 5/8] update other multiple payments --- app/models/ability.rb | 1 + app/views/origami/home/show.html.erb | 10 ++++++--- .../origami/others_payments/index.html.erb | 11 +++++----- app/views/origami/payments/show.html.erb | 22 +++++++++++-------- app/views/origami/rooms/show.html.erb | 2 +- 5 files changed, 28 insertions(+), 18 deletions(-) diff --git a/app/models/ability.rb b/app/models/ability.rb index e6cdf9c3..560e0192 100755 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -96,6 +96,7 @@ class Ability can :read, Order can :update, Order can :menage, Booking + can :manage, OrderQueueStation can :read, Sale can :update, Sale can :get_customer, Customer diff --git a/app/views/origami/home/show.html.erb b/app/views/origami/home/show.html.erb index 29903480..f162be5d 100755 --- a/app/views/origami/home/show.html.erb +++ b/app/views/origami/home/show.html.erb @@ -390,7 +390,7 @@ <% if @status_sale == 'sale' %> - + @@ -419,7 +419,7 @@