spree_jamef_calculator 0.0.1 → 0.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6f8a42e221f4e26faeba75ad6b1917f7146cfc58
4
- data.tar.gz: 8b3019f0ec4842779d47ca1e78c08de20aa526fc
3
+ metadata.gz: 21d54da4a5511e1f9b39a7cb397b3a6af2b47677
4
+ data.tar.gz: 8cefb55bd4fe3d4c8b40c552893aafa7b335a7f7
5
5
  SHA512:
6
- metadata.gz: 4f649553be29fa34a3a0d033bdf9eaa953fff8d82276854d01b6f90540fe2598e36410076d27d26a999944881889d933458f0ba5634f27a7d55fb7962a5d5ee3
7
- data.tar.gz: ece51c568d1df90d7c53690347fb2a14ebe8b198de1b6f70eb868d7de59194404c720977525758b9d6e31c224c5e873049f641223ecb5bee9fc4fc3155e0fa09
6
+ metadata.gz: f0032622fd34ba9da4df5e569467689fb97415c69dd52a29226c613034520978075bbfdcfffeeb0cef5906d98dabdf170b8d72c983e83324cb53754e4d6fa659
7
+ data.tar.gz: 35fe7befa24e720575bffd4a5ac0ae7d88c4584fed1aa784b7e1ca4f144c02188733e5d366135716d27e09737b82093b4500f9d5abe2ade6508808d899d61377
@@ -0,0 +1,82 @@
1
+ require_dependency 'spree/calculator'
2
+
3
+ module Spree
4
+ class Calculator::JamefCalculator < Calculator
5
+ preference :cnpj, :string
6
+ preference :cep, :string
7
+ preference :region, :integer
8
+ preference :uf, :string
9
+
10
+ attr_accessible :preferred_cnpj, :preferred_cep, :preferred_region, :preferred_uf
11
+
12
+ def self.description
13
+ "Transportadora Jamef"
14
+ end
15
+
16
+ def compute(object)
17
+ @object = object.kind_of?(Spree::Order) ? object : object.order
18
+ yaml_order = create_or_load_yaml
19
+
20
+ if yaml_order['order']['total'] == @object.item_total.to_f && yaml_order['order']['ship'] != 0
21
+ return yaml_order['order']['ship']
22
+ else
23
+ return jamef_calculate_tax
24
+ end
25
+ end
26
+
27
+ private
28
+
29
+ def jamef_calculate_tax
30
+ items = []
31
+
32
+ @object.line_items.each do |line_item|
33
+ item = Jamef::Item.new
34
+ item.width = line_item.variant.width
35
+ item.height = line_item.variant.height
36
+ item.length = line_item.variant.depth
37
+ item.weight = line_item.variant.weight
38
+ item.quantity = line_item.quantity
39
+ item.price = line_item.price
40
+
41
+ items << item
42
+ end
43
+
44
+ cubage = Jamef::Cubage.new(items)
45
+
46
+ tax = Jamef::Tax.new(cubage, self.preferred_cnpj, self.preferred_region, self.preferred_cep, self.preferred_uf)
47
+ ship = tax.get
48
+
49
+ order_merge = {'order' => {'total' => @object.item_total.to_f, 'ship' => ship}}
50
+
51
+ create_yaml(order_merge)
52
+
53
+ return ship
54
+ end
55
+
56
+ def create_or_load_yaml
57
+ create_yaml if !File.exists?(path_file)
58
+
59
+ YAML::load_file(path_file)
60
+ end
61
+
62
+ def path_file
63
+ @path_file ||= Spree::SpreeCalculatorJamef.app_root + "/public/jamef_yaml/#{@object.number}.yml"
64
+ end
65
+
66
+ def create_yaml(order_merge=nil)
67
+ order = create_order_yaml(order_merge)
68
+
69
+ file_create = File.new(path_file, "w")
70
+ file_create.write(order)
71
+ file_create.close
72
+ end
73
+
74
+ def create_order_yaml(order_merge=nil)
75
+ order = {'order' => {'total' => @object.item_total.to_f, 'ship' => 0}}
76
+ order.merge!(order_merge) if !order_merge.nil?
77
+
78
+ order.to_yaml
79
+ end
80
+
81
+ end
82
+ end
@@ -0,0 +1,34 @@
1
+ module Spree
2
+ module SpreeCalculatorJamef
3
+ def self.app_root=(app)
4
+ @app = app
5
+ end
6
+
7
+ def self.app_root
8
+ @app.to_s
9
+ end
10
+
11
+ class Engine < Rails::Engine
12
+ engine_name 'spree_jamef_calculator'
13
+
14
+ initializer "spree.register.calculators" do |app|
15
+ app.config.spree.calculators.shipping_methods << Spree::Calculator::JamefCalculator
16
+ Spree::SpreeCalculatorJamef.app_root = app.root
17
+ end
18
+
19
+ config.autoload_paths += %w(#{config.root}/lib)
20
+
21
+ config.generators do |g|
22
+ g.test_framework :rspec
23
+ end
24
+
25
+ def self.activate
26
+ Dir.glob(File.join(File.dirname(__FILE__), "../../app/**/*_decorator*.rb")) do |c|
27
+ Rails.configuration.cache_classes ? require(c) : load(c)
28
+ end
29
+ end
30
+
31
+ config.to_prepare &method(:activate).to_proc
32
+ end
33
+ end
34
+ end
@@ -1,3 +1,3 @@
1
1
  module SpreeJamefCalculator
2
- VERSION = "0.0.1"
2
+ VERSION = "0.4.0"
3
3
  end
@@ -4,5 +4,4 @@ require "spree_jamef_calculator/engine"
4
4
  require 'jamef'
5
5
 
6
6
  module SpreeJamefCalculator
7
- # Your code goes here...
8
7
  end
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
18
18
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
19
  s.require_paths = ["lib"]
20
20
 
21
- s.add_dependency "jamef"
21
+ s.add_dependency "jamef", "~> 1.0.3"
22
22
  s.add_dependency "spree_core"
23
23
 
24
24
  # specify any dependencies here; for example:
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_jamef_calculator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matheus Caceres
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-05-17 00:00:00.000000000 Z
11
+ date: 2013-05-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jamef
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 1.0.3
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 1.0.3
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: spree_core
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -48,7 +48,9 @@ files:
48
48
  - .gitignore
49
49
  - Gemfile
50
50
  - Rakefile
51
+ - app/models/spree/calculator/jamef_calculator.rb
51
52
  - lib/spree_jamef_calculator.rb
53
+ - lib/spree_jamef_calculator/engine.rb
52
54
  - lib/spree_jamef_calculator/version.rb
53
55
  - spree_jamef_calculator.gemspec
54
56
  homepage: ''