solidus_bling 3.3.6 → 3.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 247f2caa631753a645f8e6a723838986a2e2068a28cb81ab73f65d05b7ce8664
4
- data.tar.gz: 50f45c4271fc7d5b8490df6299fc3f9cc36bc1466420d6962c03bb13bbd7ae6b
3
+ metadata.gz: 779edaf66039623c7e96e8610f1b04f1839b85d65248ae234be98907727d1d32
4
+ data.tar.gz: 0eec35508cf1cadb0ee24cb9700919dcdb9191c6a1e6bc17692553c12691afed
5
5
  SHA512:
6
- metadata.gz: cc852d80cc886306856920c9f394e15712400a52cd77193925bbf6c1e507362f2a6c728b34b98605ae04e24601a7a15e3aacd8d4c69785b53155c956a9d86798
7
- data.tar.gz: e341310b153260dc2b971cc103c628b6897544e37e378f19415c8b54a1fafc94bc0d723b58b1f64bf44b77df13f2f3a6e0bbb1f1fcbfc41b01b11303e1a88fdd
6
+ metadata.gz: ac03ba9e42ee5be35c68e5feeabddc79d62ce783d2e208f466f6523fc558253872ab366a2c6c2080edc5aa6432a61928b7e99080387444a387f823f88a481654
7
+ data.tar.gz: d0f4670998c8d095dfd5fe744ac6c744f405b813ce1b652b49acfc8c6b1874061ac8ea76c38966732dcbf1ff5379e851fdf8075bed48c63628256fe0ae75a022
@@ -4,15 +4,8 @@ module SolidusBling
4
4
 
5
5
  def perform(event:)
6
6
  order = event[:order]
7
- bling_event = SolidusBling::Event.new(internal_id: order.id, body: order.to_json)
8
- begin
9
- SolidusBling::Order.new(order).send
10
- bling_event.status = "success"
11
- rescue => e
12
- bling_event.status = "error"
13
- bling_event.message = e.to_json
14
- ensure
15
- bling_event.save!
7
+ unless SolidusBling::Order.needs_approval?(order)
8
+ SolidusBling::SendOrderJob.perform_later(order)
16
9
  end
17
10
  end
18
11
  end
@@ -0,0 +1,18 @@
1
+ module SolidusBling
2
+ class SendOrderJob < ApplicationJob
3
+ queue_as :default
4
+
5
+ def perform(order)
6
+ bling_event = SolidusBling::Event.new(internal_id: order.id, body: order.to_json)
7
+ begin
8
+ SolidusBling::Order.new(order).send
9
+ bling_event.status = "success"
10
+ rescue => e
11
+ bling_event.status = "error"
12
+ bling_event.message = e.to_json
13
+ ensure
14
+ bling_event.save!
15
+ end
16
+ end
17
+ end
18
+ end
@@ -178,5 +178,15 @@ module SolidusBling
178
178
  def build_order_url
179
179
  "Link para o pedido: #{@order.store.url}/pedidos/#{@order.number}"
180
180
  end
181
+
182
+ def self.needs_approval?(order)
183
+ payment_method = order.payments.valid.last.payment_method
184
+ importation_rules = SolidusBling.config.importation_rules
185
+ if importation_rules
186
+ order.total >= importation_rules[:amount] && importation_rules[:payment_methods].include?(payment_method.type)
187
+ else
188
+ false
189
+ end
190
+ end
181
191
  end
182
192
  end
@@ -5,7 +5,7 @@ module SolidusBling
5
5
  handle :order_finalized,
6
6
  with: :send_order_to_bling
7
7
 
8
- def send_order_to_bling event, debug_info = {}
8
+ def send_order_to_bling(event, debug_info = {})
9
9
  SolidusBling::OrderJob.perform_later(event: event.payload)
10
10
  end
11
11
  end
@@ -1,2 +1,6 @@
1
1
  SolidusBling.configure do |config|
2
+ config.importation_rules = {
3
+ payment_methods: [],
4
+ amount: 0
5
+ }
2
6
  end
@@ -1,10 +1,6 @@
1
- # frozen_string_literal: true
2
-
3
1
  module SolidusBling
4
2
  class Configuration
5
- # Define here the settings for this extension, e.g.:
6
- #
7
- # attr_accessor :my_setting
3
+ attr_accessor :importation_rules
8
4
  end
9
5
 
10
6
  class << self
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidusBling
4
- VERSION = "3.3.6"
4
+ VERSION = "3.4.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_bling
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.6
4
+ version: 3.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Todas Essas Coisas
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-06-10 00:00:00.000000000 Z
11
+ date: 2024-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: solidus_core
@@ -111,6 +111,7 @@ files:
111
111
  - app/controllers/spree/admin/solidus_bling/orders_controller.rb
112
112
  - app/jobs/solidus_bling/application_job.rb
113
113
  - app/jobs/solidus_bling/order_job.rb
114
+ - app/jobs/solidus_bling/send_order_job.rb
114
115
  - app/jobs/solidus_bling/upsert_sellers_job.rb
115
116
  - app/models/solidus_bling/account.rb
116
117
  - app/models/solidus_bling/event.rb
@@ -183,7 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
183
184
  - !ruby/object:Gem::Version
184
185
  version: '0'
185
186
  requirements: []
186
- rubygems_version: 3.5.9
187
+ rubygems_version: 3.5.11
187
188
  signing_key:
188
189
  specification_version: 4
189
190
  summary: Solidus extension to integrate with the Bling