DBA Data[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;