rnsap 0.4.5 → 0.4.11

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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/lib/helper/rfc_helper.rb +19 -15
  3. data/lib/helper/util_helper.rb +39 -0
  4. data/lib/po_detail/all.rb +27 -0
  5. data/lib/po_detail/po_account.rb +93 -0
  6. data/lib/po_detail/po_addrdelivery.rb +115 -0
  7. data/lib/po_detail/po_all_versions.rb +55 -0
  8. data/lib/po_detail/po_components.rb +53 -0
  9. data/lib/po_detail/po_cond.rb +91 -0
  10. data/lib/po_detail/po_cond_header.rb +91 -0
  11. data/lib/po_detail/po_confirmation.rb +39 -0
  12. data/lib/po_detail/po_contract_limits.rb +21 -0
  13. data/lib/po_detail/po_exp_imp_header.rb +7 -0
  14. data/lib/po_detail/po_exp_imp_item.rb +21 -0
  15. data/lib/po_detail/po_extension_out.rb +13 -0
  16. data/lib/po_detail/po_header.rb +131 -0
  17. data/lib/po_detail/po_history.rb +107 -0
  18. data/lib/po_detail/po_history_ma.rb +37 -0
  19. data/lib/po_detail/po_history_totals.rb +51 -0
  20. data/lib/po_detail/po_inv_plan_header.rb +49 -0
  21. data/lib/po_detail/po_inv_plan_item.rb +51 -0
  22. data/lib/po_detail/po_item.rb +359 -0
  23. data/lib/po_detail/po_limits.rb +47 -0
  24. data/lib/po_detail/po_partner.rb +11 -0
  25. data/lib/po_detail/po_schedule.rb +59 -0
  26. data/lib/po_detail/po_serial_number.rb +13 -0
  27. data/lib/po_detail/po_services.rb +137 -0
  28. data/lib/po_detail/po_shipping_exp.rb +53 -0
  29. data/lib/po_detail/po_srv_access_values.rb +17 -0
  30. data/lib/po_detail/po_text_header.rb +13 -0
  31. data/lib/po_detail/po_text_item.rb +13 -0
  32. data/lib/po_release_info/all.rb +1 -0
  33. data/lib/po_release_info/po_release_final.rb +53 -0
  34. data/lib/preq_detail/all.rb +8 -0
  35. data/lib/preq_release_info/all.rb +4 -0
  36. data/lib/rnsap.rb +226 -68
  37. data/lib/rnsap_spec.rb +93 -0
  38. metadata +35 -1
data/lib/rnsap.rb CHANGED
@@ -2,22 +2,20 @@
2
2
 
3
3
  require 'nwrfc'
4
4
  require 'read_table/table_column'
5
- require 'preq_detail/preq_item'
6
- require 'preq_detail/preq_acct_assignment'
7
- require 'preq_detail/preq_text'
8
- require 'preq_detail/preq_limits'
9
- require 'preq_detail/preq_contract_limits'
10
- require 'preq_detail/preq_services'
11
- require 'preq_detail/preq_services_texts'
12
- require 'preq_detail/preq_srv_accass_values'
13
- require 'preq_release_info/preq_gen_release_info'
14
- require 'preq_release_info/preq_release_prerequisites'
15
- require 'preq_release_info/preq_release_posted'
16
- require 'preq_release_info/preq_release_final'
5
+
17
6
  require 'return'
7
+
8
+ require 'preq_detail/all'
9
+ require 'preq_release_info/all'
10
+
11
+ require 'po_detail/all'
12
+ require 'po_release_info/all'
13
+
18
14
  require 'helper/rfc_helper'
15
+ require 'helper/util_helper'
19
16
 
20
17
  include NWRFC
18
+ include UtilHelper
21
19
 
22
20
  # Module for SAP helper methods. RnSap allows for a simpler
23
21
  # manner to access SAP servers calling RFC BAPIs.
@@ -57,9 +55,7 @@ module RnSap
57
55
 
58
56
  fn_commit.invoke
59
57
 
