DBA Data[Home] [Help]

PACKAGE BODY: APPS.GMD_ACTIVITIES_PVT

Source


1 PACKAGE BODY GMD_ACTIVITIES_PVT AS
2 /*  $Header: GMDVACTB.pls 115.4 2004/02/25 18:12:35 nsrivast noship $
3  *****************************************************************
4  *                                                               *
5  * Package  GMD_ACTIVITY_PVT                                     *
6  *                                                               *
7  * Contents: INSERT_ACTIVITY 	                                 *
8  *	   UPDATE_ACTIVITY	                                 *
9  *                                                               *
10  * Use      This is the private layer of the GMD Activity API    *
11  *                                                               *
12  *                                                               *
13  * History                                                       *
14  *         Written by Sandra Dulyk, OPM Development              *
15  *                                                               *
16  * 20-FEB-2004  NSRIVAST  Bug# 3222090,Removed call to           *
17  *                        FND_PROFILE.VALUE('AFLOG_ENABLED')     *
18  *****************************************************************
19 */
20 
21 
22 --Bug 3222090, NSRIVAST 20-FEB-2004, BEGIN
23 --Forward declaration.
24    FUNCTION set_debug_flag RETURN VARCHAR2;
25    l_debug VARCHAR2(1) := set_debug_flag;
26 
27    FUNCTION set_debug_flag RETURN VARCHAR2 IS
28    l_debug VARCHAR2(1):= 'N';
29    BEGIN
30     IF( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
31       l_debug := 'Y';
32     END IF;
33     RETURN l_debug;
34    END set_debug_flag;
35 --Bug 3222090, NSRIVAST 20-FEB-2004, END
36 
37 /*===========================================================================================
38    Procedure
39       insert_activity
40    Description
41      This particular procedure is used to insert an activity
42    Parameters
43     ================================================ */
44   PROCEDURE insert_activity (
45       p_api_version 			IN 	NUMBER
46       , p_init_msg_list 		IN 	BOOLEAN
47       , p_commit			IN 	BOOLEAN
48       , p_activity_tbl			IN 	gmd_activities_pub.gmd_activities_tbl_type
49       , x_message_count	 	OUT NOCOPY  	NUMBER
50       , x_message_list 		OUT NOCOPY  	VARCHAR2
51       , x_return_status		OUT NOCOPY  	VARCHAR2 )   IS
52 
53     CURSOR Cur_check_activity (v_activity VARCHAR2)  IS
54       SELECT 1
55       FROM   gmd_activities_b
56       WHERE  activity = v_activity;
57 
58       l_exist		 NUMBER(5);
59       l_rowid 		 VARCHAR2(40);
60       setup_failure 	 EXCEPTION;
61       duplicate_activity EXCEPTION;
62   BEGIN
63     IF (l_debug = 'Y') THEN
64       gmd_debug.put_line(' In insert_activity private');
65     END IF;
66 
67     /* Initially let us assign the return status to success */
68     x_return_status := FND_API.g_ret_sts_success;
69 
70     IF NOT gmd_api_grp.setup_done THEN
71       gmd_api_grp.setup_done := gmd_api_grp.setup;
72     END IF;
73     IF NOT gmd_api_grp.setup_done THEN
74       RAISE setup_failure;
75     END IF;
76 
77     FOR i IN 1 .. p_activity_tbl.count LOOP
78       IF (l_debug = 'Y') THEN
79         gmd_debug.put_line('Begin Loop - in insert_activity loop (private).  Curr Activity is ' || p_activity_tbl(i).activity);
80       END IF;
81 
82       /* Check for duplicate activity */
83       OPEN Cur_check_activity(p_activity_tbl(i).activity);
84       FETCH Cur_check_activity INTO l_exist;
85       IF (Cur_check_activity%FOUND) THEN
86         IF (l_debug = 'Y') THEN
87           gmd_debug.put_line('duplicate activity');
88         END IF;
89         gmd_api_grp.log_message ('GMD_DUPLICATE_ACTIVITY', 'ACTIVITY',p_activity_tbl(i).activity);
90         CLOSE Cur_check_activity;
91         RAISE duplicate_activity;
92       END IF;
93       CLOSE Cur_check_activity;
94 
95          GMD_ACTIVITIES_PKG.INSERT_ROW(
96            X_ROWID  => l_rowid,
97     	   X_ACTIVITY => p_activity_tbl(i).ACTIVITY,
98     	   X_COST_ANALYSIS_CODE => p_activity_tbl(i).COST_ANALYSIS_CODE,
99     	   X_DELETE_MARK => 0,
100     	   X_TEXT_CODE => p_activity_tbl(i).TEXT_CODE,
101     	   X_TRANS_CNT => p_activity_tbl(i).TRANS_CNT,
102     	   X_ACTIVITY_DESC => p_activity_tbl(i).ACTIVITY_DESC,
103     	   X_CREATION_DATE => sysdate,
104     	   X_CREATED_BY => gmd_api_grp.user_id,
105     	   X_LAST_UPDATE_DATE => sysdate,
106     	   X_LAST_UPDATED_BY => gmd_api_grp.user_id,
107     	   X_LAST_UPDATE_LOGIN => gmd_api_grp.user_id);
108                IF (l_debug = 'Y') THEN
109                     gmd_debug.put_line('End Loop -  insert_activity private');
110                END IF;
111          END LOOP;
112 
113       IF (l_debug = 'Y') THEN
114          gmd_debug.put_line('END of Insert_activity private');
115       END IF;
116 
117       EXCEPTION
118         WHEN setup_failure OR duplicate_activity THEN
119             x_return_status := FND_API.G_RET_STS_ERROR;
120             FND_MSG_PUB.COUNT_AND_GET (P_count => x_message_count,
121             			       P_data  => x_message_list);
122         WHEN OTHERS THEN
123             x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
124             FND_MESSAGE.SET_NAME('GMD', 'GMD_UNEXPECTED_ERROR');
125             FND_MESSAGE.SET_TOKEN('ERROR', sqlerrm);
126             FND_MSG_PUB.ADD;
127             FND_MSG_PUB.COUNT_AND_GET (P_count => x_message_count,
128             			                         P_data  => x_message_list);
129      END Insert_Activity;
130 
131 
132    /*===========================================================================================
133    Procedure
134       update_activity
135    Description
136      This particular procedure is used to update an activity
137    Parameters
138 
139    ================================================ */
140     PROCEDURE update_activity (
141       p_api_version 		IN 	NUMBER
142      ,p_init_msg_list 		IN 	BOOLEAN
143      ,p_commit			IN 	BOOLEAN
144      ,p_activity		IN 	gmd_activities.activity%TYPE
145      ,p_update_table		IN	gmd_activities_pub.update_tbl_type
146      ,x_message_count 		OUT NOCOPY  	NUMBER
147      ,x_message_list 		OUT NOCOPY  	VARCHAR2
148      ,x_return_status		OUT NOCOPY  	VARCHAR2 )  IS
149 
150      CURSOR retrieve_activity_table_values(v_activity  VARCHAR2) IS
151         SELECT *
152         FROM gmd_activities
153         WHERE activity = v_activity;
154 
155       v_update_rec  		gmd_activities%ROWTYPE;
156 
157      setup_failure  		EXCEPTION;
158      inv_activity_err		EXCEPTION;
159 
160 
161   BEGIN
162     IF (l_debug = 'Y') THEN
163       gmd_debug.put_line(' In update_activity private');
164     END IF;
165 
166     /* Initially let us assign the return status to success */
167     x_return_status := FND_API.g_ret_sts_success;
168 
169     IF NOT gmd_api_grp.setup_done THEN
170       gmd_api_grp.setup_done := gmd_api_grp.setup;
171     END IF;
172     IF NOT gmd_api_grp.setup_done THEN
173       RAISE setup_failure;
174     END IF;
175 
176     OPEN retrieve_activity_table_values(p_activity);
177     FETCH retrieve_activity_table_values INTO v_update_rec;
178     IF retrieve_activity_table_values%NOTFOUND THEN
179       gmd_api_grp.log_message ('FM_INVACTIVITY');
180       CLOSE retrieve_activity_table_values;
181       RAISE inv_activity_err;
182     END IF;
183     CLOSE retrieve_activity_table_values;
184 
185     FOR i IN 1 .. p_update_table.count LOOP
186       IF (l_debug = 'Y') THEN
187         gmd_debug.put_line('Begin Loop - in update_activity loop (private).  Col to update is ' || p_update_table(i).p_col_to_update);
188       END IF;
189       IF UPPER(p_update_table(i).p_col_to_update) = 'COST_ANALYSIS_CODE' THEN
190         v_update_rec.cost_analysis_code := p_update_table(i).p_value;
191       ELSIF UPPER(p_update_table(i).p_col_to_update) = 'DELETE_MARK' THEN
192         v_update_rec.delete_mark := p_update_table(i).p_value;
193       ELSIF UPPER(p_update_table(i).p_col_to_update) = 'TEXT_CODE' THEN
194         v_update_rec.text_code := p_update_table(i).p_value;
195       ELSIF UPPER(p_update_table(i).p_col_to_update) = 'TRANS_CNT' THEN
196         v_update_rec.trans_cnt := p_update_table(i).p_value;
197       ELSIF UPPER(p_update_table(i).p_col_to_update) = 'ACTIVITY_DESC' THEN
198         v_update_rec.activity_desc := p_update_table(i).p_value;
199       END IF;
200     END LOOP;
201 
202     GMD_ACTIVITIES_PKG.UPDATE_ROW(
203                    X_ACTIVITY 		=> p_activity
204                   ,X_COST_ANALYSIS_CODE => v_update_rec.cost_analysis_code
205                   ,X_DELETE_MARK 	=> v_update_rec.delete_mark
206                   ,X_TEXT_CODE 		=> v_update_rec.text_code
207                   ,X_TRANS_CNT 		=> v_update_rec.trans_cnt
208                   ,X_ACTIVITY_DESC 	=> v_update_rec.activity_desc
209                   ,X_LAST_UPDATE_DATE 	=> sysdate
210              	  ,X_LAST_UPDATED_BY 	=> gmd_api_grp.user_id
211              	  ,X_LAST_UPDATE_LOGIN	=> gmd_api_grp.login_id);
212 
213     IF (l_debug = 'Y') THEN
214       gmd_debug.put_line('END of update_activity private');
215     END IF;
216 
217   EXCEPTION
218     WHEN setup_failure OR inv_activity_err THEN
219       x_return_status := FND_API.G_RET_STS_ERROR;
220       FND_MSG_PUB.COUNT_AND_GET (P_count => x_message_count,
221 	                         P_data  => x_message_list);
222     WHEN OTHERS THEN
223       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
224       FND_MESSAGE.SET_NAME('GMD', 'GMD_UNEXPECTED_ERROR');
225       FND_MESSAGE.SET_TOKEN('ERROR', sqlerrm);
226       FND_MSG_PUB.ADD;
227       FND_MSG_PUB.COUNT_AND_GET (P_count => x_message_count,
228 	                         P_data  => x_message_list);
229   END update_activity;
230 END GMD_ACTIVITIES_PVT;