DBA Data[Home] [Help]

PACKAGE BODY: APPS.AP_WEB_DB_EXP_ATTENDEES_PKG

Source


1 PACKAGE BODY AP_WEB_DB_EXP_ATTENDEES_PKG AS
2 /* $Header: apwdbeab.pls 120.2 2006/09/22 08:38:12 mvadera noship $ */
3 
4 -----------------------------------------------------------------------------
5 PROCEDURE DeleteAttendees(P_ReportID             IN NUMBER) IS
6 --------------------------------------------------------------------------------
7   l_temp    OIE_ATTENDEES.EMPLOYEE_FLAG%type;
8   l_curr_calling_sequence VARCHAR2(100) := 'DeleteAttendees';
9 
10   -- Selects report lines to delete.  The actual value being selected does not
11   -- matter.  For some reason the compiler complains when the OF column-name
12   -- in the FOR UPDATE is missing and NOWAIT is used, so the OF
13   -- EMPLOYEE_FLAG is used as a place holder.
14   CURSOR ExpAttendees IS
15     SELECT EMPLOYEE_FLAG
16       FROM OIE_ATTENDEES oat, AP_EXPENSE_REPORT_LINES el
17       WHERE (el.REPORT_HEADER_ID = P_ReportID AND
18              el.REPORT_LINE_ID = oat.REPORT_LINE_ID)
19       FOR UPDATE OF EMPLOYEE_FLAG NOWAIT;
20 
21 BEGIN
22   -- Delete the report distributions from table.  An exception will occur if the row
23   -- locks cannot be attained because of the NOWAIT argument for select.
24   -- We are guaranteed a lock on the records because of the FOR UPDATE
25   OPEN ExpAttendees;
26 
27   LOOP
28     FETCH ExpAttendees into l_temp;
29     EXIT WHEN ExpAttendees%NOTFOUND;
30 
31     -- Delete matching line
32     DELETE OIE_ATTENDEES WHERE CURRENT OF ExpAttendees;
33   END LOOP;
34 
35   CLOSE ExpAttendees;
36 
37 
38 EXCEPTION
39   WHEN NO_DATA_FOUND THEN
40     NULL;
41   WHEN OTHERS THEN
42     AP_WEB_DB_UTIL_PKG.RaiseException('DeleteAttendees');
43     APP_EXCEPTION.RAISE_EXCEPTION;
44 END DeleteAttendees;
45 
46 PROCEDURE DuplicateAttendeeInfo(p_user_id IN NUMBER,
47                                 p_source_report_line_id IN AP_WEB_DB_EXPLINE_PKG.expLines_report_line_id,
48 				p_target_report_line_id IN AP_WEB_DB_EXPLINE_PKG.expLines_report_line_id) IS
49 
50   l_new_attendee_id NUMBER(15);
51   l_attendee_id NUMBER(15);
52 
53   CURSOR Attendees IS
54      SELECT ATTENDEE_LINE_ID
55      FROM OIE_ATTENDEES
56      WHERE REPORT_LINE_ID = p_source_report_line_id;
57 
58 
59 BEGIN
60 
61  -- Find all attendees
62   OPEN Attendees;
63 
64   LOOP
65 
66     FETCH Attendees into l_attendee_id;
67 
68     EXIT WHEN Attendees%NOTFOUND;
69 
70    -- Get new ID from sequence
71     SELECT OIE_ATTENDEES_S.NEXTVAL
72     INTO l_new_attendee_id
73     FROM DUAL;
74 
75    -- For each line, duplicate its columns
76    INSERT INTO OIE_ATTENDEES
77     (
78       ATTENDEE_LINE_ID,
79       REPORT_LINE_ID,
80       EMPLOYEE_FLAG,
81       EMPLOYEE_ID,
82       ATTENDEE_TYPE,
83       NAME,
84       TITLE,
85       EMPLOYER,
86       EMPLOYER_ADDRESS,
87       TAX_ID,
88       ORG_ID,
89       LAST_UPDATE_DATE,
90       LAST_UPDATED_BY,
91       CREATION_DATE,
92       CREATED_BY
93      )
94     SELECT l_new_attendee_id AS ATTENDEE_LINE_ID,
95            p_target_report_line_id AS REPORT_LINE_ID,
96            EMPLOYEE_FLAG,
97 	   EMPLOYEE_ID,
98            ATTENDEE_TYPE,
99            NAME,
100            TITLE,
101            EMPLOYER,
102            EMPLOYER_ADDRESS,
103            TAX_ID,
104            ORG_ID,
105            sysdate AS CREATION_DATE,
106            p_user_id AS CREATED_BY,
107            sysdate AS LAST_UPDATE_DATE,
108            p_user_id AS LAST_UPDATED_BY
109     FROM  OIE_ATTENDEES
110     WHERE ATTENDEE_LINE_ID = l_attendee_id;
111 
112   END LOOP;
113 
114  CLOSE Attendees;
115 
116 END DuplicateAttendeeInfo;
117 
118 
119 END AP_WEB_DB_EXP_ATTENDEES_PKG;