trebbianno-ruby-api 0.0.4 → 0.0.5

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
  SHA1:
3
- metadata.gz: c9a5498fa78f924826a897a57681ffdf8aafa888
4
- data.tar.gz: 253f986e3c9fd7b17acfe916ebb7882a7c666014
3
+ metadata.gz: b904a315b8d56e9ad2da99a1d9f168d2ef81eb42
4
+ data.tar.gz: 03a0dc92627b0d216368ef528a4feb18c03a49fd
5
5
  SHA512:
6
- metadata.gz: 6ad558be3c3b0bf57a4d7f6bc6135a1c67f5db5ea940d8bd167b8b81d360f02a19d043e6842cea9d5625a9a8be8285228da8aab619fe327f5d6231fff5019db5
7
- data.tar.gz: d7f242886986fff9db478670090f473277dbe4dbe645bb97d18e5d8c941297ba3dac7cf1e00e8a06df735c93fdea5cd3e5f595ac839857c890fb483619f938b2
6
+ metadata.gz: c10427b70d37b3440ff8d05190cda60fe5be4d72cb6f6aee09d5124dbe819a32f844f7c9a8183f2bee1a447f4cff2004195f1f7dc6e7064a2d4718c9a0789ab3
7
+ data.tar.gz: 4d5d04b9c2cb85e9e8771afe7ae5dbd35edfacc68cdf670264d20231a837e53eda52abc17d84923e92b25cd52adcf157349ddfb85b92f63f206f87cf48056158
@@ -7,7 +7,7 @@ module Trebbianno
7
7
  construct_xml "orders" do |xml|
8
8
 
9
9
  xml.order do
10
-
10
+
11
11
  build_user xml
12
12
 
13
13
  address = order[:shipping_address]
@@ -49,13 +49,31 @@ module Trebbianno
49
49
  xml.ordernumber order[:number]
50
50
  xml.sku line_item[:sku]
51
51
  xml.qty line_item[:quantity]
52
- xml.unitprice line_item[:price] - line_item_discount(order)
52
+ xml.unitprice unit_price(line_item, order)
53
53
  end
54
54
  end
55
55
  end
56
56
 
57
- def line_item_discount(order)
58
- order[:item_discount].abs / order[:line_items].count
57
+ def unit_price(line_item, order)
58
+ adjusted_price(line_item, order).round(2)
59
+ end
60
+
61
+ def adjusted_price(line_item, order)
62
+ line_item[:price] - line_item_discount(line_item[:price], order)
63
+ end
64
+
65
+ def line_item_discount(item_price, order)
66
+ (item_price * discount_percent(order)).round(2)
67
+ end
68
+
69
+ def discount_percent(order)
70
+ order[:item_discount].to_f / line_item_count(order)
71
+ end
72
+
73
+ def line_item_count(order)
74
+ order[:line_items].inject(0) do |sum, hash|
75
+ sum + hash[:price]
76
+ end
59
77
  end
60
78
 
61
79
  end
@@ -1,3 +1,3 @@
1
1
  module Trebbianno
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -21,13 +21,13 @@
21
21
  <ordernumber>R123123123</ordernumber>
22
22
  <sku>123332211</sku>
23
23
  <qty>1</qty>
24
- <unitprice>80</unitprice>
24
+ <unitprice>86.67</unitprice>
25
25
  </orderline>
26
26
  <orderline>
27
27
  <ordernumber>R123123123</ordernumber>
28
28
  <sku>123332212</sku>
29
29
  <qty>1</qty>
30
- <unitprice>180</unitprice>
30
+ <unitprice>173.33</unitprice>
31
31
  </orderline>
32
32
  </order>
33
33
  </orders>
@@ -39,10 +39,10 @@ describe Trebbianno::Order do
39
39
  end
40
40
 
41
41
  describe 'private#line_item_discount' do
42
- let(:discount) {[20, 20]}
42
+ let(:discount) {[13.33, 26.67]}
43
43
  it 'should calculate discount price for line item' do
44
44
  order_hash[:line_items].each_with_index do |item, index|
45
- discount_amount = order_client.send(:line_item_discount, order_hash)
45
+ discount_amount = order_client.send(:line_item_discount, item[:price], order_hash)
46
46
  expect(discount_amount).to eq discount[index]
47
47
  end
48
48
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trebbianno-ruby-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Grubbs