spree_zaez_correios 3.0.2 → 3.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4255be93af1ecf410479a091868addcdcc9a26e6
4
- data.tar.gz: ca7511b5bf71f3b74bb5261f386d33603ee32c29
3
+ metadata.gz: 61ae0c0c9884577fa417290e0f39c6b3a72b9b86
4
+ data.tar.gz: fdf8b78e672d0fc650b957d0ba423d5a2740a8d1
5
5
  SHA512:
6
- metadata.gz: e08390e104ca1fd045363840b246f7cab464bf4c72441a974b20a1c0f11d6cc4d5b6fbf35bb11f8540b46abdc78e3723a8f0e670a45fdedb0bb5133e23d6ff8a
7
- data.tar.gz: 62eba9d2aad506f0f96205383ae3e5201943c74d0b449c7721c1b8c5f9cdc757b93b4f440c32fa4e8ac405135bea223598a3272d266b34dca54f6c5663f04a41
6
+ metadata.gz: abc07cf546ad3a9cd1360ef1f42c63b937a0961f4e52bf38a5964da270856789c22238117c324969296e21b1eff4f73fe4ec725affce69b761e8c7ed24bc8171
7
+ data.tar.gz: 52183607d0dbbcd2642529090345dbd1bf8d48f88e279246aba704b1dbe9bdae4fd5771c98aac9340312d55552045039dbe74889e919d3d01e53fadbe1547713
@@ -44,10 +44,10 @@ module Spree
44
44
  return false if webservice.erro?
45
45
 
46
46
  @delivery_time = webservice.prazo_entrega + preferred_additional_days
47
-
48
- webservice.valor + preferred_additional_value
47
+ cost = webservice.valor + preferred_additional_value
48
+ {cost: cost, delivery_time: @delivery_time}
49
49
  rescue
50
- false
50
+ {}
51
51
  end
52
52
 
53
53
  def has_contract?
@@ -0,0 +1,7 @@
1
+ Spree::Calculator::Shipping::FlatPercentItemTotal.class_eval do
2
+
3
+ def compute_package(package)
4
+ response = compute_from_price(total(package.contents))
5
+ {cost: response, delivery_time: nil}
6
+ end
7
+ end
@@ -0,0 +1,6 @@
1
+ Spree::Calculator::Shipping::FlatRate.class_eval do
2
+
3
+ def compute_package(package)
4
+ {cost: self.preferred_amount, delivery_time: nil}
5
+ end
6
+ end
@@ -0,0 +1,7 @@
1
+ Spree::Calculator::Shipping::FlexiRate.class_eval do
2
+
3
+ def compute_package(package)
4
+ response = compute_from_quantity(package.contents.sum(&:quantity))
5
+ {cost: response, delivery_time: nil}
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ Spree::Calculator::Shipping::PerItem.class_eval do
2
+
3
+ def compute_package(package)
4
+ response = compute_from_quantity(package.contents.sum(&:quantity))
5
+ {cost: response, delivery_time: nil}
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ Spree::Calculator::Shipping::PriceSack.class_eval do
2
+
3
+ def compute_package(package)
4
+ response = compute_from_price(total(package.contents))
5
+ {cost: response, delivery_time: nil}
6
+ end
7
+ end
@@ -0,0 +1,28 @@
1
+ Spree::Stock::Estimator.class_eval do
2
+
3
+ # Override no metodo para poder salvar o tempo de entrega
4
+ def calculate_shipping_rates(package, ui_filter)
5
+ shipping_methods(package, ui_filter).map do |shipping_method|
6
+ response = shipping_method.calculator.compute(package)
7
+ cost = response[:cost]
8
+ delivery_time = response[:delivery_time]
9
+
10
+ tax_category = shipping_method.tax_category
11
+ if tax_category
12
+ tax_rate = tax_category.tax_rates.detect do |rate|
13
+ # If the rate's zone matches the order's zone, a positive adjustment will be applied.
14
+ # If the rate is from the default tax zone, then a negative adjustment will be applied.
15
+ # See the tests in shipping_rate_spec.rb for an example of this.d
16
+ rate.zone == order.tax_zone || rate.zone.default_tax?
17
+ end
18
+ end
19
+
20
+ if cost
21
+ rate = shipping_method.shipping_rates.new(cost: cost, delivery_time: delivery_time)
22
+ rate.tax_rate = tax_rate if tax_rate
23
+ end
24
+
25
+ rate
26
+ end.compact
27
+ end
28
+ end
@@ -0,0 +1,5 @@
1
+ class AddDeliveryTimeToSpreeShippingRates < ActiveRecord::Migration
2
+ def change
3
+ add_column :spree_shipping_rates, :delivery_time, :integer
4
+ end
5
+ end
@@ -57,7 +57,7 @@ shared_examples_for 'correios calculator' do
57
57
  it 'should calculate shipping cost and delivery time' do
