1 PACKAGE PA_MC_CURRENCY_PKG AS
2 --$Header: PAXMCURS.pls 120.3 2005/08/11 11:35:51 eyefimov noship $
3 FunctionalCurrency fnd_currencies.currency_code%TYPE;
4
5 Invoice_Action Varchar2(15) := NULL;
6 -- Updated by PAIGEN at CANCEL time with value CANCEL.
7
8 /* Global Record and Table Definitions */
9
10 TYPE rsob IS RECORD
11 (rsob_id gl_alc_ledger_rships_v.ledger_id%TYPE,
12 rcurrency_code gl_alc_ledger_rships_v.currency_code%TYPE);
13
14 TYPE rsob_tab IS TABLE OF rsob
15 INDEX BY BINARY_INTEGER;
16
17 g_rsob_tab rsob_tab;
18
19 /* Type of message */
20 LOG NUMBER := 1;
21 DEBUG NUMBER := 2;
22
23 FUNCTION CurrRound( x_amount IN NUMBER ,
24 x_currency_code IN VARCHAR2 := FunctionalCurrency )
25 RETURN NUMBER;
26
27 PRAGMA RESTRICT_REFERENCES( CurrRound, WNPS,WNDS );
28
29 FUNCTION functional_currency(x_org_id IN NUMBER) RETURN VARCHAR2;
30 -- PRAGMA RESTRICT_REFERENCES( functional_currency, WNPS,WNDS );
31
32 FUNCTION set_of_books(x_org_id IN NUMBER) RETURN NUMBER;
33 -- PRAGMA RESTRICT_REFERENCES( set_of_books, WNPS,WNDS );
34
35 FUNCTION set_of_books RETURN NUMBER;
36 PRAGMA RESTRICT_REFERENCES( set_of_books, WNPS,WNDS );
37
38 FUNCTION get_mrc_sob_type_code( x_set_of_books_id IN NUMBER )
39 RETURN VARCHAR2;
40 PRAGMA RESTRICT_REFERENCES( get_mrc_sob_type_code, WNPS,WNDS );
41
42 FUNCTION get_mrc_sob_type_code RETURN VARCHAR2;
43 PRAGMA RESTRICT_REFERENCES( get_mrc_sob_type_code, WNPS,WNDS );
44
45 PROCEDURE eiid_details( x_eiid IN NUMBER,
46 x_orig_trx OUT NOCOPY VARCHAR2,
47 x_adj_item OUT NOCOPY NUMBER,
48 x_linkage OUT NOCOPY VARCHAR2,
49 x_ei_date OUT NOCOPY DATE,
50 --Bug#1078399
51 --New parameter x_txn_source added in eiid_details() - to be used to
52 --check whether the EI is an imported-one or not.
53 x_txn_source OUT NOCOPY VARCHAR2,
54 x_err_stack IN OUT NOCOPY VARCHAR2,
55 x_err_stage IN OUT NOCOPY VARCHAR2,
56 x_err_code OUT NOCOPY NUMBER);
57
58 PROCEDURE eiid_details( x_eiid IN NUMBER,
59 x_orig_trx OUT NOCOPY VARCHAR2,
60 x_adj_item OUT NOCOPY NUMBER,
61 x_linkage OUT NOCOPY VARCHAR2,
62 x_ei_date OUT NOCOPY DATE,
63 x_err_stack IN OUT NOCOPY VARCHAR2,
64 x_err_stage IN OUT NOCOPY VARCHAR2,
65 x_err_code OUT NOCOPY NUMBER);
66
67 FUNCTION max_cost_line( x_eiid IN NUMBER,
68 x_sob IN NUMBER) RETURN NUMBER;
69 PRAGMA RESTRICT_REFERENCES( max_cost_line, WNPS,WNDS );
70
71 FUNCTION max_rev_line(x_eiid IN NUMBER,
72 x_sob IN NUMBER) RETURN NUMBER;
73 PRAGMA RESTRICT_REFERENCES( max_rev_line, WNPS,WNDS );
74
75 PROCEDURE get_orig_cost_rates( x_adj_item IN NUMBER,
76 x_line_num IN NUMBER,
77 x_set_of_books_id IN NUMBER,
78 x_exchange_rate OUT NOCOPY NUMBER,
79 x_exchange_date OUT NOCOPY DATE,
80 x_exchange_rate_type OUT NOCOPY VARCHAR2,
81 x_err_stack IN OUT NOCOPY VARCHAR2,
82 x_err_stage IN OUT NOCOPY VARCHAR2,
83 x_err_code OUT NOCOPY NUMBER);
84
85 PROCEDURE get_orig_ei_cost_rates( x_exp_item_id IN NUMBER,
86 x_set_of_books_id IN NUMBER,
87 x_exchange_rate OUT NOCOPY NUMBER,
88 x_exchange_date OUT NOCOPY DATE,
89 x_exchange_rate_type OUT NOCOPY VARCHAR2,
90 x_err_stack IN OUT NOCOPY VARCHAR2,
91 x_err_stage IN OUT NOCOPY VARCHAR2,
92 x_err_code OUT NOCOPY NUMBER);
93
94 PROCEDURE get_cost_amts(x_exp_item_id IN NUMBER,
95 x_set_of_books_id IN NUMBER,
96 x_line_num IN NUMBER,
97 x_amount OUT NOCOPY NUMBER,
98 x_quantity OUT NOCOPY NUMBER,
99 x_exchange_rate OUT NOCOPY NUMBER,
100 x_exchange_date OUT NOCOPY DATE,
101 x_exchange_rate_type OUT NOCOPY VARCHAR2,
102 x_err_stack IN OUT NOCOPY VARCHAR2,
103 x_err_stage IN OUT NOCOPY VARCHAR2,
104 x_err_code OUT NOCOPY NUMBER);
105
106 PROCEDURE get_max_cost_amts(x_exp_item_id IN NUMBER,
107 x_set_of_books_id IN NUMBER,
108 x_raw_cost OUT NOCOPY NUMBER,
109 x_burdened_cost OUT NOCOPY NUMBER,
110 x_exchange_rate OUT NOCOPY NUMBER,
111 x_exchange_date OUT NOCOPY DATE,
112 x_exchange_rate_type OUT NOCOPY VARCHAR2,
113 x_err_stack IN OUT NOCOPY VARCHAR2,
114 x_err_stage IN OUT NOCOPY VARCHAR2,
115 x_err_code OUT NOCOPY NUMBER);
116
117 PROCEDURE get_max_crdl_amts(x_exp_item_id IN NUMBER,
118 x_set_of_books_id IN NUMBER,
119 x_revenue OUT NOCOPY NUMBER,
120 x_bill_amount OUT NOCOPY NUMBER,
121 x_exchange_rate OUT NOCOPY NUMBER,
122 x_err_stack IN OUT NOCOPY VARCHAR2,
123 x_err_stage IN OUT NOCOPY VARCHAR2,
124 x_err_code OUT NOCOPY NUMBER);
125
126
127 PROCEDURE get_orig_rev_rates( x_adj_item IN NUMBER,
128 x_line_num IN NUMBER,
129 x_set_of_books_id IN NUMBER,
130 x_exchange_rate OUT NOCOPY NUMBER,
131 x_exchange_date OUT NOCOPY DATE,
132 x_exchange_rate_type OUT NOCOPY VARCHAR2,
133 x_err_stack IN OUT NOCOPY VARCHAR2,
134 x_err_stage IN OUT NOCOPY VARCHAR2,
135 x_err_code OUT NOCOPY NUMBER);
136
137 PROCEDURE get_orig_ei_mc_rates( x_adj_exp_item_id IN NUMBER,
138 x_xfer_exp_item_id IN NUMBER,
139 x_set_of_books_id IN NUMBER,
140 x_raw_cost OUT NOCOPY NUMBER,
141 x_raw_cost_rate OUT NOCOPY NUMBER,
142 x_burden_cost OUT NOCOPY NUMBER,
143 x_burden_cost_rate OUT NOCOPY NUMBER,
144 x_bill_amount OUT NOCOPY NUMBER,
145 x_bill_rate OUT NOCOPY NUMBER,
146 x_accrued_revenue OUT NOCOPY NUMBER,
147 x_accrual_rate OUT NOCOPY NUMBER,
148 x_transfer_price OUT NOCOPY NUMBER,
149 x_adjusted_rate OUT NOCOPY NUMBER,
150 x_exchange_rate OUT NOCOPY NUMBER,
151 x_exchange_date OUT NOCOPY DATE,
152 x_exchange_rate_type OUT NOCOPY VARCHAR2,
153 x_err_stack IN OUT NOCOPY VARCHAR2,
154 x_err_stage IN OUT NOCOPY VARCHAR2,
155 x_err_code OUT NOCOPY NUMBER);
156
157 --Overloaded procedure
158
159 PROCEDURE get_orig_ei_mc_rates( x_adj_exp_item_id IN NUMBER,
160 x_xfer_exp_item_id IN NUMBER,
161 x_set_of_books_id IN NUMBER,
162 x_raw_cost OUT NOCOPY NUMBER,
163 x_raw_cost_rate OUT NOCOPY NUMBER,
164 x_burden_cost OUT NOCOPY NUMBER,
165 x_burden_cost_rate OUT NOCOPY NUMBER,
166 x_bill_amount OUT NOCOPY NUMBER,
167 x_bill_rate OUT NOCOPY NUMBER,
168 x_accrued_revenue OUT NOCOPY NUMBER,
169 x_accrual_rate OUT NOCOPY NUMBER,
170 x_transfer_price OUT NOCOPY NUMBER,
171 x_adjusted_rate OUT NOCOPY NUMBER,
172 x_exchange_rate OUT NOCOPY NUMBER,
173 x_exchange_date OUT NOCOPY DATE,
174 x_exchange_rate_type OUT NOCOPY VARCHAR2,
175 x_raw_revenue OUT NOCOPY NUMBER,/*3024103*/
176 x_adj_revenue OUT NOCOPY NUMBER,/*3024103*/
177 x_forecast_revenue OUT NOCOPY NUMBER,/*3024103*/
178 x_err_stack IN OUT NOCOPY VARCHAR2,
179 x_err_stage IN OUT NOCOPY VARCHAR2,
180 x_err_code OUT NOCOPY NUMBER);
181
182 PROCEDURE get_orig_event_amts( x_project_id IN NUMBER,
183 x_event_num IN NUMBER,
184 x_task_id IN NUMBER,
185 x_set_of_books_id IN NUMBER,
186 x_bill_amount OUT NOCOPY NUMBER,
187 x_revenue_amount OUT NOCOPY NUMBER,
188 x_rev_rate_type OUT NOCOPY VARCHAR2,
189 x_rev_exchange_rate OUT NOCOPY NUMBER,
190 x_rev_exchange_date OUT NOCOPY DATE,
191 x_inv_exchange_rate OUT NOCOPY NUMBER,
192 x_inv_exchange_date OUT NOCOPY DATE,
193 x_err_stack IN OUT NOCOPY VARCHAR2,
194 x_err_stage IN OUT NOCOPY VARCHAR2,
195 x_err_code OUT NOCOPY NUMBER);
196
197
198 PROCEDURE get_imported_rates( x_set_of_books_id IN NUMBER,
199 x_exp_item_id IN NUMBER,
200 x_raw_cost OUT NOCOPY NUMBER,
201 x_raw_cost_rate OUT NOCOPY NUMBER,
202 x_burden_cost OUT NOCOPY NUMBER,
203 x_burden_cost_rate OUT NOCOPY NUMBER,
204 x_exchange_rate OUT NOCOPY NUMBER,
205 x_exchange_date OUT NOCOPY DATE,
206 x_exchange_rate_type OUT NOCOPY VARCHAR2,
207 x_err_stack IN OUT NOCOPY VARCHAR2,
208 x_err_stage IN OUT NOCOPY VARCHAR2,
209 x_err_code OUT NOCOPY NUMBER);
210
211
212 PROCEDURE get_ap_keys( x_eiid IN NUMBER,
213 x_ref2 OUT NOCOPY VARCHAR2,
214 x_ref3 OUT NOCOPY VARCHAR2,
215 x_err_stack IN OUT NOCOPY VARCHAR2,
216 x_err_stage IN OUT NOCOPY VARCHAR2,
217 x_err_code OUT NOCOPY NUMBER);
218
219 /* added two IN parameters to get_ap_rate, system_reference4 and transaction_source
220 for AP Variance processing*/
221
222 PROCEDURE get_ap_rate( x_invoice_id IN NUMBER,
223 x_line_num IN NUMBER,
224 x_system_reference4 IN VARCHAR2 DEFAULT NULL,
225 x_transaction_source IN VARCHAR2 DEFAULT NULL,
226 x_sob IN NUMBER,
227 x_exchange_rate OUT NOCOPY NUMBER,
228 x_exchange_date OUT NOCOPY DATE,
229 x_exchange_rate_type OUT NOCOPY VARCHAR2,
230 x_amount OUT NOCOPY NUMBER,
231 x_err_stack IN OUT NOCOPY VARCHAR2,
232 x_err_stage IN OUT NOCOPY VARCHAR2,
233 x_err_code OUT NOCOPY NUMBER);
234
235 FUNCTION sum_rev_rdl( x_project_id IN NUMBER,
236 x_dr_num IN NUMBER,
237 x_sob IN NUMBER) RETURN NUMBER;
238 PRAGMA RESTRICT_REFERENCES( sum_rev_rdl, WNPS,WNDS );
239
240 FUNCTION sum_inv( x_project_id IN NUMBER,
241 x_di_num IN NUMBER,
242 x_line_num IN NUMBER,
243 x_sob IN NUMBER) RETURN NUMBER;
244 PRAGMA RESTRICT_REFERENCES( sum_inv, WNPS,WNDS );
245
246 FUNCTION sum_inv_rdl( x_project_id IN NUMBER,
247 x_di_num IN NUMBER,
248 x_line_num IN NUMBER,
249 x_sob IN NUMBER) RETURN NUMBER;
250 PRAGMA RESTRICT_REFERENCES( sum_inv_rdl, WNPS,WNDS );
251
252 FUNCTION sum_inv_erdl( x_project_id IN NUMBER,
253 x_di_num IN NUMBER,
254 x_line_num IN NUMBER,
255 x_sob IN NUMBER) RETURN NUMBER;
256 PRAGMA RESTRICT_REFERENCES( sum_inv_erdl, WNPS,WNDS );
257
258 FUNCTION sum_inv_ev( x_project_id IN NUMBER,
259 x_task_id IN NUMBER,
260 x_event_num IN NUMBER,
261 x_sob IN NUMBER) RETURN NUMBER;
262 PRAGMA RESTRICT_REFERENCES( sum_inv_ev, WNPS,WNDS );
263
264 FUNCTION sum_mc_cust_rdl_erdl( x_project_id IN NUMBER,
265 x_draft_revenue_num IN NUMBER,
266 x_draft_revenue_item_line_num IN NUMBER) RETURN NUMBER;
267 PRAGMA RESTRICT_REFERENCES( sum_mc_cust_rdl_erdl, WNPS,WNDS );
268
269 FUNCTION event_date( x_project_id IN NUMBER,
270 x_task_id IN NUMBER,
271 x_event_Num IN NUMBER) RETURN DATE;
272 PRAGMA RESTRICT_REFERENCES( event_date, WNPS,WNDS );
273
274 FUNCTION orgid( x_project_id IN NUMBER) RETURN NUMBER;
275 PRAGMA RESTRICT_REFERENCES( orgid, WNPS,WNDS );
276
277 FUNCTION get_wo_factor(x_project_id IN NUMBER,
278 x_di_num IN NUMBER,
279 x_di_num_org IN NUMBER ) RETURN NUMBER;
280
281 FUNCTION get_cancel_flag( x_project_id IN NUMBER,
282 x_di_num IN NUMBER ) RETURN VARCHAR2;
283
284 FUNCTION get_invoice_action RETURN VARCHAR2;
285
286 FUNCTION get_rtn_amount( x_project_id IN NUMBER,
287 x_di_num IN NUMBER,
288 x_rtn_pcnt IN NUMBER,
289 x_sob_id IN NUMBER ) RETURN NUMBER;
290 PRAGMA RESTRICT_REFERENCES( get_rtn_amount , WNPS,WNDS );
291
292
293 PROCEDURE raise_error(x_msg IN VARCHAR2,
294 x_module IN VARCHAR2,
295 x_currency IN VARCHAR2 default NULL );
296
297 /*------------------------------ ins_mc_txn_interface_all ----------------------*/
298 /* This procedure will populate the Pa_mc_txn_interface_all table for a invoice */
299 /* distribution line pulled over from AP . First it will look for the data in */
300 /* the AP MRC sub-table otherwise it will get the rates from GL based on the */
301 /* Invoice Date and compute the amounts and populate the pa_mc_txn_interface_all*/
302 /* table */
303 /*------------------------------------------------------------------------------*/
304
305 /* Changed the IN parameter names and local variables
309 p_invoice_payment_id to p_system_reference4
306 from p_vendor_id to p_system_reference1,
307 p_invoice_id to p_system_reference2,
308 p_dist_line_num to p_system_reference3,
310 */
311
312 /*
313 PROCEDURE ins_mc_txn_interface_all(
314
315 p_vendor_id IN NUMBER,
316 p_invoice_id IN NUMBER,
317 p_dist_line_num IN NUMBER,
318 p_interface_id IN NUMBER,
319 p_transaction_source IN VARCHAR2,
320 p_invoice_payment_id IN NUMBER DEFAULT NULL);
321 */
322
323 PROCEDURE ins_mc_txn_interface_all(
324 p_system_reference1 IN NUMBER,
325 p_system_reference2 IN NUMBER,
326 p_system_reference3 IN NUMBER,
327 p_system_reference4 IN VARCHAR2 DEFAULT NULL,
328 p_interface_id IN NUMBER,
329 p_transaction_source IN VARCHAR2,
330 p_acct_evt_id IN NUMBER DEFAULT NULL); --pricing changes, added param p_acct_evt_id
331
332 PROCEDURE get_ccdl_tp_amts( x_exp_item_id IN NUMBER,
333 x_set_of_books_id IN NUMBER,
334 x_transfer_price OUT NOCOPY NUMBER,
335 x_tp_exchange_rate OUT NOCOPY NUMBER,
336 x_tp_exchange_date OUT NOCOPY DATE,
337 x_tp_rate_type OUT NOCOPY VARCHAR2,
338 x_err_stack IN OUT NOCOPY VARCHAR2,
339 x_err_stage IN OUT NOCOPY VARCHAR2,
340 x_err_code OUT NOCOPY NUMBER);
341
342 PROCEDURE get_invdtl_tp_amts( x_exp_item_id IN NUMBER,
343 x_set_of_books_id IN NUMBER,
344 x_transfer_price OUT NOCOPY NUMBER,
345 x_tp_exchange_rate OUT NOCOPY NUMBER,
346 x_tp_exchange_date OUT NOCOPY DATE,
347 x_tp_rate_type OUT NOCOPY VARCHAR2,
348 x_err_stack IN OUT NOCOPY VARCHAR2,
349 x_err_stage IN OUT NOCOPY VARCHAR2,
350 x_err_code OUT NOCOPY NUMBER);
351
352
353 PROCEDURE get_po_rate( x_po_dist_id IN NUMBER,
354 x_rcv_txn_id IN VARCHAR2,
355 x_transaction_source IN VARCHAR2,
356 x_sob IN NUMBER,
357 x_exchange_rate OUT NOCOPY NUMBER,
358 x_exchange_date OUT NOCOPY DATE,
359 x_exchange_rate_type OUT NOCOPY VARCHAR2,
360 x_amount OUT NOCOPY NUMBER,
361 x_err_stack IN OUT NOCOPY VARCHAR2,
362 x_err_stage IN OUT NOCOPY VARCHAR2,
366 G_PREV_ORG_ID NUMBER(15);
363 x_err_code OUT NOCOPY NUMBER,
364 x_acct_evt_id IN NUMBER DEFAULT NULL); --pricing changes, added param p_acct_evt_id
365
367 G_PREV_CURRENCY VARCHAR2(30);
368 G_PREV_ORG_ID2 NUMBER(15);
369 G_PREV_SOB_ID NUMBER(15);
370
371 --Introduced for Re-Burdening process.
372
373 PROCEDURE eiid_details( x_eiid IN NUMBER,
374 x_orig_trx OUT NOCOPY VARCHAR2,
375 x_adj_item OUT NOCOPY NUMBER,
376 x_linkage OUT NOCOPY VARCHAR2,
377 x_ei_date OUT NOCOPY DATE,
378 x_txn_source OUT NOCOPY VARCHAR2,
379 x_ei_burdened_cost OUT NOCOPY NUMBER,
380 x_ei_burdened_delta OUT NOCOPY NUMBER,
381 x_err_stack IN OUT NOCOPY VARCHAR2,
382 x_err_stage IN OUT NOCOPY VARCHAR2,
383 x_err_code OUT NOCOPY NUMBER);
384
385 END PA_MC_CURRENCY_PKG;