1: PACKAGE BODY IGW_PROP_NARRATIVES_PVT as
2: /* $Header: igwvprnb.pls 115.6 2002/11/15 00:38:17 ashkumar ship $*/
3: PROCEDURE create_prop_narrative (
4: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
5: p_commit IN VARCHAR2 := FND_API.G_FALSE,
6: p_validate_only IN VARCHAR2 := FND_API.G_FALSE,
7: X_ROWID out NOCOPY VARCHAR2,
8: P_PROPOSAL_ID in NUMBER,
1: PACKAGE BODY IGW_PROP_NARRATIVES_PVT as
2: /* $Header: igwvprnb.pls 115.6 2002/11/15 00:38:17 ashkumar ship $*/
3: PROCEDURE create_prop_narrative (
4: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
5: p_commit IN VARCHAR2 := FND_API.G_FALSE,
6: p_validate_only IN VARCHAR2 := FND_API.G_FALSE,
7: X_ROWID out NOCOPY VARCHAR2,
8: P_PROPOSAL_ID in NUMBER,
9: P_MODULE_TITLE in VARCHAR2,
2: /* $Header: igwvprnb.pls 115.6 2002/11/15 00:38:17 ashkumar ship $*/
3: PROCEDURE create_prop_narrative (
4: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
5: p_commit IN VARCHAR2 := FND_API.G_FALSE,
6: p_validate_only IN VARCHAR2 := FND_API.G_FALSE,
7: X_ROWID out NOCOPY VARCHAR2,
8: P_PROPOSAL_ID in NUMBER,
9: P_MODULE_TITLE in VARCHAR2,
10: P_MODULE_STATUS in VARCHAR2,
30:
31:
32: BEGIN
33: -- create savepoint if p_commit is true
34: IF p_commit = FND_API.G_TRUE THEN
35: SAVEPOINT create_prop_narrative;
36: END IF;
37:
38: -- initialize message list if p_init_msg_list is set to true
35: SAVEPOINT create_prop_narrative;
36: END IF;
37:
38: -- initialize message list if p_init_msg_list is set to true
39: if FND_API.to_boolean(nvl(p_init_msg_list, FND_API.G_FALSE)) then
40: fnd_msg_pub.initialize;
41: end if;
42:
43: -- initialize return status to success
40: fnd_msg_pub.initialize;
41: end if;
42:
43: -- initialize return status to success
44: x_return_status := fnd_api.g_ret_sts_success;
45:
46: -- first validate user rights
47:
48: VALIDATE_LOGGED_USER_RIGHTS
55:
56: -------------------------------------------- validations -----------------------------------------------------
57:
58: -- call table handler
59: if (NOT FND_API.TO_BOOLEAN (p_validate_only)) then
60:
61: igw_prop_narratives_tbh.insert_row(
62: x_rowid => x_rowid
63: ,P_PROPOSAL_ID => P_PROPOSAL_ID
76:
77: check_errors;
78:
79: -- standard check of p_commit
80: if fnd_api.to_boolean(p_commit) then
81: commit work;
82: end if;
83:
84:
87: p_data => x_msg_data);
88:
89:
90: EXCEPTION
91: WHEN FND_API.G_EXC_ERROR THEN
92: IF p_commit = FND_API.G_TRUE THEN
93: ROLLBACK TO create_prop_narrative;
94: END IF;
95:
88:
89:
90: EXCEPTION
91: WHEN FND_API.G_EXC_ERROR THEN
92: IF p_commit = FND_API.G_TRUE THEN
93: ROLLBACK TO create_prop_narrative;
94: END IF;
95:
96: x_return_status := FND_API.G_RET_STS_ERROR;
92: IF p_commit = FND_API.G_TRUE THEN
93: ROLLBACK TO create_prop_narrative;
94: END IF;
95:
96: x_return_status := FND_API.G_RET_STS_ERROR;
97:
98: fnd_msg_pub.count_and_get(p_count => x_msg_count,
99: p_data => x_msg_data);
100:
98: fnd_msg_pub.count_and_get(p_count => x_msg_count,
99: p_data => x_msg_data);
100:
101: WHEN OTHERS THEN
102: IF p_commit = FND_API.G_TRUE THEN
103: ROLLBACK TO create_prop_narrative;
104: END IF;
105:
106: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
102: IF p_commit = FND_API.G_TRUE THEN
103: ROLLBACK TO create_prop_narrative;
104: END IF;
105:
106: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
107:
108: fnd_msg_pub.add_exc_msg(p_pkg_name => 'IGW_PROP_NARRATIVES_PVT',
109: p_procedure_name => 'CREATE_PROP_NARRATIVE',
110: p_error_text => SUBSTRB(SQLERRM,1,240));
117:
118: --------------------------------------------------------------------------------------------------------------
119:
120: Procedure update_prop_narrative (
121: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
122: p_commit IN VARCHAR2 := FND_API.G_FALSE,
123: p_validate_only IN VARCHAR2 := FND_API.G_FALSE,
124: x_rowid IN VARCHAR2,
125: P_PROPOSAL_ID in NUMBER,
118: --------------------------------------------------------------------------------------------------------------
119:
120: Procedure update_prop_narrative (
121: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
122: p_commit IN VARCHAR2 := FND_API.G_FALSE,
123: p_validate_only IN VARCHAR2 := FND_API.G_FALSE,
124: x_rowid IN VARCHAR2,
125: P_PROPOSAL_ID in NUMBER,
126: P_MODULE_ID in NUMBER,
119:
120: Procedure update_prop_narrative (
121: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
122: p_commit IN VARCHAR2 := FND_API.G_FALSE,
123: p_validate_only IN VARCHAR2 := FND_API.G_FALSE,
124: x_rowid IN VARCHAR2,
125: P_PROPOSAL_ID in NUMBER,
126: P_MODULE_ID in NUMBER,
127: P_MODULE_TITLE in VARCHAR2,
145: l_msg_index_out NUMBER;
146:
147: BEGIN
148: -- create savepoint if p_commit is true
149: IF p_commit = FND_API.G_TRUE THEN
150: SAVEPOINT update_prop_narrative;
151: END IF;
152:
153: -- initialize message list if p_init_msg_list is true
150: SAVEPOINT update_prop_narrative;
151: END IF;
152:
153: -- initialize message list if p_init_msg_list is true
154: if FND_API.to_boolean(nvl(p_init_msg_list, FND_API.G_FALSE)) then
155: fnd_msg_pub.initialize;
156: end if;
157:
158: -- initialize return_status to success
155: fnd_msg_pub.initialize;
156: end if;
157:
158: -- initialize return_status to success
159: x_return_status := fnd_api.g_ret_sts_success;
160:
161:
162: -- first validate user rights
163:
178: ------------------------------------- value_id conversion ---------------------------------
179:
180: -------------------------------------------- validations -----------------------------------------------------
181:
182: if (NOT FND_API.TO_BOOLEAN (p_validate_only)) then
183: igw_prop_narratives_tbh.update_row (
184: x_rowid => x_rowid
185: ,P_PROPOSAL_ID => P_PROPOSAL_ID
186: ,P_MODULE_ID => P_MODULE_ID
200:
201: check_errors;
202:
203: -- standard check of p_commit
204: if fnd_api.to_boolean(p_commit) then
205: commit work;
206: end if;
207:
208:
211: p_data => x_msg_data);
212:
213:
214: EXCEPTION
215: WHEN FND_API.G_EXC_ERROR THEN
216: IF p_commit = FND_API.G_TRUE THEN
217: ROLLBACK TO update_prop_narrative;
218: END IF;
219:
212:
213:
214: EXCEPTION
215: WHEN FND_API.G_EXC_ERROR THEN
216: IF p_commit = FND_API.G_TRUE THEN
217: ROLLBACK TO update_prop_narrative;
218: END IF;
219:
220: x_return_status := FND_API.G_RET_STS_ERROR;
216: IF p_commit = FND_API.G_TRUE THEN
217: ROLLBACK TO update_prop_narrative;
218: END IF;
219:
220: x_return_status := FND_API.G_RET_STS_ERROR;
221:
222: fnd_msg_pub.count_and_get(p_count => x_msg_count,
223: p_data => x_msg_data);
224:
223: p_data => x_msg_data);
224:
225:
226: WHEN OTHERS THEN
227: IF p_commit = FND_API.G_TRUE THEN
228: ROLLBACK TO update_prop_narrative;
229: END IF;
230:
231: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
227: IF p_commit = FND_API.G_TRUE THEN
228: ROLLBACK TO update_prop_narrative;
229: END IF;
230:
231: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
232:
233: fnd_msg_pub.add_exc_msg(p_pkg_name => 'IGW_PROP_NARRATIVES_PVT',
234: p_procedure_name => 'UPDATE_PROP_NARRATIVE',
235: p_error_text => SUBSTRB(SQLERRM,1,240));
241: END update_prop_narrative;
242: --------------------------------------------------------------------------------------------------------
243:
244: Procedure delete_prop_narrative (
245: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
246: ,p_commit IN VARCHAR2 := FND_API.G_FALSE
247: ,p_validate_only IN VARCHAR2 := FND_API.G_FALSE
248: ,x_rowid IN VARCHAR2
249: ,p_proposal_id IN NUMBER
242: --------------------------------------------------------------------------------------------------------
243:
244: Procedure delete_prop_narrative (
245: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
246: ,p_commit IN VARCHAR2 := FND_API.G_FALSE
247: ,p_validate_only IN VARCHAR2 := FND_API.G_FALSE
248: ,x_rowid IN VARCHAR2
249: ,p_proposal_id IN NUMBER
250: ,p_record_version_number IN NUMBER
243:
244: Procedure delete_prop_narrative (
245: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
246: ,p_commit IN VARCHAR2 := FND_API.G_FALSE
247: ,p_validate_only IN VARCHAR2 := FND_API.G_FALSE
248: ,x_rowid IN VARCHAR2
249: ,p_proposal_id IN NUMBER
250: ,p_record_version_number IN NUMBER
251: ,x_return_status OUT NOCOPY VARCHAR2
263: l_module_id NUMBER;
264:
265: BEGIN
266: -- create savepoint
267: IF p_commit = FND_API.G_TRUE THEN
268: SAVEPOINT delete_prop_narrative;
269: END IF;
270:
271: -- initialize message list if p_init_msg_list is set to true
268: SAVEPOINT delete_prop_narrative;
269: END IF;
270:
271: -- initialize message list if p_init_msg_list is set to true
272: if FND_API.to_boolean(nvl(p_init_msg_list, FND_API.G_FALSE)) then
273: fnd_msg_pub.initialize;
274: end if;
275:
276: -- initialize return_status to sucess
273: fnd_msg_pub.initialize;
274: end if;
275:
276: -- initialize return_status to sucess
277: x_return_status := fnd_api.g_ret_sts_success;
278:
279: -- first validate user rights
280:
281: VALIDATE_LOGGED_USER_RIGHTS
294:
295: -------------------------------------------- validations -----------------------------------------------------
296:
297:
298: if (NOT FND_API.TO_BOOLEAN (p_validate_only)) then
299:
300: select module_id into l_module_id from igw_prop_narratives where rowid = x_rowid;
301:
302: igw_prop_narratives_tbh.delete_row(
315:
316: check_errors;
317:
318: -- standard check of p_commit
319: if fnd_api.to_boolean(p_commit) then
320: commit work;
321: end if;
322:
323:
325: fnd_msg_pub.count_and_get(p_count => x_msg_count,
326: p_data => x_msg_data);
327:
328: EXCEPTION
329: WHEN FND_API.G_EXC_ERROR THEN
330: IF p_commit = FND_API.G_TRUE THEN
331: ROLLBACK TO delete_prop_narrative;
332: END IF;
333:
326: p_data => x_msg_data);
327:
328: EXCEPTION
329: WHEN FND_API.G_EXC_ERROR THEN
330: IF p_commit = FND_API.G_TRUE THEN
331: ROLLBACK TO delete_prop_narrative;
332: END IF;
333:
334: x_return_status := FND_API.G_RET_STS_ERROR;
330: IF p_commit = FND_API.G_TRUE THEN
331: ROLLBACK TO delete_prop_narrative;
332: END IF;
333:
334: x_return_status := FND_API.G_RET_STS_ERROR;
335:
336: fnd_msg_pub.count_and_get(p_count => x_msg_count,
337: p_data => x_msg_data);
338:
337: p_data => x_msg_data);
338:
339:
340: WHEN OTHERS THEN
341: IF p_commit = FND_API.G_TRUE THEN
342: ROLLBACK TO delete_prop_narrative;
343: END IF;
344:
345: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
341: IF p_commit = FND_API.G_TRUE THEN
342: ROLLBACK TO delete_prop_narrative;
343: END IF;
344:
345: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
346:
347: fnd_msg_pub.add_exc_msg(p_pkg_name => 'IGW_PROP_NARRATIVES_PVT',
348: p_procedure_name => 'DELETE_PROP_NARRATIVE',
349: p_error_text => SUBSTRB(SQLERRM,1,240));
354: END delete_prop_narrative;
355:
356: ------------------------------------------------------------------------------------------
357: Procedure update_narrative_type_code (
358: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
359: p_commit IN VARCHAR2 := FND_API.G_FALSE,
360: p_validate_only IN VARCHAR2 := FND_API.G_FALSE,
361: P_PROPOSAL_ID in NUMBER,
362: P_NARRATIVE_TYPE_CODE in VARCHAR2,
355:
356: ------------------------------------------------------------------------------------------
357: Procedure update_narrative_type_code (
358: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
359: p_commit IN VARCHAR2 := FND_API.G_FALSE,
360: p_validate_only IN VARCHAR2 := FND_API.G_FALSE,
361: P_PROPOSAL_ID in NUMBER,
362: P_NARRATIVE_TYPE_CODE in VARCHAR2,
363: P_NARRATIVE_SUBMISSION_CODE in VARCHAR2,
356: ------------------------------------------------------------------------------------------
357: Procedure update_narrative_type_code (
358: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
359: p_commit IN VARCHAR2 := FND_API.G_FALSE,
360: p_validate_only IN VARCHAR2 := FND_API.G_FALSE,
361: P_PROPOSAL_ID in NUMBER,
362: P_NARRATIVE_TYPE_CODE in VARCHAR2,
363: P_NARRATIVE_SUBMISSION_CODE in VARCHAR2,
364: x_return_status OUT NOCOPY VARCHAR2,
373: l_msg_index_out NUMBER;
374:
375: BEGIN
376: -- create savepoint if p_commit is true
377: IF p_commit = FND_API.G_TRUE THEN
378: SAVEPOINT update_narrative_type_code;
379: END IF;
380:
381: -- initialize message list if p_init_msg_list is true
378: SAVEPOINT update_narrative_type_code;
379: END IF;
380:
381: -- initialize message list if p_init_msg_list is true
382: if FND_API.to_boolean(nvl(p_init_msg_list, FND_API.G_FALSE)) then
383: fnd_msg_pub.initialize;
384: end if;
385:
386: -- initialize return_status to success
383: fnd_msg_pub.initialize;
384: end if;
385:
386: -- initialize return_status to success
387: x_return_status := fnd_api.g_ret_sts_success;
388:
389:
390: -- first validate user rights
391:
398: ------------------------------------- value_id conversion ---------------------------------
399:
400: -------------------------------------------- validations -----------------------------------------------------
401:
402: if (NOT FND_API.TO_BOOLEAN (p_validate_only)) then
403:
404: UPDATE IGW_PROPOSALS_ALL
405: SET NARRATIVE_TYPE_CODE = P_NARRATIVE_TYPE_CODE,
406: NARRATIVE_SUBMISSION_CODE = P_NARRATIVE_SUBMISSION_CODE
411:
412: check_errors;
413:
414: -- standard check of p_commit
415: if fnd_api.to_boolean(p_commit) then
416: commit work;
417: end if;
418:
419:
422: p_data => x_msg_data);
423:
424:
425: EXCEPTION
426: WHEN FND_API.G_EXC_ERROR THEN
427: IF p_commit = FND_API.G_TRUE THEN
428: ROLLBACK TO update_narrative_type_code;
429: END IF;
430:
423:
424:
425: EXCEPTION
426: WHEN FND_API.G_EXC_ERROR THEN
427: IF p_commit = FND_API.G_TRUE THEN
428: ROLLBACK TO update_narrative_type_code;
429: END IF;
430:
431: x_return_status := FND_API.G_RET_STS_ERROR;
427: IF p_commit = FND_API.G_TRUE THEN
428: ROLLBACK TO update_narrative_type_code;
429: END IF;
430:
431: x_return_status := FND_API.G_RET_STS_ERROR;
432:
433: fnd_msg_pub.count_and_get(p_count => x_msg_count,
434: p_data => x_msg_data);
435:
434: p_data => x_msg_data);
435:
436:
437: WHEN OTHERS THEN
438: IF p_commit = FND_API.G_TRUE THEN
439: ROLLBACK TO update_narrative_type_code;
440: END IF;
441:
442: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
438: IF p_commit = FND_API.G_TRUE THEN
439: ROLLBACK TO update_narrative_type_code;
440: END IF;
441:
442: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
443:
444: fnd_msg_pub.add_exc_msg(p_pkg_name => 'IGW_PROP_NARRATIVES_PVT',
445: p_procedure_name => 'UPDATE_PROP_NARRATIVE',
446: p_error_text => SUBSTRB(SQLERRM,1,240));
465: and record_version_number = p_record_version_number;
466:
467: EXCEPTION
468: WHEN NO_DATA_FOUND THEN
469: x_return_status := FND_API.G_RET_STS_ERROR;
470: FND_MESSAGE.SET_NAME('IGW','IGW_SS_RECORD_CHANGED');
471: FND_MSG_PUB.Add;
472: raise fnd_api.g_exc_error;
473:
468: WHEN NO_DATA_FOUND THEN
469: x_return_status := FND_API.G_RET_STS_ERROR;
470: FND_MESSAGE.SET_NAME('IGW','IGW_SS_RECORD_CHANGED');
471: FND_MSG_PUB.Add;
472: raise fnd_api.g_exc_error;
473:
474: WHEN OTHERS THEN
475: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
476: fnd_msg_pub.add_exc_msg(p_pkg_name => 'IGW_PROP_NARRATIVES_PVT',
471: FND_MSG_PUB.Add;
472: raise fnd_api.g_exc_error;
473:
474: WHEN OTHERS THEN
475: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
476: fnd_msg_pub.add_exc_msg(p_pkg_name => 'IGW_PROP_NARRATIVES_PVT',
477: p_procedure_name => 'CHECK_LOCK',
478: p_error_text => SUBSTRB(SQLERRM,1,240));
479: raise fnd_api.g_exc_unexpected_error;
475: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
476: fnd_msg_pub.add_exc_msg(p_pkg_name => 'IGW_PROP_NARRATIVES_PVT',
477: p_procedure_name => 'CHECK_LOCK',
478: p_error_text => SUBSTRB(SQLERRM,1,240));
479: raise fnd_api.g_exc_unexpected_error;
480:
481: END CHECK_LOCK;
482:
483: -------------------------------------------------------------------------------------------------------
485: l_msg_count NUMBER;
486: BEGIN
487: l_msg_count := fnd_msg_pub.count_msg;
488: IF (l_msg_count > 0) THEN
489: RAISE FND_API.G_EXC_ERROR;
490: END IF;
491:
492: END CHECK_ERRORS;
493:
500: x VARCHAR2(1);
501: y VARCHAR2(1);
502:
503: BEGIN
504: x_return_status:= FND_API.G_RET_STS_SUCCESS;
505:
506: IF (IGW_SECURITY.ALLOW_MODIFY ('NARRATIVE', P_PROPOSAL_ID, FND_GLOBAL.USER_ID) = 'N') THEN
507: x_return_status:= FND_API.G_RET_STS_ERROR;
508: fnd_message.set_name('IGW', 'IGW_NO_RIGHTS');
503: BEGIN
504: x_return_status:= FND_API.G_RET_STS_SUCCESS;
505:
506: IF (IGW_SECURITY.ALLOW_MODIFY ('NARRATIVE', P_PROPOSAL_ID, FND_GLOBAL.USER_ID) = 'N') THEN
507: x_return_status:= FND_API.G_RET_STS_ERROR;
508: fnd_message.set_name('IGW', 'IGW_NO_RIGHTS');
509: fnd_msg_pub.add;
510: END IF;
511:
511:
512: EXCEPTION
513:
514: WHEN OTHERS THEN
515: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
516: fnd_msg_pub.add_exc_msg(p_pkg_name => 'IGW_PROP_NARRATIVES_PVT',
517: p_procedure_name => 'VALIDATE_LOGGED_USER_RIGHTS',
518: p_error_text => SUBSTRB(SQLERRM,1,240));
519: raise fnd_api.g_exc_unexpected_error;
515: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
516: fnd_msg_pub.add_exc_msg(p_pkg_name => 'IGW_PROP_NARRATIVES_PVT',
517: p_procedure_name => 'VALIDATE_LOGGED_USER_RIGHTS',
518: p_error_text => SUBSTRB(SQLERRM,1,240));
519: raise fnd_api.g_exc_unexpected_error;
520: END VALIDATE_LOGGED_USER_RIGHTS;
521:
522:
523: END IGW_PROP_NARRATIVES_PVT;