solidus-returnly 0.11.0 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/returnly/builders/return_item.rb +3 -28
- data/lib/returnly/refund_calculator.rb +1 -6
- data/lib/returnly/refund_presenter.rb +2 -6
- data/lib/returnly/refunder.rb +1 -1
- data/lib/returnly/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c65b26145ed509d151c337ef349bb1573cba5703e80b646dfa874ac6566c66a2
|
4
|
+
data.tar.gz: ea4067aaaf9ebd7b97927c2e9c586f4398654e4388009f2c5f226ceaa9b70979
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8be45554263a53fd0e88c8a9255d437861815e01cc174bc3f0d0b8476d71e4cca99068a493257b7e6297c60cd9319bc3488b1457d2d41d24cf2f57ec12940de8
|
7
|
+
data.tar.gz: b9322a7879716d05367cce5609737af8f628a43bb34412d0b9691ca3487ce2862a8aa95531b345d1db470616f6d262d627d6f5cd11a9323f6d68891f47bf34a5
|
@@ -8,30 +8,19 @@ module Returnly
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def build_by_requested_line_items(requested_line_items)
|
11
|
-
|
12
|
-
items = requested_line_items.each_with_object([]) do |request_line_item, return_items|
|
11
|
+
requested_line_items.each_with_object([]) do |request_line_item, return_items|
|
13
12
|
quantity = request_line_item[:units].to_i
|
14
13
|
next return_items unless quantity > 0
|
15
14
|
|
16
|
-
|
17
|
-
if inventory_units.empty?
|
18
|
-
inventory_units = returned_inventory_units_by(request_line_item[:order_line_item_id])
|
19
|
-
request_line_item[:find_return?] = true
|
20
|
-
is_returned_item = true
|
21
|
-
end
|
22
|
-
inventory_units.take(quantity).each do |inventory_unit|
|
15
|
+
inventory_units_by(request_line_item[:order_line_item_id]).take(quantity).each do |inventory_unit|
|
23
16
|
return_items << build_by_inventory_unit(inventory_unit, request_line_item)
|
24
17
|
end
|
25
18
|
|
26
19
|
return_items
|
27
20
|
end
|
28
|
-
{
|
29
|
-
items: items,
|
30
|
-
is_returned_items: is_returned_item
|
31
|
-
}
|
32
21
|
end
|
33
22
|
|
34
|
-
def
|
23
|
+
def build_by_inventory_unit(inventory_unit, options = {})
|
35
24
|
Spree::ReturnItem.new(
|
36
25
|
amount: inventory_unit.line_item.price,
|
37
26
|
acceptance_status: 'accepted',
|
@@ -41,14 +30,6 @@ module Returnly
|
|
41
30
|
)
|
42
31
|
end
|
43
32
|
|
44
|
-
def build_by_inventory_unit(inventory_unit, options = {})
|
45
|
-
return exact_build_by_inventory_unit(inventory_unit, options) unless options[:find_return?]
|
46
|
-
Spree::ReturnItem.find_by(
|
47
|
-
amount: inventory_unit.line_item.price,
|
48
|
-
inventory_unit_id: inventory_unit.id
|
49
|
-
)
|
50
|
-
end
|
51
|
-
|
52
33
|
private
|
53
34
|
|
54
35
|
def inventory_units_by(line_item_ids)
|
@@ -56,12 +37,6 @@ module Returnly
|
|
56
37
|
.where(line_item_id: line_item_ids)
|
57
38
|
.where.not(state: 'returned')
|
58
39
|
end
|
59
|
-
|
60
|
-
def returned_inventory_units_by(line_item_ids)
|
61
|
-
order.inventory_units.includes(:line_item, :return_items)
|
62
|
-
.where(line_item_id: line_item_ids, state: 'returned')
|
63
|
-
.where(spree_return_items: { reimbursement_id: nil })
|
64
|
-
end
|
65
40
|
end
|
66
41
|
end
|
67
42
|
end
|
@@ -21,17 +21,12 @@ module Returnly
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def line_items_return_items
|
24
|
-
|
25
|
-
items = available_to_return[:items].each_with_object({}) do |return_item, return_items|
|
24
|
+
available_return_items.each_with_object({}) do |return_item, return_items|
|
26
25
|
line_item_id = return_item.inventory_unit.line_item_id
|
27
26
|
return_items[line_item_id] ||= []
|
28
27
|
return_items[line_item_id] << set_tax(return_item)
|
29
28
|
return_items
|
30
29
|
end
|
31
|
-
{
|
32
|
-
items: items,
|
33
|
-
is_returned_items: available_to_return[:is_returned_items]
|
34
|
-
}
|
35
30
|
end
|
36
31
|
|
37
32
|
def shipping_tax
|
@@ -5,16 +5,12 @@ module Returnly
|
|
5
5
|
sub_total = Money.new 0
|
6
6
|
tax = Money.new 0
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
sub_total += Money.from_amount return_item.total_excluding_vat
|
8
|
+
calculator.line_items_return_items.values.flatten.each do |return_item|
|
9
|
+
sub_total += Money.from_amount return_item.inventory_unit.line_item.price
|
11
10
|
tax += Money.from_amount calculator.line_item_tax(return_item.inventory_unit.line_item)
|
12
11
|
end
|
13
12
|
|
14
13
|
discount = Money.from_amount(calculator.discount)
|
15
|
-
if return_items[:is_returned_items]
|
16
|
-
sub_total += discount
|
17
|
-
end
|
18
14
|
total_refund_amount = sub_total + tax - (discount * -1) # discount is negative, so we multiply it by -1 to make it positive for subtraction
|
19
15
|
shipping_tax = calculator.shipping_tax
|
20
16
|
{
|
data/lib/returnly/refunder.rb
CHANGED
@@ -95,7 +95,7 @@ module Returnly
|
|
95
95
|
end
|
96
96
|
|
97
97
|
def each_return_item
|
98
|
-
return_items = refund_calculator.line_items_return_items
|
98
|
+
return_items = refund_calculator.line_items_return_items.values.flatten
|
99
99
|
self.customer_return = Returnly::Builders::CustomerReturn.build_by_return_items(return_items)
|
100
100
|
|
101
101
|
return_items.each do |return_item|
|
data/lib/returnly/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solidus-returnly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Returnly Technologies, Inc
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-08-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: solidus
|