60
- {
61
- tb_return: fn_commit[:RETURN],
62
- }
58
+ api_return_success({tb_return: fn_commit[:RETURN]})
63
59
  end
64
60
 
65
61
  def rollback(conn)
@@ -69,9 +65,7 @@ module RnSap
69
65
 
70
66
  fn_rollback.invoke
71
67
 
72
- {
73
- tb_return: fn_rollback[:RETURN],
74
- }
68
+ api_return_success({tb_return: fn_rollback[:RETURN]})
75
69
  end
76
70
 
77
71
  # Invokes SAP RFC_READ_TABLE function module remotely, passing
@@ -171,12 +165,11 @@ module RnSap
171
165
  if value == '00000000'
172
166
  eval("obj.#{field} = nil")
173
167
  else
174
- value = Date.new(
175
- value[0..3],
176
- value[4..5],
177
- value[6..7]
178
- )
179
- eval("obj.#{field} = #{value}")
168
+ year = value[0..3].to_i
169
+ month = value[4..5].to_i
170
+ day = value[6..7].to_i
171
+ # value = Date.new(year, month, day)
172
+ eval("obj.#{field} = Date.new(#{year}, #{month}, #{day}) ")
180
173
  end
181
174
  else
182
175
  value = wa[pos].strip
@@ -204,27 +197,34 @@ module RnSap
204
197
  fc_preq_detail.invoke
205
198
 
206
199
  #-- Execute conversions for returned tables to a designated list (array)
207
- preq_items = get_object_list(fc_preq_detail[:REQUISITION_ITEMS], PreqItem.to_s)
208
- preq_acct_assignment = get_object_list(fc_preq_detail[:REQUISITION_ACCOUNT_ASSIGNMENT], PreqAcctAssignment.to_s)
209
- preq_text = get_object_list(fc_preq_detail[:REQUISITION_TEXT], PreqText.to_s)
210
- preq_limits = get_object_list(fc_preq_detail[:REQUISITION_LIMITS], PreqLimits.to_s)
211
- preq_contract_limits = get_object_list(fc_preq_detail[:REQUISITION_CONTRACT_LIMITS], PreqContractLimits.to_s)
212
- preq_services = get_object_list(fc_preq_detail[:REQUISITION_SERVICES], PreqItem.to_s)
213
- preq_services_texts = get_object_list(fc_preq_detail[:REQUISITION_SERVICES_TEXTS], PreqServicesText.to_s)
214
- preq_srv_accass_values = get_object_list(fc_preq_detail[:REQUISITION_SRV_ACCASS_VALUES], PreqServicesAccassValues.to_s)
215
- tb_return = get_object_list(fc_preq_detail[:RETURN], Return.to_s)
216
-
217
- {
218
- preq_items: preq_items,
219
- preq_acct_assignment: preq_acct_assignment,
220
- preq_text: preq_text,
221
- preq_limits: preq_limits,
222
- preq_contract_limits: preq_contract_limits,
223
- preq_services: preq_services,
224
- preq_services_texts: preq_services_texts,
225
- preq_srv_accass_values: preq_srv_accass_values,
226
- tb_return: tb_return,
227
- }
200
+ preq_items = get_object_list(fc_preq_detail[:REQUISITION_ITEMS], PreqItem)
201
+ preq_acct_assignment = get_object_list(fc_preq_detail[:REQUISITION_ACCOUNT_ASSIGNMENT], PreqAcctAssignment)
202
+ preq_text = get_object_list(fc_preq_detail[:REQUISITION_TEXT], PreqText)
203
+ preq_limits = get_object_list(fc_preq_detail[:REQUISITION_LIMITS], PreqLimits)
204
+ preq_contract_limits = get_object_list(fc_preq_detail[:REQUISITION_CONTRACT_LIMITS], PreqContractLimits)
205
+ preq_services = get_object_list(fc_preq_detail[:REQUISITION_SERVICES], PreqItem)
206
+ preq_services_texts = get_object_list(fc_preq_detail[:REQUISITION_SERVICES_TEXTS], PreqServicesText)
207
+ preq_srv_accass_values = get_object_list(fc_preq_detail[:REQUISITION_SRV_ACCASS_VALUES], PreqServicesAccassValues)
208
+ tb_return = get_object_list(fc_preq_detail[:RETURN], Return)
209
+
210
+ retcode = tb_return.detect{|r| r.type == 'E'}
211
+
212
+ if retcode
213
+ api_return_error(retcode)
214
+ else
215
+ api_return_success({
216
+ preq_items: preq_items,
217
+ preq_acct_assignment: preq_acct_assignment,
218
+ preq_text: preq_text,
219
+ preq_limits: preq_limits,
220
+ preq_contract_limits: preq_contract_limits,
221
+ preq_services: preq_services,
222
+ preq_services_texts: preq_services_texts,
223
+ preq_srv_accass_values: preq_srv_accass_values,
224
+ tb_return: tb_return,
225
+ })
226
+ end
227
+
228
228
  end
