rnsap 0.4.16 → 0.4.17
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|