solidus_me 3.6.1 → 3.7.1

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.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +151 -29
  3. data/app/controller/spree/admin/orders/labels_controller.rb +124 -0
  4. data/app/controller/spree/admin/solidus_me/accounts_controller.rb +7 -9
  5. data/app/models/solidus_me/account.rb +89 -43
  6. data/app/models/solidus_me/label.rb +155 -0
  7. data/app/models/solidus_me/me_client.rb +47 -0
  8. data/app/models/solidus_me/melhor_envio.rb +18 -140
  9. data/app/models/solidus_me/package_estimator.rb +22 -0
  10. data/app/models/solidus_me/rate_calculator.rb +37 -0
  11. data/app/views/spree/admin/orders/labels/_steps.html.erb +78 -0
  12. data/app/views/spree/admin/orders/labels/index.html.erb +28 -0
  13. data/app/views/spree/admin/orders/labels/show.html.erb +46 -0
  14. data/app/views/spree/admin/orders/labels/step_generate.html.erb +48 -0
  15. data/app/views/spree/admin/orders/labels/step_payment.html.erb +83 -0
  16. data/app/views/spree/admin/orders/labels/step_print.html.erb +48 -0
  17. data/app/views/spree/admin/solidus_me/accounts/_form.html.erb +14 -3
  18. data/app/views/spree/admin/solidus_me/accounts/index.html.erb +11 -6
  19. data/config/routes.rb +9 -0
  20. data/db/migrate/20250801130502_rename_column_token_expires_in.rb +5 -0
  21. data/db/migrate/20250801130700_add_column_test_mode.rb +5 -0
  22. data/db/migrate/20250801142036_create_solidus_me_labels.rb +16 -0
  23. data/db/migrate/20250801170700_add_last_synced_at_to_solidus_me_accounts.rb +5 -0
  24. data/db/migrate/20250801174106_add_timestamps_to_labels.rb +6 -0
  25. data/lib/generators/solidus_me/install/install_generator.rb +4 -0
  26. data/lib/generators/solidus_me/install/templates/app/overrides/spree_order_solidus_me_labels.rb +9 -0
  27. data/lib/solidus_me/version.rb +1 -1
  28. metadata +35 -4
@@ -128,6 +128,17 @@
128
128
  <%= form.error_message_on :client_secret %>
129
129
  <% end %>
130
130
 
131
+ <%= form.field_container :test_mode do %>
132
+ <div style="display: flex; align-items: center; gap: 10px;">
133
+ <%= form.check_box :test_mode %>
134
+ <%= form.label :test_mode, "Conta Teste", style: "margin: 0; font-weight: normal;" %>
135
+ </div>
136
+ <%= form.error_message_on :test_mode %>
137
+ <p class="field-description" style="margin-top: 5px; color: #666; font-size: 0.9em;">
138
+ Marque esta opção para usar a API em modo de teste
139
+ </p>
140
+ <% end %>
141
+
131
142
  </div>
132
143
 
133
144
  <div class="col-12 col-md-6">
@@ -157,11 +168,11 @@
157
168
  <% end %>
158
169
 
159
170
  <div style="margin-top: 10px;">
160
- <%= form.hidden_field :token_expires_in %>
171
+ <%= form.hidden_field :token_expires_at %>
161
172
  <% if params["action"] != 'new' %>
162
173
  <div class="field">
163
- <%= label_tag :token_expires_in, "Token Expiration" %>
164
- <div class="fullwidth" id="token_expires_in" name="token_expires_in"><%= me_account.token_expires_in %> </div>
174
+ <%= label_tag :token_expires_at, "Token Expiration" %>
175
+ <div class="fullwidth" id="token_expires_at" name="token_expires_at"><%= me_account.token_expires_at %> </div>
165
176
  </div>
166
177
  <% end %>
167
178
  </div>
@@ -98,12 +98,12 @@
98
98
  </div>
99
99
 
100
100
  <div class="field">
