ruby_ufebs 0.2.19 → 0.2.20

Sign up to get free protection for your applications and to get access to all the features.
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