rs.ge 0.0.15 → 0.0.16

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -2,4 +2,5 @@
2
2
  .bundle
3
3
  Gemfile.lock
4
4
  pkg/*
5
- coverage/*
5
+ coverage/*
6
+ tmp/*
data/lib/rs/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
 
3
3
  module RS
4
- VERSION = '0.0.15'
4
+ VERSION = '0.0.16'
5
5
  end
data/lib/rs/waybill.rb CHANGED
@@ -26,7 +26,7 @@ module RS
26
26
 
27
27
  # ეს არის ზედნადების ხაზი საქონლისთვის.
28
28
  class WaybillItem
29
- attr_accessor :id, :prod_name, :unit_id, :unit_name, :quantity, :price, :bar_code, :excise_id
29
+ attr_accessor :id, :prod_name, :unit_id, :unit_name, :quantity, :price, :bar_code, :excise_id, :vat_type
30
30
 
31
31
  # აბრუნებს ამ ხაზის XML წარმოდგენას.
32
32
  # @param xml XML builder-ის კლასი
@@ -41,6 +41,7 @@ module RS
41
41
  b.AMOUNT self.quantity * self.price
42
42
  b.BAR_CODE self.bar_code
43
43
  b.A_ID (self.excise_id ? self.excise_id : 0)
44
+ b.VAT_TYPE (self.vat_type || Waybill::VAT_COMMON)
44
45
  end
45
46
  end
46
47
 
@@ -106,6 +107,12 @@ module RS
106
107
  STATUS_SAVED = 0
107
108
  STATUS_ACTIVE = 1
108
109
  STATUS_CLOSED = 2
110
+ # ჩვეულებრივი
111
+ VAT_COMMON = 0
112
+ # ნულოვანი
113
+ VAT_ZERO = 1
114
+ # დაუბეგრავი
115
+ VAT_NONE = 2
109
116
  attr_accessor :id, :type, :status, :parent_id, :number
110
117
  attr_accessor :seller_id # გამყიდველის უნიკალური კოდი
111
118
  attr_accessor :seller_tin, :seller_name
@@ -289,6 +296,10 @@ module RS
289
296
  if self.end_address.nil? or self.end_address.strip.empty?
290
297
  RS.append_validation_error(@validation_errors, :end_address, 'საბოლოო მისამართი განუსაზღვრელია')
291
298
  end
299
+ if not self.start_address.nil? and not self.end_address.nil? and
300
+ self.start_address.strip != self.end_address.strip and self.type == RS::WaybillType::WITHOUT_TRANSPORTATION
301
+ RS.append_validation_error(@validation_errors, :type, '"ტრანსპორტირების გარეშე" დაუშვებელია, როდესაც საწყისი მისამართი არ ემთხვევა საბოლოოს.')
302
+ end
292
303
  end
293
304
 
294
305
  # საქონლის პოზიციების შემოწმება
data/problems.md ADDED
@@ -0,0 +1 @@
1
+ # არსებობს სისტემაში მომხმარებელი, რომელსაც IP არ აქვს მითითებული. ეს რას ნიშნავს?
data/spec/rs/dict_spec.rb CHANGED
@@ -132,21 +132,21 @@ end
132
132
 
133
133
  describe 'get bar codes' do
134
134
  before(:all) do
135
- RS.save_bar_code(RS.su_params.merge({'bar_code' => 'TV1', 'prod_name' => 'tv set 1', 'unit_id' => RS::WaybillUnit::OTHERS, 'unit_name' => 'box'}))
136
- RS.save_bar_code(RS.su_params.merge({'bar_code' => 'TV2', 'prod_name' => 'tv set 2', 'unit_id' => RS::WaybillUnit::OTHERS, 'unit_name' => 'box'}))
135
+ RS.save_bar_code(RS.su_params.merge({'bar_code' => 'rs_TV1', 'prod_name' => 'tv set 1', 'unit_id' => RS::WaybillUnit::OTHERS, 'unit_name' => 'box'}))
136
+ RS.save_bar_code(RS.su_params.merge({'bar_code' => 'rs_TV2', 'prod_name' => 'tv set 2', 'unit_id' => RS::WaybillUnit::OTHERS, 'unit_name' => 'box'}))
137
137
  end
138
138
  context "look up first code" do
139
139
  before(:all) do
140
- @codes = RS.get_bar_codes(RS.su_params.merge({'bar_code' => 'TV1'}))
140
+ @codes = RS.get_bar_codes(RS.su_params.merge({'bar_code' => 'rs_TV1'}))
141
141
  end
142
142
  subject { @codes }
143
143
  it { should_not be_nil }
144
144
  it { should_not be_empty }
145
145
  its(:size) { should == 1 }
146
- context 'TV1 bar code' do
146
+ context 'rs_TV1 bar code' do
147
147
  subject { @codes.first }
148
148
  it { should be_instance_of RS::BarCode }
149
- its(:code) { should == 'TV1' }
149
+ its(:code) { should == 'rs_TV1' }
150
150
  its(:name) { should == 'tv set 1' }
151
151
  its(:unit_id) { should == RS::WaybillUnit::OTHERS }
152
152
  its(:excise_id) { should be_nil }
@@ -154,24 +154,24 @@ describe 'get bar codes' do
154
154
  end
155
155
  context "lookup both codes" do
156
156
  before(:all) do
157
- @codes = RS.get_bar_codes(RS.su_params.merge({'bar_code' => 'TV'}))
157
+ @codes = RS.get_bar_codes(RS.su_params.merge({'bar_code' => 'rs_TV'}))
158
158
  end
159
159
  subject { @codes }
160
160
  it { should_not be_nil }
161
161
  it { should_not be_empty }
162
162
  its(:size) { should == 2 }
163
- context 'TV1 bar code' do
163
+ context 'rs_TV1 bar code' do
164
164
  subject { @codes.first }
165
165
  it { should be_instance_of RS::BarCode }
166
- its(:code) { should == 'TV1' }
166
+ its(:code) { should == 'rs_TV1' }
167
167
  its(:name) { should == 'tv set 1' }
168
168
  its(:unit_id) { should == RS::WaybillUnit::OTHERS }
169
169
  its(:excise_id) { should be_nil }
170
170
  end
171
- context 'TV2 bar code' do
171
+ context 'rs_TV2 bar code' do
172
172
  subject { @codes[1] }
173
173
  it { should be_instance_of RS::BarCode }
174
- its(:code) { should == 'TV2' }
174
+ its(:code) { should == 'rs_TV2' }
175
175
  its(:name) { should == 'tv set 2' }
176
176
  its(:unit_id) { should == RS::WaybillUnit::OTHERS }
177
177
  its(:excise_id) { should be_nil }
data/spec/rs/sys_spec.rb CHANGED
@@ -16,11 +16,18 @@ describe 'get service users' do
16
16
  before(:all) do
17
17
  @org = RS::TEST_ORG1
18
18
  @users = RS.get_service_users(RS.auth_params)
19
+ @user = nil
20
+ @users.each do |user|
21
+ if user.ip
22
+ @user = user
23
+ break
24
+ end
25
+ end
19
26
  end
20
27
  subject { @users }
21
28
  it { should_not be_empty }
22
29
  context 'one of the users' do
23
- subject { @users.first }
30
+ subject { @user }
24
31
  it('should not have empty ID') { subject.id.should_not be_nil }
25
32
  it('should not have empty USER_NAME') { subject.user_name.should_not be_nil }
26
33
  it('should not have empty PAYER_ID') { subject.payer_id.should_not be_nil }
@@ -51,13 +51,13 @@ describe 'create waybill, activate and close it, then try to deactivate' do
51
51
  subject { @waybill }
52
52
  its(:status) { should == RS::Waybill::STATUS_CLOSED }
53
53
  end
54
- context 'could not deactivate closed waybill !!' do
54
+ context 'closed waybill is diactivable too' do
55
55
  before(:all) do
56
56
  params = RS.su_params.merge('waybill_id' => @waybill.id)
57
57
  RS.deactivate_waybill(params)
58
58
  @waybill = RS.get_waybill(params)
59
59
  end
60
60
  subject { @waybill }
61
- its(:status) { should == RS::Waybill::STATUS_CLOSED }
61
+ its(:status) { should == RS::Waybill::STATUS_DEACTIVATED }
62
62
  end
63
63
  end
@@ -15,3 +15,5 @@ describe 'save invoice (only for closed waybill)' do
15
15
  its(:invoice_id) { should_not be_nil }
16
16
  its(:invoice_id) { should > 0 }
17
17
  end
18
+
19
+ # TODO: როდესაც არაა დღგ-ს გადამხდელი ვერ აგზავნი?!
@@ -193,3 +193,13 @@ describe 'delete saved waybill' do
193
193
  its(:status) { should == RS::Waybill::STATUS_DELETED }
194
194
  end
195
195
  end
196
+
197
+ describe '"ტრანსპორტირების გარეშე" ზედნადები განსხვავებული მისამართებით' do
198
+ before(:all) do
199
+ @waybill = waybill_skeleton(:type => RS::WaybillType::WITHOUT_TRANSPORTATION, :start_address => 'აბაშა', :end_address => ' თბილისი')
200
+ RS.save_waybill(@waybill, RS.su_params)
201
+ @resp = @waybill.error_code
202
+ end
203
+ subject { @resp }
204
+ it { should == -1036 }
205
+ end
@@ -81,6 +81,9 @@ describe 'waybill validation' do
81
81
  validable_test('fixing end address', @waybill, :end_address, false) do |waybill|
82
82
  waybill.end_address = 'Sokhumi'
83
83
  end
84
+ validable_test('waybill_type == WITHOUT_TRANSPORTATION', @waybill, :type, true) do |waybill|
85
+ waybill.type = RS::WaybillType::WITHOUT_TRANSPORTATION
86
+ end
84
87
  # items
85
88
  validable_test('items are missing', @waybill, :items, true)
86
89
  end
data/spec/spec_helper.rb CHANGED
@@ -56,7 +56,7 @@ def waybill_skeleton(params = {})
56
56
  waybill.buyer_name = params[:buyer_name] || 'სატესტო სატესტო'
57
57
  waybill.start_address = params[:start_address] || 'თბილისი'
58
58
  waybill.end_address = params[:end_address] || 'სოხუმი'
59
- waybill.transport_type_id = params[:transport_type] || RS::TransportType::VEHICLE
59
+ waybill.transport_type_id = params[:transport_type_id] || RS::TransportType::VEHICLE
60
60
  waybill.start_date = params[:start_date] || Time.now
61
61
  waybill.comment = params[:comment] #|| 'comment'
62
62
  if waybill.transport_type_id == RS::TransportType::VEHICLE
@@ -83,6 +83,7 @@ def waybill_skeleton(params = {})
83
83
  item.quantity = it[:quantity]
84
84
  item.price = it[:price]
85
85
  item.bar_code = it[:code]
86
+ item.vat_type = it[:vat_type]
86
87
  items << item
87
88
  end
88
89
  else
@@ -91,8 +92,9 @@ def waybill_skeleton(params = {})
91
92
  item.unit_id = 99
92
93
  item.unit_name = 'კილოგრამი'
93
94
  item.quantity = 10
94
- item.price = 5
95
+ item.price = 3
95
96
  item.bar_code = '001'
97
+ item.vat_type = RS::Waybill::VAT_COMMON
96
98
  items = [item]
97
99
  end
98
100
  waybill.items = items
data/tmp/waybill.pdf CHANGED
@@ -173,7 +173,7 @@ S
173
173
  BT
174
174
  216.128 787.246 Td
175
175
  /F1.0 7 Tf
176
- <323820> Tj
176
+ <333120> Tj
177
177
  /F1.1 7 Tf
178
178
  <2d222e2f2b20> Tj
179
179
  /F1.0 7 Tf
@@ -243,7 +243,7 @@ S
243
243
  BT
244
244
  367.06 787.246 Td
245
245
  /F1.0 7 Tf
246
- <31373a3033> Tj
246
+ <31363a3535> Tj
247
247
  ET
248
248
 
249
249
  0.000 0.000 0.000 scn
@@ -2748,7 +2748,7 @@ S
2748
2748
  BT
2749
2749
  507.92999999999995 493.5179999999999 Td
2750
2750
  /F1.0 6 Tf
2751
- <352c3030> Tj
2751
+ <332c3030> Tj
2752
2752
  ET
2753
2753
 
2754
2754
  0.000 0.000 0.000 scn
@@ -2778,7 +2778,7 @@ S
2778
2778
  BT
2779
2779
  559.1139999999999 493.5179999999999 Td
2780
2780
  /F1.0 6 Tf
2781
- <35302c3030> Tj
2781
+ <33302c3030> Tj
2782
2782
  ET
2783
2783
 
2784
2784
  0.000 0.000 0.000 scn
@@ -2958,7 +2958,7 @@ S
2958
2958
  BT
2959
2959
  507.92999999999995 476.3239999999999 Td
2960
2960
  /F1.0 6 Tf
2961
- <352c3030> Tj
2961
+ <332c3030> Tj
2962
2962
  ET
2963
2963
 
2964
2964
  0.000 0.000 0.000 scn
@@ -2988,7 +2988,7 @@ S
2988
2988
  BT
2989
2989
  559.1139999999999 476.3239999999999 Td
2990
2990
  /F1.0 6 Tf
2991
- <35302c3030> Tj
2991
+ <33302c3030> Tj
2992
2992
  ET
2993
2993
 
2994
2994
  0.000 0.000 0.000 scn
@@ -3168,7 +3168,7 @@ S
3168
3168
  BT
3169
3169
  507.92999999999995 459.1299999999999 Td
3170
3170
  /F1.0 6 Tf
3171
- <352c3030> Tj
3171
+ <332c3030> Tj
3172
3172
  ET
3173
3173
 
3174
3174
  0.000 0.000 0.000 scn
@@ -3198,7 +3198,7 @@ S
3198
3198
  BT
3199
3199
  559.1139999999999 459.1299999999999 Td
3200
3200
  /F1.0 6 Tf
3201
- <35302c3030> Tj
3201
+ <33302c3030> Tj
3202
3202
  ET
3203
3203
 
3204
3204
  0.000 0.000 0.000 scn
@@ -3378,7 +3378,7 @@ S
3378
3378
  BT
3379
3379
  507.92999999999995 441.93599999999986 Td
3380
3380
  /F1.0 6 Tf
3381
- <352c3030> Tj
3381
+ <332c3030> Tj
3382
3382
  ET
3383
3383
 
3384
3384
  0.000 0.000 0.000 scn
@@ -3408,7 +3408,7 @@ S
3408
3408
  BT
3409
3409
  559.1139999999999 441.93599999999986 Td
3410
3410
  /F1.0 6 Tf
3411
- <35302c3030> Tj
3411
+ <33302c3030> Tj
3412
3412
  ET
3413
3413
 
3414
3414
  0.000 0.000 0.000 scn
@@ -3588,7 +3588,7 @@ S
3588
3588
  BT
3589
3589
  507.92999999999995 424.74199999999985 Td
3590
3590
  /F1.0 6 Tf
3591
- <352c3030> Tj
3591
+ <332c3030> Tj
3592
3592
  ET
3593
3593
 
3594
3594
  0.000 0.000 0.000 scn
@@ -3618,7 +3618,7 @@ S
3618
3618
  BT
3619
3619
  559.1139999999999 424.74199999999985 Td
3620
3620
  /F1.0 6 Tf
3621
- <35302c3030> Tj
3621
+ <33302c3030> Tj
3622
3622
  ET
3623
3623
 
3624
3624
  0.000 0.000 0.000 scn
@@ -3798,7 +3798,7 @@ S
3798
3798
  BT
3799
3799
  507.92999999999995 407.54799999999983 Td
3800
3800
  /F1.0 6 Tf
3801
- <352c3030> Tj
3801
+ <332c3030> Tj
3802
3802
  ET
3803
3803
 
3804
3804
  0.000 0.000 0.000 scn
@@ -3828,7 +3828,7 @@ S
3828
3828
  BT
3829
3829
  559.1139999999999 407.54799999999983 Td
3830
3830
  /F1.0 6 Tf
3831
- <35302c3030> Tj
3831
+ <33302c3030> Tj
3832
3832
  ET
3833
3833
 
3834
3834
  0.000 0.000 0.000 scn
@@ -4008,7 +4008,7 @@ S
4008
4008
  BT
4009
4009
  507.92999999999995 390.3539999999998 Td
4010
4010
  /F1.0 6 Tf
4011
- <352c3030> Tj
4011
+ <332c3030> Tj
4012
4012
  ET
4013
4013
 
4014
4014
  0.000 0.000 0.000 scn
@@ -4038,7 +4038,7 @@ S
4038
4038
  BT
4039
4039
  559.1139999999999 390.3539999999998 Td
4040
4040
  /F1.0 6 Tf
4041
- <35302c3030> Tj
4041
+ <33302c3030> Tj
4042
4042
  ET
4043
4043
 
4044
4044
  0.000 0.000 0.000 scn
@@ -4218,7 +4218,7 @@ S
4218
4218
  BT
4219
4219
  507.92999999999995 373.1599999999998 Td
4220
4220
  /F1.0 6 Tf
4221
- <352c3030> Tj
4221
+ <332c3030> Tj
4222
4222
  ET
4223
4223
 
4224
4224
  0.000 0.000 0.000 scn
@@ -4248,7 +4248,7 @@ S
4248
4248
  BT
4249
4249
  559.1139999999999 373.1599999999998 Td
4250
4250
  /F1.0 6 Tf
4251
- <35302c3030> Tj
4251
+ <33302c3030> Tj
4252
4252
  ET
4253
4253
 
4254
4254
  0.000 0.000 0.000 scn
@@ -4428,7 +4428,7 @@ S
4428
4428
  BT
4429
4429
  507.92999999999995 355.9659999999998 Td
4430
4430
  /F1.0 6 Tf
4431
- <352c3030> Tj
4431
+ <332c3030> Tj
4432
4432
  ET
4433
4433
 
4434
4434
  0.000 0.000 0.000 scn
@@ -4458,7 +4458,7 @@ S
4458
4458
  BT
4459
4459
  559.1139999999999 355.9659999999998 Td
4460
4460
  /F1.0 6 Tf
4461
- <35302c3030> Tj
4461
+ <33302c3030> Tj
4462
4462
  ET
4463
4463
 
4464
4464
  0.000 0.000 0.000 scn
@@ -4638,7 +4638,7 @@ S
4638
4638
  BT
4639
4639
  507.92999999999995 338.77199999999976 Td
4640
4640
  /F1.0 6 Tf
4641
- <352c3030> Tj
4641
+ <332c3030> Tj
4642
4642
  ET
4643
4643
 
4644
4644
  0.000 0.000 0.000 scn
@@ -4668,7 +4668,7 @@ S
4668
4668
  BT
4669
4669
  559.1139999999999 338.77199999999976 Td
4670
4670
  /F1.0 6 Tf
4671
- <35302c3030> Tj
4671
+ <33302c3030> Tj
4672
4672
  ET
4673
4673
 
4674
4674
  0.000 0.000 0.000 scn
@@ -5533,7 +5533,7 @@ S
5533
5533
  BT
5534
5534
  75.1305 247.0429999999997 Td
5535
5535
  /F1.0 7 Tf
5536
- <3530302c303020> Tj
5536
+ <3330302c303020> Tj
5537
5537
  /F1.1 7 Tf
5538
5538
  <26222e2b> Tj
5539
5539
  ET
@@ -5566,9 +5566,9 @@ S
5566
5566
  0.000 0.000 0.000 SCN
5567
5567
 
5568
5568
  BT
5569
- 332.7895 247.0429999999997 Td
5569
+ 333.8115 247.0429999999997 Td
5570
5570
  /F1.1 7 Tf
5571
- <33363022212b2026222e2b20> Tj
5571
+ <21222d22212b2026222e2b20> Tj
5572
5572
  /F1.0 7 Tf
5573
5573
  <3020> Tj
5574
5574
  /F1.1 7 Tf
@@ -6027,7 +6027,7 @@ S
6027
6027
  BT
6028
6028
  328.628 112.88399999999965 Td
6029
6029
  /F1.0 7 Tf
6030
- <323820> Tj
6030
+ <333120> Tj
6031
6031
  /F1.1 7 Tf
6032
6032
  <2d222e2f2b20> Tj
6033
6033
  /F1.0 7 Tf
@@ -6064,7 +6064,7 @@ S
6064
6064
  BT
6065
6065
  439.56 112.88399999999965 Td
6066
6066
  /F1.0 7 Tf
6067
- <31373a3033> Tj
6067
+ <31363a3535> Tj
6068
6068
  ET
6069
6069
 
6070
6070
  0.000 0.000 0.000 scn
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rs.ge
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.15
4
+ version: 0.0.16
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-28 00:00:00.000000000 Z
12
+ date: 2012-03-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -128,10 +128,10 @@ files:
128
128
  - lib/rs/sys.rb
129
129
  - lib/rs/version.rb
130
130
  - lib/rs/waybill.rb
131
+ - problems.md
131
132
  - rs.gemspec
132
133
  - spec/rs/car_spec.rb
133
134
  - spec/rs/dict_spec.rb
134
- - spec/rs/invoice2_spec.rb
135
135
  - spec/rs/open_user.rb
136
136
  - spec/rs/pdf_spec.rb
137
137
  - spec/rs/sys_spec.rb
@@ -140,7 +140,6 @@ files:
140
140
  - spec/rs/waybill_spec.rb
141
141
  - spec/rs/waybill_validation_spec.rb
142
142
  - spec/spec_helper.rb
143
- - test.rb
144
143
  - tmp/waybill.pdf
145
144
  homepage: http://c12.ge
146
145
  licenses: []
@@ -169,7 +168,6 @@ summary: rs.ge web services
169
168
  test_files:
170
169
  - spec/rs/car_spec.rb
171
170
  - spec/rs/dict_spec.rb
172
- - spec/rs/invoice2_spec.rb
173
171
  - spec/rs/open_user.rb
174
172
  - spec/rs/pdf_spec.rb
175
173
  - spec/rs/sys_spec.rb
@@ -1,27 +0,0 @@
1
- # -*- encoding : utf-8 -*-
2
-
3
- require 'spec_helper'
4
- require 'rs'
5
-
6
- describe 'save waybill' do
7
- before(:all) do
8
- @waybill = waybill_skeleton(:transport_type => nil, :items => [
9
- { :name => 'კონდოლი საფერავი 0.75 ლ.', :unit_id => 99, :unit_name => 'ცალი', :quantity => 6, :price => 30.40, :code => '4867616100014' },
10
- { :name => 'კონდოლი მწვანე ქისი 0.75 ლ.', :unit_id => 99, :unit_name => 'ცალი', :quantity => 6, :price => 15.70, :code => '4867616100045' },
11
- { :name => 'ყუთი 2ბოთლიანი', :unit_id => 99, :unit_name => 'ცალი', :quantity => 8, :price => 25.60, :code => 'TMYUTI2B' },
12
- { :name => 'მუკუზანი 0.75ლ.', :unit_id => 99, :unit_name => 'ცალი', :quantity => 8, :price => 19.80, :code => '4860065010026' },
13
- { :name => 'ქინძმარაული 0.75ლ.', :unit_id => 99, :unit_name => 'ცალი', :quantity => 4, :price => 19.40, :code => '4860065010071' },
14
- { :name => 'ხვანჭკარა 0.75ლ.', :unit_id => 99, :unit_name => 'ცალი', :quantity => 1, :price => 29.70, :code => '4860065010057' },
15
- { :name => 'წინანდალი დაძველე ბული 0.75ლ.', :unit_id => 99, :unit_name => 'ცალი', :quantity => 1, :price => 11.50, :code => '4860065010170' },
16
- { :name => 'ტვიში 0.75ლ.', :unit_id => 99, :unit_name => 'ცალი', :quantity => 1, :price => 15.90, :code => '4860065010293' },
17
- { :name => 'ჭაჭა დავარგებული 0.5ლ.', :unit_id => 99, :unit_name => 'ცალი', :quantity => 6, :price => 24.80, :code => '4860065013775' },
18
- { :name => '"საფერავი" 0.75ლ.', :unit_id => 99, :unit_name => 'ცალი', :quantity => 4, :price => 15.50, :code => 'MUKUZ1' },
19
- ]
20
- )
21
- @waybill.buyer_tin = '204383176'
22
- @waybill.buyer_name = 'შსს საკადრო და ორგანიზაციული უზრუნველყოფის დეპარტ. საფინანსო-სამეურნეო უზრუნველყოფის მთავარი სამმ-ლო'
23
- @resp = RS.save_waybill(@waybill, RS.su_params)
24
- end
25
- subject { @resp }
26
- it { should == 0 }
27
- end
data/test.rb DELETED
@@ -1,185 +0,0 @@
1
- # -*- encoding : utf-8 -*-
2
- require 'savon'
3
-
4
- client = Savon::Client.new 'http://services.rs.ge/WayBillService/WayBillService.asmx?WSDL'
5
-
6
- wb = %Q{
7
- <WAYBILL>
8
- <SUB_WAYBILLS/>
9
- <GOODS_LIST>
10
- <GOODS>
11
- <ID>0</ID>
12
- <W_NAME>მწვანე ბარდა მარნეული 520გრ</W_NAME>
13
- <UNIT_ID>2</UNIT_ID>
14
- <UNIT_TXT>ცალი</UNIT_TXT>
15
- <QUANTITY>1</QUANTITY>
16
- <PRICE>2.09</PRICE>
17
- <AMOUNT>2.09</AMOUNT>
18
- <BAR_CODE>11</BAR_CODE>
19
- <A_ID>0</A_ID>
20
- </GOODS>
21
- </GOODS_LIST>
22
- <ID>0</ID>
23
- <TYPE>5</TYPE>
24
- <CREATE_DATE>2012-02-12T22:56:48</CREATE_DATE>
25
- <BUYER_TIN>211336240</BUYER_TIN>
26
- <CHEK_BUYER_TIN>0</CHEK_BUYER_TIN>
27
- <BUYER_NAME>ნიკორა</BUYER_NAME>
28
- <START_ADDRESS>ყანთელის 9</START_ADDRESS>
29
- <END_ADDRESS>ჭავჭავაძის 24</END_ADDRESS>
30
- <DRIVER_TIN>12345678910</DRIVER_TIN>
31
- <CHEK_DRIVER_TIN>0</CHEK_DRIVER_TIN>
32
- <DRIVER_NAME>დიმიტრი ობოლაშვილი</DRIVER_NAME>
33
- <TRANSPORT_COAST>0</TRANSPORT_COAST>
34
- <RECEPTION_INFO/>
35
- <RECEIVER_INFO/>
36
- <DELIVERY_DATE/>
37
- <STATUS>1</STATUS>
38
- <SELER_UN_ID>731937</SELER_UN_ID>
39
- <ACTIVATE_DATE/>
40
- <PAR_ID/>
41
- <CAR_NUMBER>ABK852</CAR_NUMBER>
42
- <BEGIN_DATE>2012-01-25T20:54:36</BEGIN_DATE>
43
- <TRAN_COST_PAYER>0</TRAN_COST_PAYER>
44
- <TRANS_ID>3</TRANS_ID>
45
- <TRANS_TXT/>
46
- <COMMENT/>
47
- </WAYBILL>
48
- }
49
-
50
- #resp = client.request 'get_waybill' do
51
- # soap.body = {'su'=>'dimitri1979','sp'=>'123456','waybill_id'=>'0000003171'}
52
- #end
53
-
54
- # resp = client.request 'SAVE_WAYBILL'.downcase do
55
- # soap.body = {
56
- # 'su' => 'dimitri1979',
57
- # 'sp' => '123456',
58
- # 'waybill!' => wb
59
- # }
60
- # end
61
-
62
- #, :body => { 'waybill!' => '<a>Some XML</a>' }
63
-
64
- # puts '-------------------'
65
- # puts resp.to_hash
66
- # puts '-------------------'
67
- # puts resp.to_xml
68
-
69
- body = { 'rs:save_waybill' => {'rs:su' => 'dimitri1979', 'rs:sp' => '123456', 'rs:waybill!' => wb }}
70
- namespaces = { 'xmlns:soapenv' => 'http://schemas.xmlsoap.org/soap/envelope/', 'xmlns:rs' => 'http://tempuri.org/' }
71
- wb_xml = Gyoku.xml( {'saopenv:Envelope' => { 'saopenv:Header' => {}, 'saopenv:Body' => body }, :attributes! => {'saopenv:Envelope' => namespaces}} )
72
- #puts wb_xml
73
- #resp = client.request 'save_waybill' do
74
- # soap.xml = %Q{<?xml version="1.0" encoding="utf-8"?>#{wb_xml}}
75
- #end
76
-
77
- # ეს არის ზედნადების ხაზი საქონლისთვის.
78
- class WaybillItem
79
- attr_accessor :id, :prod_name, :unit_id, :unit_name, :quantity, :price, :bar_code, :excise_id
80
- attr_accessor :error_code, :status_code
81
-
82
- # აბრუნებს ამ ხაზის XML წარმოდგენას.
83
- # @param xml XML builder-ის კლასი
84
- def to_xml(xml)
85
- xml.GOODS do |b|
86
- b.ID (self.id ? self.id : 0)
87
- b.W_NAME self.prod_name
88
- b.UNIT_ID self.unit_id
89
- b.UNIT_TXT self.unit_name
90
- b.QUANTITY self.quantity
91
- b.PRICE self.price
92
- b.AMOUNT self.quantity * self.price
93
- b.BAR_CODE self.bar_code
94
- b.A_ID (self.excise_id ? self.excise_id : 0)
95
- end
96
- end
97
- end
98
-
99
- # ეს არის ზედნადების კლასი.
100
- class Waybill
101
- TRANSPORTATION_PAID_BY_BUYER = 1
102
- TRANSPORTATION_PAID_BY_SELLER = 2
103
- STATUS_SAVED = 0
104
- STATUS_ACTIVE = 1
105
- attr_accessor :id, :type, :status, :parent_id
106
- attr_accessor :seller_id # გამყიდველის უნიკალური კოდი
107
- attr_accessor :buyer_tin, :check_buyer_tin, :buyer_name
108
- attr_accessor :seller_info, :buyer_info # გამყიდველის/მყიდველის თანამდებობა, სახელი და გვარი
109
- attr_accessor :driver_tin, :check_driver_tin, :driver_name
110
- attr_accessor :start_address, :end_address
111
- attr_accessor :transportation_cost, :transportation_cost_payer, :transport_type_id, :transport_type_name, :car_number
112
- attr_accessor :comment
113
- attr_accessor :start_date, :delivery_date
114
- attr_accessor :items
115
-
116
- def to_xml(xml)
117
- xml.WAYBILL do |b|
118
- b.GOODS_LIST do |g|
119
- (self.items || []).each do |item|
120
- item.to_xml g
121
- end
122
- end
123
- b.ID (self.id ? self.id : 0)
124
- b.TYPE self.type
125
- b.BUYER_TIN self.buyer_tin
126
- b.CHEK_BUYER_TIN (self.check_buyer_tin ? 1 : 0)
127
- b.BUYER_NAME self.buyer_name
128
- b.START_ADDRESS self.start_address
129
- b.END_ADDRESS self.end_address
130
- b.DRIVER_TIN self.driver_tin
131
- b.CHEK_DRIVER_TIN (self.check_driver_tin ? 1 : 0)
132
- b.DRIVER_NAME self.driver_name
133
- b.TRANSPORT_COAST (self.transportation_cost ? self.transportation_cost : 0)
134
- b.RECEPTION_INFO self.seller_info
135
- b.RECEIVER_INFO self.buyer_info
136
- b.DELIVERY_DATE (self.delivery_date ? self.delivery_date.strftime('%Y-%m-%dT%H:%M:%S') : '')
137
- b.STATUS self.status
138
- b.SELER_UN_ID self.seller_id
139
- b.PAR_ID (self.parent_id ? self.parent_id : '')
140
- b.CAR_NUMBER self.car_number
141
- b.BEGIN_DATE (self.start_date ? self.start_date.strftime('%Y-%m-%dT%H:%M:%S') : '')
142
- b.TRANS_COST_PAYER (self.transportation_cost_payer ? self.transportation_cost_payer : Waybill::TRANSPORTATION_PAID_BY_BUYER)
143
- b.TRANS_ID self.transport_type_id
144
- b.TRANS_TXT self.transport_type_name
145
- b.COMMENT self.comment
146
- end
147
- end
148
- end
149
-
150
- waybill = Waybill.new
151
- waybill.type = 2
152
- waybill.status = Waybill::STATUS_SAVED
153
- waybill.seller_id = 731937
154
- waybill.buyer_tin = '12345678910'
155
- waybill.check_buyer_tin = true
156
- waybill.buyer_name = 'სატესტო ორგანიზაცია - 2'
157
- waybill.start_address = 'Tbilisi'
158
- waybill.end_address = 'Sokhumi'
159
- waybill.transport_type_id = 1
160
- waybill.driver_name = 'დიმიტრი ყურაშვილი'
161
- waybill.car_number = 'WDW842'
162
- waybill.driver_tin = '02001000490'
163
- waybill.start_date = Time.now
164
-
165
- item = WaybillItem.new
166
- item.prod_name = 'კიტრი'
167
- item.unit_id = 99
168
- item.unit_name = 'კგ'
169
- item.quantity = 10
170
- item.price = 10
171
- item.bar_code = '1234'
172
-
173
- waybill.items = []
174
- waybill.items << item
175
-
176
- resp = client.request 'save_waybill' do |soap|
177
- #xml = Builder::XmlMarkup.new
178
- soap.body do |xml|
179
- xml.ins0 :su, 'dimitri1979'
180
- xml.ins0 :sp, '123456'
181
- xml.ins0 :waybill do |b|
182
- waybill.to_xml b
183
- end
184
- end
185
- end