101
- <%= label_tag :token_expires_in, "Token Expira em" %>
102
- <% token_display = if account.token_expires_in.present? %>
103
- <% token_text = account.token_expires_in.strftime("%d/%m/%Y às %H:%M") %>
104
- <% if account.token_expires_in < Time.current %>
101
+ <%= label_tag :token_expires_at, "Token Expira em" %>
102
+ <% token_display = if account.token_expires_at.present? %>
103
+ <% token_text = account.token_expires_at.strftime("%d/%m/%Y às %H:%M") %>
104
+ <% if account.token_expires_at.past? %>
105
105
  <% token_text += " (Expirado)" %>
106
- <% elsif account.token_expires_in < 1.day.from_now %>
106
+ <% elsif account.token_expires_at < 1.day.from_now %>
107
107
  <% token_text += " (Expira em breve)" %>
108
108
  <% else %>
109
109
  <% token_text += " (Válido)" %>
@@ -112,13 +112,18 @@
112
112
  <% else %>
113
113
  <% "Não informado" %>
114
114
  <% end %>
115
- <%= text_field_tag :token_expires_in, token_display, class:"fullwidth", disabled: true %>
115
+ <%= text_field_tag :token_expires_at, token_display, class:"fullwidth", disabled: true %>
116
116
  </div>
117
117
 
118
118
  <div class="field">
119
119
  <%= label_tag :state, "State" %>
120
120
  <%= text_field_tag :state, account.state || "Não definido", class:"fullwidth", disabled: true %>
121
121
  </div>
122
+
123
+ <div class="field">
124
+ <%= label_tag :test_mode, "Modo de Operação" %>
125
+ <%= text_field_tag :test_mode, account.status_display, class:"fullwidth", disabled: true %>
126
+ </div>
122
127
  </div>
123
128
  </div>
124
129
  </fieldset>
data/config/routes.rb CHANGED
@@ -8,5 +8,14 @@ Spree::Core::Engine.routes.draw do
8
8
  patch "update_from_api", on: :member, as: :update_from_api
9
9
  end
10
10
  end
11
+ namespace :orders do
12
+ get "/:order_number/etiquetas", to: "labels#index", as: :labels
13
+ post "/:order_number/etiquetas", to: "labels#create", as: :create_label
14
+ get "/:order_number/etiquetas/:id", to: "labels#show", as: :label
15
+ get "/:order_number/etiquetas/:id/pagar", to: "labels#step_payment", as: :step_payment_label
16
+ get "/:order_number/etiquetas/:id/gerar", to: "labels#step_generate", as: :step_generate_label
17
+ get "/:order_number/etiquetas/:id/imprimir", to: "labels#step_print", as: :step_print_label
18
+ patch "/:order_number/etiquetas/:id", to: "labels#update", as: :update_label
19
+ end
11
20
  end
12
21
  end
@@ -0,0 +1,5 @@
1
+ class RenameColumnTokenExpiresIn < ActiveRecord::Migration[7.1]
2
+ def change
3
+ rename_column :solidus_me_accounts, :token_expires_in, :token_expires_at
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddColumnTestMode < ActiveRecord::Migration[7.1]
2
+ def change
3
+ add_column :solidus_me_accounts, :test_mode, :boolean, default: false, null: false
4
+ end
5
+ end
@@ -0,0 +1,16 @@
1
+ class CreateSolidusMeLabels < ActiveRecord::Migration[7.1]
2
+ def change
3
+ create_table :solidus_me_labels do |t|
4
+ t.references :spree_order, null: false, foreign_key: true, index: {unique: true}
5
+ t.references :solidus_me_account, null: false, foreign_key: true
6
+ t.string :external_id
7
+ t.numeric :price, precision: 10, scale: 2
8
+ t.string :status
9
+ t.string :link
10
+ t.string :tracking_code
11
+ t.datetime :paid_at
12
+
13
+ t.timestamps
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,5 @@
1
+ class AddLastSyncedAtToSolidusMeAccounts < ActiveRecord::Migration[7.1]
2
+ def change
3
+ add_column :solidus_me_accounts, :last_synced_at, :datetime
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ class AddTimestampsToLabels < ActiveRecord::Migration[7.1]
2
+ def change
3
+ add_column :solidus_me_labels, :generated_at, :datetime
4
+ add_column :solidus_me_labels, :completed_at, :datetime
5
+ end
6
+ end
@@ -14,6 +14,10 @@ module SolidusMe
14
14
  template "initializer.rb", "config/initializers/solidus_me.rb"
