1: package body PA_PROJECT_PARTIES_PVT as
2: /* $Header: PARPPUTB.pls 120.12.12010000.6 2009/08/21 12:00:43 nkapling ship $ */
3:
4: P_DEBUG_MODE varchar2(1) := NVL(FND_PROFILE.value('PA_DEBUG_MODE'), 'N');
5:
6: PROCEDURE CREATE_PROJECT_PARTY( p_commit IN VARCHAR2 := FND_API.G_FALSE,
7: p_validate_only IN VARCHAR2 := FND_API.G_TRUE,
8: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
78:
79: if p_validation_level > 0 then
80: if (p_debug_mode = 'Y') then
81: IF P_DEBUG_MODE = 'Y' THEN
82: pa_debug.debug('Create_project_party: Calling validate_project_party.');
83: END IF;
84: end if;
85: pa_debug.G_err_stage := 'Calling validate_project_party';
86: pa_project_parties_utils.validate_project_party(
81: IF P_DEBUG_MODE = 'Y' THEN
82: pa_debug.debug('Create_project_party: Calling validate_project_party.');
83: END IF;
84: end if;
85: pa_debug.G_err_stage := 'Calling validate_project_party';
86: pa_project_parties_utils.validate_project_party(
87: p_validation_level,
88: p_debug_mode,
89: p_object_id,
138:
139:
140: /* End of code added for bug 3234293 */
141:
142: pa_debug.G_err_stage := 'Calling create_resource';
143: pa_r_project_resources_pub.create_resource(p_api_version => 1.0,
144: p_init_msg_list => fnd_api.g_false,
145: p_commit => p_commit,
146: p_validate_only => p_validate_only,
185: IF ((nvl(p_scheduled_flag, 'N') = 'Y') OR (l_is_valid <> 'Y')) THEN
186:
187: /* End of code added for bug 3234293 */
188:
189: pa_debug.G_err_stage := 'Calling create_resource';
190: pa_r_project_resources_pub.create_resource(p_api_version => 1.0,
191: p_init_msg_list => fnd_api.g_false,
192: p_commit => p_commit,
193: p_validate_only => p_validate_only,
268: if x_call_overlap = 'N' and x_return_status = FND_API.G_RET_STS_SUCCESS then
269: -- call update api
270: if (p_debug_mode = 'Y') then
271: IF P_DEBUG_MODE = 'Y' THEN
272: pa_debug.debug('Create_project_party: Calling update_row.');
273: END IF;
274: end if;
275:
276: x_project_party_id := l_project_party_id;
276: x_project_party_id := l_project_party_id;
277: x_resource_id := l_resource_id;
278:
279: --dbms_output.put_line('calling update');
280: pa_debug.G_err_stage := 'Calling update_row from create_project_party';
281: PA_PROJECT_PARTIES_PKG.UPDATE_ROW (
282: X_PROJECT_PARTY_ID => l_project_party_id,
283: X_PROJECT_ID => l_project_id,
284: X_RESOURCE_SOURCE_ID => p_resource_source_id,
328: x_resource_id := l_resource_id;
329:
330: if (p_debug_mode = 'Y') then
331: IF P_DEBUG_MODE = 'Y' THEN
332: pa_debug.debug('Create_project_party: Calling insert_row.');
333: END IF;
334: end if;
335: pa_debug.G_err_stage := 'Calling insert_row';
336: ----dbms_output.put_line('calling insert');
331: IF P_DEBUG_MODE = 'Y' THEN
332: pa_debug.debug('Create_project_party: Calling insert_row.');
333: END IF;
334: end if;
335: pa_debug.G_err_stage := 'Calling insert_row';
336: ----dbms_output.put_line('calling insert');
337: PA_PROJECT_PARTIES_PKG.INSERT_ROW (
338: X_PROJECT_PARTY_ID => x_project_party_id,
339: X_OBJECT_ID => p_object_id,
433:
434: if fnd_api.to_boolean(nvl(p_commit,FND_API.G_FALSE)) and x_return_status = FND_API.G_RET_STS_SUCCESS then
435: if (p_debug_mode = 'Y') then
436: IF P_DEBUG_MODE = 'Y' THEN
437: pa_debug.debug('Create_project_party: Commiting data.');
438: END IF;
439: end if;
440: commit work;
441: end if;
442: end if;
443: fnd_msg_pub.count_and_get(p_count => x_msg_count,
444: p_data => x_msg_data);
445:
446: pa_debug.reset_err_stack;
447:
448: EXCEPTION
449: --Bug 5186830
450: WHEN FND_API.G_EXC_ERROR THEN
464: ELSE
465: x_msg_count := l_msg_count;
466: END IF;
467: x_return_status := FND_API.G_RET_STS_ERROR;
468: pa_debug.reset_err_stack;
469:
470: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
471: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
472: fnd_message.set_name('PA','PA_UNEXPECTED_ERROR');
482: rollback to project_parties;
483: end if;
484: x_return_status := fnd_api.g_ret_sts_unexp_error;
485: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_PROJECT_PARTIES_PUB',
486: p_procedure_name => pa_debug.G_err_stack,
487: p_error_text => SUBSTRB(SQLERRM,1,240));
488: raise;
489:
490: END CREATE_PROJECT_PARTY;
569:
570: if p_validation_level > 0 then
571: if (p_debug_mode = 'Y') then
572: IF P_DEBUG_MODE = 'Y' THEN
573: pa_debug.debug('Update_project_party: Calling validate_project_party.');
574: END IF;
575: end if;
576: pa_debug.g_err_stage := 'Calling validate_project_party';
577: pa_project_parties_utils.validate_project_party(
572: IF P_DEBUG_MODE = 'Y' THEN
573: pa_debug.debug('Update_project_party: Calling validate_project_party.');
574: END IF;
575: end if;
576: pa_debug.g_err_stage := 'Calling validate_project_party';
577: pa_project_parties_utils.validate_project_party(
578: p_validation_level,
579: p_debug_mode,
580: p_object_id,
732:
733: -- call update api
734: if (p_debug_mode = 'Y') then
735: IF P_DEBUG_MODE = 'Y' THEN
736: pa_debug.debug('Update_project_party: Calling update_row.');
737: END IF;
738: end if;
739:
740: /* FP-L status-based security
768: if x_return_status = FND_API.G_RET_STS_SUCCESS then
769: l_grant_id := null;
770:
771: ----dbms_output.put_line('calling update api');
772: pa_debug.g_err_stage := 'Calling Update_row';
773: PA_PROJECT_PARTIES_PKG.UPDATE_ROW (
774: X_PROJECT_PARTY_ID => p_project_party_id,
775: X_PROJECT_ID => p_project_id,
776: X_RESOURCE_SOURCE_ID => p_resource_source_id,
862:
863: if fnd_api.to_boolean(nvl(p_commit,fnd_api.G_FALSE)) and x_return_status = FND_API.G_RET_STS_SUCCESS then
864: if (p_debug_mode = 'Y') then
865: IF P_DEBUG_MODE = 'Y' THEN
866: pa_debug.debug('Update_project_party: Commiting data.');
867: END IF;
868: end if;
869: commit work;
870: end if;
870: end if;
871: fnd_msg_pub.count_and_get(p_count => x_msg_count,
872: p_data => x_msg_data);
873:
874: pa_debug.reset_err_stack;
875:
876: EXCEPTION
877:
878: -- bug 5856712
893: ELSE
894: x_msg_count := l_msg_count;
895: END IF;
896: x_return_status := FND_API.G_RET_STS_ERROR;
897: pa_debug.reset_err_stack;
898:
899: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
900: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
901: fnd_message.set_name('PA','PA_UNEXPECTED_ERROR');
912: rollback to project_parties;
913: end if;
914: x_return_status := fnd_api.g_ret_sts_unexp_error;
915: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_PROJECT_PARTIES_PUB',
916: p_procedure_name => pa_debug.g_err_stack,
917: p_error_text => SUBSTRB(SQLERRM,1,240));
918: fnd_msg_pub.count_and_get(p_count => x_msg_count,
919: p_data => x_msg_data);
920:
1014: x_return_status := FND_API.G_RET_STS_SUCCESS;
1015:
1016: if (p_debug_mode = 'Y') then
1017: IF P_DEBUG_MODE = 'Y' THEN
1018: pa_debug.debug('Delete_project_party : Lock Key Members ');
1019: END IF;
1020: end if;
1021:
1022: --lock the project player
1022: --lock the project player
1023:
1024: if (p_debug_mode = 'Y') then
1025: IF P_DEBUG_MODE = 'Y' THEN
1026: pa_debug.debug('Delete_project_party : Before delete from pa_project_players ');
1027: END IF;
1028: end if;
1029:
1030: /* Added the following code for bug #2111806:
1088: RETURN;
1089: END IF;
1090:
1091: l_grant_id := pa_project_parties_utils.get_grant_id(p_project_party_id => p_project_party_id);
1092: pa_debug.g_err_stage := 'Calling delete_row';
1093: pa_project_parties_pkg.delete_row(x_project_id => l_project_id,
1094: x_project_party_id => p_project_party_id,
1095: x_record_version_number => p_record_version_number);
1096: end if;
1159:
1160: if fnd_api.to_boolean(nvl(p_commit,fnd_api.G_FALSE)) and x_return_status = FND_API.G_RET_STS_SUCCESS then
1161: if (p_debug_mode = 'Y') then
1162: IF P_DEBUG_MODE = 'Y' THEN
1163: pa_debug.debug('Delete_project_party: Commiting data.');
1164: END IF;
1165: end if;
1166: commit work;
1167: end if;
1169: fnd_msg_pub.count_and_get(p_count => x_msg_count,
1170: p_data => x_msg_data);
1171: end if;
1172:
1173: pa_debug.reset_err_stack;
1174:
1175: EXCEPTION
1176:
1177: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1187: WHEN NO_DATA_FOUND THEN
1188:
1189: if (p_debug_mode = 'Y') then
1190: IF P_DEBUG_MODE = 'Y' THEN
1191: pa_debug.debug('Delete_project_party : Exception NO_DATA_FOUND ');
1192: END IF;
1193: end if;
1194:
1195: --fnd_message.set_name('PA', 'PA_XC_NO_DATA_FOUND');
1198: WHEN TIMEOUT_ON_RESOURCE THEN
1199:
1200: if (p_debug_mode = 'Y') then
1201: IF P_DEBUG_MODE = 'Y' THEN
1202: pa_debug.debug('Delete_project_party : Exception TIMEOUT_ON_RESOURCE ');
1203: END IF;
1204: end if;
1205:
1206: fnd_message.set_name('PA', 'PA_XC_ROW_ALREADY_LOCKED');
1213: end if;
1214:
1215: if (p_debug_mode = 'Y') then
1216: IF P_DEBUG_MODE = 'Y' THEN
1217: pa_debug.debug('Delete_project_party : Exception OTHERS ');
1218: END IF;
1219: end if;
1220:
1221: if(SQLCODE = -54) then
1223: x_msg_data := FND_MESSAGE.get;
1224: x_return_status := FND_API.G_RET_STS_ERROR;
1225: else
1226: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_PROJECT_PARTIES_PUB',
1227: p_procedure_name => pa_debug.g_err_stack,
1228: p_error_text => SUBSTRB(SQLERRM,1,240));
1229: x_return_status := FND_API.G_RET_STS_ERROR;
1230: end if;
1231: