[Home] [Help]
PACKAGE BODY: APPS.AS_SALES_METHODOLOGY_PVT
Source
1 PACKAGE BODY AS_SALES_METHODOLOGY_PVT AS
2 /* $Header: asxvsmob.pls 120.0 2005/06/02 17:22:56 appldev noship $ */
3 --Procedure to Create a Sales Methodology
4
5 Procedure CREATE_SALES_METHODOLOGY
6 (
7 P_API_VERSION IN NUMBER,
8 P_INIT_MSG_LIST IN VARCHAR2 default fnd_api.g_false,
9 P_COMMIT IN VARCHAR2 default fnd_api.g_false,
10 P_VALIDATE_LEVEL IN VARCHAR2 default fnd_api.g_valid_level_full,
11 P_SALES_METHODOLOGY_NAME IN VARCHAR2,
12 P_START_DATE_ACTIVE IN DATE,
13 P_END_DATE_ACTIVE IN DATE DEFAULT NULL,
14 P_AUTOCREATETASK_FLAG IN VARCHAR2 DEFAULT NULL,
15 P_DESCRIPTION IN VARCHAR2 DEFAULT NULL,
16 P_ATTRIBUTE1 IN VARCHAR2 DEFAULT NULL,
17 P_ATTRIBUTE2 IN VARCHAR2 DEFAULT NULL,
18 P_ATTRIBUTE3 IN VARCHAR2 DEFAULT NULL,
19 P_ATTRIBUTE4 IN VARCHAR2 DEFAULT NULL,
20 P_ATTRIBUTE5 IN VARCHAR2 DEFAULT NULL,
21 P_ATTRIBUTE6 IN VARCHAR2 DEFAULT NULL,
22 P_ATTRIBUTE7 IN VARCHAR2 DEFAULT NULL,
23 P_ATTRIBUTE8 IN VARCHAR2 DEFAULT NULL,
24 P_ATTRIBUTE9 IN VARCHAR2 DEFAULT NULL,
25 P_ATTRIBUTE10 IN VARCHAR2 DEFAULT NULL,
26 P_ATTRIBUTE11 IN VARCHAR2 DEFAULT NULL,
27 P_ATTRIBUTE12 IN VARCHAR2 DEFAULT NULL,
28 P_ATTRIBUTE13 IN VARCHAR2 DEFAULT NULL,
29 P_ATTRIBUTE14 IN VARCHAR2 DEFAULT NULL,
30 P_ATTRIBUTE15 IN VARCHAR2 DEFAULT NULL,
31 P_ATTRIBUTE_CATEGORY IN VARCHAR2 DEFAULT NULL,
32 X_RETURN_STATUS OUT NOCOPY VARCHAR2,
33 X_MSG_COUNT OUT NOCOPY NUMBER,
34 X_MSG_DATA OUT NOCOPY VARCHAR2,
35 X_SALES_METHODOLOGY_ID OUT NOCOPY NUMBER)
36 IS
37 l_api_name VARCHAR2(30) := 'CREATE_SALES_METHODOLOGY';
38 v_rowid VARCHAR2(24);
39 v_sales_methodology_id as_sales_methodology_b.sales_methodology_id%TYPE;
40 BEGIN
41 x_return_status := fnd_api.g_ret_sts_success;
42 SAVEPOINT create_sales_methodology_pvt;
43 SELECT as_sales_methodology_s.nextval
44 INTO v_sales_methodology_id
45 FROM dual;
46 -- call table handler to insert into as_sales_methodology_b
47 as_sales_methodology_pkg.insert_row (
48 v_rowid,
49 v_sales_methodology_id,
50 p_sales_methodology_name,
51 p_start_date_active,
52 p_end_date_active,
53 p_autocreatetask_flag,
54 p_description,
55 p_attribute1,
56 p_attribute2,
57 p_attribute3,
58 p_attribute4,
59 p_attribute5,
60 p_attribute6,
61 p_attribute7,
62 p_attribute8,
63 p_attribute9,
64 p_attribute10,
65 p_attribute11,
66 p_attribute12,
67 p_attribute13,
68 p_attribute14,
69 p_attribute15,
70 p_attribute_category,
71 SYSDATE,
72 fnd_global.user_id,
73 SYSDATE,
74 fnd_global.user_id,
75 fnd_global.login_id
76 );
77
78 -- standard check of p_commit
79 IF (fnd_api.to_boolean (p_commit))
80 THEN
81 COMMIT WORK;
82 END IF;
83
84 x_sales_methodology_id := v_sales_methodology_id;
85 EXCEPTION
86 WHEN fnd_api.g_exc_error
87 THEN
88 ROLLBACK TO create_sales_methodology_pvt;
89 x_return_status := fnd_api.g_ret_sts_error;
90 fnd_msg_pub.count_and_get (
91 p_count => x_msg_count,
92 p_data => x_msg_data
93 );
94 WHEN fnd_api.g_exc_unexpected_error
95 THEN
96 ROLLBACK TO create_sales_methodology_pvt;
97 x_return_status := fnd_api.g_ret_sts_unexp_error;
98 fnd_msg_pub.count_and_get (
99 p_count => x_msg_count,
100 p_data => x_msg_data
101 );
102 WHEN OTHERS
103 THEN
104 ROLLBACK TO create_sales_methodology_pvt;
105 x_return_status := fnd_api.g_ret_sts_unexp_error;
106
107 IF fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_unexp_error)
108 THEN
109 fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
110 END IF;
111
112 fnd_msg_pub.count_and_get (
113 p_count => x_msg_count,
114 p_data => x_msg_data
115 );
116 END create_sales_methodology;
117
118
119 --Procedure to Upate Sales Methodology
120
121 Procedure UPDATE_SALES_METHODOLOGY
122 (
123 P_API_VERSION IN NUMBER,
124 P_INIT_MSG_LIST IN VARCHAR2 default fnd_api.g_false,
125 P_COMMIT IN VARCHAR2 default fnd_api.g_false,
126 P_VALIDATE_LEVEL IN VARCHAR2 default fnd_api.g_valid_level_full,
127 P_SALES_METHODOLOGY_ID IN NUMBER,
128 P_SALES_METHODOLOGY_NAME IN VARCHAR2,
129 P_START_DATE_ACTIVE IN DATE,
130 P_END_DATE_ACTIVE IN DATE DEFAULT NULL,
131 P_AUTOCREATETASK_FLAG IN VARCHAR2 DEFAULT NULL,
132 P_DESCRIPTION IN VARCHAR2 DEFAULT NULL,
133 P_ATTRIBUTE1 IN VARCHAR2 DEFAULT NULL,
134 P_ATTRIBUTE2 IN VARCHAR2 DEFAULT NULL,
135 P_ATTRIBUTE3 IN VARCHAR2 DEFAULT NULL,
136 P_ATTRIBUTE4 IN VARCHAR2 DEFAULT NULL,
137 P_ATTRIBUTE5 IN VARCHAR2 DEFAULT NULL,
138 P_ATTRIBUTE6 IN VARCHAR2 DEFAULT NULL,
139 P_ATTRIBUTE7 IN VARCHAR2 DEFAULT NULL,
140 P_ATTRIBUTE8 IN VARCHAR2 DEFAULT NULL,
141 P_ATTRIBUTE9 IN VARCHAR2 DEFAULT NULL,
142 P_ATTRIBUTE10 IN VARCHAR2 DEFAULT NULL,
143 P_ATTRIBUTE11 IN VARCHAR2 DEFAULT NULL,
144 P_ATTRIBUTE12 IN VARCHAR2 DEFAULT NULL,
145 P_ATTRIBUTE13 IN VARCHAR2 DEFAULT NULL,
146 P_ATTRIBUTE14 IN VARCHAR2 DEFAULT NULL,
147 P_ATTRIBUTE15 IN VARCHAR2 DEFAULT NULL,
148 P_ATTRIBUTE_CATEGORY IN VARCHAR2 DEFAULT NULL,
149 X_RETURN_STATUS OUT NOCOPY VARCHAR2,
150 X_MSG_COUNT OUT NOCOPY NUMBER,
151 X_MSG_DATA OUT NOCOPY VARCHAR2,
152 X_OBJECT_VERSION_NUMBER IN OUT NOCOPY NUMBER
153 )
154 IS
155 l_api_name VARCHAR2(30) := 'UPDATE_SALES_METHODOLOGY';
156 BEGIN
157 x_return_status := fnd_api.g_ret_sts_success;
158 SAVEPOINT update_sales_methodology_pvt;
159 -- call locking table handler
160 as_sales_methodology_pkg.lock_row (
161 p_sales_methodology_id,
162 x_object_version_number
163 );
164 -- call table handler to update into as_sales_methodology
165 as_sales_methodology_pkg.update_row (
166 p_sales_methodology_id,
167 x_object_version_number,
168 p_sales_methodology_name,
169 p_start_date_active,
170 p_end_date_active,
171 p_autocreatetask_flag,
172 p_description,
173 p_attribute1,
174 p_attribute2,
175 p_attribute3,
176 p_attribute4,
177 p_attribute5,
178 p_attribute6,
179 p_attribute7,
180 p_attribute8,
181 p_attribute9,
182 p_attribute10,
183 p_attribute11,
184 p_attribute12,
185 p_attribute13,
186 p_attribute14,
187 p_attribute15,
188 p_attribute_category,
189 SYSDATE,
190 fnd_global.user_id,
191 fnd_global.login_id
192 );
193 x_object_version_number := x_object_version_number + 1;
194
195 -- standard check of p_commit
196 IF (fnd_api.to_boolean (p_commit))
197 THEN
198 COMMIT WORK;
199 END IF;
200 EXCEPTION
201 WHEN fnd_api.g_exc_error
202 THEN
203 ROLLBACK TO update_sales_methodology_pvt;
204 x_return_status := fnd_api.g_ret_sts_error;
205 fnd_msg_pub.count_and_get (
206 p_count => x_msg_count,
207 p_data => x_msg_data
208 );
209 WHEN fnd_api.g_exc_unexpected_error
210 THEN
211 ROLLBACK TO update_sales_methodology_pvt;
212 x_return_status := fnd_api.g_ret_sts_unexp_error;
213 fnd_msg_pub.count_and_get (
214 p_count => x_msg_count,
215 p_data => x_msg_data
216 );
217 WHEN OTHERS
218 THEN
219 ROLLBACK TO update_sales_methodology_pvt;
220 x_return_status := fnd_api.g_ret_sts_unexp_error;
221
222 IF fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_unexp_error)
223 THEN
224 fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
225 END IF;
226
227 fnd_msg_pub.count_and_get (
228 p_count => x_msg_count,
229 p_data => x_msg_data
230 );
231 END update_sales_methodology;
232
233
234 --Procedure to Delete Sales Methodology
235
236 Procedure DELETE_SALES_METHODOLOGY
237 (
238 P_API_VERSION IN NUMBER,
239 P_INIT_MSG_LIST IN VARCHAR2 default fnd_api.g_false,
240 P_COMMIT IN VARCHAR2 default fnd_api.g_false,
241 P_VALIDATE_LEVEL IN VARCHAR2 default fnd_api.g_valid_level_full,
242 P_SALES_METHODOLOGY_ID IN NUMBER,
243 X_RETURN_STATUS OUT NOCOPY VARCHAR2,
244 X_MSG_COUNT OUT NOCOPY NUMBER,
245 X_MSG_DATA OUT NOCOPY VARCHAR2,
246 X_OBJECT_VERSION_NUMBER IN NUMBER
247 )
248 IS
249 l_api_name VARCHAR2(30) := 'DELETE_SALES_METHODOLOGY';
250 BEGIN
251 x_return_status := fnd_api.g_ret_sts_success;
252 SAVEPOINT delete_sales_methodology_pvt;
253
254 -- Delete the sales stage mapping for the sales methdology first
255 DELETE FROM AS_SALES_METH_STAGE_MAP
256 WHERE SALES_METHODOLOGY_ID = P_SALES_METHODOLOGY_ID;
257
258 -- call table handler to insert into jtf_tasks_temp_groups
259 as_sales_methodology_pkg.delete_row (p_sales_methodology_id);
260
261 -- standard check of p_commit
262 IF (fnd_api.to_boolean (p_commit))
263 THEN
264 COMMIT WORK;
265 END IF;
266 EXCEPTION
267 WHEN fnd_api.g_exc_error
268 THEN
269 ROLLBACK TO delete_sales_methodology_pvt;
270 x_return_status := fnd_api.g_ret_sts_error;
271 fnd_msg_pub.count_and_get (
272 p_count => x_msg_count,
273 p_data => x_msg_data
274 );
275 WHEN fnd_api.g_exc_unexpected_error
276 THEN
277 ROLLBACK TO delete_sales_methodology_pvt;
278 x_return_status := fnd_api.g_ret_sts_unexp_error;
279 fnd_msg_pub.count_and_get (
280 p_count => x_msg_count,
281 p_data => x_msg_data
282 );
283 WHEN OTHERS
284 THEN
285 ROLLBACK TO delete_sales_methodology_pvt;
286 x_return_status := fnd_api.g_ret_sts_unexp_error;
287
288 IF fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_unexp_error)
289 THEN
290 fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
291 END IF;
292
293 fnd_msg_pub.count_and_get (
294 p_count => x_msg_count,
295 p_data => x_msg_data
296 );
297 END delete_sales_methodology;
298
299 --Procedure to Add a Sales Stage - Template Group Map
300 Procedure ADD_SALES_METH_STAGE_MAP
301 (
302 P_API_VERSION IN NUMBER,
303 P_INIT_MSG_LIST IN VARCHAR2 default fnd_api.g_false,
304 P_COMMIT IN VARCHAR2 default fnd_api.g_false,
305 P_VALIDATE_LEVEL IN VARCHAR2 default fnd_api.g_valid_level_full,
306 P_SALES_METHODOLOGY_ID IN NUMBER,
307 P_SALES_STAGE_ID IN NUMBER,
308 P_TASK_TEMPLATE_GROUP_ID IN NUMBER default fnd_api.g_miss_num,
309 P_MAX_WIN_PROBABILITY IN NUMBER,
310 P_MIN_WIN_PROBABILITY IN NUMBER,
311 P_SALES_SUPPLEMENT_TEMPLATE IN NUMBER,
312 P_STAGE_SEQUENCE IN NUMBER,
313 X_RETURN_STATUS OUT NOCOPY VARCHAR2,
314 X_MSG_COUNT OUT NOCOPY NUMBER,
315 X_MSG_DATA OUT NOCOPY VARCHAR2
316 )
317 IS
318 CURSOR C IS SELECT ROWID FROM AS_SALES_METH_STAGE_MAP
319 WHERE SALES_METHODOLOGY_ID = P_SALES_METHODOLOGY_ID
320 AND SALES_STAGE_ID = P_SALES_STAGE_ID;
321
322 l_api_name VARCHAR2(30) := 'ADD_SALES_STAGE_MAP';
323 l_rowid VARCHAR2(30) := NULL;
324 BEGIN
325 x_return_status := fnd_api.g_ret_sts_success;
326 SAVEPOINT add_sales_stage_map_pvt;
327
328 -- Try updating the AS_SALES_METH_MAP table.
329 UPDATE as_sales_meth_stage_map SET
330 task_template_group_id = p_task_template_group_id,
331 max_win_probability = p_max_win_probability,
332 min_win_probability = p_min_win_probability,
333 template_id = p_sales_supplement_template,
334 stage_sequence = p_stage_sequence,
335 last_update_date = SYSDATE,
336 last_updated_by = fnd_global.user_id,
337 last_update_login = fnd_global.login_id
338 WHERE
339 sales_methodology_id = p_sales_methodology_id
340 AND
341 sales_stage_id = p_sales_stage_id;
342
343 -- if the row was not found for update, insert it.
344 IF (SQL%NOTFOUND) THEN
345 INSERT INTO as_sales_meth_stage_map (
346 sales_methodology_id,
347 sales_stage_id,
348 task_template_group_id,
349 max_win_probability,
350 min_win_probability,
351 template_id,
352 stage_sequence,
353 created_by,
354 creation_date,
355 last_updated_by,
356 last_update_date,
357 last_update_login
358 )
359 VALUES (
360 p_sales_methodology_id,
361 p_sales_stage_id,
362 p_task_template_group_id,
363 p_max_win_probability,
364 p_min_win_probability,
365 p_sales_supplement_template,
366 p_stage_sequence,
367 fnd_global.user_id,
368 SYSDATE,
369 fnd_global.user_id,
370 SYSDATE,
371 fnd_global.login_id
372 );
373
374 IF (SQL%NOTFOUND) THEN
375 RAISE no_data_found;
376 END IF;
377
378 END IF;
379
380 -- standard check of p_commit
381 IF (fnd_api.to_boolean (p_commit))
382 THEN
383 COMMIT WORK;
384 END IF;
385 EXCEPTION
386 WHEN fnd_api.g_exc_error
387 THEN
388 ROLLBACK TO add_sales_stage_map_pvt;
389 x_return_status := fnd_api.g_ret_sts_error;
390 fnd_msg_pub.count_and_get (
391 p_count => x_msg_count,
392 p_data => x_msg_data
393 );
394 WHEN fnd_api.g_exc_unexpected_error
395 THEN
396 ROLLBACK TO add_sales_stage_map_pvt;
397 x_return_status := fnd_api.g_ret_sts_unexp_error;
398 fnd_msg_pub.count_and_get (
399 p_count => x_msg_count,
400 p_data => x_msg_data
401 );
402 WHEN OTHERS
403 THEN
404 ROLLBACK TO add_sales_stage_map_pvt;
405 x_return_status := fnd_api.g_ret_sts_unexp_error;
406
407 IF fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_unexp_error)
408 THEN
409 fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
410 END IF;
411
412 fnd_msg_pub.count_and_get (
413 p_count => x_msg_count,
414 p_data => x_msg_data
415 );
416 END add_sales_meth_stage_map;
417
418 --Procedure to Delete a Sales Stage - Template Group Map
419 Procedure DELETE_SALES_METH_STAGE_MAP
420 (
421 P_API_VERSION IN NUMBER,
422 P_INIT_MSG_LIST IN VARCHAR2 default fnd_api.g_false,
423 P_COMMIT IN VARCHAR2 default fnd_api.g_false,
424 P_VALIDATE_LEVEL IN VARCHAR2 default fnd_api.g_valid_level_full,
425 P_SALES_METHODOLOGY_ID IN NUMBER,
426 P_SALES_STAGE_ID IN NUMBER,
427 X_RETURN_STATUS OUT NOCOPY VARCHAR2,
428 X_MSG_COUNT OUT NOCOPY NUMBER,
429 X_MSG_DATA OUT NOCOPY VARCHAR2
430 )
431 IS
432 l_api_name VARCHAR2(30) := 'DELETE_SALES_METH_STAGE_MAP';
433 BEGIN
434 x_return_status := fnd_api.g_ret_sts_success;
435 SAVEPOINT delete_sm_stage_map_pvt;
436
437 -- Try updating the AS_SALES_METH_MAP table.
438 DELETE FROM as_sales_meth_stage_map
439 WHERE
440 sales_methodology_id = p_sales_methodology_id
441 AND
442 sales_stage_id = p_sales_stage_id;
443
444 -- if the row was not found for delete, raise an exception.
445 IF (SQL%NOTFOUND) THEN
446 RAISE no_data_found;
447 END IF;
448
449 -- standard check of p_commit
450 IF (fnd_api.to_boolean (p_commit))
451 THEN
452 COMMIT WORK;
453 END IF;
454 EXCEPTION
455 WHEN fnd_api.g_exc_error
456 THEN
457 ROLLBACK TO delete_sm_stage_map_pvt;
458 x_return_status := fnd_api.g_ret_sts_error;
459 fnd_msg_pub.count_and_get (
460 p_count => x_msg_count,
461 p_data => x_msg_data
462 );
463 WHEN fnd_api.g_exc_unexpected_error
464 THEN
465 ROLLBACK TO delete_sm_stage_map_pvt;
466 x_return_status := fnd_api.g_ret_sts_unexp_error;
467 fnd_msg_pub.count_and_get (
468 p_count => x_msg_count,
469 p_data => x_msg_data
470 );
471 WHEN OTHERS
472 THEN
473 ROLLBACK TO delete_sm_stage_map_pvt;
474 x_return_status := fnd_api.g_ret_sts_unexp_error;
475
476 IF fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_unexp_error)
477 THEN
478 fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
479 END IF;
480
481 fnd_msg_pub.count_and_get (
482 p_count => x_msg_count,
483 p_data => x_msg_data
484 );
485 END delete_sales_meth_stage_map;
486
487 END AS_SALES_METHODOLOGY_PVT;