[Home] [Help]
PACKAGE BODY: APPS.PA_MC_INVOICE_DETAIL_PKG
Source
1 PACKAGE BODY PA_MC_INVOICE_DETAIL_PKG as
2 /* $Header: PAMCIDTB.pls 120.3 2005/08/26 11:26:18 skannoji noship $*/
3
4 L_PROJECT_ID PA_PLSQL_DATATYPES.IdTabTyp;
5 L_INVOICED_FLAG PA_PLSQL_DATATYPES.Char1TabTyp;
6 L_ACCT_CURRENCY_CODE PA_PLSQL_DATATYPES.Char30TabTyp;
7 L_BILL_AMOUNT PA_PLSQL_DATATYPES.NumTabTyp;
8 L_ACCT_RATE_TYPE PA_PLSQL_DATATYPES.Char30TabTyp;
9 L_ACCT_RATE_DATE PA_PLSQL_DATATYPES.Char30TabTyp;
10 L_ACCT_EXCHANGE_RATE PA_PLSQL_DATATYPES.NumTabTyp;
11 L_DRAFT_INV_DET_ID PA_PLSQL_DATATYPES.IdTabTyp;
12 L_PROG_APP_ID PA_PLSQL_DATATYPES.IdTabTyp;
13 L_PROG_ID PA_PLSQL_DATATYPES.IdTabTyp;
14 L_PROG_UPDATE_DATE PA_PLSQL_DATATYPES.Char30TabTyp;
15 L_SETS_OF_BOOKS_ID PA_PLSQL_DATATYPES.IdTabTyp;
16
17
18 g1_debug_mode varchar2(1) := NVL(FND_PROFILE.value('PA_DEBUG_MODE'), 'N');
19
20 PROCEDURE get_orig_exchg_rate (l_line_id IN NUMBER,
21 l_sob_id IN NUMBER,
22 l_exchange_rate OUT NOCOPY NUMBER, --File.Sql.39 bug 4440895
23 l_exchange_date OUT NOCOPY DATE, --File.Sql.39 bug 4440895
24 l_exchange_rate_type OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
25 l_bill_amount OUT NOCOPY NUMBER ) --File.Sql.39 bug 4440895
26 IS
27 BEGIN
28 NULL;
29 EXCEPTION
30 WHEN OTHERS
31 THEN
32 RAISE;
33 END get_orig_exchg_rate;
34
35 PROCEDURE download ( P_inv_rec_tab IN PA_INVOICE_DETAIL_PKG.inv_rec_tab,
36 P_record_cnt IN number,
37 P_Draft_inv_det_id OUT NOCOPY PA_PLSQL_DATATYPES.numtabtyp)
38 IS
39 BEGIN
40 FOR I in 1..P_record_cnt
41 LOOP
42 P_Draft_inv_det_id(I) := P_inv_rec_tab(I).DRAFT_INVOICE_DETAIL_ID;
43 END LOOP;
44 END download;
45
46 PROCEDURE compute_mrc (P_inv_rec_tab IN PA_INVOICE_DETAIL_PKG.inv_rec_tab,
47 P_trx_date IN PA_PLSQL_DATATYPES.DateTabTyp,
48 P_rec_counter IN NUMBER,
49 P_mrc_reqd_flag IN PA_PLSQL_DATATYPES.Char1TabTyp,
50 P_tot_record OUT NOCOPY NUMBER ) --File.Sql.39 bug 4440895
51 IS
52 orig_ref VARCHAR2(30);
53 adj_item NUMBER;
54 linkage VARCHAR2(30);
55 ei_date DATE;
56 --Bug#1078399
57 --New parameter x_txn_source added in eiid_details() - to be used to check whether
58 --the EI is an imported-one or not.
59 ei_txn_source VARCHAR2(30);
60 l_currency VARCHAR2(20);
61 l_err_stack VARCHAR2(80);
62 l_err_stage VARCHAR2(80);
63 l_exchange_date DATE;
64 l_exchange_rate NUMBER;
65 l_exchange_rate_type VARCHAR2(16);
66 l_sob_id NUMBER;
67 l_line_num NUMBER;
68 l_err_code NUMBER;
69 l_result_code VARCHAR2(15);
70 I NUMBER;
71 J NUMBER;
72 K NUMBER := 0;
73 l_tot_record NUMBER := 0;
74 L_mrc_reqd_flag varchar2(1);
75 l_bill_amt NUMBER;
76 l_denom NUMBER;
77 l_num NUMBER;
78
79 BEGIN
80
81 l_currency := PA_MC_INVOICE_DETAIL_PKG.G_FUNC_CURR;
82 l_sob_id := PA_MC_INVOICE_DETAIL_PKG.G_SOB;
83 P_tot_record := 0;
84
85 IF g1_debug_mode = 'Y' THEN
86 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'In Compute MRC ...');
87 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'Set of books...'||to_char(G_No_of_SOB));
88 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'Total Record...'||to_char(P_rec_counter));
89 END IF;
90 FOR I IN 1..P_rec_counter
91 LOOP
92 IF not( P_mrc_reqd_flag.exists(I))
93 THEN
94 L_mrc_reqd_flag := 'Y';
95 ELSE
96 L_mrc_reqd_flag := P_mrc_reqd_flag(I);
97 END IF;
98
99 if (not P_trx_date.exists(I))
100 then
101 IF g1_debug_mode = 'Y' THEN
102 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'Get EI Details....');
103 END IF;
104 pa_mc_currency_pkg.eiid_details(
105 x_eiid => P_inv_rec_tab(I).EXPENDITURE_ITEM_ID,
106 x_orig_trx => orig_ref,
107 x_adj_item => adj_item,
108 x_linkage => linkage,
109 x_ei_date => ei_date,
110 --Bug#1078399
111 --New parameter x_txn_source added in eiid_details() - to be used to check whether
112 --the EI is an imported-one or not.
113 x_txn_source => ei_txn_source,
114 x_err_stack => l_err_stack,
115 x_err_stage => l_err_stage,
116 x_err_code => l_err_code );
117 IF g1_debug_mode = 'Y' THEN
118 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'After Get EI Details....');
119 END IF;
120 else
121 ei_date := P_trx_date(I);
122 end if;
123
124 IF g1_debug_mode = 'Y' THEN
125 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'In Process of Compute MRC...');
126 END IF;
127 IF (L_mrc_reqd_flag = 'Y')
128 THEN
129 FOR J IN 1..G_No_of_SOB
130 LOOP
131
132 l_tot_record := l_tot_record + 1;
133 K := K + 1;
134
135 If (P_inv_rec_tab(I).DETAIL_ID_REVERSED IS NOT NULL)
136 Then
137 IF g1_debug_mode = 'Y' THEN
138 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'Detail Id Rev....'||
139 to_char(P_inv_rec_tab(I).DETAIL_ID_REVERSED));
140 END IF;
141 get_orig_exchg_rate (P_inv_rec_tab(I).DETAIL_ID_REVERSED,
142 G_Reporting_SOB(J),l_exchange_rate,
143 l_exchange_date,l_exchange_rate_type,l_bill_amt );
144 L_BILL_AMOUNT(K) := l_bill_amt;
145 ELSE
146 IF g1_debug_mode = 'Y' THEN
147 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'Before Get Rate....');
148 END IF;
149
150 l_currency := P_inv_rec_tab(I).DENOM_CURRENCY_CODE;
151 l_exchange_rate_type := P_inv_rec_tab(I).ACCT_RATE_TYPE;
152 l_exchange_date := ei_date;
153 l_exchange_rate := P_inv_rec_tab(I).ACCT_EXCHANGE_RATE;
154
155 IF g1_debug_mode = 'Y' THEN
156 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'Before Calling.....');
157 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'Primary Set of Books'||
158 to_char(l_sob_id));
159 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'Transaction Date'||
160 to_char(ei_date, 'YYYY/MM/DD'));
161 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'Transaction Currency'||
162 l_currency);
163 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'Transaction Con Type'||
164 l_exchange_rate_type);
165 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'Transaction Con date'||
166 l_exchange_date);
167 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'Transaction Con rate'||
168 l_exchange_rate);
169 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'Ous ...'||
170 to_char(PA_MC_INVOICE_DETAIL_PKG.G_ORG_ID));
171 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'Reporting ...'||
172 to_char(G_Reporting_SOB(J)));
173 END IF;
174 gl_mc_currency_pkg.get_rate ( p_primary_set_of_books_id => l_sob_id,
175 p_reporting_set_of_books_id =>
176 G_Reporting_SOB(J),
177 p_trans_date => ei_date,
178 p_trans_currency_code => l_currency,
179 p_trans_conversion_type =>
180 l_exchange_rate_type,
181 p_trans_conversion_date =>
182 l_exchange_date,
183 p_trans_conversion_rate =>
184 l_exchange_rate,
185 p_application_id => 275,
186 p_org_id =>
187 PA_MC_INVOICE_DETAIL_PKG.G_ORG_ID,
188 p_fa_book_type_code => NULL,
189 p_je_source_name => NULL,
190 p_je_category_name => NULL,
191 p_result_code => l_result_code,
192 p_denominator_rate => l_denom,
193 p_numerator_rate => l_num );
194
195 IF g1_debug_mode = 'Y' THEN
196 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'After Get Rate Process');
197 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'Result Code'|| l_result_code);
198 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'Exchange Rate....'||
199 to_char(l_exchange_rate, 'YYYY/MM/DD'));
200 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'Denominator....'|| to_char(l_denom));
201 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'Numrator....'|| to_char(l_num));
202 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'End Printing........');
203 END IF;
204
205 PA_IC_INV_UTILS.log_message('Bill Amt in MRC....'||
206 to_char((P_inv_rec_tab(I).DENOM_BILL_AMOUNT * l_num)/l_denom));
207
208 L_BILL_AMOUNT(K) := pa_mc_currency_pkg.CurrRound (
209 (P_inv_rec_tab(I).DENOM_BILL_AMOUNT * l_num)/l_denom,
210 G_Reporting_Curr(J));
211 IF g1_debug_mode = 'Y' THEN
212 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'After Compute...'||
213 to_char(L_BILL_AMOUNT(K)));
214 END IF;
215 end if;
216 IF g1_debug_mode = 'Y' THEN
217 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'Before Insert...');
218 END IF;
219 L_ACCT_EXCHANGE_RATE(K) := l_exchange_rate;
220
221 /* Release 12: ATG changes : Change the date form to YYYY/MM/DD */
222
223 L_ACCT_RATE_DATE(K) := to_char(l_exchange_date,'YYYY/MM/DD');
224 L_ACCT_RATE_TYPE(K) := l_exchange_rate_type;
225 L_SETS_OF_BOOKS_ID(K) := G_Reporting_SOB(J);
226 L_ACCT_CURRENCY_CODE(K) := G_Reporting_Curr(J);
227 L_DRAFT_INV_DET_ID(K)
228 := P_inv_rec_tab(I).DRAFT_INVOICE_DETAIL_ID;
229 L_PROJECT_ID(K) := P_inv_rec_tab(I).PROJECT_ID;
230 L_INVOICED_FLAG(K) := P_inv_rec_tab(I).INVOICED_FLAG;
231 L_PROG_APP_ID(K) := P_inv_rec_tab(I).PROGRAM_APPLICATION_ID;
232 L_PROG_ID(K) := P_inv_rec_tab(I).PROGRAM_ID;
233 L_PROG_UPDATE_DATE(K)
234 := to_char(P_inv_rec_tab(I).PROGRAM_UPDATE_DATE,'YYYY/MM/DD');
235 IF g1_debug_mode = 'Y' THEN
236 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'Index '|| to_char(K));
237 END IF;
238 END LOOP;
239 END IF;
240 END LOOP;
241 -- Total Number of records in Array
242 P_tot_record := l_tot_record;
243 IF g1_debug_mode = 'Y' THEN
244 PA_IC_INV_UTILS.log_message('compute_mrc: ' || 'Total Record '|| to_char(l_tot_record));
245 END IF;
246
247 EXCEPTION
248 WHEN OTHERS
249 THEN
250 RAISE;
251
252 END compute_mrc;
253
254 /* This procedure is called from Intercompany invoice process. This will
255 create MRC records for Invoice details */
256
257 PROCEDURE Insert_rows
258 ( P_inv_rec_tab IN PA_INVOICE_DETAIL_PKG.inv_rec_tab)
259 IS
260 l_tot_count NUMBER;
261 l_mrc_reqd_flag PA_PLSQL_DATATYPES.Char1TabTyp;
262 c number;
263 l_trx_date PA_PLSQL_DATATYPES.DateTabTyp;
264 BEGIN
265 c := 0;
266 IF g1_debug_mode = 'Y' THEN
267 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'In MRC Insert...');
268 END IF;
269
270 /* Compute the MRC amount and populate the global array */
271 If ( PA_INVOICE_DETAIL_PKG.G_Ins_count > 0 )
272 Then
273 compute_mrc(P_inv_rec_tab,l_trx_date,PA_INVOICE_DETAIL_PKG.G_Ins_count,
274 l_mrc_reqd_flag,l_tot_count);
275 c := 10;
276 IF g1_debug_mode = 'Y' THEN
277 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'In MRC Insert..'||to_char(l_tot_count));
278 END IF;
279
280 /* If MRC records are created, insert in PA_MC_DRAFT_INV_DETAILS */
281 if (l_tot_count > 0)
282 Then
283 IF g1_debug_mode = 'Y' THEN
284 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'Before Insert...');
285 END IF;
286 FOR I IN 1..l_tot_count
287 LOOP
288 c := 50;
289 IF g1_debug_mode = 'Y' THEN
290 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'Details Id'||to_char(L_DRAFT_INV_DET_ID(I)));
291 END IF;
292 c := 11;
293 IF g1_debug_mode = 'Y' THEN
294 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'Project Id'||to_char(L_PROJECT_ID(I)));
295 END IF;
296 c := 12;
297 IF g1_debug_mode = 'Y' THEN
298 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'Invoiced Flag'||L_INVOICED_FLAG(I));
299 END IF;
300 c := 13;
301 IF g1_debug_mode = 'Y' THEN
302 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'Set of Books Id'||to_char(L_SETS_OF_BOOKS_ID(I)));
303 END IF;
304 c := 14;
305 IF g1_debug_mode = 'Y' THEN
306 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'Account Currency'||L_ACCT_CURRENCY_CODE(I));
307 END IF;
308 c := 15;
309 IF g1_debug_mode = 'Y' THEN
310 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'Bill Amount'||to_char(L_BILL_AMOUNT(I)));
311 END IF;
312 c := 16;
313 IF g1_debug_mode = 'Y' THEN
314 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'Request Id'||to_char(PA_IC_INV_UTILS.G_REQUEST_ID));
315 END IF;
316 c := 17;
317 IF g1_debug_mode = 'Y' THEN
318 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'Acct Rate Type'||L_ACCT_RATE_TYPE(I));
319 END IF;
320 c := 18;
321 IF g1_debug_mode = 'Y' THEN
322 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'Acct Rate Date'||L_ACCT_RATE_DATE(I));
323 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'Acct Exchg Rate '||L_ACCT_EXCHANGE_RATE(I));
324 END IF;
325 c := 19;
326 END LOOP;
327
328 c := 20;
329
330 /* Array Insert of MRC records */
331 FOR I IN 1..l_tot_count
332 LOOP
333 /* Added the following if condition to stop inserting into pa_mc_draft_inv_details_all
334 table when bill_amount is zero, as we don't insert into pa_draft_invoice_details_all when bill_amount is zero- Bug 2739218 */
335 IF L_BILL_AMOUNT(I) <> 0
336 THEN
337 NULL;
338 END IF;
339 END LOOP;
340 /* End of Changes done for bug 2739218 */
341
342 IF g1_debug_mode = 'Y' THEN
343 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'End Insert...');
344 END IF;
345 End if;
346 End if;
347 EXCEPTION
348 WHEN OTHERS
349 THEN
350 IF g1_debug_mode = 'Y' THEN
351 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'In MRC Insert Error..'|| to_char(c));
352 END IF;
353 Raise;
354
355 END Insert_rows;
356
357 /* This procedure is called from MRC upgrade. In this case, transaction
358 date is suuplied as parameter */
359 PROCEDURE Insert_rows
360 ( P_inv_rec_tab IN PA_INVOICE_DETAIL_PKG.inv_rec_tab,
361 P_trx_date IN PA_PLSQL_DATATYPES.DateTabTyp)
362 IS
363 l_tot_count NUMBER;
364 l_mrc_reqd_flag PA_PLSQL_DATATYPES.Char1TabTyp;
365 c number;
366 BEGIN
367 c := 0;
368 IF g1_debug_mode = 'Y' THEN
369 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'In MRC Insert...');
370 END IF;
371 /* Compute the MRC amount and populate the global array */
372 If ( PA_INVOICE_DETAIL_PKG.G_Ins_count > 0 )
373 Then
374 compute_mrc(P_inv_rec_tab,P_trx_date,PA_INVOICE_DETAIL_PKG.G_Ins_count,
375 l_mrc_reqd_flag,l_tot_count);
376 c := 10;
377 IF g1_debug_mode = 'Y' THEN
378 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'In MRC Insert..'||to_char(l_tot_count));
379 END IF;
380 /* If MRC records are created, insert in PA_MC_DRAFT_INV_DETAILS */
381 if (l_tot_count > 0)
382 Then
383 IF g1_debug_mode = 'Y' THEN
384 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'Before Insert...');
385 END IF;
386 FOR I IN 1..l_tot_count
387 LOOP
388 c := 50;
389
390 IF g1_debug_mode = 'Y' THEN
391 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'Details Id'||to_char(L_DRAFT_INV_DET_ID(I)));
392 END IF;
393 c := 11;
394 IF g1_debug_mode = 'Y' THEN
395 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'Project Id'||to_char(L_PROJECT_ID(I)));
396 END IF;
397 c := 12;
398 IF g1_debug_mode = 'Y' THEN
399 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'Invoiced Flag'||L_INVOICED_FLAG(I));
400 END IF;
401 c := 13;
402 IF g1_debug_mode = 'Y' THEN
403 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'Set of Books Id'||to_char(L_SETS_OF_BOOKS_ID(I)));
404 END IF;
405 c := 14;
406 IF g1_debug_mode = 'Y' THEN
407 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'Account Currency'||L_ACCT_CURRENCY_CODE(I));
408 END IF;
409 c := 15;
410 IF g1_debug_mode = 'Y' THEN
411 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'Bill Amount'||to_char(L_BILL_AMOUNT(I)));
412 END IF;
413 c := 16;
414 IF g1_debug_mode = 'Y' THEN
415 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'Request Id'||to_char(PA_IC_INV_UTILS.G_REQUEST_ID));
416 END IF;
417 c := 17;
418 IF g1_debug_mode = 'Y' THEN
419 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'Acct Rate Type'||L_ACCT_RATE_TYPE(I));
420 END IF;
421 c := 18;
422 IF g1_debug_mode = 'Y' THEN
423 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'Acct Rate Date'||L_ACCT_RATE_DATE(I));
424 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'Acct Exchg Rate '||L_ACCT_EXCHANGE_RATE(I));
425 END IF;
426 c := 19;
427 END LOOP;
428
429 c := 20;
430 /* Array Insert of MRC records */
431 IF g1_debug_mode = 'Y' THEN
432 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'End Insert...');
433 END IF;
434 End if;
435 End if;
436 EXCEPTION
437 WHEN OTHERS
438 THEN
439 IF g1_debug_mode = 'Y' THEN
440 PA_IC_INV_UTILS.log_message('Insert_rows: ' || 'In MRC Insert Error..'|| to_char(c));
441 END IF;
442 Raise;
443
444 END Insert_rows;
445
446 PROCEDURE Update_rows
447 ( P_inv_rec_tab IN PA_INVOICE_DETAIL_PKG.inv_rec_tab,
448 P_mrc_reqd_flag IN PA_PLSQL_DATATYPES.Char1TabTyp)
449 IS
450 l_tot_count NUMBER;
451 l_trx_date PA_PLSQL_DATATYPES.DateTabTyp;
452 BEGIN
453
454 IF g1_debug_mode = 'Y' THEN
455 PA_IC_INV_UTILS.log_message('Update_rows: ' || 'In MRC Update...');
456 END IF;
457 If ( PA_INVOICE_DETAIL_PKG.G_Upd_count > 0)
458 Then
459 compute_mrc(P_inv_rec_tab,l_trx_date,PA_INVOICE_DETAIL_PKG.G_Upd_count,
460 P_mrc_reqd_flag,l_tot_count);
461
462
463 End if;
464
465 EXCEPTION
466 WHEN OTHERS
467 THEN
468 Raise;
469
470 END Update_rows;
471
472 PROCEDURE Delete_rows
473 ( P_inv_rec_tab IN PA_INVOICE_DETAIL_PKG.inv_rec_tab)
474 IS
475 l_draft_line_id PA_PLSQL_DATATYPES.numtabtyp;
476 BEGIN
477
478 IF g1_debug_mode = 'Y' THEN
479 PA_IC_INV_UTILS.log_message('Delete_rows: ' || 'In MRC Delete...');
480 END IF;
481 If ( PA_INVOICE_DETAIL_PKG.G_Del_count > 0)
482 Then
483 download(P_inv_rec_tab,PA_INVOICE_DETAIL_PKG.G_Del_count,l_draft_line_id);
484
485
486 End if;
487
488 EXCEPTION
489 WHEN OTHERS
490 THEN
491 Raise;
492
493 END Delete_rows;
494
495 END PA_MC_INVOICE_DETAIL_PKG;