229
229
 
230
230
  def preq_release_strategy_info(preq = 0, item = "00000", rel_code = "")
@@ -239,20 +239,25 @@ module RnSap
239
239
  fn_preq_rel_strat_info.invoke
240
240
 
241
241
  #-- Execute conversions for returned tables to a designated list (array)
242
- preq_gen_release_info = get_object_list(fn_preq_rel_strat_info[:GENERAL_RELEASE_INFO], PreqGenReleaseInfo.to_s)
243
- preq_release_prerequisites = get_object_list(fn_preq_rel_strat_info[:RELEASE_PREREQUISITES], PreqReleasePrerequisites.to_s)
244
- preq_release_posted = get_object_list(fn_preq_rel_strat_info[:RELEASE_ALREADY_POSTED], PreqReleasePosted.to_s)
245
- preq_release_final = get_object_list(fn_preq_rel_strat_info[:RELEASE_FINAL], PreqReleaseFinal.to_s)
246
- tb_return = get_object_list(fn_preq_rel_strat_info[:RETURN], Return.to_s)
247
-
248
- {
249
- preq_gen_release_info: preq_gen_release_info,
250
- preq_release_prerequisites: preq_release_prerequisites,
251
- preq_release_posted: preq_release_posted,
252
- preq_release_final: preq_release_final,
253
- tb_return: tb_return,
254
- }
242
+ preq_gen_release_info = get_object_list(fn_preq_rel_strat_info[:GENERAL_RELEASE_INFO], PreqGenReleaseInfo)
243
+ preq_release_prerequisites = get_object_list(fn_preq_rel_strat_info[:RELEASE_PREREQUISITES], PreqReleasePrerequisites)
244
+ preq_release_posted = get_object_list(fn_preq_rel_strat_info[:RELEASE_ALREADY_POSTED], PreqReleasePosted)
245
+ preq_release_final = get_object_list(fn_preq_rel_strat_info[:RELEASE_FINAL], PreqReleaseFinal)
246
+ tb_return = get_object_list(fn_preq_rel_strat_info[:RETURN], Return)
247
+
248
+ retcode = tb_return.detect{|r| r.type == 'E'}
255
249
 
250
+ if retcode
251
+ api_return_error(retcode)
252
+ else
253
+ api_return_success({
254
+ preq_gen_release_info: preq_gen_release_info,
255
+ preq_release_prerequisites: preq_release_prerequisites,
256
+ preq_release_posted: preq_release_posted,
257
+ preq_release_final: preq_release_final,
258
+ tb_return: tb_return,
259
+ })
260
+ end
256
261
  end
257
262
 
258
263
  def preq_release(preq = 0, rel_code = "", no_commit="", item="00000", use_exceptions="")
@@ -275,20 +280,173 @@ module RnSap
275
280
 
276
281
  fn_preq_exec_release.invoke
277
282
 
