rnsap 0.4.16 → 0.4.17

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: 6aceef51bfdb1e83de50a4344af023f266c355df9df6ec66bc12ba34b950c73b
4
- data.tar.gz: bb215f8ed0ce6b7da2423798204f38aed4ff991d3f752df41c664ddd3f453d9f
3
+ metadata.gz: 518529f9e547d8d03ddb437b6d47c252f4308cf041ba4433abdca14c5b996e4a
4
+ data.tar.gz: 9386f9252f74b52f5a8c428829903492001b75db909f072021833d2e21121851
5
5
  SHA512:
6
- metadata.gz: e09e7a343474c810d55a8fe866436558efa3773b2674eb7c5adef413f1e1df4ed4549d59e8dd20910c3a118990c36d0ee912767236d54224a95217a0bb94ef10
7
- data.tar.gz: 3f8882bf24c59f8c1680d62baf05c7bf9c867c149f8ae2b20922295c9a6d2f5ccb1c73165227f968f3b9738994a3e0e4cdd07cf73c671675a64282fb40cb7c88
6
+ metadata.gz: 7227e483f630884901000f031f846b97f24b4d9697362c534a29707dcb80cd0a95881bd16ce99165959f70e45a4b5eb65feb959048928b5f3408126222fd5fec
7
+ data.tar.gz: 60b5d19b5f5a3b0cfb4e21a1daddfcda9ce8c048496dfe3566236fc0ef4e8bf14b5525e4b55a84d83a59acc46fc7e2d2fb049450f96793632b908532f90e9216
data/lib/currency.rb ADDED
@@ -0,0 +1,35 @@
1
+ class Currency
2
+
3
+ def self.convert_amount_from_to(conn, amount, from_curr, to_curr, date)
4
+ convert_currency_amount({conn: conn, amount: amount, from_curr: from_curr, to_curr: to_curr, date: date})
5
+ end
6
+ def self.convert_currency_amount(*options)
7
+
8
+ return 0.0 unless options
9
+ return 0.0 unless options.class == Array
10
+
11
+ params = options.first
12
+
13
+ rate_type = params[:rate_type] ? params[:rate_type] : 'M'
14
+ date = params[:date] ? params[:date] : Date.today
15
+ conn = params[:conn]
16
+ from_curr = params[:from_curr]
17
+ to_curr = params[:to_curr]
18
+ amount = params[:amount]
19
+
20
+ return 0.0 unless (conn && from_curr && to_curr && amount)
21
+
22
+ fname = conn.conn.get_function('RPM_CONVERT_CURRENCY_AMOUNT')
23
+ fcall = fname.get_function_call
24
+
25
+ fcall[:IV_RATE_TYPE] = rate_type
26
+ fcall[:DATE] = date
27
+ fcall[:IV_FROM_CURR] = from_curr
28
+ fcall[:IV_TO_CURR] = to_curr
29
+ fcall[:IV_AMOUNT] = amount
30
+
31
+ fcall.invoke
32
+
33
+ fcall[:EV_AMOUNT].to_f
34
+ end
35
+ end
@@ -0,0 +1 @@
1
+ require 'preq_release_items/requisition_items'
@@ -0,0 +1,174 @@
1
+ class RequisitionItems
2
+ # @return [String] Purchase Requisition Number
3
+ attr_accessor :preq_no
4
+ # @return [Integer] Item number of purchase requisition
5
+ attr_accessor :preq_item
6
+ # @return [String] Purchase Requisition Document Type
7
+ attr_accessor :doc_type
8
+ # @return [String] Purchasing Group
9
+ attr_accessor :pur_group
10
+ # @return [String] Name of Person Who Created the Object
11
+ attr_accessor :created_by
12
+ # @return [String] Name of requisitioner/requester
13
+ attr_accessor :preq_name
14
+ # @return [Date] Requisition (Request) Date
15
+ attr_accessor :preq_date
16
+ # @return [String] Short Text
17
+ attr_accessor :short_text
18
+ # @return [String] Material Number
19
+ attr_accessor :material
20
+ # @return [String] Material number corresponding to manufacturer part number
21
+ attr_accessor :pur_mat
22
+ # @return [String] Plant
23
+ attr_accessor :plant
24
+ # @return [String] Storage Location
25
+ attr_accessor :store_loc
26
+ # @return [String] Requirement Tracking Number
27
+ attr_accessor :trackingno
28
+ # @return [String] Material Group
29
+ attr_accessor :mat_grp
30
+ # @return [String] Supplying (issuing) plant in case of stock transport order
31
+ attr_accessor :suppl_plnt
32
+ # @return [Float] Purchase requisition quantity
33
+ attr_accessor :quantity
34
+ # @return [Integer] Purchase requisition unit of measure
35
+ attr_accessor :unit
36
+ # @return [String] Date type (day, week, month, interval)
37
+ attr_accessor :del_datcat
38
+ # @return [Date] Item delivery date
39
+ attr_accessor :deliv_date
40
+ # @return [Date] Purchase Requisition Release Date
41
+ attr_accessor :rel_date
42
+ # @return [Float] Goods receipt processing time in days
43
+ attr_accessor :gr_pr_time
44
+ # @return [Float] Price in purchase requisition
45
+ attr_accessor :c_amt_bapi
46
+ # @return [Float] Price unit
47
+ attr_accessor :price_unit
48
+ # @return [String] Item category in purchasing document
49
+ attr_accessor :item_cat
50
+ # @return [String] Account Assignment Category
51
+ attr_accessor :acctasscat
52
+ # @return [String] Distribution indicator for multiple account assignment
53
+ attr_accessor :distrib
54
+ # @return [String] Partial invoice indicator
55
+ attr_accessor :part_inv
56
+ # @return [String] Goods Receipt Indicator
57
+ attr_accessor :gr_ind
58
+ # @return [String] Goods Receipt, Non-Valuated
59
+ attr_accessor :gr_non_val
60
+ # @return [String] Invoice receipt indicator
61
+ attr_accessor :ir_ind
62
+ # @return [String] Required Vendor
63
+ attr_accessor :des_vendor
64
+ # @return [String] Fixed vendor
65
+ attr_accessor :fixed_vend
66
+ # @return [String] Purchasing Organization
67
+ attr_accessor :purch_org
68
+ # @return [String] Number of principal purchase agreement
69
+ attr_accessor :agreement
70
+ # @return [Integer] Item number of principal purchase agreement
71
+ attr_accessor :agmt_item
72
+ # @return [String] Number of purchasing info record
73
+ attr_accessor :info_rec
74
+ # @return [String] Number of quota arrangement
75
+ attr_accessor :quota_arr
76
+ # @return [Integer] Quota arrangement item
77
+ attr_accessor :quotarritm
78
+ # @return [String] MRP Controller
79
+ attr_accessor :mrp_contr
80
+ # @return [String] BOM explosion number
81
+ attr_accessor :bomexpl_no
82
+ # @return [Date] Date of last resubmission
83
+ attr_accessor :last_resub
84
+ # @return [Float] Resubmission interval of purchase requisition
85
+ attr_accessor :resubmis
86
+ # @return [Float] Number of resubmissions
87
+ attr_accessor :no_resub
88
+ # @return [String] Valuation Type
89
+ attr_accessor :val_type
90
+ # @return [String] Special Stock Indicator
91
+ attr_accessor :spec_stock
92
+ # @return [Integer] Purchase Order Unit of Measure
93
+ attr_accessor :po_unit
94
+ # @return [String] Revision level
95
+ attr_accessor :rev_lev
96
+ # @return [Integer] Package number
97
+ attr_accessor :pckg_no
98
+ # @return [String] Kanban indicator
99
+ attr_accessor :kanban_ind
100
+ # @return [String] Use Requisition Price in Purchase Order
101
+ attr_accessor :po_price
102
+ # @return [Integer] Configuration (internal object number)
103
+ attr_accessor :int_obj_no
104
+ # @return [String] Promotion
105
+ attr_accessor :promotion
106
+ # @return [String] Batch Number
107
+ attr_accessor :batch
108
+ # @return [String] Material number used by vendor
109
+ attr_accessor :vend_mat
110
+ # @return [Float] Quantity ordered against this purchase requisition
111
+ attr_accessor :ordered
112
+ # @return [String] Currency Key
113
+ attr_accessor :currency
114
+ # @return [String] Mfr part profile
115
+ attr_accessor :manuf_prof
116
+ # @return [String] Manufacturer Part Number
117
+ attr_accessor :manu_mat
118
+ # @return [String] Manufacturer number
119
+ attr_accessor :mfr_no
120
+ # @return [String] External manufacturer code name or number
121
+ attr_accessor :mfr_no_ext
122
+ # @return [String] Category of delivery date
123
+ attr_accessor :del_datcat_ext
124
+ # @return [String] ISO Currency Code
125
+ attr_accessor :currency_iso
126
+ # @return [String] Item Category in Purchasing Document
127
+ attr_accessor :item_cat_ext
128
+ # @return [String] ISO code for unit of measure in purchase requisition
129
+ attr_accessor :preq_unit_iso
130
+ # @return [String] Order unit in ISO code
131
+ attr_accessor :po_unit_iso
132
+ # @return [String] Overall release of purchase requisitions
133
+ attr_accessor :general_release
134
+ # @return [String] Long Material Number for MATERIAL Field
135
+ attr_accessor :material_external
136
+ # @return [String] External GUID for MATERIAL Field
137
+ attr_accessor :material_guid
138
+ # @return [String] Version Number for MATERIAL Field
139
+ attr_accessor :material_version
140
+ # @return [String] Long Material Number for PUR_MAT Field
141
+ attr_accessor :pur_mat_external
142
+ # @return [String] External GUID for PUR_MAT Field
143
+ attr_accessor :pur_mat_guid
144
+ # @return [String] Version Number for PUR_MAT Field
145
+ attr_accessor :pur_mat_version
146
+ # @return [String] Purchase Requisition Blocked
147
+ attr_accessor :req_blocked
148
+ # @return [String] Reason for Item Block
149
+ attr_accessor :reason_blocking
150
+ # @return [String] Procuring Plant
151
+ attr_accessor :procuring_plant
152
+ # @return [String] Commitment Item
153
+ attr_accessor :cmmt_item
154
+ # @return [String] Funds Center
155
+ attr_accessor :funds_ctr
156
+ # @return [String] Fund
157
+ attr_accessor :fund
158
+ # @return [String] Document number for earmarked funds
159
+ attr_accessor :res_doc
160
+ # @return [Integer] Earmarked Funds: Document Item
161
+ attr_accessor :res_item
162
+ # @return [String] Functional Area
163
+ attr_accessor :func_area
164
+ # @return [String] Grant
165
+ attr_accessor :grant_nbr
166
+ # @return [String] Obsolete
167
+ attr_accessor :fund_long
168
+ # @return [String] FM: Budget Period
169
+ attr_accessor :budget_period
170
+ # @return [String] Material Number (40 Characters, needed f. technical reasons)
171
+ attr_accessor :material_long
172
+ # @return [String] Material number corresponding to MPN (technically required)
173
+ attr_accessor :pur_mat_long
174
+ end
data/lib/rnsap.rb CHANGED
@@ -3,11 +3,13 @@
3
3
  require 'nwrfc'
