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