278
- tb_return = get_object_list(fn_preq_exec_release[:RETURN], Return.to_s)
279
- {
280
- status_new: fn_preq_exec_release[:REL_STATUS_NEW],
281
- indicator_new: fn_preq_exec_release[:REL_INDICATOR_NEW],
282
- tb_return: tb_return,
283
- }
283
+ tb_return = get_object_list(fn_preq_exec_release[:RETURN], Return)
284
+
285
+ retcode = tb_return.detect{|r| r.type == 'E'}
286
+
287
+ if retcode
288
+ api_return_error(retcode)
289
+ else
290
+ api_return_success({
291
+ status_new: fn_preq_exec_release[:REL_STATUS_NEW],
292
+ indicator_new: fn_preq_exec_release[:REL_INDICATOR_NEW],
293
+ tb_return: tb_return,
294
+ })
295
+ end
296
+ end
297
+
298
+ def po_detail(po = 0, acc_assignment = "", item_text = "", header_text = "", delivery_address = "", version = "", services = "", serialnumbers = "", invoiceplan = "")
299
+ #-- Execute BAPI_PO_GETDETAIL1
300
+ fn_po_detail = @conn.get_function('BAPI_PO_GETDETAIL1')
301
+ fc_po_detail = fn_po_detail.get_function_call
302
+
303
+ fc_po_detail[:PURCHASEORDER] = po
304
+ fc_po_detail[:ACCOUNT_ASSIGNMENT] = acc_assignment
305
+ fc_po_detail[:ITEM_TEXT] = item_text
306
+ fc_po_detail[:HEADER_TEXT] = header_text
307
+ fc_po_detail[:DELIVERY_ADDRESS] = delivery_address
308
+ fc_po_detail[:VERSION] = version
309
+ fc_po_detail[:SERVICES] = services
310
+ fc_po_detail[:SERIALNUMBERS] = serialnumbers
311
+ fc_po_detail[:INVOICEPLAN] = invoiceplan
312
+
313
+ fc_po_detail.invoke
314
+
315
+ #-- Execute conversions for returned tables to a designated list (array)
316
+ po_item = get_object_list(fc_po_detail[:POITEM], PoItem)
317
+ po_addrdelivery = get_object_list(fc_po_detail[:POADDRDELIVERY], PoAddrDelivery)
318
+ po_schedule = get_object_list(fc_po_detail[:POSCHEDULE], PoSchedule)
319
+ po_account = get_object_list(fc_po_detail[:POACCOUNT], PoAccount)
320
+ po_cond_header = get_object_list(fc_po_detail[:POCONDHEADER], PoCondHeader)
321
+ po_cond = get_object_list(fc_po_detail[:POCOND], PoCond)
322
+ po_limits = get_object_list(fc_po_detail[:POLIMITS], PoLimits)
323
+ po_contract_limits = get_object_list(fc_po_detail[:POCONTRACTLIMITS], PoContractLimits)
324
+ po_services = get_object_list(fc_po_detail[:POSERVICES], PoServices)
325
+ po_srv_access_values = get_object_list(fc_po_detail[:POSRVACCESSVALUES], PoSrvAccessValues)
326
+ po_text_header = get_object_list(fc_po_detail[:POTEXTHEADER], PoTextHeader)
327
+ po_text_item = get_object_list(fc_po_detail[:POTEXTITEM], PoTextItem)
328
+ po_exp_imp_item = get_object_list(fc_po_detail[:POEXPIMPITEM], PoExpImpItem)
329
+ po_components = get_object_list(fc_po_detail[:POCOMPONENTS], PoComponents)
330
+ po_shipping_exp = get_object_list(fc_po_detail[:POSHIPPINGEXP], PoShippingExp)
331
+ po_history = get_object_list(fc_po_detail[:POHISTORY], PoHistory)
332
+ po_history_totals = get_object_list(fc_po_detail[:POHISTORY_TOTALS], PoHistoryTotals)
333
+ po_confirmation = get_object_list(fc_po_detail[:POCONFIRMATION], PoConfirmation)
334
+ po_all_versions = get_object_list(fc_po_detail[:ALLVERSIONS], PoAllVersions)
335
+ po_partner = get_object_list(fc_po_detail[:POPARTNER], PoPartner)
336
+ po_extension_out = get_object_list(fc_po_detail[:EXTENSIONOUT], PoExtensionOut)
337
+ po_serial_number = get_object_list(fc_po_detail[:SERIALNUMBER], PoSerialNumber)
338
+ po_inv_plan_header = get_object_list(fc_po_detail[:INVPLANHEADER], PoInvPlanHeader)
339
+ po_inv_plan_item = get_object_list(fc_po_detail[:INVPLANITEM], PoInvPlanItem)
340
+ po_history_ma = get_object_list(fc_po_detail[:POHISTORY_MA], PoHistoryMa)
341
+ po_header = get_object(fc_po_detail[:POHEADER], PoHeader)
342
+ po_exp_imp_header = get_object(fc_po_detail[:POEXPIMPHEADER], PoExpImpHeader)
343
+ tb_return = get_object_list(fc_po_detail[:RETURN], Return)
344
+
345
+ retcode = tb_return.detect{|r| r.type == 'E'}
346
+
347
+ if retcode
348
+ api_return_error(retcode)
349
+ else
350
+ api_return_success({
351
+ po_item: po_item,
352
+ po_addrdelivery: po_addrdelivery,
353
+ po_schedule: po_schedule,
354
+ po_account: po_account,
355
+ po_cond_header: po_cond_header,
356
+ po_cond: po_cond,
357
+ po_limits: po_limits,
358
+ po_contract_limits: po_contract_limits,
359
+ po_services: po_services,
360
+ po_srv_access_values: po_srv_access_values,
361
+ po_text_header: po_text_header,
362
+ po_text_item: po_text_item,
363
+ po_exp_imp_item: po_exp_imp_item,
364
+ po_components: po_components,
365
+ po_shipping_exp: po_shipping_exp,
366
+ po_history: po_history,
367
+ po_history_totals: po_history_totals,
368
+ po_confirmation: po_confirmation,
369
+ po_all_versions: po_all_versions,
370
+ po_partner: po_partner,
371
+ po_extension_out: po_extension_out,
372
+ po_serial_number: po_serial_number,
373
+ po_inv_plan_header: po_inv_plan_header,
374
+ po_inv_plan_item: po_inv_plan_item,
375
+ po_history_ma: po_history_ma,
376
+ po_header: po_header,
377
+ po_exp_imp_header: po_exp_imp_header,
378
+ tb_return: tb_return,
379
+ })
380
+ end
381
+ end
382
+
383
+ def po_release_strategy_info(po = 0, po_rel_code = "")
384
+ #-- Execute BAPI_PO_GETRELINFO
385
+ fn_po_rel_strat_info = @conn.get_function('BAPI_PO_GETRELINFO')
386
+ fc_po_rel_strat_info = fn_po_rel_strat_info.get_function_call
387
+
388
+ fc_po_rel_strat_info[:PURCHASEORDER] = po
389
+ fc_po_rel_strat_info[:PO_REL_CODE] = po_rel_code
390
+
391
+ fc_po_rel_strat_info.invoke
392
+
393
+ #-- Execute conversions for returned tables to a designated list (array)
394
+ po_release_final = get_object_list(fc_po_rel_strat_info[:RELEASE_FINAL], PoReleaseFinal.to_s)
395
+ tb_return = get_object_list(fc_po_rel_strat_info[:RETURN], Return.to_s)
396
+
397
+ retcode = tb_return.detect{|r| r.type == 'E'}
398
+
399
+ if retcode
400
+ api_return_error(retcode)
401
+ else
402
+ api_return_success({
403
+ po_release_final: po_release_final,
404
+ tb_return: tb_return,
405
+ })
406
+ end
407
+ end
408
+
409
+ # Performs SAP Authority check on a certain authorization
410
+ # object. For more details on SAP authorization,
411
+ # this link will provide good details:
412
+ # * https://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/a92195a9-0b01-0010-909c-f330ea4a585c&overridelayout=true
413
+ # * https://blogs.sap.com/2020/11/14/some-important-information-about-sap-authorization-objects/
414
+ # @param user [String] SAP userid for which authorization will be performed
415
+ # @param auth_object [String] Authorization object to be checked in SAP
416
+ # @param field [String] Authorization field checked within the authorization object
417
+ # @param value [String] Authorization value to be checked. (i.e. 01 for creation, 02 for change, XX for release code)
418
+ def authority_check(user, auth_object, field, value)
419
+ #-- Execute AUTHORITY_CHECK
420
+ function = @conn.get_function('AUTHORITY_CHECK')
421
+ fun_call = function.get_function_call
422
+
423
+ fun_call[:USER] = user
424
+ fun_call[:OBJECT] = auth_object
425
+ fun_call[:FIELD1] = field
426
+ fun_call[:VALUE1] = value
427
+
428
+ begin
429
+ fun_call.invoke
430
+ rescue Exception => ex
431
+ if ex.to_s.include?('USER_IS_AUTHORIZED')
432
+ api_return(0,'Authorized');
433
+ else
434
+ api_return(8,'User is not authorized.')
435
+ end
436
+ end
437
+
438
+ end
439
+
440
+ def api_return_success(obj=nil )
441
+ UtilHelper.api_return(0, 'Success!', obj)
284
442
  end
