moy_sklad 1.0.0.beta1 → 1.0.0.beta2

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
  SHA1:
3
- metadata.gz: f5daa533ba17369f57ab9a4395fd5f6bf17912d8
4
- data.tar.gz: 9ea1ceb830cc2e6a3e99594188f9da7fcba2107f
3
+ metadata.gz: 0003b6f3f8990034da10eb5bba8256c4e155b78d
4
+ data.tar.gz: 861428d9afee9fcc7fbbea9514ffc794afc8a1b6
5
5
  SHA512:
6
- metadata.gz: fbf0c19a234154d449e5fcdacff418d9074dd3b707b511cfb9dcb79a5518b594ad6f28cacbd865f8d245ff3c2c5daea4383dbad12ebb7775058e0108c3a35445
7
- data.tar.gz: fea86256fbebb3e09c424372a187a352409e52c1fa4ee625a80be333d32b6b5cbc2a3f503690fbea2ebd96317d2276be8b2a0c587654116f4ada1d56232c82b7
6
+ metadata.gz: 0ab25dbeedd3313751d47c9aa11b7a331cf46681af2f199edfbf2737d5d75dd34fd155599ab1a10ac982b5d2d317c53297a68ae3e9bc317a367df2865a1d9c08
7
+ data.tar.gz: 1d209a77a948f99aac93a476f54b959b8f935c3e4a30615d2fc530ef8d2031ef366a884e1d62083c397c6ee40c5a7fcfc488574218b14bba1b03e03fc4186111
@@ -0,0 +1,9 @@
1
+ module MoySklad::Model
2
+ class CashIn < MoySklad::Client::Base
3
+ def initialize(*args)
4
+ super(*args)
5
+ create_nested_collection(:attribute)
6
+ create_nested_resource(:sum)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,71 @@
1
+ xml.cashIn(name: name, stateUuid: stateUuid, targetAgentUuid: targetAgentUuid, sourceAgentUuid: sourceAgentUuid, targetStoreUuid: targetStoreUuid,
2
+ sourceStoreUuid: sourceStoreUuid, applicable: applicable, projectUuid: projectUuid, contractUuid: contractUuid, moment: moment,
3
+ targetAccountUuid: targetAccountUuid, sourceAccountUuid: sourceAccountUuid, payerVat: payerVat, retailStoreUuid: retailStoreUuid,
4
+ currencyUuid: currencyUuid, rate: rate, vatIncluded: vatIncluded, employeeUuid: employeeUuid, expenseItemUuid: expenseItemUuid,
5
+ incomingDate: incomingDate, incomingNumber: incomingNumber, paymentPurpose: paymentPurpose, vatSum: vatSum,
6
+ commissionReportUuid: commissionReportUuid, customerOrderUuid: customerOrderUuid, factureOutUuid: factureOutUuid,
7
+ invoiceOutUuid: invoiceOutUuid, purchaseReturnUuid: purchaseReturnUuid) {
8
+
9
+ xml.accountUuid_ accountUuid
10
+ xml.accountId_ accountId
11
+ xml.uuid_ uuid
12
+ xml.groupUuid_ groupUuid
13
+ xml.deleted_ deleted
14
+ xml.code_ code
15
+ xml.externalcode_ externalcode
16
+ xml.description_ description
17
+
18
+ to_a(:attribute).each do |a|
19
+ xml.attribute(metadataUuid: a.metadataUuid, valueText: a.valueText, valueString: a.valueString,
20
+ doubleValue: a.doubleValue, longValue: a.longValue, booleanValue: a.booleanValue,
21
+ timeValue: a.timeValue, entityValueUuid: a.entityValueUuid, agentValueUuid: a.agentValueUuid,
22
+ goodValueUuid: a.goodValueUuid, placeValueUuid: a.placeValueUuid, consignmentValueUuid: a.consignmentValueUuid,
23
+ contractValueUuid: a.contractValueUuid, projectValueUuid: a.projectValueUuid, employeeValueUuid: a.employeeValueUuid,
24
+ goodUuid: a.goodUuid) {
25
+
26
+ xml.accountUuid_ a.accountUuid
27
+ xml.accountId_ a.accountId
28
+ xml.uuid_ a.uuid
29
+ xml.groupUuid_ a.groupUuid
30
+ xml.deleted_ a.deleted
31
+
32
+ a.to_a(:file).each do |f|
33
+ xml.file(name: f.name, created: f.created, filename: f.filename, miniatureUuid: f.miniatureUuid) {
34
+
35
+ xml.accountUuid_ f.accountUuid
36
+ xml.accountId_ f.accountId
37
+ xml.uuid_ f.uuid
38
+ xml.groupUuid_ f.groupUuid
39
+ xml.deleted_ f.deleted
40
+ xml.code_ f.code
41
+ xml.externalcode_ f.externalcode
42
+ xml.description_ f.description
43
+ xml.contents_ f.contents
44
+ }
45
+ end
46
+ }
47
+ end
48
+
49
+ to_a(:document) do |d|
50
+ xml.document(name: d.name, created: d.created, filename: d.filename, miniatureUuid: d.miniatureUuid,
51
+ emailedDate: d.emailedDate, publicId: d.publicId, operationUuid: d.operationUuid) {
52
+ xml.accountUuid_ d.accountUuid
53
+ xml.accountId_ d.accountId
54
+ xml.uuid_ d.uuid
55
+ xml.groupUuid_ d.groupUuid
56
+ xml.deleted_ d.deleted
57
+ xml.code_ d.code
58
+ xml.externalcode_ d.externalcode
59
+ xml.description_ d.description
60
+ xml.contents_ d.contents
61
+ }
62
+ end
63
+
64
+ xml.sum(sum: sum.sum, sumInCurrency: sum.sumInCurrency)
65
+
66
+ xml.demandsUuid {
67
+ to_a(:demandsUuid).each do |r|
68
+ xml.demandRef_ r
69
+ end
70
+ }
71
+ }
@@ -2,10 +2,9 @@ xml.paymentIn(name: name, stateUuid: stateUuid, targetAgentUuid: targetAgentUuid
2
2
  targetStoreUuid: targetStoreUuid, sourceStoreUuid: sourceStoreUuid, applicable: applicable, projectUuid: projectUuid,
3
3
  contractUuid: contractUuid, moment: moment, targetAccountUuid: targetAccountUuid, sourceAccountUuid: sourceAccountUuid,
4
4
  payerVat: payerVat, retailStoreUuid: retailStoreUuid, currencyUuid: currencyUuid, rate: rate, vatIncluded: vatIncluded,
5
- created: created, createdBy: createdBy, employeeUuid: employeeUuid, expenseItemUuid: expenseItemUuid,
6
- incomingDate: incomingDate, incomingNumber: incomingNumber, paymentPurpose: paymentPurpose, vatSum: vatSum,
7
- commissionReportUuid: commissionReportUuid, customerOrderUuid: customerOrderUuid, factureOutUuid: factureOutUuid,
8
- invoiceOutUuid: invoiceOutUuid, purchaseReturnUuid: purchaseReturnUuid) {
5
+ employeeUuid: employeeUuid, expenseItemUuid: expenseItemUuid, incomingDate: incomingDate, incomingNumber: incomingNumber,
6
+ paymentPurpose: paymentPurpose, vatSum: vatSum, commissionReportUuid: commissionReportUuid, customerOrderUuid: customerOrderUuid,
7
+ factureOutUuid: factureOutUuid, invoiceOutUuid: invoiceOutUuid, purchaseReturnUuid: purchaseReturnUuid) {
9
8
 
10
9
  xml.accountUuid_ accountUuid
11
10
  xml.accountId_ accountId
@@ -10,4 +10,4 @@ require 'moy_sklad/model/custom_entity'
10
10
  require 'moy_sklad/model/country'
11
11
  require 'moy_sklad/model/supply'
12
12
  require 'moy_sklad/model/demand'
13
-
13
+ require 'moy_sklad/model/cash_in'
@@ -1,3 +1,3 @@
1
1
  module MoySklad
2
- VERSION = '1.0.0.beta1'
2
+ VERSION = '1.0.0.beta2'
3
3
  end
@@ -0,0 +1,120 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'CashIn' do
4
+
5
+ describe :index do
6
+ it "should return list of payments" do
7
+ payments = MoySklad::Model::CashIn.find(:all)
8
+ expect(payments.metadata[:total]).to eq(payments.length)
9
+ end
10
+ end
11
+
12
+ describe :find do
13
+ it "should return payment" do
14
+ payment = MoySklad::Model::CashIn.new
15
+ payment.name = "test - payment"
16
+ payment.sum.sum = 1000 * 100
17
+ expect(payment.save).to eq(true)
18
+ expect(payment.uuid.length).to eq(36)
19
+
20
+ uuid = payment.uuid
21
+ payment = MoySklad::Model::CashIn.find(uuid)
22
+ expect(payment.name).to eq("test - payment")
23
+ expect(payment.sum.sum).to eq("100000.0")
24
+ end
25
+ end
26
+
27
+ describe :create do
28
+
29
+ it "should create new empty CashIn" do
30
+ payment = MoySklad::Model::CashIn.new
31
+ expect(payment.save).to eq(true)
32
+ expect(payment.uuid.length).to eq(36)
33
+ payment.destroy
34
+ end
35
+
36
+ it "should create new non-empty CashIn" do
37
+ payment = MoySklad::Model::CashIn.new
38
+ payment.name = "test - payment"
39
+ payment.sum.sum = 1000 * 100
40
+ expect(payment.save).to eq(true)
41
+ expect(payment.uuid.length).to eq(36)
42
+
43
+ uuid = payment.uuid
44
+ payment = MoySklad::Model::CashIn.find(uuid)
45
+ expect(payment.name).to eq("test - payment")
46
+ expect(payment.sum.sum).to eq("100000.0")
47
+ expect(payment.sum.sumInCurrency).to eq("100000.0")
48
+ payment.destroy
49
+
50
+ expect{MoySklad::Model::CashIn.find(uuid)}.to raise_error(ActiveResource::ResourceNotFound)
51
+ end
52
+
53
+ it "should create new order + payment", pending: 'need real data in config' do
54
+ order = MoySklad::Model::CustomerOrder.new
55
+ order.name = "Test with payment - API"
56
+ order.applicable = true
57
+ order.targetAgentUuid = TGT_AGENT
58
+ order.sourceStoreUuid = SRC_STORE
59
+ order.sourceAgentUuid = SRC_AGENT
60
+ order.stateUuid = CONFIRMED_UUID
61
+ order.sum.sum = "100"
62
+ order.sum.sumInCurrency = "100"
63
+
64
+ KNOWN_ITEMS.each do |id, info|
65
+ order.addItem(id, {quantity: info[:quantity],
66
+ basePrice: { sum: info[:price] * 100, sumInCurrency: info[:price] * 100},
67
+ price: { sum: info[:price] * 100, sumInCurrency: info[:price] * 100}})
68
+ end
69
+
70
+ ORDER_OPTIONS.each do |type, opt|
71
+ order.setAttribute({uuid: opt[:key], value: :entityValueUuid}, opt[:value])
72
+ end
73
+
74
+ expect(order.save).to eq(true)
75
+ expect(order.uuid.length).to eq(36)
76
+ uuid = order.uuid
77
+
78
+ payment = MoySklad::Model::CashIn.new
79
+ payment.sum.sum = order.sum.sum
80
+ payment.targetAgentUuid = TGT_AGENT
81
+ payment.sourceAgentUuid = SRC_AGENT
82
+ payment.describe = "Just a test"
83
+ payment.customerOrderUuid = uuid
84
+
85
+ expect(payment.save).to eq(true)
86
+ expect(payment.uuid.length).to eq(36)
87
+
88
+ # check order and bounded payment
89
+ order = MoySklad::Model::CustomerOrder.find(uuid)
90
+ expect(order.paymentsUuid.to_a(:financeInRef).first).to eq(payment.uuid)
91
+
92
+ # Order can be destroyed only after the payment
93
+ expect{order.destroy}.to raise_error(ActiveResource::ResourceNotFound)
94
+ payment.destroy
95
+ order.destroy
96
+ end
97
+
98
+ it "create payment and update applicable status", pending: 'need real data in config' do
99
+
100
+ payment = MoySklad::Model::CashIn.new
101
+ payment.targetAgentUuid = TGT_AGENT
102
+ payment.sourceAgentUuid = SRC_AGENT
103
+ payment.sum.sum = 1000 * 100
104
+ expect(payment.save).to eq(true)
105
+ uuid = payment.uuid
106
+
107
+ payment = MoySklad::Model::CashIn.find(uuid)
108
+ expect(payment.applicable).to eq("false")
109
+ payment.applicable = "true"
110
+ expect(payment.save).to eq(true)
111
+
112
+ payment = MoySklad::Model::CashIn.find(uuid)
113
+ expect(payment.applicable).to eq("true")
114
+
115
+ payment.destroy
116
+
117
+ expect{MoySklad::Model::CashIn.find(uuid)}.to raise_error(ActiveResource::ResourceNotFound)
118
+ end
119
+ end
120
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moy_sklad
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.beta1
4
+ version: 1.0.0.beta2
5
5
  platform: ruby
6
6
  authors:
7
7
  - uno4ki
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-10-28 00:00:00.000000000 Z
12
+ date: 2014-11-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -139,6 +139,7 @@ files:
139
139
  - lib/moy_sklad/client/resource.rb
140
140
  - lib/moy_sklad/configuration.rb
141
141
  - lib/moy_sklad/model.rb
142
+ - lib/moy_sklad/model/cash_in.rb
142
143
  - lib/moy_sklad/model/company.rb
143
144
  - lib/moy_sklad/model/country.rb
144
145
  - lib/moy_sklad/model/custom_entity.rb
@@ -149,6 +150,7 @@ files:
149
150
  - lib/moy_sklad/model/good_folder.rb
150
151
  - lib/moy_sklad/model/payment_in.rb
151
152
  - lib/moy_sklad/model/supply.rb
153
+ - lib/moy_sklad/model/templates/cash_in.builder
152
154
  - lib/moy_sklad/model/templates/company.builder
153
155
  - lib/moy_sklad/model/templates/custom_entity.builder
154
156
  - lib/moy_sklad/model/templates/customer_order.builder
@@ -162,6 +164,7 @@ files:
162
164
  - moy_sklad.gemspec
163
165
  - spec/ms_config.rb
164
166
  - spec/spec_helper.rb
167
+ - spec/unit/cash_in_spec.rb
165
168
  - spec/unit/company_spec.rb
166
169
  - spec/unit/country_spec.rb
167
170
  - spec/unit/custom_entity_spec.rb
@@ -199,6 +202,7 @@ summary: MoySklad API wrapper
199
202
  test_files:
200
203
  - spec/ms_config.rb
201
204
  - spec/spec_helper.rb
205
+ - spec/unit/cash_in_spec.rb
202
206
  - spec/unit/company_spec.rb
203
207
  - spec/unit/country_spec.rb
204
208
  - spec/unit/custom_entity_spec.rb