rs.ge 0.0.10 → 0.0.11
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +1 -1
- data/lib/rs.rb +20 -0
- data/lib/rs/dict.rb +4 -0
- data/lib/rs/invoice.rb +18 -0
- data/lib/rs/sys.rb +1 -0
- data/lib/rs/version.rb +1 -1
- data/lib/rs/waybill.rb +2 -1
- data/spec/rs/open_user.rb +12 -0
- data/spec/rs/waybill_invoice_spec.rb +17 -0
- data/spec/rs/waybill_validation_spec.rb +1 -1
- data/spec/spec_helper.rb +4 -4
- data/tmp/waybill.pdf +4 -4
- metadata +48 -15
data/README.md
CHANGED
@@ -45,7 +45,7 @@ was_created = RS.create_service_user(params)
|
|
45
45
|
- `su` — ახალი სერვისის მომხმარებლის სახელი;
|
46
46
|
- `sp` — სერვისის მომხმარებლის პაროლი.
|
47
47
|
|
48
|
-
ეს
|
48
|
+
ეს ფუნქცია აბრუნებს `boolean` ტიპის მნიშვნელობას: თუ მომხმარებელი შეიქმნა, ბრუნდება `true`, ხოლო `false` — წინააღმდეგ შემთხვევაში. თუ რატომ არ მოხდა მომხმარებლის გახსნა შეიძლება მხოლოდ ვივარაუდოდ: ამის შესახებ rs-ის სერვისი არანაირ პასუხს არ იძლევა.
|
49
49
|
|
50
50
|
ძალაინ მნიშვნელოვანი ფუნქციაა `check_service_user`, რომელიც გარდა იმისა, რომ ამოწმებს ახლად შექმნილი მომხმარებლის სახელს და პაროლს, ასევე გაძლევთ შანსს გაიგოთ თქვენი ორგანიზაციის გადამხდელის ID. ამ ფუნქციის გამოძახება ასე გამოიყურება:
|
51
51
|
|
data/lib/rs.rb
CHANGED
@@ -5,6 +5,7 @@ require 'rs/sys'
|
|
5
5
|
require 'rs/dict'
|
6
6
|
require 'rs/waybill'
|
7
7
|
require 'rs/print'
|
8
|
+
require 'rs/invoice'
|
8
9
|
|
9
10
|
module RS
|
10
11
|
# ელქტრონული ზედნადების ფორმის WSDL მისამართი
|
@@ -13,6 +14,12 @@ module RS
|
|
13
14
|
# ელექტრონული ა/ფ WSDL მისამართი
|
14
15
|
INVOICE_SERVICE_URL = 'https://www.revenue.mof.ge/ntosservice/ntosservice.asmx?WSDL'
|
15
16
|
|
17
|
+
# მომხმარებელი, რომელიც შეგიძლიათ გამოიყენოთ ღია სერვისებში.
|
18
|
+
OPEN_SU = 'dimitri1979'
|
19
|
+
|
20
|
+
# პაროლის ღია მომხმარებლისთვის.
|
21
|
+
OPEN_SP = '123456'
|
22
|
+
|
16
23
|
# შეცდომის კლასი
|
17
24
|
class Error < RuntimeError
|
18
25
|
end
|
@@ -33,6 +40,19 @@ module RS
|
|
33
40
|
end
|
34
41
|
end
|
35
42
|
|
43
|
+
# ამოწმებს პარამეტრების მნიშვნელობას su და sp
|
44
|
+
# და თუ ისინი არაა განსაზღვრული, მიანიჭებს ღია
|
45
|
+
# მომხმარებლის პარამეტრებს.
|
46
|
+
# ეს სასარგებლოა ისეთი მონაცემების მისაღებად,
|
47
|
+
# რომელიც არაა უშუალოდ დაკავშირებული ორგანიზაციის
|
48
|
+
# საქმიანობოსთან.
|
49
|
+
def self.ensure_open_user(params)
|
50
|
+
unless params.include? 'su'
|
51
|
+
params['su'] = OPEN_SU
|
52
|
+
params['sp'] = OPEN_SP
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
36
56
|
# ამოწმებს, რომ მოცემულ პარამეტრებში ყველას მნიშვნელობა განსხვავდებოდეს <code>nil</code>-სგან.
|
37
57
|
def self.validate_presence_of(params, *options)
|
38
58
|
options.each do |opt|
|
data/lib/rs/dict.rb
CHANGED
@@ -83,6 +83,7 @@ module RS
|
|
83
83
|
# sp -- სერვისის მომხმარებლის პაროლი
|
84
84
|
# normilize -- კი/არა, გამოიყენოს თუ არა სახელების ნორმალიზებული მნიშვნელობები (საწყისად ნორმალიზებულია)
|
85
85
|
def self.get_excise_codes(params)
|
86
|
+
RS.ensure_open_user(params)
|
86
87
|
RS.validate_presence_of(params, 'su', 'sp')
|
87
88
|
client = RS.waybill_service
|
88
89
|
response = client.request 'get_akciz_codes' do
|
@@ -110,6 +111,7 @@ module RS
|
|
110
111
|
# su -- სერვისის მომხმარებლის სახელი
|
111
112
|
# sp -- სერვისის მომხმარებლის პაროლი
|
112
113
|
def self.get_waybill_types(params)
|
114
|
+
RS.ensure_open_user(params)
|
113
115
|
RS.validate_presence_of(params, 'su', 'sp')
|
114
116
|
client = RS.waybill_service
|
115
117
|
response = client.request 'get_waybill_types' do
|
@@ -134,6 +136,7 @@ module RS
|
|
134
136
|
# su -- სერვისის მომხმარებლის სახელი
|
135
137
|
# sp -- სერვისის მომხმარებლის პაროლი
|
136
138
|
def self.get_waybill_units(params)
|
139
|
+
RS.ensure_open_user(params)
|
137
140
|
RS.validate_presence_of(params, 'su', 'sp')
|
138
141
|
client = RS.waybill_service
|
139
142
|
response = client.request 'get_waybill_units' do
|
@@ -158,6 +161,7 @@ module RS
|
|
158
161
|
# su -- სერვისის მომხმარებლის სახელი
|
159
162
|
# sp -- სერვისის მომხმარებლის პაროლი
|
160
163
|
def self.get_transport_types(params)
|
164
|
+
RS.ensure_open_user(params)
|
161
165
|
RS.validate_presence_of(params, 'su', 'sp')
|
162
166
|
client = RS.waybill_service
|
163
167
|
response = client.request 'get_trans_types' do
|
data/lib/rs/invoice.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
|
3
|
+
module RS
|
4
|
+
|
5
|
+
# ქმნის ფაქტურას მოცემული ზედნადებისთვის.
|
6
|
+
#
|
7
|
+
# ზედნადებზე ფაქტურის გამოწერა ხდება მხოლოდ დახურულ მდგომარეობაში.
|
8
|
+
def self.save_waybill_invoice(waybill, params = {})
|
9
|
+
RS.validate_presence_of(params, 'su', 'sp')
|
10
|
+
client = RS.waybill_service
|
11
|
+
params2 = params.merge( 'waybill_id' => waybill.id, 'in_inv_id' => 0 )
|
12
|
+
response = client.request 'save_invoice' do |soap|
|
13
|
+
soap.body = params2
|
14
|
+
end
|
15
|
+
waybill.invoice_id = response[:save_invoice_response][:out_inv_id].to_i
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
data/lib/rs/sys.rb
CHANGED
@@ -116,6 +116,7 @@ module RS
|
|
116
116
|
# sp -- პაროლი
|
117
117
|
# tin -- საიდენტიფიკაციო ნომერი
|
118
118
|
def self.get_name_from_tin(params)
|
119
|
+
RS.ensure_open_user(params)
|
119
120
|
RS.validate_presence_of(params, 'su', 'sp', 'tin')
|
120
121
|
client = RS.waybill_service
|
121
122
|
response = client.request 'get_name_from_tin' do
|
data/lib/rs/version.rb
CHANGED
data/lib/rs/waybill.rb
CHANGED
@@ -118,6 +118,7 @@ module RS
|
|
118
118
|
attr_accessor :create_date, :start_date, :delivery_date, :activate_date
|
119
119
|
attr_accessor :items
|
120
120
|
attr_accessor :error_code
|
121
|
+
attr_accessor :invoice_id
|
121
122
|
|
122
123
|
def to_xml(xml)
|
123
124
|
xml.WAYBILL do |b|
|
@@ -377,7 +378,7 @@ module RS
|
|
377
378
|
RS.validate_presence_of(params, 'waybill_id', 'su', 'sp')
|
378
379
|
client = RS.waybill_service
|
379
380
|
response = client.request 'get_waybill' do |soap|
|
380
|
-
soap.body = params.merge({:order => ['su', 'sp', 'waybill_id']})
|
381
|
+
soap.body = params.merge({:order! => ['su', 'sp', 'waybill_id']})
|
381
382
|
end
|
382
383
|
#puts response.to_hash[:get_waybill_response][:get_waybill_result][:waybill]
|
383
384
|
Waybill.init_from_hash(response.to_hash[:get_waybill_response][:get_waybill_result][:waybill])
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'rs'
|
5
|
+
|
6
|
+
describe 'get name from TIN using open user' do
|
7
|
+
before(:all) do
|
8
|
+
@name = RS.get_name_from_tin('tin' => '02001000490')
|
9
|
+
end
|
10
|
+
subject { @name }
|
11
|
+
it { should == 'დიმიტრი ყურაშვილი' }
|
12
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'rs'
|
5
|
+
|
6
|
+
describe 'save invoice (only for closed waybill)' do
|
7
|
+
before(:all) do
|
8
|
+
@waybill = waybill_skeleton
|
9
|
+
RS.save_waybill(@waybill, RS.su_params)
|
10
|
+
RS.activate_waybill(RS.su_params.merge('waybill_id' => @waybill.id))
|
11
|
+
RS.close_waybill(RS.su_params.merge('waybill_id' => @waybill.id))
|
12
|
+
RS.save_waybill_invoice(@waybill, RS.su_params)
|
13
|
+
end
|
14
|
+
subject { @waybill }
|
15
|
+
its(:invoice_id) { should_not be_nil }
|
16
|
+
its(:invoice_id) { should > 0 }
|
17
|
+
end
|
@@ -143,4 +143,4 @@ describe 'validation with remote' do
|
|
143
143
|
it("driver_tin is OK") { subject[:driver_tin].should be_nil }
|
144
144
|
it("should have illegal buyer name") { subject[:buyer_name].should_not be_nil }
|
145
145
|
it("buyer_tin is OK") { subject[:buyer_tin].should be_nil }
|
146
|
-
end
|
146
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -87,12 +87,12 @@ def waybill_skeleton(params = {})
|
|
87
87
|
end
|
88
88
|
else
|
89
89
|
item = RS::WaybillItem.new
|
90
|
-
item.prod_name = '
|
90
|
+
item.prod_name = 'ბალი ალუბალი წითელი'
|
91
91
|
item.unit_id = 99
|
92
|
-
item.unit_name = '
|
93
|
-
item.quantity =
|
92
|
+
item.unit_name = 'კილოგრამი'
|
93
|
+
item.quantity = 10
|
94
94
|
item.price = 5
|
95
|
-
item.bar_code = '
|
95
|
+
item.bar_code = '001'
|
96
96
|
items = [item]
|
97
97
|
end
|
98
98
|
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
|
-
<
|
176
|
+
<313420> 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
|
-
<
|
246
|
+
<31323a3432> Tj
|
247
247
|
ET
|
248
248
|
|
249
249
|
0.000 0.000 0.000 scn
|
@@ -6027,7 +6027,7 @@ S
|
|
6027
6027
|
BT
|
6028
6028
|
328.628 112.88399999999965 Td
|
6029
6029
|
/F1.0 7 Tf
|
6030
|
-
<
|
6030
|
+
<313420> 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
|
-
<
|
6067
|
+
<31323a3432> 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.
|
4
|
+
version: 0.0.11
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-03-
|
12
|
+
date: 2012-03-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: '2'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '2'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: simplecov
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: savon
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: '0'
|
44
54
|
type: :runtime
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: httpi
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: '0'
|
55
70
|
type: :runtime
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: prawn
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ~>
|
@@ -65,10 +85,15 @@ dependencies:
|
|
65
85
|
version: '0.12'
|
66
86
|
type: :runtime
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0.12'
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: c12-commons
|
71
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
72
97
|
none: false
|
73
98
|
requirements:
|
74
99
|
- - ! '>='
|
@@ -76,7 +101,12 @@ dependencies:
|
|
76
101
|
version: '0'
|
77
102
|
type: :runtime
|
78
103
|
prerelease: false
|
79
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
80
110
|
description: ruby client for rs.ge web services
|
81
111
|
email:
|
82
112
|
- dimitri@c12.ge
|
@@ -92,15 +122,18 @@ files:
|
|
92
122
|
- Rakefile
|
93
123
|
- lib/rs.rb
|
94
124
|
- lib/rs/dict.rb
|
125
|
+
- lib/rs/invoice.rb
|
95
126
|
- lib/rs/print.rb
|
96
127
|
- lib/rs/sys.rb
|
97
128
|
- lib/rs/version.rb
|
98
129
|
- lib/rs/waybill.rb
|
99
130
|
- rs.gemspec
|
100
131
|
- spec/rs/dict_spec.rb
|
132
|
+
- spec/rs/open_user.rb
|
101
133
|
- spec/rs/pdf_spec.rb
|
102
134
|
- spec/rs/sys_spec.rb
|
103
135
|
- spec/rs/waybill_delete_spec.rb
|
136
|
+
- spec/rs/waybill_invoice_spec.rb
|
104
137
|
- spec/rs/waybill_spec.rb
|
105
138
|
- spec/rs/waybill_validation_spec.rb
|
106
139
|
- spec/spec_helper.rb
|
@@ -126,7 +159,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
126
159
|
version: '0'
|
127
160
|
requirements: []
|
128
161
|
rubyforge_project: rs
|
129
|
-
rubygems_version: 1.8.
|
162
|
+
rubygems_version: 1.8.19
|
130
163
|
signing_key:
|
131
164
|
specification_version: 3
|
132
165
|
summary: rs.ge web services
|