285
443
 
286
- def po_detail(po = 0)
287
- []
444
+ def api_return_error(obj={}, exception=nil)
445
+ UtilHelper.api_return(8, 'Error.', obj, exception)
288
446
  end
289
447
 
290
- def po_release_strategy_info(po = 1)
291
- []
448
+ def api_return(rc=0, message ='', obj=nil, exception=nil )
449
+ UtilHelper.api_return(rc, message, obj, exception)
292
450
  end
293
451
 
294
452
  private
data/lib/rnsap_spec.rb ADDED
@@ -0,0 +1,93 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+ require 'yaml'
5
+ require_relative '../lib/rnsap'
6
+ require_relative '../lib/preq_detail/preq_item'
7
+
8
+ describe RnSap::Sap do
9
+ let(:params) do
10
+ file = File.expand_path(File.join(File.dirname(__FILE__), '..', 'secrets.yml'))
11
+ YAML.safe_load(File.read(file))
12
+ end
13
+
14
+ let(:logon_info) do
15
+ { 'user' => params['user'],
16
+ 'passwd' => params['password'],
17
+ 'trace' => params['trace'],
18
+ 'client' => params['client'],
19
+ 'ashost' => params['ashost'],
20
+ 'sysnr' => params['sysnr'] }
21
+ end
22
+
23
+ let(:test_data) do
24
+ file = File.expand_path(File.join(File.dirname(__FILE__), '..', 'test_data.yml'))
25
+ YAML.safe_load(File.read(file))
26
+ end
27
+
28
+ let(:conn) do
29
+ RnSap::Sap.new(logon_info)
30
+ end
31
+
32
+ context 'Based on connection available parameters' do
33
+ it 'connects to SAP' do
34
+ expect(conn).not_to be_nil
35
+ end
36
+ end
37
+
38
+ context 'Reads table information from SAP' do
39
+ it 'gets at least one vendor' do
40
+ list = conn.read_table('lfa1', %w[NAME1 LIFNR LAND1])
41
+ expect(list.count).to be > 0
42
+ end
43
+ it 'gets at least one Raw material' do
44
+ list = conn.read_table('mara', %w[matnr ernam], ["MTART = 'ROH'"])
45
+ expect(list.count).to be > 0
46
+ end
47
+
48
+ it 'gets a two Raw materials skipping the first in the database' do
49
+ list = conn.read_table({ name: 'mara', fields: %w[matnr ernam], clauses: ["MTART = 'ROH'"], row_skip: 1, row_count: 2 })
50
+ expect(list.count).to eq(2)
51
+ end
52
+ end
53
+
54
+ context 'Gets information from a Purchase Requisition' do
55
+ it 'Obtains details from purchase requisition' do
56
+ pr = test_data['preqs']['number']
57
+ puts " -> Pesquisando P.Req: #{pr}"
58
+ details = conn.preq_detail(pr)
59
+
60
+ expect(details).not_to be_nil
61
+ expect(details.class).to be(Hash)
62
+ end
63
+
64
+ it 'gets purchase requisition Release Strategy info' do
65
+ pr = test_data['preqs']['number']
66
+ details = conn.preq_release_strategy_info(pr)
67
+
68
+ expect(details).not_to be_nil
69
+ expect(details.class).to be(Hash)
70
+ end
71
+ end
72
+
73
+ context 'Gets information from a Purchase Order' do
74
+ it 'Obtains details from purchase requisition' do
75
+ po = test_data['po']['number']
76
+ puts " -> Pesquisando P.Order: #{po}"
77
+ details = conn.po_detail(po)
78
+
79
+ expect(details).not_to be_nil
80
+ expect(details.class).to be(Array)
81
+ end
82
+
83
+ it 'gets purchase requisition Release Strategy info' do
84
+ po = test_data['po']['number']
85
+ details = conn.po_release_strategy_info(po)
86
+
87
+ expect(details).not_to be_nil
88
+ expect(details.class).to be(Array)
89
+ end
90
+ end
91
+
92
+
93
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rnsap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.4.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rogerio Nascimento
@@ -46,6 +46,38 @@ extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
48
  - lib/helper/rfc_helper.rb