58
58
  price, delivery_time = get_correios_price_and_value_for("http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?#{@default_query.to_query}")
59
59
 
60
- expect(@calculator.compute_package(@package)).to eq(price)
60
+ expect(@calculator.compute_package(@package)[:cost]).to eq(price)
61
61
  expect(@calculator.delivery_time).to eq(delivery_time)
62
62
  end
63
63
 
@@ -75,7 +75,7 @@ shared_examples_for 'correios calculator' do
75
75
 
76
76
  @calculator.preferred_additional_value = 10.0
77
77
 
78
- expect(@calculator.compute_package(@package)).to eq(price + 10.0)
78
+ expect(@calculator.compute_package(@package)[:cost]).to eq(price + 10.0)
79
79
  end
80
80
 
81
81
  it 'should change price according to declared value' do
@@ -83,7 +83,7 @@ shared_examples_for 'correios calculator' do
83
83
  price, delivery_time = get_correios_price_and_value_for("http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?#{query.to_query}")
84
84
 
85
85
  @calculator.preferred_declared_value = true
86
- expect(@calculator.compute_package(@package)).to eq(price)
86
+ expect(@calculator.compute_package(@package)[:cost]).to eq(price)
87
87
  end
88
88
 
89
89
  it 'should change price according to in hands' do
@@ -91,7 +91,7 @@ shared_examples_for 'correios calculator' do
91
91
  price, delivery_time = get_correios_price_and_value_for("http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?#{query.to_query}")
92
92
 
93
93
  @calculator.preferred_receive_in_hands = true
94
- expect(@calculator.compute_package(@package)).to eq(price)
94
+ expect(@calculator.compute_package(@package)[:cost]).to eq(price)
95
95
  end
96
96
 
97
97
  it 'should change price according to receipt notification' do
@@ -99,7 +99,7 @@ shared_examples_for 'correios calculator' do
99
99
  price, delivery_time = get_correios_price_and_value_for("http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?#{query.to_query}")
100
100
 
101
101
  @calculator.preferred_receipt_notification = true
102
- expect(@calculator.compute_package(@package)).to eq(price)
102
+ expect(@calculator.compute_package(@package)[:cost]).to eq(price)
103
103
  end
104
104
  end
105
105
  end
@@ -2,7 +2,7 @@
2
2
  Gem::Specification.new do |s|
3
3
  s.platform = Gem::Platform::RUBY
4
4
  s.name = 'spree_zaez_correios'
5
- s.version = '3.0.2'
5
+ s.version = '3.0.3'
6
6
  s.summary = "Implements diverse functions in order to enable the use of services from Brazil's Correios in Spree Commerce"
7
7
  s.description = s.summary
8
8
  s.required_ruby_version = '>= 2.0.0'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_zaez_correios
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.2
4
+ version: 3.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zaez Team
@@ -254,13 +254,20 @@ files:
254
254
  - app/assets/stylesheets/spree/backend/spree_zaez_correios.css
255
255
  - app/assets/stylesheets/spree/frontend/spree_zaez_correios.css
256
256
  - app/models/spree/calculator/shipping/correios_base_calculator.rb
257
+ - app/models/spree/calculator/shipping/flat_percent_item_total_decorator.rb
258
+ - app/models/spree/calculator/shipping/flat_rate_decorator.rb
259
+ - app/models/spree/calculator/shipping/flexi_rate_decorator.rb
257
260
  - app/models/spree/calculator/shipping/pac.rb
261
+ - app/models/spree/calculator/shipping/per_item_decorator.rb
262
+ - app/models/spree/calculator/shipping/price_sack_decorator.rb
258
263
  - app/models/spree/calculator/shipping/sedex.rb
259
264
  - app/models/spree/calculator/shipping/sedex10.rb
265
+ - app/models/spree/stock/estimator_decorator.rb
260
266
  - bin/rails
261
267
  - config/locales/en.yml
262
268
  - config/locales/pt-br.yml
263
269
  - config/routes.rb
270
+ - db/migrate/20150725181511_add_delivery_time_to_spree_shipping_rates.rb
264
271
  - lib/generators/spree_zaez_correios/install/install_generator.rb
265
272
  - lib/spree_zaez_correios.rb
266
273
  - lib/spree_zaez_correios/engine.rb