15
15
  end
16
16
 
17
+ def copy_overrides
18
+ directory "app/overrides", "app/overrides"
19
+ end
20
+
17
21
  def add_migrations
18
22
  run "bin/rails railties:install:migrations FROM=solidus_me"
19
23
  end
@@ -0,0 +1,9 @@
1
+ module SpreeOrderSolidusMeLabels
2
+ extend ActiveSupport::Concern
3
+
4
+ prepended do
5
+ has_many :solidus_me_labels, foreign_key: :spree_order_id, class_name: "SolidusMe::Label"
6
+ end
7
+
8
+ ::Spree::Order.prepend self
9
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidusMe
4
- VERSION = "3.6.1"
4
+ VERSION = "3.7.1"
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_me
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.1
4
+ version: 3.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hamilton Tumenas Borges
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-07-31 00:00:00.000000000 Z
10
+ date: 2025-08-05 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: me_api
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: 2.3.0
18
+ version: 2.4.2
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
- version: 2.3.0
25
+ version: 2.4.2
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: solidus_brazilian_adaptations
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -37,6 +37,20 @@ dependencies:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
39
  version: '0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: solidus_tec_estimator
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 2.1.3
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 2.1.3
40
54
  - !ruby/object:Gem::Dependency
41
55
  name: business_time
42
56
  requirement: !ruby/object:Gem::Requirement
@@ -58,9 +72,20 @@ extensions: []
58
72
  extra_rdoc_files: []
59
73
  files:
60
74
  - README.md
75
+ - app/controller/spree/admin/orders/labels_controller.rb
61
76
  - app/controller/spree/admin/solidus_me/accounts_controller.rb
62
77
  - app/models/solidus_me/account.rb
78
+ - app/models/solidus_me/label.rb
79
+ - app/models/solidus_me/me_client.rb
63
80
  - app/models/solidus_me/melhor_envio.rb
81
+ - app/models/solidus_me/package_estimator.rb
82
+ - app/models/solidus_me/rate_calculator.rb
83
+ - app/views/spree/admin/orders/labels/_steps.html.erb
84
+ - app/views/spree/admin/orders/labels/index.html.erb
85
+ - app/views/spree/admin/orders/labels/show.html.erb
86
+ - app/views/spree/admin/orders/labels/step_generate.html.erb
87
+ - app/views/spree/admin/orders/labels/step_payment.html.erb
88
+ - app/views/spree/admin/orders/labels/step_print.html.erb
64
89
  - app/views/spree/admin/solidus_me/accounts/_form.html.erb
65
90
  - app/views/spree/admin/solidus_me/accounts/_link_auth.html.erb
66
91
  - app/views/spree/admin/solidus_me/accounts/edit.html.erb
@@ -70,7 +95,13 @@ files:
70
95
  - config/routes.rb
71
96
  - db/migrate/20231109124213_create_solidus_me_accounts.rb
72
97
  - db/migrate/20250731123741_add_columns_to_me_account.rb
98
+ - db/migrate/20250801130502_rename_column_token_expires_in.rb
99
+ - db/migrate/20250801130700_add_column_test_mode.rb
100
+ - db/migrate/20250801142036_create_solidus_me_labels.rb
101
+ - db/migrate/20250801170700_add_last_synced_at_to_solidus_me_accounts.rb
102
+ - db/migrate/20250801174106_add_timestamps_to_labels.rb
73
103
  - lib/generators/solidus_me/install/install_generator.rb
104
+ - lib/generators/solidus_me/install/templates/app/overrides/spree_order_solidus_me_labels.rb
74
105
  - lib/generators/solidus_me/install/templates/initializer.rb
75
106
  - lib/solidus_me.rb
76
107
  - lib/solidus_me/configuration.rb