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: 256fdedd1d0240e8eaa51dfeb89f0a186c1c788ef45e9d3ac88b8da9ff395338
4
- data.tar.gz: 10710ed50efea23aebc2837bde259afd9bdd6531e17ac1602985939634cbba5c
3
+ metadata.gz: 5a35f8dfd3eb5fc259c5f1fe1e342751db2b2780a91fe55addbf3596200da9e4
4
+ data.tar.gz: a127b65f104016041e2a4cc007c624c87a45d3bc9333ce6c6b02269b8de2cd7c
5
5
  SHA512:
6
- metadata.gz: d3f6ad13c689d8cbda3d25b66f849ea0cd7cb27c5bd6b792f826f31c3e3f67c7dead520e946f19e5294ebec27dd980ed9794155db261003db725b6e1ea166882
7
- data.tar.gz: 72143ac125d6fe41518a9d049303020b28453ec2692de93ce269239f9ed02e4622f96fbd7178cae066fb51c11996e14c7104683c983aa87ddcfb15a4067bc4f9
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 "📄 Abrir Etiqueta para Impressão", @label.link, target: "_blank", class: "button", style: "margin: 0 auto; display: inline-block;" %>
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
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidusMe
4
- VERSION = "3.7.3"
4
+ VERSION = "3.7.5"
5
5
  end
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.3
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.9
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: []