ba_spree_bank_transfer 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +15 -0
- data/.rspec +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +6 -0
- data/Gemfile +19 -0
- data/LICENSE +26 -0
- data/README.md +110 -0
- data/Rakefile +15 -0
- data/Versionfile +7 -0
- data/app/assets/images/payment_details.png +0 -0
- data/app/assets/javascripts/spree/backend/spree_bank_transfer.js +0 -0
- data/app/assets/javascripts/spree/frontend/spree_bank_transfer.js.erb +37 -0
- data/app/assets/stylesheets/spree/backend/spree_bank_transfer.css +0 -0
- data/app/assets/stylesheets/spree/frontend/spree_bank_transfer.css +9 -0
- data/app/controllers/spree/admin/banks_controller.rb +13 -0
- data/app/controllers/spree/content_controller_decorator.rb +8 -0
- data/app/controllers/spree/payments_controller.rb +35 -0
- data/app/helpers/.DS_Store +0 -0
- data/app/helpers/spree/.DS_Store +0 -0
- data/app/helpers/spree/admin/banks_helper.rb +19 -0
- data/app/models/.DS_Store +0 -0
- data/app/models/spree/.DS_Store +0 -0
- data/app/models/spree/bank.rb +8 -0
- data/app/models/spree/order_decorator.rb +3 -0
- data/app/models/spree/payment_decorator.rb +40 -0
- data/app/models/spree/payment_method/bank_transfer.rb +48 -0
- data/app/overrides/add_bank_details_form_to_order_show.rb +6 -0
- data/app/overrides/add_bank_transfer_instructions_link_to_payment.rb +10 -0
- data/app/overrides/add_payment_reference_details.rb +32 -0
- data/app/overrides/filter_results_by_transaction_reference_no.rb +17 -0
- data/app/views/.DS_Store +0 -0
- data/app/views/spree/admin/banks/_form.html.erb +26 -0
- data/app/views/spree/admin/banks/edit.html.erb +14 -0
- data/app/views/spree/admin/banks/index.html.erb +48 -0
- data/app/views/spree/admin/banks/new.html.erb +17 -0
- data/app/views/spree/admin/banks/toggle_activation.js.erb +10 -0
- data/app/views/spree/admin/payments/source_forms/_banktransfer.html.erb +0 -0
- data/app/views/spree/admin/payments/source_views/_banktransfer.html.erb +0 -0
- data/app/views/spree/checkout/.DS_Store +0 -0
- data/app/views/spree/checkout/payment/_banktransfer.html.erb +16 -0
- data/app/views/spree/content/bank_transfer.html.erb +38 -0
- data/app/views/spree/orders/_bank_transfer_form.html.erb +40 -0
- data/ba_spree_bank_transfer.gemspec +39 -0
- data/bin/rails +6 -0
- data/config/locales/en.yml +25 -0
- data/config/locales/it.yml +24 -0
- data/config/locales/ja.yml +25 -0
- data/config/locales/pl.yml +24 -0
- data/config/locales/pt.yml +24 -0
- data/config/locales/th.yml +27 -0
- data/config/routes.rb +10 -0
- data/db/migrate/20130717071443_create_table_bank.rb +11 -0
- data/db/migrate/20130717125312_add_index_on_active_on_spree_bank.rb +5 -0
- data/db/migrate/20140519125402_add_bank_name_account_number_and_transaction_reference_number_to_payments.rb +7 -0
- data/db/migrate/20140530055151_add_column_deposited_on_to_spree_payments.rb +5 -0
- data/db/migrate/20140612131656_add_col_additional_details_to_banks.rb +5 -0
- data/lib/ba_spree_bank_transfer.rb +6 -0
- data/lib/generators/spree_bank_transfer/.DS_Store +0 -0
- data/lib/generators/spree_bank_transfer/install/install_generator.rb +30 -0
- data/lib/payment_details.rb +21 -0
- data/lib/spree_bank_transfer/engine.rb +40 -0
- data/lib/spree_bank_transfer/version.rb +3 -0
- data/spec/controllers/spree/admin/banks_controller_spec.rb +82 -0
- data/spec/controllers/spree/content_controller_spec.rb +16 -0
- data/spec/controllers/spree/payments_controller_spec.rb +98 -0
- data/spec/lib/payment_details_spec.rb +84 -0
- data/spec/models/spree/bank_spec.rb +19 -0
- data/spec/models/spree/payment_method/bank_transfer_spec.rb +114 -0
- data/spec/models/spree/payment_spec.rb +81 -0
- data/spec/models/spree/user_spec.rb +5 -0
- data/spec/spec_helper.rb +98 -0
- metadata +321 -0
@@ -0,0 +1,10 @@
|
|
1
|
+
<% if @success %>
|
2
|
+
$('#active-status-<%= @bank.id %>').text('<%= bank_status(@bank) %>')
|
3
|
+
<% action_class = @bank.active ? "btn-danger" : "btn-success" %>
|
4
|
+
<% btn_class = "btn " + action_class + " btn-sm" %>
|
5
|
+
<% status = @bank.active ? "active" : "inactive" %>
|
6
|
+
<% bank_id = "bank-" + @bank[:id].to_s %>
|
7
|
+
$('#toggle-status-<%= @bank.id %>').html('<%= link_to_with_icon(action_text_to_toggle_bank_status(@bank), action_to_toggle_bank_status(@bank), toggle_activation_admin_bank_path(@bank), {class: btn_class, id: bank_id, rel: status, remote: true, method: :put}) %>')
|
8
|
+
<% else %>
|
9
|
+
alert('<%= @bank.errors.full_messages.to_sentence %>')
|
10
|
+
<% end %>
|
File without changes
|
File without changes
|
Binary file
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<% if (banks = Spree::Bank.active).present? %>
|
2
|
+
<table class="table index">
|
3
|
+
<tr>
|
4
|
+
<th><%= Spree.t(:bank_name) %></th>
|
5
|
+
<th><%= Spree.t(:account_no) %></th>
|
6
|
+
<th><%= Spree.t(:additional_details) %></th>
|
7
|
+
</tr>
|
8
|
+
<% banks.each do |bank| %>
|
9
|
+
<tr>
|
10
|
+
<td><%= bank.name %></td>
|
11
|
+
<td><%= bank.account_no %></td>
|
12
|
+
<td><%= bank.additional_details %></td>
|
13
|
+
</tr>
|
14
|
+
<% end %>
|
15
|
+
</table>
|
16
|
+
<% end %>
|
@@ -0,0 +1,38 @@
|
|
1
|
+
<div class="container mt-4 pb-3">
|
2
|
+
<h1 class="text-center h2">วิธีการชำระเงินโดยวิธี "โอนเงินผ่านธนาคาร"</h3>
|
3
|
+
<h4><strong>ขั้นตอนการแจ้งชำระเงิน:</strong></h4>
|
4
|
+
<ol>
|
5
|
+
<li>ชำระเงินเต็มจำนวนตามคำสั่งซื้อ ตามบัญชีธนาคารข้างล่าง
|
6
|
+
<% if (banks = Spree::Bank.active).any? %>
|
7
|
+
<div class="w-75">
|
8
|
+
<table class="table table-bordered">
|
9
|
+
<tr class="table-active">
|
10
|
+
<th><%= Spree.t(:bank_name) %></th>
|
11
|
+
<th><%= Spree.t(:account_no) %></th>
|
12
|
+
<th><%= Spree.t(:additional_details) %></th>
|
13
|
+
</tr>
|
14
|
+
<% banks.each do |bank| %>
|
15
|
+
<tr>
|
16
|
+
<td><%= bank.name %></td>
|
17
|
+
<td><%= bank.account_no %></td>
|
18
|
+
<td><%= bank.additional_details %></td>
|
19
|
+
</tr>
|
20
|
+
<% end %>
|
21
|
+
</table>
|
22
|
+
</div>
|
23
|
+
<% end %>
|
24
|
+
</li>
|
25
|
+
<li>แนบหลักฐานการโอนเงินผ่านระบบ
|
26
|
+
<ol>
|
27
|
+
<li>ไปยัง "บัญชีของฉัน" page.</li>
|
28
|
+
<li>เลือก คำสั่งซื้อ</li>
|
29
|
+
<li>คลิก "แนบหลักฐานการชำระเงิน"</li>
|
30
|
+
<li>กรอกข้อมูล และกด ยืนยัน</li>
|
31
|
+
</ol>
|
32
|
+
</li>
|
33
|
+
</ol>
|
34
|
+
|
35
|
+
<div class="w-100">
|
36
|
+
<%= image_tag 'payment_details.png', class: "w-75 img-thumbnail" %>
|
37
|
+
</div>
|
38
|
+
</div>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<% bank_transfer_payment = @order.payments.from_bank_transfer.first %>
|
2
|
+
<% if bank_transfer_payment.present? %>
|
3
|
+
<% unless bank_transfer_payment.details_submitted? %>
|
4
|
+
<br>
|
5
|
+
<%= link_to Spree.t(:add_details), "javascript:void(0);", class: 'button add_bt_details' %>
|
6
|
+
<%= form_for bank_transfer_payment, html: { class: "bt_payment_form", style: "#{bank_transfer_payment.details_submitted? ? '' : 'display:none;'}" } do |f| %>
|
7
|
+
<div class="row mx-0 my-3">
|
8
|
+
<div class="form-group col-12 px-0">
|
9
|
+
<%= f.label Spree.t(:deposited_on), class: 'mb-0' %>
|
10
|
+
<%= f.text_field :deposited_on, disabled: bank_transfer_payment.details_submitted?, class: 'required_field form-control form-control-sm' %>
|
11
|
+
</div>
|
12
|
+
<br>
|
13
|
+
<div class="form-group col-12 px-0">
|
14
|
+
<%= f.label Spree.t(:bank_name), class: 'mb-0' %>
|
15
|
+
<%= f.select :bank_name, options_for_select(Spree::Bank.pluck(:name)), {}, {disabled: bank_transfer_payment.details_submitted?, class: 'required_field form-control form-control-sm'} %>
|
16
|
+
</div>
|
17
|
+
<br>
|
18
|
+
<div class="form-group col-12 px-0">
|
19
|
+
<%= f.label Spree.t(:receipt), class: 'mb-0' %>
|
20
|
+
<%= f.file_field :receipt, disabled: bank_transfer_payment.details_submitted?, class: 'required_field form-control-file' %>
|
21
|
+
</div>
|
22
|
+
<br>
|
23
|
+
<div class="col-12 px-0">
|
24
|
+
<% unless bank_transfer_payment.details_submitted? %>
|
25
|
+
<%= f.submit "Submit", confirm: Spree.t(:confirm_details_submit), class: "btn btn-success btn-block btn-sm" %>
|
26
|
+
<% end %>
|
27
|
+
</div>
|
28
|
+
</div>
|
29
|
+
<% end %>
|
30
|
+
<% else %>
|
31
|
+
<div class="my-3">
|
32
|
+
<p class="text-success font-weight-bold mb-0">
|
33
|
+
<i class="fas fa-check-circle"></i> <%= Spree.t(:bank_transfer_completed) %>
|
34
|
+
</p>
|
35
|
+
<p class="mb-0"><%= Spree.t(:deposited_on) %>: <%= bank_transfer_payment.deposited_on.strftime("%d/%m/%Y") %></p>
|
36
|
+
<p class="mb-0"><%= Spree.t(:bank_name) %>: <%= bank_transfer_payment.bank_name %></p>
|
37
|
+
<a href="<%= main_app.url_for(bank_transfer_payment.receipt) %>" target="_blank"><%= Spree.t(:view_receipt) %></a>
|
38
|
+
</div>
|
39
|
+
<% end %>
|
40
|
+
<% end %>
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'spree_bank_transfer/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.platform = Gem::Platform::RUBY
|
8
|
+
s.name = 'ba_spree_bank_transfer'
|
9
|
+
s.version = SpreeBankTransfer::VERSION
|
10
|
+
s.summary = 'Spree extension to create bank transfer payment method. (be agile fork)'
|
11
|
+
s.description = 'This Spree extension provides bank transfer payment method functionality. Compatible with Ruby 3.1, Rails 7.1 and Spree 4.10.'
|
12
|
+
s.required_ruby_version = '>= 3.1.4'
|
13
|
+
|
14
|
+
s.author = 'be agile Co., Ltd.'
|
15
|
+
s.email = 'develop@be-agile.jp'
|
16
|
+
s.homepage = 'https://github.com/be-agile/ba_spree_bank_transfer'
|
17
|
+
s.licenses = ['AGPL-3.0-or-later', 'BSD-3-Clause']
|
18
|
+
|
19
|
+
s.files = `git ls-files`.split("\n")
|
20
|
+
s.test_files = `git ls-files -- spec/*`.split("\n")
|
21
|
+
s.require_path = 'lib'
|
22
|
+
s.requirements << 'none'
|
23
|
+
|
24
|
+
s.add_dependency 'spree_core', '>= 4.10.0'
|
25
|
+
s.add_dependency 'spree_backend', '>= 4.8.0'
|
26
|
+
s.add_dependency 'spree_frontend', '>= 4.8.0'
|
27
|
+
s.add_dependency 'spree_extension', '>= 0.1.0'
|
28
|
+
s.add_dependency 'deface', '~> 1.0'
|
29
|
+
s.add_dependency 'jquery-rails', ' ~> 4.6.0'
|
30
|
+
s.add_dependency 'jquery-ui-rails', ' ~> 6.0.1'
|
31
|
+
|
32
|
+
s.add_development_dependency "bundler"
|
33
|
+
s.add_development_dependency "rake"
|
34
|
+
s.add_development_dependency 'sass-rails'
|
35
|
+
s.add_development_dependency 'coffee-rails'
|
36
|
+
s.add_development_dependency 'sqlite3'
|
37
|
+
s.add_development_dependency 'mysql2'
|
38
|
+
s.add_development_dependency 'pg'
|
39
|
+
end
|
data/bin/rails
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
en:
|
2
|
+
spree:
|
3
|
+
account_no: Account No
|
4
|
+
add_details: Add details
|
5
|
+
additional_details: Additional Details
|
6
|
+
back_to_banks_list: Back to Banks list
|
7
|
+
banks: Banks
|
8
|
+
bank_name: Bank Name
|
9
|
+
confirm_details_submit: Are you sure you want to Submit these details? You will not be able to Edit these details once Submitted. Press 'OK' to confirm.
|
10
|
+
deactivate: Deactivate
|
11
|
+
deposited_on: Deposited on
|
12
|
+
how_bank_transfer_works: How Bank Transfer works?
|
13
|
+
listing_banks: Listing Banks
|
14
|
+
new_bank: New Bank
|
15
|
+
only_show_orders_with_bank_transfer_payment_reference_number: Only show orders with bank transfer payment reference number
|
16
|
+
payment_not_found: Payment not found
|
17
|
+
payment_successfully_updated: Payment successfully updated
|
18
|
+
payment_reference_details: Bank Transfer Payment Reference Details
|
19
|
+
transaction_reference_no: Transaction Reference No
|
20
|
+
receipt: "Receipt"
|
21
|
+
activerecord:
|
22
|
+
models:
|
23
|
+
spree/bank:
|
24
|
+
one: Bank
|
25
|
+
other: Banks
|
@@ -0,0 +1,24 @@
|
|
1
|
+
it:
|
2
|
+
spree:
|
3
|
+
account_no: Numero Conto
|
4
|
+
add_details: Aggiungi dettagli
|
5
|
+
additional_details: Dettagli aggiuntivi
|
6
|
+
back_to_banks_list: Torna alla lista Banche
|
7
|
+
banks: Banche
|
8
|
+
bank_name: Nome Banca
|
9
|
+
confirm_details_submit: Sei sicuro di voler inserire i dettagli? Non sarà possibile modificarli successivamente. Premi 'OK' per confermare.
|
10
|
+
deactivate: Disattiva
|
11
|
+
deposited_on: Vresato il
|
12
|
+
how_bank_transfer_works: Come funziona il Bonifico Bancario?
|
13
|
+
listing_banks: Lista Banche
|
14
|
+
new_bank: Nuova Banca
|
15
|
+
only_show_orders_with_bank_transfer_payment_reference_number: Visualiza solo ordini con numero transazione bonifico
|
16
|
+
payment_not_found: Pagamento non trovato
|
17
|
+
payment_successfully_updated: Pagamento aggiornato con successo
|
18
|
+
payment_reference_details: Dettagli pagamento
|
19
|
+
transaction_reference_no: Numero transazione
|
20
|
+
activerecord:
|
21
|
+
models:
|
22
|
+
spree/bank:
|
23
|
+
one: Banca
|
24
|
+
other: Banche
|
@@ -0,0 +1,25 @@
|
|
1
|
+
ja:
|
2
|
+
spree:
|
3
|
+
account_no: 口座番号
|
4
|
+
add_details: 詳細を追加
|
5
|
+
additional_details: 追加詳細
|
6
|
+
back_to_banks_list: 銀行一覧に戻る
|
7
|
+
banks: 銀行
|
8
|
+
bank_name: 銀行名
|
9
|
+
confirm_details_submit: これらの詳細を送信してもよろしいですか?送信後は編集できなくなります。「OK」を押して確認してください。
|
10
|
+
deactivate: 無効化
|
11
|
+
deposited_on: 入金日
|
12
|
+
how_bank_transfer_works: 銀行振込について
|
13
|
+
listing_banks: 銀行一覧
|
14
|
+
new_bank: 新規銀行
|
15
|
+
only_show_orders_with_bank_transfer_payment_reference_number: 銀行振込の支払い参照番号がある注文のみ表示
|
16
|
+
payment_not_found: 支払いが見つかりません
|
17
|
+
payment_successfully_updated: 支払いが正常に更新されました
|
18
|
+
payment_reference_details: 銀行振込支払い参照詳細
|
19
|
+
transaction_reference_no: 取引参照番号
|
20
|
+
receipt: "領収書"
|
21
|
+
activerecord:
|
22
|
+
models:
|
23
|
+
spree/bank:
|
24
|
+
one: 銀行
|
25
|
+
other: 銀行
|
@@ -0,0 +1,24 @@
|
|
1
|
+
pl:
|
2
|
+
spree:
|
3
|
+
account_no: Numer konta
|
4
|
+
add_details: Szczegóły
|
5
|
+
additional_details: Dodatkowe informacje
|
6
|
+
back_to_banks_list: Wróć do listy banków
|
7
|
+
banks: Banki
|
8
|
+
bank_name: Nazwa banku
|
9
|
+
confirm_details_submit: Czy jestes pewien że chcesz dodać te informacje ? Jeśli potwierdzisz te informacje, nie będziesz upoważniony by je zmienić w czasie późniejszym. Raz dodane nie będą mogły być zmienione. Wciśnij "OK" aby potwierdzić.
|
10
|
+
deactivate: Deaktywacja
|
11
|
+
deposited_on: Depozyt
|
12
|
+
how_bank_transfer_works: Jak działa przelew bankowy ?
|
13
|
+
listing_banks: Lista banków
|
14
|
+
new_bank: Nowy bank
|
15
|
+
only_show_orders_with_bank_transfer_payment_reference_number: Pokaż tylko zlecenia z numerem referencyjnym przelewu
|
16
|
+
payment_not_found: Płatnośc nie została odnotowana
|
17
|
+
payment_successfully_updated: Płatność potwierdzona
|
18
|
+
payment_reference_details: Szczegoły przelewu bankowego
|
19
|
+
transaction_reference_no: Numer referencyjny transakcji
|
20
|
+
activerecord:
|
21
|
+
models:
|
22
|
+
spree/bank:
|
23
|
+
one: Bank
|
24
|
+
other: Banki
|
@@ -0,0 +1,24 @@
|
|
1
|
+
pt:
|
2
|
+
spree:
|
3
|
+
account_no: N.º Conta
|
4
|
+
add_details: Adicionar detalhes
|
5
|
+
additional_details: Detalhes Adicionais
|
6
|
+
back_to_banks_list: Voltar à lista de Bancos
|
7
|
+
banks: Bancos
|
8
|
+
bank_name: Nome do Banco
|
9
|
+
confirm_details_submit: Tem a certeza que pretende submeter estes detalhes? Não será possível editar estes detalhes após envio. Confirme escolhendo "OK".
|
10
|
+
deactivate: Desactivar
|
11
|
+
deposited_on: Depositado em
|
12
|
+
how_bank_transfer_works: Como funciona a Transferência Bancária?
|
13
|
+
listing_banks: A listar Bancos
|
14
|
+
new_bank: Novo Banco
|
15
|
+
only_show_orders_with_bank_transfer_payment_reference_number: Mostrar apenas encomendas pagas por Transferência Bancária
|
16
|
+
payment_not_found: Pagamento não encontrado
|
17
|
+
payment_successfully_updated: Pagamento actualizado com sucesso
|
18
|
+
payment_reference_details: Detalhes de Pagamento por Transferência Bancária
|
19
|
+
transaction_reference_no: N.º da Transacção Bancária
|
20
|
+
activerecord:
|
21
|
+
models:
|
22
|
+
spree/bank:
|
23
|
+
one: Banco
|
24
|
+
other: Bancos
|
@@ -0,0 +1,27 @@
|
|
1
|
+
en:
|
2
|
+
spree:
|
3
|
+
account_no: เลขบัญชี
|
4
|
+
add_details: แนบสลิป
|
5
|
+
additional_details: รายละเอียดเพิ่มเติม
|
6
|
+
back_to_banks_list: กลับไปยังรายการธนาคาร
|
7
|
+
banks: กลับไปยังรายการธนาคาร
|
8
|
+
bank_name: ชื่อธนาคาร
|
9
|
+
confirm_details_submit: Are you sure you want to Submit these details? You will not be able to Edit these details once Submitted. Press 'OK' to confirm.
|
10
|
+
deactivate: ปิดการใช้งาน
|
11
|
+
deposited_on: วันที่โอนเงิน
|
12
|
+
how_bank_transfer_works: วิธีการชำระเงินโดยวิธี "โอนเงินผ่านธนาคาร"
|
13
|
+
listing_banks: รายการธนาคาร
|
14
|
+
new_bank: เพิ่มธนาคาร
|
15
|
+
only_show_orders_with_bank_transfer_payment_reference_number: Only show orders with bank transfer payment reference number
|
16
|
+
payment_not_found: ไม่พบการชำระเงิน
|
17
|
+
payment_successfully_updated: แนบหลักฐานการชำระเงินสำเร็จ
|
18
|
+
payment_reference_details: Bank Transfer Payment Reference Details
|
19
|
+
transaction_reference_no: Transaction Reference No
|
20
|
+
receipt: "ใบเสร็จ"
|
21
|
+
view_receipt: "ดูใบเสร็จ"
|
22
|
+
bank_transfer_completed: แจ้งชำระเงินเรียบร้อยแล้ว
|
23
|
+
activerecord:
|
24
|
+
models:
|
25
|
+
spree/bank:
|
26
|
+
one: ธนาคาร
|
27
|
+
other: ธนาคาร
|
data/config/routes.rb
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
Spree::Core::Engine.routes.draw do
|
2
|
+
# Add your extension routes here
|
3
|
+
namespace :admin do
|
4
|
+
resources :banks, except: [:show, :destroy] do
|
5
|
+
put :toggle_activation, on: :member
|
6
|
+
end
|
7
|
+
end
|
8
|
+
resources :payments, only: :update
|
9
|
+
get '/content/bank_transfer', to: 'content#bank_transfer', as: :bank_transfer_instructions
|
10
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class CreateTableBank < SpreeExtension::Migration[4.2]
|
2
|
+
def change
|
3
|
+
create_table :spree_banks do |t|
|
4
|
+
t.string :name
|
5
|
+
t.string :account_no
|
6
|
+
t.boolean :active, default: true
|
7
|
+
t.timestamps
|
8
|
+
end
|
9
|
+
add_index :spree_banks, [:name, :account_no], unique: true
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
class AddBankNameAccountNumberAndTransactionReferenceNumberToPayments < SpreeExtension::Migration[4.2]
|
2
|
+
def change
|
3
|
+
add_column :spree_payments, :bank_name, :string
|
4
|
+
add_column :spree_payments, :account_no, :string
|
5
|
+
add_column :spree_payments, :transaction_reference_no, :string
|
6
|
+
end
|
7
|
+
end
|
Binary file
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module SpreeBankTransfer
|
2
|
+
module Generators
|
3
|
+
class InstallGenerator < Rails::Generators::Base
|
4
|
+
|
5
|
+
class_option :auto_run_migrations, type: :boolean, default: true
|
6
|
+
|
7
|
+
def add_javascripts
|
8
|
+
append_file 'vendor/assets/javascripts/spree/frontend/all.js', "\n//= require spree/frontend/spree_bank_transfer\n"
|
9
|
+
append_file 'vendor/assets/javascripts/spree/backend/all.js', "\n//= require spree/backend/spree_bank_transfer\n"
|
10
|
+
end
|
11
|
+
|
12
|
+
def add_stylesheets
|
13
|
+
inject_into_file 'vendor/assets/stylesheets/spree/frontend/all.css', " *= require spree/frontend/spree_bank_transfer\n", before: /\*\//, verbose: true
|
14
|
+
inject_into_file 'vendor/assets/stylesheets/spree/backend/all.css', " *= require spree/backend/spree_bank_transfer\n", before: /\*\//, verbose: true
|
15
|
+
end
|
16
|
+
|
17
|
+
def add_migrations
|
18
|
+
run 'bundle exec rake railties:install:migrations FROM=spree_bank_transfer'
|
19
|
+
end
|
20
|
+
|
21
|
+
def run_migrations
|
22
|
+
if options[:auto_run_migrations] || ['', 'y', 'Y'].include?(ask 'Would you like to run the migrations now? [Y/n]')
|
23
|
+
run 'bundle exec rake db:migrate'
|
24
|
+
else
|
25
|
+
puts "Skiping rake db:migrate, don't forget to run it!"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class PaymentDetails
|
2
|
+
attr_accessor :payment, :errors, :params
|
3
|
+
|
4
|
+
def initialize(payment, params)
|
5
|
+
self.payment = payment
|
6
|
+
self.params = params
|
7
|
+
self.errors = []
|
8
|
+
end
|
9
|
+
|
10
|
+
def save
|
11
|
+
if payment.details_submitted?
|
12
|
+
errors << "Payment Details can be submitted only once."
|
13
|
+
else
|
14
|
+
payment.validate_bank_details = true
|
15
|
+
unless payment.update_attributes(params)
|
16
|
+
errors << payment.errors.full_messages.to_sentence
|
17
|
+
end
|
18
|
+
end
|
19
|
+
errors.empty?
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module SpreeBankTransfer
|
2
|
+
class Engine < Rails::Engine
|
3
|
+
require 'spree/core'
|
4
|
+
isolate_namespace SpreeBankTransfer
|
5
|
+
engine_name 'spree_bank_transfer'
|
6
|
+
|
7
|
+
config.autoload_paths += %W[#{config.root}/lib]
|
8
|
+
|
9
|
+
# use rspec for tests
|
10
|
+
config.generators do |g|
|
11
|
+
g.test_framework :rspec
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.activate
|
15
|
+
Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/*_decorator*.rb')) do |c|
|
16
|
+
Rails.configuration.cache_classes ? require(c) : load(c)
|
17
|
+
end
|
18
|
+
Spree.user_class.class_eval do
|
19
|
+
has_many :payments, through: :orders
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
initializer 'spree_bank_transfer.autoloader' do |app|
|
24
|
+
if Rails.autoloaders.zeitwerk_enabled?
|
25
|
+
Rails.autoloaders.main.ignore("#{root}/app/overrides")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
config.after_initialize do
|
30
|
+
Rails.application.config.spree.payment_methods << Spree::PaymentMethod::BankTransfer
|
31
|
+
settings = Rails.application.config.spree_backend.main_menu.items.find { |item| item.key == "settings" }
|
32
|
+
settings.items << Spree::Admin::MainMenu::ItemBuilder.new('banks', Spree::Core::Engine.routes.url_helpers.admin_banks_path).
|
33
|
+
with_match_path('/banks').
|
34
|
+
with_manage_ability_check(Spree::Bank).
|
35
|
+
build
|
36
|
+
end
|
37
|
+
|
38
|
+
config.to_prepare(&method(:activate).to_proc)
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Spree::Admin::BanksController, type: :controller do
|
4
|
+
|
5
|
+
let(:role) { Spree::Role.create!(name: 'user') }
|
6
|
+
let(:roles) { [role] }
|
7
|
+
|
8
|
+
before(:each) do
|
9
|
+
@user = mock_model(Spree::User, :generate_spree_api_key! => false)
|
10
|
+
allow(@user).to receive_message_chain(:roles, :includes).and_return([])
|
11
|
+
allow(@user).to receive(:has_spree_role?).with('admin').and_return(true)
|
12
|
+
allow(controller).to receive(:spree_user_signed_in?).and_return(true)
|
13
|
+
allow(controller).to receive(:spree_current_user).and_return(@user)
|
14
|
+
allow(@user).to receive(:roles).and_return(roles)
|
15
|
+
allow(roles).to receive(:includes).with(:permissions).and_return(roles)
|
16
|
+
allow(controller).to receive(:authorize_admin).and_return(true)
|
17
|
+
allow(controller).to receive(:authorize!).and_return(true)
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "GET index" do
|
21
|
+
before(:each) do
|
22
|
+
@bank1 = mock_model(Spree::Bank)
|
23
|
+
allow(Spree::Bank).to receive(:page).and_return([@bank1])
|
24
|
+
end
|
25
|
+
|
26
|
+
def send_request
|
27
|
+
get :index
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
it "assigns @banks" do
|
34
|
+
send_request
|
35
|
+
expect(assigns(:banks)).to eq([@bank1])
|
36
|
+
end
|
37
|
+
|
38
|
+
it "paginates banks" do
|
39
|
+
expect(Spree::Bank).to receive(:page)
|
40
|
+
send_request
|
41
|
+
end
|
42
|
+
|
43
|
+
it "renders index template" do
|
44
|
+
send_request
|
45
|
+
expect(response).to render_template(:index)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe "PUT toggle_activation" do
|
50
|
+
before(:each) do
|
51
|
+
@bank = mock_model(Spree::Bank, :toggle! => true)
|
52
|
+
allow(Spree::Bank).to receive(:find).with("1").and_return(@bank)
|
53
|
+
end
|
54
|
+
|
55
|
+
def send_request
|
56
|
+
put :toggle_activation, id: "1", format: :js
|
57
|
+
end
|
58
|
+
|
59
|
+
it "toggles activation status of bank" do
|
60
|
+
expect(@bank).to receive(:toggle!).with(:active)
|
61
|
+
send_request
|
62
|
+
end
|
63
|
+
|
64
|
+
context "when activation status toggled successfully" do
|
65
|
+
it "sets @success to true" do
|
66
|
+
send_request
|
67
|
+
expect(assigns(:success)).to be true
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
context "when activation status not toggled successfully" do
|
72
|
+
before(:each) do
|
73
|
+
allow(@bank).to receive(:toggle!).and_return(false)
|
74
|
+
end
|
75
|
+
|
76
|
+
it "sets @success to false" do
|
77
|
+
send_request
|
78
|
+
expect(assigns(:success)).to be false
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Spree::ContentController, type: :controller do
|
4
|
+
before do
|
5
|
+
allow(controller).to receive(:authenticate_spree_user!).and_return(true)
|
6
|
+
@user = mock_model(Spree::User, :generate_spree_api_key! => false, last_incomplete_spree_order: nil)
|
7
|
+
allow(controller).to receive(:spree_current_user).and_return(@user)
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "GET bank_transfer" do
|
11
|
+
it "renders bank_transfer" do
|
12
|
+
get :bank_transfer
|
13
|
+
expect(response).to render_template("bank_transfer")
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|