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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5e83333c3ddd2efced356b512effbb097f574cd8f46d5d566d86de409e6f0f75
4
- data.tar.gz: 7471a59c65e7ec39b8a9583a0aa8761cf7e75ebbeb6fd9c7f848587886913f0f
3
+ metadata.gz: 1d3c1f68438ac107f636161af2a6ac45ed75ce8e1bdff4dba5a875ef42a433ab
4
+ data.tar.gz: 57ceac1b56e7be8cd87285f71518ceed7b3a24f6d6a5fdedf57f1d51d414d0fd
5
5
  SHA512:
6
- metadata.gz: 2ad0f9c339a28f1370457ead5a7fcac25fe8ff4595ad530d1e03d54ef218adb79cc5ba2240c832564b70359d40dab1296d68bc49829ffc5100c9c38a117aa537
7
- data.tar.gz: e0db898ec38edbcbc70207ea43eca01ca7b1a2942503b1be60ca05621b466d50368809d9f7f63699d89273c17524082f972c7593d739eb371dc8656748995c61
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, String, tag: 'EDDate'
14
- attribute :ed_author, String, tag: 'EDAuthor'
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, String, tag: 'EDNo'
17
- attribute :quantity, String, tag: 'EDQuantity'
18
- attribute :sum, String, tag: '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, Ufebs::Documents::PaymentOrder
22
- has_one :session, ::Ufebs::Entities::Session, tag: 'Session', state_when_nil: false
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 = Date.parse(debit_date.to_s).strftime('%Y-%m-%d')
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(session_id: nil)
13
- @session_id = session_id
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, String, tag: 'CtrlCode'
14
- attribute :ctrl_time, String, tag: 'CtrlTime'
15
- element :annotation, String, tag: '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 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)
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
@@ -1,3 +1,3 @@
1
1
  module RubyUfebs
2
- VERSION = "0.2.19"
2
+ VERSION = "0.2.20"
3
3
  end
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.19
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