spree_zaez_correios 3.0.2 → 3.0.3

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: 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