4
4
  require 'read_table/table_column'
5
5
  require 'auth'
6
+ require 'currency'
6
7
 
7
8
  require 'return'
8
9
 
9
10
  require 'preq_detail/all'
10
11
  require 'preq_release_info/all'
12
+ require 'preq_release_items/all'
11
13
 
12
14
  require 'po_detail/all'
13
15
  require 'po_release_info/all'
@@ -300,6 +302,29 @@ module RnSap
300
302
  end
301
303
  end
302
304
 
305
+ def preq_release_items(group = '', code = '')
306
+ fname = @conn.get_function('BAPI_REQUISITION_GETITEMSREL')
307
+ fcall = fname.get_function_call
308
+
309
+ fcall[:REL_GROUP] = group
310
+ fcall[:REL_CODE] = code
311
+ fcall[:ITEMS_FOR_RELEASE] = 'X'
312
+
313
+ fcall.invoke
314
+
315
+ tb_return = get_object_list(fcall[:RETURN], Return)
316
+ requisition_items = get_object_list(fcall[:REQUISITION_ITEMS], RequisitionItems)
317
+
318
+ retcode = tb_return.detect{|r| r.type == 'E'}
319
+
320
+ if retcode
321
+ api_return_error(retcode)
322
+ else
323
+ api_return_success(requisition_items)
324
+ end
325
+
326
+ end
327
+
303
328
  def po_detail(po = 0, acc_assignment = "", item_text = "", header_text = "", delivery_address = "", version = "", services = "", serialnumbers = "", invoiceplan = "")
