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 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: []