spree_bcash 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +4 -0
- data/Gemfile +4 -0
- data/Rakefile +1 -0
- data/app/models/spree/bcash_payment.rb +37 -0
- data/app/models/spree/order_decorator.rb +7 -0
- data/app/models/spree/payment_method/bcash_method.rb +43 -0
- data/app/overrides/replace_payment_info.rb +6 -0
- data/app/views/spree/checkout/payment/_bcashmethod.html.erb +1 -0
- data/app/views/spree/checkout/payment/_order_details_bcash.html.erb +5 -0
- data/lib/spree_bcash/engine.rb +26 -0
- data/lib/spree_bcash/version.rb +3 -0
- data/lib/spree_bcash.rb +4 -0
- data/spree_bcash.gemspec +27 -0
- metadata +98 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8bb2a4f0e510bf29d5bc57174afe0d9863843952
|
4
|
+
data.tar.gz: 29641287081589d6539779135c795c8626372a6e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 84b972831a2cc2b3ec4597b45fb0c55bde934a8835288c3d4d13ddbfaa8895f737031e362d24994a3e34ed0afbff4bcf860f7dd4c5369d3cef1b3ce8281ba5c4
|
7
|
+
data.tar.gz: 1e8fb03e459222ad5be84f10d7f1cfec9c67db4cf3e13191fbf7069834d2b9e8ece9e4c9d9b4220609ea8f9d8727c8a97b5c87c1b84c2d129769c758e9f0b63d
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Spree
|
2
|
+
class BcashPayment
|
3
|
+
def process!(payment)
|
4
|
+
order = payment.order
|
5
|
+
|
6
|
+
items = []
|
7
|
+
items = order.line_items.map do |item|
|
8
|
+
bcash_item = ::Bcash::Item.new(
|
9
|
+
{
|
10
|
+
id: item.id,
|
11
|
+
description: item.product.name,
|
12
|
+
amount: item.quantity,
|
13
|
+
price: format("%.2f", item.price.round(2))
|
14
|
+
}
|
15
|
+
)
|
16
|
+
|
17
|
+
bcash_item
|
18
|
+
end
|
19
|
+
|
20
|
+
::Bcash::Package.create(items, tax(order))
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def tax(order)
|
26
|
+
taxes = 0
|
27
|
+
|
28
|
+
order.adjustments.eligible.each do |adjustment|
|
29
|
+
next if adjustment.originator_type == 'Spree::TaxRate' && adjustment.amount == 0
|
30
|
+
taxes += adjustment.amount
|
31
|
+
end
|
32
|
+
|
33
|
+
taxes
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module Spree
|
2
|
+
class PaymentMethod::BcashMethod < PaymentMethod
|
3
|
+
attr_protected
|
4
|
+
preference :email, :string
|
5
|
+
|
6
|
+
attr_accessor :order_id
|
7
|
+
has_many :payments, :as => :source
|
8
|
+
|
9
|
+
def payment_source_class
|
10
|
+
self.class
|
11
|
+
end
|
12
|
+
|
13
|
+
def source_required?
|
14
|
+
false
|
15
|
+
end
|
16
|
+
|
17
|
+
def actions
|
18
|
+
%w{capture void}
|
19
|
+
end
|
20
|
+
|
21
|
+
def can_capture?(payment)
|
22
|
+
['checkout', 'pending'].include?(payment.state)
|
23
|
+
end
|
24
|
+
|
25
|
+
def can_void?(payment)
|
26
|
+
payment.state != 'void'
|
27
|
+
end
|
28
|
+
|
29
|
+
def capture(*args)
|
30
|
+
ActiveMerchant::Billing::Response.new(true, "", {}, {})
|
31
|
+
end
|
32
|
+
|
33
|
+
def void(*args)
|
34
|
+
ActiveMerchant::Billing::Response.new(true, "", {}, {})
|
35
|
+
end
|
36
|
+
|
37
|
+
def package(payment)
|
38
|
+
bcash_payment = Spree::BcashPayment.new
|
39
|
+
bcash_payment.process!(payment)
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= image_tag('https://a248.e.akamai.net/f/248/96284/12h/www.bcash.com.br/webroot/banners/site/bc90x95px.png', :alt => 'Bcash')%>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<br />
|
2
|
+
<%if @order.payment_method.instance_of? Spree::PaymentMethod::BcashMethod%>
|
3
|
+
Clique no botão abaixo para fazer seu pagamento usando o Bcash
|
4
|
+
<%= Bcash::Payment.new(@order.payment_method.package(@order.payment), {:email_loja => Spree::Order.bcash_payment_method.preferred_email}).html%>
|
5
|
+
<%end%>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Spree
|
2
|
+
module Bcash
|
3
|
+
class Engine < Rails::Engine
|
4
|
+
engine_name 'spree_bcash'
|
5
|
+
|
6
|
+
initializer "spree.register.bcash_method", after: "spree.register.payment_methods" do |app|
|
7
|
+
app.config.spree.payment_methods << Spree::PaymentMethod::BcashMethod
|
8
|
+
end
|
9
|
+
|
10
|
+
config.autoload_paths += %W(#{config.root}/lib)
|
11
|
+
|
12
|
+
# use rspec for tests
|
13
|
+
config.generators do |g|
|
14
|
+
g.test_framework :rspec
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.activate
|
18
|
+
Dir.glob(File.join(File.dirname(__FILE__), "../../app/**/*_decorator*.rb")) do |c|
|
19
|
+
Rails.configuration.cache_classes ? require(c) : load(c)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
config.to_prepare &method(:activate).to_proc
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/spree_bcash.rb
ADDED
data/spree_bcash.gemspec
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "spree_bcash/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "spree_bcash"
|
7
|
+
s.version = SpreeBcash::VERSION
|
8
|
+
s.authors = ["Matheus Caceres"]
|
9
|
+
s.email = ["matheus@formaweb.com.br"]
|
10
|
+
s.homepage = ""
|
11
|
+
s.summary = %q{Support bcash in spree. Base: spree_pag_seguro}
|
12
|
+
s.description = %q{Support bcash}
|
13
|
+
|
14
|
+
s.rubyforge_project = "spree_bcash"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
s.add_dependency 'bcash', '~>0.5.0'
|
22
|
+
s.add_dependency 'spree_core'
|
23
|
+
|
24
|
+
# specify any dependencies here; for example:
|
25
|
+
s.add_development_dependency "rspec"
|
26
|
+
# s.add_runtime_dependency "rest-client"
|
27
|
+
end
|
metadata
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: spree_bcash
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Matheus Caceres
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-04-19 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bcash
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.5.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.5.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: spree_core
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ! '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: Support bcash
|
56
|
+
email:
|
57
|
+
- matheus@formaweb.com.br
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- .gitignore
|
63
|
+
- Gemfile
|
64
|
+
- Rakefile
|
65
|
+
- app/models/spree/bcash_payment.rb
|
66
|
+
- app/models/spree/order_decorator.rb
|
67
|
+
- app/models/spree/payment_method/bcash_method.rb
|
68
|
+
- app/overrides/replace_payment_info.rb
|
69
|
+
- app/views/spree/checkout/payment/_bcashmethod.html.erb
|
70
|
+
- app/views/spree/checkout/payment/_order_details_bcash.html.erb
|
71
|
+
- lib/spree_bcash.rb
|
72
|
+
- lib/spree_bcash/engine.rb
|
73
|
+
- lib/spree_bcash/version.rb
|
74
|
+
- spree_bcash.gemspec
|
75
|
+
homepage: ''
|
76
|
+
licenses: []
|
77
|
+
metadata: {}
|
78
|
+
post_install_message:
|
79
|
+
rdoc_options: []
|
80
|
+
require_paths:
|
81
|
+
- lib
|
82
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - ! '>='
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '0'
|
87
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ! '>='
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0'
|
92
|
+
requirements: []
|
93
|
+
rubyforge_project: spree_bcash
|
94
|
+
rubygems_version: 2.0.3
|
95
|
+
signing_key:
|
96
|
+
specification_version: 4
|
97
|
+
summary: ! 'Support bcash in spree. Base: spree_pag_seguro'
|
98
|
+
test_files: []
|