49
+ - lib/helper/util_helper.rb
50
+ - lib/po_detail/all.rb
51
+ - lib/po_detail/po_account.rb
52
+ - lib/po_detail/po_addrdelivery.rb
53
+ - lib/po_detail/po_all_versions.rb
54
+ - lib/po_detail/po_components.rb
55
+ - lib/po_detail/po_cond.rb
56
+ - lib/po_detail/po_cond_header.rb
57
+ - lib/po_detail/po_confirmation.rb
58
+ - lib/po_detail/po_contract_limits.rb
59
+ - lib/po_detail/po_exp_imp_header.rb
60
+ - lib/po_detail/po_exp_imp_item.rb
61
+ - lib/po_detail/po_extension_out.rb
62
+ - lib/po_detail/po_header.rb
63
+ - lib/po_detail/po_history.rb
64
+ - lib/po_detail/po_history_ma.rb
65
+ - lib/po_detail/po_history_totals.rb
66
+ - lib/po_detail/po_inv_plan_header.rb
67
+ - lib/po_detail/po_inv_plan_item.rb
68
+ - lib/po_detail/po_item.rb
69
+ - lib/po_detail/po_limits.rb
70
+ - lib/po_detail/po_partner.rb
71
+ - lib/po_detail/po_schedule.rb
72
+ - lib/po_detail/po_serial_number.rb
73
+ - lib/po_detail/po_services.rb
74
+ - lib/po_detail/po_shipping_exp.rb
75
+ - lib/po_detail/po_srv_access_values.rb
76
+ - lib/po_detail/po_text_header.rb
77
+ - lib/po_detail/po_text_item.rb
78
+ - lib/po_release_info/all.rb
79
+ - lib/po_release_info/po_release_final.rb
80
+ - lib/preq_detail/all.rb
49
81
  - lib/preq_detail/preq_acct_assignment.rb
50
82
  - lib/preq_detail/preq_contract_limits.rb
51
83
  - lib/preq_detail/preq_item.rb
@@ -54,6 +86,7 @@ files:
54
86
  - lib/preq_detail/preq_services_texts.rb
55
87
  - lib/preq_detail/preq_srv_accass_values.rb
56
88
  - lib/preq_detail/preq_text.rb
89
+ - lib/preq_release_info/all.rb
57
90
  - lib/preq_release_info/preq_gen_release_info.rb
58
91
  - lib/preq_release_info/preq_release_final.rb
59
92
  - lib/preq_release_info/preq_release_posted.rb
@@ -61,6 +94,7 @@ files:
61
94
  - lib/read_table/table_column.rb
62
95
  - lib/return.rb
63
96
  - lib/rnsap.rb
97
+ - lib/rnsap_spec.rb
64
98
  homepage: https://github.com/rnasc/rnsap
65
99
  licenses:
66
100
  - MIT