solidus_me 3.7.3 → 3.7.5
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
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5a35f8dfd3eb5fc259c5f1fe1e342751db2b2780a91fe55addbf3596200da9e4
|
4
|
+
data.tar.gz: a127b65f104016041e2a4cc007c624c87a45d3bc9333ce6c6b02269b8de2cd7c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0fe408f8046d67d7dd8dd4c59cea464c9c7f8f721fb7ab62f3d4d5478fd6b41e166a1b31320e1cfed8d4a4e5e248a525f05a98a9a7223fa9442e2d0eb334a10c
|
7
|
+
data.tar.gz: bb1b5e17368f144b9fdde69067e8e8ee82dd9f706fc80d5836447bd7e5a0d1247415670180ef381801af9870cb86972c744d8e10a53b316098ad065e12731eaa
|
@@ -10,8 +10,15 @@ module SolidusMe
|
|
10
10
|
def calculate
|
11
11
|
price = package.contents.map { |content| content.price }.sum
|
12
12
|
weight = package.weight
|
13
|
+
|
14
|
+
# Validação das dimensões dos Correios (PAC e SEDEX) para cada item
|
15
|
+
# Nenhuma dimensão pode ultrapassar 100 cm
|
16
|
+
# A soma das três dimensões não pode exceder 200 cm
|
17
|
+
return [] unless all_items_valid_for_correios?
|
18
|
+
|
13
19
|
dimensions = SolidusMe::PackageEstimator.new(package).estimate_dimensions
|
14
20
|
zipcode = package.order.ship_address.zipcode
|
21
|
+
|
15
22
|
rates = me_client.rates(
|
16
23
|
from_postal_code: me_account.postal_code_from,
|
17
24
|
to_postal_code: zipcode,
|
@@ -30,6 +37,28 @@ module SolidusMe
|
|
30
37
|
|
31
38
|
private
|
32
39
|
|
40
|
+
def all_items_valid_for_correios?
|
41
|
+
package_estimator = SolidusMe::PackageEstimator.new(package)
|
42
|
+
|
43
|
+
package.contents.all? do |item|
|
44
|
+
item_dimensions = package_estimator.dimensions_from_item(item)
|
45
|
+
valid_correios_dimensions?(item_dimensions)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def valid_correios_dimensions?(dimensions)
|
50
|
+
max_single_dimension = 100 # cm
|
51
|
+
max_sum_dimensions = 200 # cm
|
52
|
+
|
53
|
+
# Verifica se alguma dimensão individual excede 100 cm
|
54
|
+
return false if dimensions.any? { |dimension| dimension > max_single_dimension }
|
55
|
+
|
56
|
+
# Verifica se a soma das três dimensões excede 200 cm
|
57
|
+
return false if dimensions.sum > max_sum_dimensions
|
58
|
+
|
59
|
+
true
|
60
|
+
end
|
61
|
+
|
33
62
|
def me_client
|
34
63
|
@me_client ||= MeClient.for_account(me_account)
|
35
64
|
end
|
@@ -29,7 +29,7 @@
|
|
29
29
|
|
30
30
|
<% if @label.link %>
|
31
31
|
<div style="margin-bottom: 20px; text-align: center !important; width: 100%;">
|
32
|
-
<%= link_to "📄
|
32
|
+
<%= link_to "📄 Imprimir Etiqueta", @label.link, target: "_blank", class: "button", style: "margin: 0 auto; display: inline-block;" %>
|
33
33
|
</div>
|
34
34
|
<% end %>
|
35
35
|
|
data/lib/solidus_me/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solidus_me
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.7.
|
4
|
+
version: 3.7.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hamilton Tumenas Borges
|
@@ -125,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
125
125
|
- !ruby/object:Gem::Version
|
126
126
|
version: '0'
|
127
127
|
requirements: []
|
128
|
-
rubygems_version: 3.6.
|
128
|
+
rubygems_version: 3.6.7
|
129
129
|
specification_version: 4
|
130
130
|
summary: Gem para integração com a API do Melhor Envio
|
131
131
|
test_files: []
|