ruby_ufebs 0.2.19 → 0.2.20
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 +4 -4
- data/lib/ufebs/documents/package.rb +17 -8
- data/lib/ufebs/documents/payment_order.rb +5 -1
- data/lib/ufebs/entities/ed_info.rb +26 -0
- data/lib/ufebs/entities/processing_details.rb +3 -2
- data/lib/ufebs/entities/session.rb +11 -2
- data/lib/ufebs/requests/group_status_answer.rb +54 -0
- data/lib/ufebs/requests/negative_status_notification.rb +4 -3
- data/lib/ufebs/requests/receipt.rb +5 -4
- data/lib/ufebs/version.rb +1 -1
- data/lib/ufebs.rb +75 -65
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1d3c1f68438ac107f636161af2a6ac45ed75ce8e1bdff4dba5a875ef42a433ab
|
4
|
+
data.tar.gz: 57ceac1b56e7be8cd87285f71518ceed7b3a24f6d6a5fdedf57f1d51d414d0fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5ea377537e98ed3d0562f835d41671f8593467c5ee74a8fabd9d67563a638d7c23d773634d09690e92eb08bd41bb933b966359ceaa95259e32efd280129470f5
|
7
|
+
data.tar.gz: a0b2a79b5a0c53b709bd73eecb71f2d87155e869631652702fc03d624d91a673abdf3b9b86a339b333567cf0891949b11385bbdddf045f48ad474a25b33cc9ff
|
@@ -4,25 +4,33 @@ require_relative '../entities/session'
|
|
4
4
|
module Ufebs
|
5
5
|
module Documents
|
6
6
|
class Package
|
7
|
+
SYSTEM_CODE = '02'.freeze
|
8
|
+
|
7
9
|
include HappyMapper
|
8
10
|
SYSTEM_CODE = '02'
|
9
11
|
register_namespace 'ed', "urn:cbr-ru:ed:v2.0"
|
10
12
|
tag 'PacketEPD'
|
11
13
|
namespace 'ed'
|
12
14
|
|
13
|
-
attribute :ed_date,
|
14
|
-
attribute :ed_author,
|
15
|
+
attribute :ed_date, String, tag: 'EDDate'
|
16
|
+
attribute :ed_author, String, tag: 'EDAuthor'
|
15
17
|
attribute :ed_receiver, String, tag: 'EDReceiver'
|
16
|
-
attribute :number,
|
17
|
-
attribute :quantity,
|
18
|
-
attribute :sum,
|
18
|
+
attribute :number, String, tag: 'EDNo'
|
19
|
+
attribute :quantity, String, tag: 'EDQuantity'
|
20
|
+
attribute :sum, String, tag: 'Sum'
|
19
21
|
attribute :system_code, String, tag: 'SystemCode'
|
20
22
|
|
21
|
-
has_many :payment_orders,
|
22
|
-
|
23
|
+
has_many :payment_orders,
|
24
|
+
::Ufebs::Documents::PaymentOrder
|
25
|
+
|
26
|
+
has_one :session,
|
27
|
+
::Ufebs::Entities::Session,
|
28
|
+
tag: 'Session',
|
29
|
+
state_when_nil: false
|
23
30
|
|
24
|
-
def initialize(payment_orders=[], params = {})
|
31
|
+
def initialize(payment_orders = [], params = {})
|
25
32
|
@payment_orders = payment_orders
|
33
|
+
|
26
34
|
@ed_date = Date.parse(params.fetch(:ed_date){Time.now}.to_s).strftime('%Y-%m-%d')
|
27
35
|
@ed_author = params[:ed_author]
|
28
36
|
@ed_receiver = params[:ed_receiver]
|
@@ -30,6 +38,7 @@ module Ufebs
|
|
30
38
|
@quantity = params[:quantity] || payment_orders.size
|
31
39
|
@sum = params[:sum]
|
32
40
|
@system_code = params.fetch(:system_code) { SYSTEM_CODE }
|
41
|
+
|
33
42
|
super()
|
34
43
|
end
|
35
44
|
|
@@ -1,4 +1,3 @@
|
|
1
|
-
require_relative '../entities/bank'
|
2
1
|
require_relative '../entities/acc_doc'
|
3
2
|
require_relative '../entities/departmental_info'
|
4
3
|
require_relative '../entities/participant'
|
@@ -27,6 +26,7 @@ module Ufebs
|
|
27
26
|
attribute :receipt_date, String, tag: 'ReceiptDate'
|
28
27
|
attribute :system_code, String, tag: 'SystemCode'
|
29
28
|
attribute :priority, String, tag: 'Priority'
|
29
|
+
attribute :payment_precedence, String, tag: 'PaymentPrecedence'
|
30
30
|
has_one :acc_doc, ::Ufebs::Entities::AccDoc, tag: 'AccDoc'
|
31
31
|
has_one :payer, ::Ufebs::Entities::Participant, tag: 'Payer'
|
32
32
|
has_one :payee, ::Ufebs::Entities::Participant, tag: 'Payee'
|
@@ -57,6 +57,9 @@ module Ufebs
|
|
57
57
|
purpose: '',
|
58
58
|
uin: nil,
|
59
59
|
payt_kind: nil,
|
60
|
+
payment_precedence: nil,
|
61
|
+
processing_details: nil,
|
62
|
+
|
60
63
|
system_code: SYSTEM_CODE,
|
61
64
|
departmental_info: nil
|
62
65
|
)
|
@@ -75,6 +78,7 @@ module Ufebs
|
|
75
78
|
@departmental_info = departmental_info.is_a?(Hash) ? Ufebs::Entities::DepartmentalInfo.new(departmental_info) : departmental_info
|
76
79
|
@uin = uin
|
77
80
|
@payt_kind = payt_kind
|
81
|
+
@payment_precedence = payment_precedence
|
78
82
|
|
79
83
|
@ed_author = ed_author
|
80
84
|
@type_number = DOCUMENT_NUMBER_TYPE
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative 'ed_ref_id'
|
2
|
+
|
3
|
+
module Ufebs
|
4
|
+
module Entities
|
5
|
+
class EdInfo
|
6
|
+
include HappyMapper
|
7
|
+
register_namespace 'ed', 'urn:cbr-ru:ed:v2.0'
|
8
|
+
namespace 'ed'
|
9
|
+
tag 'EDInfo'
|
10
|
+
|
11
|
+
attribute :sum, String, tag: 'Sum'
|
12
|
+
|
13
|
+
has_one :ed_ref_id,
|
14
|
+
::Ufebs::Entities::EdRefId
|
15
|
+
|
16
|
+
def initialize(params = {})
|
17
|
+
params.each do |key, value|
|
18
|
+
case key.to_sym
|
19
|
+
when :ed_ref_id then @ed_ref_id = Ufebs::Entities::EdRefId.new(value)
|
20
|
+
else instance_variable_set("@#{key}".to_sym, value)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -12,9 +12,10 @@ module Ufebs
|
|
12
12
|
attribute :credit_date, String, tag: 'CreditDate'
|
13
13
|
has_one :session, ::Ufebs::Entities::Session, tag: 'Session', state_when_nil: false
|
14
14
|
|
15
|
-
def initialize(debit_date: Time.now, credit_date: Time.now)
|
16
|
-
@debit_date
|
15
|
+
def initialize(debit_date: Time.now, credit_date: Time.now, session: nil)
|
16
|
+
@debit_date = Date.parse(debit_date.to_s).strftime('%Y-%m-%d')
|
17
17
|
@credit_date = Date.parse(credit_date.to_s).strftime('%Y-%m-%d')
|
18
|
+
@session = session.is_a?(Hash) ? ::Ufebs::Entities::Session.new(session) : session
|
18
19
|
end
|
19
20
|
end
|
20
21
|
end
|
@@ -7,10 +7,19 @@ module Ufebs
|
|
7
7
|
register_namespace 'ed', "urn:cbr-ru:ed:v2.0"
|
8
8
|
namespace 'ed'
|
9
9
|
|
10
|
+
attribute :session_type, String, tag: 'SessionType'
|
11
|
+
|
10
12
|
element :session_id, String, tag: 'SessionID'
|
13
|
+
element :settlement_time, String, tag: 'SettlementTime'
|
11
14
|
|
12
|
-
def initialize(
|
13
|
-
|
15
|
+
def initialize(params = {})
|
16
|
+
params.each do |key, value|
|
17
|
+
case key.to_sym
|
18
|
+
when :session_id then @session_id = value
|
19
|
+
when :session_type then @session_type = value
|
20
|
+
when :settlement_time then @settlement_time = value
|
21
|
+
end
|
22
|
+
end
|
14
23
|
end
|
15
24
|
end
|
16
25
|
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module Ufebs
|
2
|
+
module Requests
|
3
|
+
class GroupStatusAnswer
|
4
|
+
include HappyMapper
|
5
|
+
register_namespace 'ed', 'urn:cbr-ru:ed:v2.0'
|
6
|
+
tag 'ED207'
|
7
|
+
namespace 'ed'
|
8
|
+
|
9
|
+
attribute :ed_author, String, tag: 'EDAuthor'
|
10
|
+
attribute :ed_date, String, tag: 'EDDate'
|
11
|
+
attribute :ed_no, String, tag: 'EDNo'
|
12
|
+
attribute :ed_receiver, String, tag: 'EDReceiver'
|
13
|
+
attribute :status_code, String, tag: 'StatusCode'
|
14
|
+
attribute :quantity_ed, String, tag: 'QuantityED'
|
15
|
+
attribute :sum, String, tag: 'Sum'
|
16
|
+
attribute :ed_day_no, String, tag: 'EDDayNo'
|
17
|
+
|
18
|
+
has_one :initial_ed,
|
19
|
+
Ufebs::Entities::EdRefId,
|
20
|
+
tag: 'InitialED'
|
21
|
+
|
22
|
+
has_many :ed_infos, tag: 'EDInfo'
|
23
|
+
|
24
|
+
def initialize(params = {})
|
25
|
+
params.each do |key, value|
|
26
|
+
case key.to_sym
|
27
|
+
when :initial_ed then @initial_ed = Ufebs::Entities::EdRefId.new(value)
|
28
|
+
when :ed_infos then @ed_infos = set_ed_infos(value)
|
29
|
+
else instance_variable_set("@#{key}".to_sym, value)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def set_ed_infos(value)
|
35
|
+
value.map { |params| Ufebs::Entities::EdInfo.new(params) }
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# <?xml version="1.0" encoding="WINDOWS-1251"?>
|
42
|
+
# <ED207 xmlns="urn:cbr-ru:ed:v2.0"
|
43
|
+
# EDNo="90" EDDate="2018-07-16" EDAuthor="4583001999"
|
44
|
+
# EDReceiver="4525545000"
|
45
|
+
# StatusCode="01" QuantityED="2" Sum="6000000" EDDayNo="10">
|
46
|
+
# <InitialED EDNo="9" EDDate="2018-07-16"
|
47
|
+
# EDAuthor="4525545000"></InitialED>
|
48
|
+
# <EDInfo Sum="2400000">
|
49
|
+
# <EDRefID EDNo="7" EDDate="2018-07-16" EDAuthor="4525545000"/>
|
50
|
+
# </EDInfo>
|
51
|
+
# <EDInfo Sum="3600000">
|
52
|
+
# <EDRefID EDNo="16" EDDate="2018-07-16" EDAuthor="4525545000"/>
|
53
|
+
# </EDInfo>
|
54
|
+
# </ED207>
|
@@ -10,9 +10,10 @@ module Ufebs
|
|
10
10
|
tag 'ED201'
|
11
11
|
namespace 'ed'
|
12
12
|
|
13
|
-
attribute :ctrl_code,
|
14
|
-
attribute :ctrl_time,
|
15
|
-
element :annotation,
|
13
|
+
attribute :ctrl_code, String, tag: 'CtrlCode'
|
14
|
+
attribute :ctrl_time, String, tag: 'CtrlTime'
|
15
|
+
element :annotation, String, tag: 'Annotation'
|
16
|
+
element :error_diagnostic, String, tag: 'ErrorDiagnostic'
|
16
17
|
|
17
18
|
has_one :ed_ref_id, ::Ufebs::Entities::EdRefId
|
18
19
|
|
@@ -30,10 +30,11 @@ module Ufebs
|
|
30
30
|
def initialize(params = {})
|
31
31
|
params.each do |key, value|
|
32
32
|
case key.to_sym
|
33
|
-
when :abstract_date
|
34
|
-
when :end_time
|
35
|
-
when :last_movet_date
|
36
|
-
when :trans_infos
|
33
|
+
when :abstract_date then @abstract_date = Date.parse(value.to_s).strftime('%Y-%m-%d')
|
34
|
+
when :end_time then @end_time = DateTime.parse(value.to_s).strftime('%H:%M:%S')
|
35
|
+
when :last_movet_date then @last_movet_date = Date.parse(value.to_s).strftime('%Y-%m-%d')
|
36
|
+
when :trans_infos then @trans_infos = set_trans_infos(value)
|
37
|
+
when :processing_details then @processing_details = Ufebs::Entities::ProcessingDetails.new(value)
|
37
38
|
else instance_variable_set("@#{key}".to_sym, value)
|
38
39
|
end
|
39
40
|
end
|
data/lib/ufebs/version.rb
CHANGED
data/lib/ufebs.rb
CHANGED
@@ -39,71 +39,6 @@ module Ufebs
|
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
|
-
def ED201(params)
|
43
|
-
Ufebs::Requests::NegativeStatusNotification.parse(params)
|
44
|
-
end
|
45
|
-
|
46
|
-
def ED208(params)
|
47
|
-
Ufebs::Requests::PositiveStatusNotification.parse(params)
|
48
|
-
end
|
49
|
-
|
50
|
-
# XML запрос-зонд
|
51
|
-
# @param params [Hash]
|
52
|
-
# @option :number аттрибут EDNo
|
53
|
-
# @option :ed_date аттрибут EDDate
|
54
|
-
# @option :ed_author аттрибут EDAuthor
|
55
|
-
def ED999(params)
|
56
|
-
Ufebs::Requests::TestRequest.new(params)
|
57
|
-
end
|
58
|
-
|
59
|
-
def ED210(params)
|
60
|
-
end
|
61
|
-
|
62
|
-
def ED205(params)
|
63
|
-
Ufebs::Requests::StatusAnswer.parse(params)
|
64
|
-
end
|
65
|
-
|
66
|
-
# Создание/Парсинг выписки ED211
|
67
|
-
# @example Пример
|
68
|
-
# ed211 = Ufebs::Requests::Receipt.new(
|
69
|
-
# number: '8',
|
70
|
-
# ed_date: '2003-04-14',
|
71
|
-
# ed_author: '4525545000',
|
72
|
-
# ed_receiver: '4525000000',
|
73
|
-
# abstract_date: Date.today,
|
74
|
-
# abstract_kind: '1',
|
75
|
-
# acc: '30101810945250000420',
|
76
|
-
# bic: '044525000',
|
77
|
-
# end_time: '00:47:07',
|
78
|
-
# enter_bal: '72619100',
|
79
|
-
# inquiry_session: '0',
|
80
|
-
# last_movet_date: Date.today,
|
81
|
-
# out_bal: '72619100',
|
82
|
-
# rtgs_unconfirmed_ed: '0'
|
83
|
-
# )
|
84
|
-
def ED211(params)
|
85
|
-
params.is_a?(Hash) ? Ufebs::Requests::Receipt.new(params) : Ufebs::Requests::Receipt.parse(params)
|
86
|
-
end
|
87
|
-
|
88
|
-
def ED243(params)
|
89
|
-
if params.is_a?(Hash)
|
90
|
-
Ufebs::Requests::DefineRequest.new(params)
|
91
|
-
else
|
92
|
-
Ufebs::Requests::DefineRequest.parse(params)
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
def ED218(params)
|
97
|
-
end
|
98
|
-
|
99
|
-
def ED244(params)
|
100
|
-
if params.is_a?(Hash)
|
101
|
-
Ufebs::Requests::DefineAnswer.new(params)
|
102
|
-
else
|
103
|
-
Ufebs::Requests::DefineAnswer.parse(params)
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
42
|
# Создание XML по формату ED101(Платежное поручение)
|
108
43
|
# @param params [Hash, String] Hash значений документа или его строковое представление в виде XML
|
109
44
|
# @option params [Integer] :number номер документа аттрибут EDNo
|
@@ -168,6 +103,15 @@ module Ufebs
|
|
168
103
|
params.is_a?(Hash) ? Ufebs::Documents::PaymentOrder.new(params) : Ufebs::Documents::PaymentOrder.parse(params)
|
169
104
|
end
|
170
105
|
|
106
|
+
|
107
|
+
def ED201(params)
|
108
|
+
Ufebs::Requests::NegativeStatusNotification.parse(params)
|
109
|
+
end
|
110
|
+
|
111
|
+
def ED205(params)
|
112
|
+
Ufebs::Requests::StatusAnswer.parse(params)
|
113
|
+
end
|
114
|
+
|
171
115
|
def ED104(params)
|
172
116
|
params.is_a?(Hash) ? Ufebs::Documents::InvoiceOrder.new(params) : Ufebs::Documents::InvoiceOrder.parse(params)
|
173
117
|
end
|
@@ -181,6 +125,72 @@ module Ufebs
|
|
181
125
|
Ufebs::Documents::PaymentResponse.parse(params)
|
182
126
|
end
|
183
127
|
|
128
|
+
def ED207(params)
|
129
|
+
return Ufebs::Requests::GroupStatusAnswer.new(params) if params.is_a?(Hash)
|
130
|
+
Ufebs::Requests::GroupStatusAnswer.parse(params)
|
131
|
+
end
|
132
|
+
|
133
|
+
def ED208(params)
|
134
|
+
Ufebs::Requests::PositiveStatusNotification.parse(params)
|
135
|
+
end
|
136
|
+
|
137
|
+
def ED210(params)
|
138
|
+
end
|
139
|
+
|
140
|
+
# Создание/Парсинг выписки ED211
|
141
|
+
# @example Пример
|
142
|
+
# ed211 = Ufebs::Requests::Receipt.new(
|
143
|
+
# number: '8',
|
144
|
+
# ed_date: '2003-04-14',
|
145
|
+
# ed_author: '4525545000',
|
146
|
+
# ed_receiver: '4525000000',
|
147
|
+
# abstract_date: Date.today,
|
148
|
+
# abstract_kind: '1',
|
149
|
+
# acc: '30101810945250000420',
|
150
|
+
# bic: '044525000',
|
151
|
+
# end_time: '00:47:07',
|
152
|
+
# enter_bal: '72619100',
|
153
|
+
# inquiry_session: '0',
|
154
|
+
# last_movet_date: Date.today,
|
155
|
+
# out_bal: '72619100',
|
156
|
+
# rtgs_unconfirmed_ed: '0'
|
157
|
+
# )
|
158
|
+
def ED211(params)
|
159
|
+
params.is_a?(Hash) ? Ufebs::Requests::Receipt.new(params) : Ufebs::Requests::Receipt.parse(params)
|
160
|
+
end
|
161
|
+
|
162
|
+
def ED218(params)
|
163
|
+
end
|
164
|
+
|
165
|
+
def ED243(params)
|
166
|
+
if params.is_a?(Hash)
|
167
|
+
Ufebs::Requests::DefineRequest.new(params)
|
168
|
+
else
|
169
|
+
Ufebs::Requests::DefineRequest.parse(params)
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
def ED244(params)
|
174
|
+
if params.is_a?(Hash)
|
175
|
+
Ufebs::Requests::DefineAnswer.new(params)
|
176
|
+
else
|
177
|
+
Ufebs::Requests::DefineAnswer.parse(params)
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
# XML запрос-зонд
|
182
|
+
# @param params [Hash]
|
183
|
+
# @option :number аттрибут EDNo
|
184
|
+
# @option :ed_date аттрибут EDDate
|
185
|
+
# @option :ed_author аттрибут EDAuthor
|
186
|
+
def ED999(params)
|
187
|
+
Ufebs::Requests::TestRequest.new(params)
|
188
|
+
end
|
189
|
+
|
190
|
+
def PacketEPD(payment_eds, params)
|
191
|
+
Ufebs::Documents::Package.new(payment_eds, params)
|
192
|
+
end
|
193
|
+
|
184
194
|
def PacketESID(params)
|
185
195
|
Ufebs::Documents::PackageResponse.parse(params)
|
186
196
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_ufebs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Evgeniy Burdaev
|
@@ -404,6 +404,7 @@ files:
|
|
404
404
|
- lib/ufebs/entities/ed_define_answer_info.rb
|
405
405
|
- lib/ufebs/entities/ed_define_request_info.rb
|
406
406
|
- lib/ufebs/entities/ed_field_list.rb
|
407
|
+
- lib/ufebs/entities/ed_info.rb
|
407
408
|
- lib/ufebs/entities/ed_reestr_info.rb
|
408
409
|
- lib/ufebs/entities/ed_ref_id.rb
|
409
410
|
- lib/ufebs/entities/initial_packet.rb
|
@@ -417,6 +418,7 @@ files:
|
|
417
418
|
- lib/ufebs/requests/define_answer.rb
|
418
419
|
- lib/ufebs/requests/define_request.rb
|
419
420
|
- lib/ufebs/requests/group_request.rb
|
421
|
+
- lib/ufebs/requests/group_status_answer.rb
|
420
422
|
- lib/ufebs/requests/negative_status_notification.rb
|
421
423
|
- lib/ufebs/requests/package_request.rb
|
422
424
|
- lib/ufebs/requests/positive_status_notification.rb
|