solidus_brazilian_adaptations 1.0.5 → 1.0.6

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: abf9b101cad24f96d6b95af4b1c1587666d279a7ec9c38cd6eadf80588c2de3a
4
- data.tar.gz: cea1c5c853b54b8b10dc962476b05fe04f2f9819155e14cf3e3c5931919c055e
3
+ metadata.gz: 24fa67771b38cee0a4d92caf9fdae494846fb87023ddfce3f3ed4077433661e7
4
+ data.tar.gz: 2adf6fce94c6ebdc966e6ff986daf61462e92dc0576de84f47b8e4d2ac2f0e22
5
5
  SHA512:
6
- metadata.gz: df1c8d4801d1a4c440c86ecdf94954145053cbbfd42ca61b365b4f93c22b6c38f0868645b73a0456bd9d0a07abc7b9c3bfb9038ed9998e1502e4a76e8dff15a2
7
- data.tar.gz: 48da079873137eddebd6b0e1fdaf62605cd11446abaacff3641493429943395b3f187c2337382dad2f9be5c3921e7c0011a365ceefe6319283eab60732e0e5dc
6
+ metadata.gz: 77d168c0c7ad3c0cb2993817009a04a8cece0c88d1a5abf9ed9536ad594d34ca709d9069e7b4fb131fdf30c536c8362fd9f0755a46e75b185cdc4b5db87e7320
7
+ data.tar.gz: c37f09bace53817ef175c4758c199767726c466ef2399327bbf24b7275fe3526b90d8869bb28827f58d448813b39843140cb9cfa3f025b8ce5cd4c33405984a8
@@ -0,0 +1,10 @@
1
+ module AddressValidations
2
+ extend ActiveSupport::Concern
3
+
4
+ prepended do
5
+ validates :number, presence: true
6
+ validates :district, presence: true
7
+ end
8
+
9
+ ::Spree::Address.prepend self
10
+ end
@@ -0,0 +1,35 @@
1
+ module OrderValidations
2
+ extend ActiveSupport::Concern
3
+
4
+ prepended do
5
+ validate :check_tax_id, if: :email_required?
6
+ validate :check_compatible_zipcode_and_state
7
+ before_update :format_tax_id
8
+
9
+ def check_compatible_zipcode_and_state
10
+ cep = CodigoPostal.new(ship_address.zipcode)
11
+ unless cep.state_code == ship_address.state.abbr
12
+ errors.add(:base, "CEP não corresponde ao Estado.")
13
+ end
14
+ end
15
+
16
+ def check_tax_id
17
+ cnpj_allowed = SolidusBrazilianAdaptations.config.allow_cnpj
18
+ document = TaxIdBr.new(tax_id)
19
+ if document.valid?
20
+ if document.document_type == :cnpj && cnpj_allowed == false
21
+ errors.add(:base, "Insira um CPF, não um CNPJ.")
22
+ end
23
+ else
24
+ errors.add(:base, "#{cnpj_allowed ? "CPF/CPNJ" : "CPF"} inválido.")
25
+ end
26
+ end
27
+
28
+ def format_tax_id
29
+ document = TaxIdBr.new(tax_id)
30
+ self.tax_id = document.formatted
31
+ end
32
+ end
33
+
34
+ ::Spree::Order.prepend self
35
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidusBrazilianAdaptations
4
- VERSION = "1.0.5"
4
+ VERSION = "1.0.6"
5
5
  end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "cpf_cnpj"
4
+ require "codigo_postal"
4
5
  require "solidus_brazilian_adaptations/configuration"
5
6
  require "solidus_brazilian_adaptations/version"
6
7
  require "solidus_brazilian_adaptations/engine"
@@ -30,6 +30,7 @@ Gem::Specification.new do |spec|
30
30
  spec.add_dependency "solidus_core", [">= 2.0.0", "< 5"]
31
31
  spec.add_dependency "solidus_support", "~> 0.5"
32
32
  spec.add_dependency "cpf_cnpj"
33
+ spec.add_dependency "codigo_postal"
33
34
 
34
35
  spec.add_development_dependency "solidus_dev_support", "~> 2.7"
35
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_brazilian_adaptations
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - ulysses-bull
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-10-24 00:00:00.000000000 Z
11
+ date: 2023-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: solidus_core
@@ -58,6 +58,20 @@ dependencies:
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
60
  version: '0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: codigo_postal
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
61
75
  - !ruby/object:Gem::Dependency
62
76
  name: solidus_dev_support
63
77
  requirement: !ruby/object:Gem::Requirement
@@ -89,8 +103,9 @@ files:
89
103
  - LICENSE
90
104
  - README.md
91
105
  - Rakefile
92
- - app/decorators/models/solidus_brazilian_adaptations/spree/order_decorator.rb
93
- - app/modules/tax_id_br.rb
106
+ - app/models/tax_id_br.rb
107
+ - app/overrides/address_validations.rb
108
+ - app/overrides/order_validations.rb
94
109
  - bin/console
95
110
  - bin/rails
96
111
  - bin/rails-engine
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module SolidusBrazilianAdaptations
4
- module Spree
5
- module OrderDecorator
6
- def self.prepended(base)
7
- base.class_eval do
8
- validate :verify, if: :email_required?
9
- before_update :format_tax_id
10
-
11
- def verify
12
- cnpj_allowed = SolidusBrazilianAdaptations.config.allow_cnpj
13
- document = TaxIdBr.new(tax_id)
14
- if document.valid?
15
- if document.document_type == :cnpj && cnpj_allowed == false
16
- errors.add(:base, "Insira um CPF, não um CNPJ.")
17
- end
18
- else
19
- errors.add(:base, "#{cnpj_allowed ? "CPF/CPNJ" : "CPF"} inválido.")
20
- end
21
- end
22
-
23
- def format_tax_id
24
- document = TaxIdBr.new(tax_id)
25
- self.tax_id = document.formatted
26
- end
27
- end
28
- end
29
-
30
- ::Spree::Order.prepend self
31
- end
32
- end
33
- end
File without changes