DBA Data[Home] [Help]

PACKAGE BODY: APPS.GL_BC_PACKETS_PKG

Source


1 PACKAGE BODY gl_bc_packets_pkg AS
2 /* $Header: glibcpab.pls 120.6 2005/07/29 16:58:18 djogg ship $ */
3 
4 --
5 -- PRIVATE FUNCTIONS
6 --
7 PROCEDURE Lock_Budget_Transfer_Row(
8 		   X_Rowid                            	   VARCHAR2,
9 		   X_Status_Code			   VARCHAR2,
10 		   X_Packet_Id				   NUMBER,
11                    X_Ledger_Id                             NUMBER,
12                    X_Je_Source_Name                        VARCHAR2,
13                    X_Je_Category_Name                      VARCHAR2,
14 		   X_Code_Combination_Id		   NUMBER,
15 		   X_Period_Name			   VARCHAR2,
16 	   	   X_Period_Year			   NUMBER,
17 		   X_Period_Num				   NUMBER,
18 	 	   X_Quarter_Num			   NUMBER,
19                    X_Currency_Code                         VARCHAR2,
20 		   X_Budget_Version_Id			   NUMBER,
21                    X_Entered_Dr                            NUMBER,
22                    X_Entered_Cr                            NUMBER,
23 		   X_Je_Batch_Name			   VARCHAR2,
24 		   X_Combination_Number			   NUMBER
25 ) IS
26   CURSOR C IS
27       SELECT *
28       FROM   GL_BC_PACKETS
29       WHERE  rowid = X_Rowid
30       FOR UPDATE of Packet_Id NOWAIT;
31   Recinfo C%ROWTYPE;
32 BEGIN
33 
34   OPEN C;
35   FETCH C INTO Recinfo;
36   if (C%NOTFOUND) then
37     CLOSE C;
38     RAISE NO_DATA_FOUND;
39   end if;
40   CLOSE C;
41 
42   if (
43           (   (Recinfo.status_code = X_Status_Code)
44            OR (    (Recinfo.status_code IS NULL)
45                AND (X_Status_Code IS NULL)))
46       AND (   (Recinfo.packet_id = X_Packet_Id)
47            OR (    (Recinfo.packet_id IS NULL)
48                AND (X_Packet_Id IS NULL)))
49       AND (   (Recinfo.ledger_id = X_Ledger_Id)
50            OR (    (Recinfo.ledger_id IS NULL)
51                AND (X_Ledger_Id IS NULL)))
52       AND (   (Recinfo.je_source_name = X_Je_Source_Name)
53            OR (    (Recinfo.je_source_name IS NULL)
54                AND (X_Je_Source_Name IS NULL)))
55       AND (   (Recinfo.je_category_name = X_Je_Category_Name)
56            OR (    (Recinfo.je_category_name IS NULL)
57                AND (X_Je_Category_Name IS NULL)))
58       AND (   (Recinfo.code_combination_id = X_Code_Combination_Id)
59            OR (    (Recinfo.code_combination_id IS NULL)
60                AND (X_Code_Combination_Id IS NULL)))
61       AND (Recinfo.actual_flag = 'B')
62       AND (   (Recinfo.period_name = X_Period_Name)
63            OR (    (Recinfo.period_name IS NULL)
64                AND (X_Period_Name IS NULL)))
65       AND (   (Recinfo.period_year = X_Period_Year)
66            OR (    (Recinfo.period_year IS NULL)
67                AND (X_Period_Year IS NULL)))
68       AND (   (Recinfo.period_num = X_Period_Num)
69            OR (    (Recinfo.period_num IS NULL)
70                AND (X_Period_Num IS NULL)))
71       AND (   (Recinfo.quarter_num = X_Quarter_Num)
72            OR (    (Recinfo.quarter_num IS NULL)
73                AND (X_Quarter_Num IS NULL)))
74       AND (   (Recinfo.currency_code = X_Currency_Code)
75            OR (    (Recinfo.currency_code IS NULL)
76                AND (X_Currency_Code IS NULL)))
77       AND (   (Recinfo.budget_version_id = X_Budget_Version_Id)
78            OR (    (Recinfo.budget_version_id IS NULL)
79                AND (X_Budget_Version_Id IS NULL)))
80       AND (   (Recinfo.entered_dr = X_Entered_Dr)
81            OR (    (Recinfo.entered_dr IS NULL)
82                AND (X_Entered_Dr IS NULL)))
83       AND (   (Recinfo.entered_cr = X_Entered_Cr)
84            OR (    (Recinfo.entered_cr IS NULL)
85                AND (X_Entered_Cr IS NULL)))
86       AND (   (Recinfo.reference1 = X_Combination_Number)
87            OR (    (Recinfo.reference1 IS NULL)
88                AND (X_Combination_Number IS NULL)))
89       AND (   (Recinfo.je_batch_name = X_Je_Batch_Name)
90            OR (    (Recinfo.je_batch_name IS NULL)
91                AND (X_Je_Batch_Name IS NULL)))
92           ) then
93     return;
94   else
95     FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
96     APP_EXCEPTION.RAISE_EXCEPTION;
97   end if;
98 END Lock_Budget_Transfer_Row;
99 
100 
101 --
102 -- PUBLIC FUNCTIONS
103 --
104 
105   FUNCTION get_unique_id RETURN NUMBER IS
106     CURSOR get_new_id IS
107       SELECT gl_bc_packets_s.NEXTVAL
108       FROM dual;
109     new_id number;
110   BEGIN
111     OPEN get_new_id;
112     FETCH get_new_id INTO new_id;
113 
114     IF get_new_id%FOUND THEN
115       CLOSE get_new_id;
116       return(new_id);
117     ELSE
118       CLOSE get_new_id;
119       fnd_message.set_name('SQLGL', 'GL_ERROR_GETTING_UNIQUE_ID');
120       fnd_message.set_token('SEQUENCE', 'GL_BC_PACKETS_S');
121       app_exception.raise_exception;
122     END IF;
123 
124   EXCEPTION
125     WHEN app_exceptions.application_exception THEN
126       RAISE;
127     WHEN OTHERS THEN
128       fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
129       fnd_message.set_token('PROCEDURE', 'gl_bc_packets_pkg.get_unique_id');
130       RAISE;
131   END get_unique_id;
132 
133   FUNCTION insert_je_packet(batch_id NUMBER,
134 			    lgr_id NUMBER,
135                             mode_code VARCHAR2,
136                             user_id NUMBER,
137                             x_session_id NUMBER,
138                             x_serial_id NUMBER) RETURN NUMBER IS
139     new_packet_id NUMBER;
140     insert_mode	  VARCHAR2(1);
141   BEGIN
142     -- Get the packet id
143     new_packet_id := gl_bc_packets_pkg.get_unique_id;
144 
145     -- Set the funds check mode
146     IF (mode_code = 'R') THEN
147       insert_mode := 'P';
148     ELSE
149       insert_mode := 'C';
150     END IF;
151 
152     -- Insert the data into gl_je_packets
153     INSERT INTO gl_bc_packets
154       (packet_id, ledger_id, je_source_name,
155        je_category_name, code_combination_id, actual_flag,
156        period_name, period_year, period_num, quarter_num,
157        currency_code, status_code,
158        last_update_date, last_updated_by,
159        budget_version_id, encumbrance_type_id,
160        entered_dr, entered_cr, accounted_dr, accounted_cr,
161        ussgl_transaction_code, je_batch_id, je_header_id, je_line_num,
162        application_id, session_id, serial_id)
163     SELECT new_packet_id, jeh.ledger_id, jeh.je_source,
164            jeh.je_category, jel.code_combination_id, jeb.actual_flag,
165            per.period_name, per.period_year, per.period_num, per.quarter_num,
166            jeh.currency_code, insert_mode,
167            sysdate, user_id,
168            jeh.budget_version_id, jeh.encumbrance_type_id,
169            jel.entered_dr, jel.entered_cr, jel.accounted_dr,jel.accounted_cr,
170            jel.ussgl_transaction_code, jeh.je_batch_id, jeh.je_header_id,
171            jel.je_line_num, 101, x_session_id, x_serial_id
172     FROM gl_je_batches jeb, gl_period_statuses per, gl_je_headers jeh,
173          gl_je_lines jel
174     WHERE jeb.je_batch_id = batch_id
175     AND   per.application_id = 101
176     AND   per.ledger_id = jeh.ledger_id
177     AND   per.period_name = jeb.default_period_name
178     AND   jeh.je_batch_id = jeb.je_batch_id
179     AND   jeh.ledger_id = lgr_id
180     AND   jel.je_header_id = jeh.je_header_id;
181 
182     RETURN (new_packet_id);
183   EXCEPTION
184     WHEN app_exceptions.application_exception THEN
185       RAISE;
186     WHEN OTHERS THEN
187       fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
188       fnd_message.set_token('PROCEDURE', 'gl_bc_packets_pkg.insert_je_packet');
189       RAISE;
190   END insert_je_packet;
191 
192   FUNCTION exists_packet(xpacket_id NUMBER) RETURN BOOLEAN IS
193     CURSOR check_for_pkt IS
194       SELECT 'Has packet'
195       FROM dual
196       WHERE EXISTS (SELECT 'Has packet'
197                     FROM gl_bc_packets
198                     WHERE packet_id = xpacket_id);
199     dummy VARCHAR2(100);
200   BEGIN
201     OPEN check_for_pkt;
202     FETCH check_for_pkt INTO dummy;
203 
204     IF check_for_pkt%FOUND THEN
205       CLOSE check_for_pkt;
206       return(TRUE);
207     ELSE
208       CLOSE check_for_pkt;
209       return(FALSE);
210     END IF;
211 
212   EXCEPTION
213     WHEN app_exceptions.application_exception THEN
214       RAISE;
215     WHEN OTHERS THEN
216       fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
217       fnd_message.set_token('PROCEDURE', 'gl_bc_packets_pkg.exists_packet');
218       RAISE;
219   END exists_packet;
220 
221   FUNCTION get_ledger_id(xpacket_id NUMBER) RETURN NUMBER IS
222     CURSOR get_lgr_id IS
223       SELECT ledger_id
224       FROM gl_bc_packets
225       WHERE packet_id = xpacket_id;
226     lgr_id NUMBER;
227   BEGIN
228     OPEN get_lgr_id;
229     FETCH get_lgr_id INTO lgr_id;
230 
231     IF get_lgr_id%FOUND THEN
232       CLOSE get_lgr_id;
233       return(lgr_id);
234     ELSE
235       CLOSE get_lgr_id;
236       Raise NO_DATA_FOUND;
237     END IF;
238 
239   EXCEPTION
240     WHEN app_exceptions.application_exception THEN
241       RAISE;
242     WHEN OTHERS THEN
243       fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
244       fnd_message.set_token('PROCEDURE', 'gl_bc_packets_pkg.get_ledger_id');
245       RAISE;
246   END get_ledger_id;
247 
248   PROCEDURE Insert_Budget_Transfer_Row(
249 		     X_From_Rowid                   IN OUT NOCOPY VARCHAR2,
250 		     X_To_Rowid                     IN OUT NOCOPY VARCHAR2,
251 		     X_Status_Code			   VARCHAR2,
252                      X_Packet_Id                           NUMBER,
253                      X_Ledger_Id                           NUMBER,
254                      X_Je_Source_Name                      VARCHAR2,
255                      X_Je_Category_Name                    VARCHAR2,
256                      X_Budget_Version_Id                   NUMBER,
257 		     X_Je_Batch_Name			   VARCHAR2,
258                      X_Currency_Code                       VARCHAR2,
259                      X_From_Code_Combination_Id            NUMBER,
260                      X_To_Code_Combination_Id              NUMBER,
261                      X_Combination_Number		   NUMBER,
262                      X_Period_Name                         VARCHAR2,
263 		     X_Period_Year			   NUMBER,
264 		     X_Period_Num			   NUMBER,
265 		     X_Quarter_Num			   NUMBER,
266                      X_From_Entered_Dr                     NUMBER,
267                      X_From_Entered_Cr                     NUMBER,
268 		     X_To_Entered_Dr			   NUMBER,
269 		     X_To_Entered_Cr			   NUMBER,
270                      X_Last_Update_Date                    DATE,
271                      X_Last_Updated_By                     NUMBER,
272                      X_Session_Id                          NUMBER,
273                      X_Serial_Id                           NUMBER) IS
274    CURSOR C (ccid IN NUMBER, unique_value IN VARCHAR2) IS
275                  SELECT rowid FROM GL_BC_PACKETS
276                  WHERE packet_id           = X_Packet_Id
277 		 AND   ledger_id           = X_Ledger_Id
278 		 AND   reference2          = unique_value
279                  AND   code_combination_id = ccid
280                  AND   reference1          = to_char(X_Combination_Number)
281                  AND   period_name         = X_Period_Name;
282 BEGIN
283 
284   -- Insert the From line
285   INSERT INTO GL_BC_PACKETS(
286 	  status_code,
287 	  packet_id,
288           ledger_id,
289           je_source_name,
290           je_category_name,
291 	  code_combination_id,
292           actual_flag,
293           period_name,
294 	  period_year,
295 	  period_num,
296 	  quarter_num,
297 	  currency_code,
298 	  last_update_date,
299 	  last_updated_by,
300 	  budget_version_id,
301           entered_dr,
302           entered_cr,
303 	  accounted_dr,
304 	  accounted_cr,
305 	  je_batch_name,
306           application_id,
307           session_id,
308           serial_id,
309 	  reference1,
310           reference2
311          ) VALUES (
312           X_Status_Code,
313 	  X_Packet_Id,
314           X_Ledger_Id,
315           X_Je_Source_Name,
316           X_Je_Category_Name,
317           X_From_Code_Combination_Id,
318 	  'B',
319           X_Period_Name,
320 	  X_Period_Year,
321 	  X_Period_Num,
322 	  X_Quarter_Num,
323           X_Currency_Code,
324           X_Last_Update_Date,
325           X_Last_Updated_By,
326           X_Budget_Version_Id,
327           X_From_Entered_Dr,
328           X_From_Entered_Cr,
329 	  X_From_Entered_Dr,
330 	  X_From_Entered_Cr,
331           X_Je_Batch_Name,
332           101,
333           X_Session_Id,
334           X_Serial_Id,
335           X_Combination_Number,
336           'New Budget Transfer Row');
337 
338   OPEN C(X_From_Code_Combination_Id, 'New Budget Transfer Row');
339   FETCH C INTO X_From_Rowid;
340   if (C%NOTFOUND) then
341     CLOSE C;
342     RAISE NO_DATA_FOUND;
343   end if;
344   CLOSE C;
345 
346   -- Insert the to line, switching the Cr and Dr
347   INSERT INTO GL_BC_PACKETS(
348 	  status_code,
349 	  packet_id,
350           ledger_id,
351           je_source_name,
352           je_category_name,
353 	  code_combination_id,
354           actual_flag,
355           period_name,
356 	  period_year,
357 	  period_num,
358 	  quarter_num,
359 	  currency_code,
360 	  last_update_date,
361 	  last_updated_by,
362 	  budget_version_id,
363           entered_dr,
364           entered_cr,
365 	  accounted_dr,
366 	  accounted_cr,
367 	  je_batch_name,
368           application_id,
369           session_id,
370           serial_id,
371 	  reference1,
372           reference2
373          ) VALUES (
374           X_Status_Code,
375 	  X_Packet_Id,
376           X_Ledger_Id,
377           X_Je_Source_Name,
378           X_Je_Category_Name,
379           X_To_Code_Combination_Id,
380 	  'B',
381           X_Period_Name,
382 	  X_Period_Year,
383 	  X_Period_Num,
384 	  X_Quarter_Num,
385           X_Currency_Code,
386           X_Last_Update_Date,
387           X_Last_Updated_By,
388           X_Budget_Version_Id,
389           X_To_Entered_Dr,
390           X_To_Entered_Cr,
391 	  X_To_Entered_Dr,
392 	  X_To_Entered_Cr,
393           X_Je_Batch_Name,
394           101,
395           X_Session_Id,
396           X_Serial_Id,
397           X_Combination_Number,
398           X_From_RowId);
399 
400   OPEN C(X_To_Code_Combination_Id, X_From_RowId);
401   FETCH C INTO X_To_Rowid;
402   if (C%NOTFOUND) then
403     CLOSE C;
404     RAISE NO_DATA_FOUND;
405   end if;
406   CLOSE C;
407 
408 
409   -- Change the from reference2 to the to rowid.
410   UPDATE GL_BC_PACKETS
411   SET    reference2          = X_To_RowId
412   WHERE  packet_id           = X_Packet_Id
413   AND    ledger_id           = X_Ledger_Id
414   AND    reference2          = 'New Budget Transfer Row'
415   AND    code_combination_id = X_From_Code_Combination_Id
416   AND    reference1          = to_char(X_Combination_Number)
417   AND    period_name         = X_Period_Name;
418 
419 END Insert_Budget_Transfer_Row;
420 
421 PROCEDURE Update_Budget_Transfer_Row(
422 		     X_From_Rowid                          VARCHAR2,
423 		     X_To_Rowid                            VARCHAR2,
424 		     X_Status_Code			   VARCHAR2,
425                      X_Packet_Id                           NUMBER,
426                      X_Ledger_Id                           NUMBER,
427                      X_Je_Source_Name                      VARCHAR2,
428                      X_Je_Category_Name                    VARCHAR2,
429                      X_Budget_Version_Id                   NUMBER,
433                      X_To_Code_Combination_Id              NUMBER,
430 		     X_Je_Batch_Name			   VARCHAR2,
431                      X_Currency_Code                       VARCHAR2,
432                      X_From_Code_Combination_Id            NUMBER,
434                      X_Combination_Number		   NUMBER,
435                      X_Period_Name                         VARCHAR2,
436 		     X_Period_Year			   NUMBER,
437 		     X_Period_Num			   NUMBER,
438 		     X_Quarter_Num			   NUMBER,
439                      X_From_Entered_Dr                     NUMBER,
440                      X_From_Entered_Cr                     NUMBER,
441 		     X_To_Entered_Dr			   NUMBER,
442 		     X_To_Entered_Cr			   NUMBER,
443                      X_Last_Update_Date                    DATE,
444                      X_Last_Updated_By                     NUMBER) IS
445 BEGIN
446   UPDATE GL_BC_PACKETS
447   SET
448     status_code           = X_Status_Code,
449     packet_id		  = X_Packet_Id,
450     ledger_id             = X_Ledger_Id,
451     je_source_name        = X_Je_Source_Name,
452     je_category_name      = X_Je_Category_Name,
453     code_combination_id   = decode(rowid,
454                                    X_From_Rowid, X_From_Code_Combination_Id,
455 				   X_To_Rowid, X_To_Code_Combination_Id),
456     actual_flag           = 'B',
457     period_name           = X_Period_Name,
458     period_year		  = X_Period_Year,
459     period_num		  = X_Period_Num,
460     quarter_num		  = X_Quarter_Num,
461     currency_code         = X_Currency_Code,
462     last_update_date	  = X_Last_Update_Date,
463     last_updated_by	  = X_Last_Updated_By,
464     budget_version_id     = X_Budget_Version_Id,
465     entered_dr            = decode(rowid,
466 				   X_From_Rowid, X_From_Entered_Dr,
467 				   X_To_Rowid, X_To_Entered_Dr),
468     entered_cr            = decode(rowid,
469 				   X_From_Rowid, X_From_Entered_Cr,
470 				   X_To_Rowid, X_To_Entered_Cr),
471     accounted_dr          = decode(rowid,
472 				   X_From_Rowid, X_From_Entered_Dr,
473 				   X_To_Rowid, X_To_Entered_Dr),
474     accounted_cr          = decode(rowid,
475 				   X_From_Rowid, X_From_Entered_Cr,
476 				   X_To_Rowid, X_To_Entered_Cr),
477     je_batch_name         = X_Je_Batch_Name,
478     reference1            = X_Combination_Number
479   WHERE rowid IN (X_From_Rowid, X_To_RowId);
480 
481   if (SQL%NOTFOUND) then
482     RAISE NO_DATA_FOUND;
483   end if;
484 
485 END Update_Budget_Transfer_Row;
486 
487 PROCEDURE Lock_Budget_Transfer_Row(
488 		     X_From_Rowid                          VARCHAR2,
489 		     X_To_Rowid                            VARCHAR2,
490 		     X_Status_Code			   VARCHAR2,
491                      X_Packet_Id                           NUMBER,
492                      X_Ledger_Id                           NUMBER,
493                      X_Je_Source_Name                      VARCHAR2,
494                      X_Je_Category_Name                    VARCHAR2,
495                      X_Budget_Version_Id                   NUMBER,
496 		     X_Je_Batch_Name			   VARCHAR2,
497                      X_Currency_Code                       VARCHAR2,
498                      X_From_Code_Combination_Id            NUMBER,
499                      X_To_Code_Combination_Id              NUMBER,
500                      X_Combination_Number		   NUMBER,
501                      X_Period_Name                         VARCHAR2,
502 		     X_Period_Year			   NUMBER,
503 		     X_Period_Num			   NUMBER,
504 		     X_Quarter_Num			   NUMBER,
505                      X_From_Entered_Dr                     NUMBER,
506                      X_From_Entered_Cr                     NUMBER,
507 		     X_To_Entered_Dr			   NUMBER,
508 		     X_To_Entered_Cr			   NUMBER) IS
509 BEGIN
510 
511   -- Lock the from row
512   GL_BC_PACKETS_PKG.Lock_Budget_Transfer_Row(
513           X_Rowid                => X_From_RowId,
514 	  X_Status_Code		 => X_Status_Code,
515 	  X_Packet_Id		 => X_Packet_Id,
516           X_Ledger_Id            => X_Ledger_Id,
517           X_Je_Source_Name       => X_Je_Source_Name,
518           X_Je_Category_Name     => X_Je_Category_Name,
519           X_Code_Combination_Id  => X_From_Code_Combination_Id,
520           X_Period_Name          => X_Period_Name,
521 	  X_Period_Year		 => X_Period_Year,
522 	  X_Period_Num		 => X_Period_Num,
523 	  X_Quarter_Num		 => X_Quarter_Num,
524           X_Currency_Code        => X_Currency_Code,
525           X_Budget_Version_Id    => X_Budget_Version_Id,
526           X_Entered_Dr           => X_From_Entered_Dr,
527           X_Entered_Cr           => X_From_Entered_Cr,
528           X_Combination_Number   => X_Combination_Number,
529           X_Je_Batch_Name        => X_Je_Batch_Name
530   );
531 
532   -- Lock the to row
533   GL_BC_PACKETS_PKG.Lock_Budget_Transfer_Row(
534           X_Rowid                => X_To_RowId,
535 	  X_Status_Code		 => X_Status_Code,
536 	  X_Packet_Id		 => X_Packet_Id,
537           X_Ledger_Id            => X_Ledger_Id,
538           X_Je_Source_Name       => X_Je_Source_Name,
539           X_Je_Category_Name     => X_Je_Category_Name,
540           X_Code_Combination_Id  => X_To_Code_Combination_Id,
541           X_Period_Name          => X_Period_Name,
542 	  X_Period_Year		 => X_Period_Year,
543 	  X_Period_Num		 => X_Period_Num,
544 	  X_Quarter_Num		 => X_Quarter_Num,
545           X_Currency_Code        => X_Currency_Code,
546           X_Budget_Version_Id    => X_Budget_Version_Id,
550           X_Je_Batch_Name        => X_Je_Batch_Name
547           X_Entered_Dr           => X_To_Entered_Dr,
548           X_Entered_Cr           => X_To_Entered_Cr,
549           X_Combination_Number   => X_Combination_Number,
551   );
552 
553 END Lock_Budget_Transfer_Row;
554 
555 PROCEDURE Delete_Budget_Transfer_Row(X_From_Rowid VARCHAR2,
556                                      X_To_Rowid VARCHAR2) IS
557 BEGIN
558   DELETE FROM GL_BC_PACKETS
559   WHERE  rowid IN (X_From_Rowid, X_To_Rowid);
560 
561   if (SQL%NOTFOUND) then
562     RAISE NO_DATA_FOUND;
563   end if;
564 END Delete_Budget_Transfer_Row;
565 
566   PROCEDURE Delete_Packet(Packet_Id      NUMBER,
567 			  Reference1     NUMBER DEFAULT NULL) IS
568   BEGIN
569     DELETE gl_bc_packets
570     WHERE packet_id = Delete_Packet.packet_id
571     AND   status_code IN ('P', 'C')
572     AND   nvl(reference1,'XZYXZ')
573             = nvl(Delete_Packet.reference1, nvl(reference1, 'XZYXZ'));
574   EXCEPTION
575     WHEN NO_DATA_FOUND THEN
576       RETURN;
577   END Delete_Packet;
578 
579   FUNCTION copy_packet(packet_id NUMBER,
580                        mode_code VARCHAR2,
581                        user_id NUMBER,
582                        x_session_id NUMBER,
583                        x_serial_id NUMBER) RETURN NUMBER IS
584     new_packet_id NUMBER;
585     insert_mode	  VARCHAR2(1);
586   BEGIN
587     -- Get the packet id
588     new_packet_id := gl_bc_packets_pkg.get_unique_id;
589 
590     -- Set the funds check mode
591     IF (mode_code = 'R') THEN
592       insert_mode := 'P';
593     ELSE
594       insert_mode := 'C';
595     END IF;
596 
597     -- Insert the data into gl_je_packets
598     INSERT INTO gl_bc_packets
599       (packet_id, ledger_id, je_source_name,
600        je_category_name, code_combination_id, actual_flag,
601        period_name, period_year, period_num, quarter_num,
602        currency_code, status_code,
603        last_update_date, last_updated_by, budget_version_id,
604        entered_dr, entered_cr, accounted_dr, accounted_cr,
605        ussgl_transaction_code, je_batch_name,
606        application_id, session_id, serial_id)
607     SELECT new_packet_id, bc.ledger_id, bc.je_source_name,
608            bc.je_category_name, bc.code_combination_id, bc.actual_flag,
609            bc.period_name, bc.period_year, bc.period_num, bc.quarter_num,
610            bc.currency_code, insert_mode,
611            sysdate, user_id, bc.budget_version_id,
612            bc.entered_dr, bc.entered_cr, bc.accounted_dr, bc.accounted_cr,
613            bc.ussgl_transaction_code, bc.je_batch_name,
614            101, x_session_id, x_serial_id
615     FROM gl_bc_packets bc
616     WHERE bc.packet_id = copy_packet.packet_id;
617 
618     RETURN (new_packet_id);
619   EXCEPTION
620     WHEN app_exceptions.application_exception THEN
621       RAISE;
622     WHEN OTHERS THEN
623       fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
624       fnd_message.set_token('PROCEDURE', 'gl_bc_packets_pkg.copy_packet');
625       RAISE;
626   END copy_packet;
627 
628   FUNCTION view_bc_results_setup(packet_id NUMBER,
629                                  ledger_id NUMBER) RETURN NUMBER IS
630     seq_id  NUMBER;
631     errbuf  VARCHAR2(80);
632     retcode VARCHAR2(80);
633   BEGIN
634     DELETE FROM PSA_BC_REPORT_EVENTS_GT;
635     INSERT INTO PSA_BC_REPORT_EVENTS_GT(packet_id) VALUES (packet_id);
636 
637     SELECT PSA_BC_XML_REPORT_S.nextval
638     INTO seq_id
639     FROM dual;
640 
641     PSA_BC_XML_REPORT_PUB.Create_BC_Transaction_Report(
642       errbuf => errbuf,
643       retcode => retcode,
644       p_ledger_id => ledger_id,
645       p_application_id => 101,
646       p_packet_event_flag => 'P',
647       p_sequence_id => seq_id);
648 
649     RETURN(seq_id);
650   END view_bc_results_setup;
651 
652 END gl_bc_packets_pkg;