304
329
  #-- Execute BAPI_PO_GETDETAIL1
305
330
  fn_po_detail = @conn.get_function('BAPI_PO_GETDETAIL1')
@@ -467,6 +492,16 @@ module RnSap
467
492
  value2: value2,
468
493
  )
469
494
  end
495
+
496
+ def currency_conversion(amount = 0.0, from_curr = 'EUR', to_curr = 'USD', date = Date.today)
497
+ Currency.convert_currency_amount(
498
+ conn: self,
499
+ amount: amount,
500
+ from_curr: from_curr,
501
+ to_curr: to_curr,
502
+ date: date
503
+ )
504
+ end
470
505
 
471
506
 
472
507
  def api_return_success(obj=nil )
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rnsap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.16
4
+ version: 0.4.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rogerio Nascimento
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-01 00:00:00.000000000 Z
11
+ date: 2021-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nwrfc
@@ -46,6 +46,7 @@ extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
48
  - lib/auth.rb
49
+ - lib/currency.rb
49
50
  - lib/helper/rfc_helper.rb
50
51
  - lib/helper/util_helper.rb
51
52
  - lib/po_detail/all.rb
@@ -92,6 +93,8 @@ files:
92
93
  - lib/preq_release_info/preq_release_final.rb
93
94
  - lib/preq_release_info/preq_release_posted.rb
94
95
  - lib/preq_release_info/preq_release_prerequisites.rb
96
+ - lib/preq_release_items/all.rb
97
+ - lib/preq_release_items/requisition_items.rb
95
98
  - lib/read_table/table_column.rb
96
99
  - lib/return.rb
97
100
  - lib/rnsap.rb
@@ -119,5 +122,5 @@ requirements: []
119
122
  rubygems_version: 3.2.3
120
123
  signing_key:
121
124
  specification_version: 4
122
- summary: Facilitates SAP RFC calls in Ruby
125
+ summary: Encapsulates SAP RFC calls in Ruby
123
126
  test_files: []