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 +4 -4
- data/lib/currency.rb +35 -0
- data/lib/preq_release_items/all.rb +1 -0
- data/lib/preq_release_items/requisition_items.rb +174 -0
- data/lib/rnsap.rb +35 -0
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 518529f9e547d8d03ddb437b6d47c252f4308cf041ba4433abdca14c5b996e4a
|
4
|
+
data.tar.gz: 9386f9252f74b52f5a8c428829903492001b75db909f072021833d2e21121851
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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-
|
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:
|
125
|
+
summary: Encapsulates SAP RFC calls in Ruby
|
123
126
|
test_files: []
|