35: x_msg_data => l_msg
36: );
37: END;
38: --
39: IF ((l_looped = FND_API.G_RET_STS_SUCCESS) AND
40: (l_linked = FND_API.G_RET_STS_SUCCESS)) THEN
41: return FND_API.G_RET_STS_SUCCESS;
42: ELSE
43: return FND_API.G_RET_STS_ERROR;
36: );
37: END;
38: --
39: IF ((l_looped = FND_API.G_RET_STS_SUCCESS) AND
40: (l_linked = FND_API.G_RET_STS_SUCCESS)) THEN
41: return FND_API.G_RET_STS_SUCCESS;
42: ELSE
43: return FND_API.G_RET_STS_ERROR;
44: END IF;
37: END;
38: --
39: IF ((l_looped = FND_API.G_RET_STS_SUCCESS) AND
40: (l_linked = FND_API.G_RET_STS_SUCCESS)) THEN
41: return FND_API.G_RET_STS_SUCCESS;
42: ELSE
43: return FND_API.G_RET_STS_ERROR;
44: END IF;
45: --
39: IF ((l_looped = FND_API.G_RET_STS_SUCCESS) AND
40: (l_linked = FND_API.G_RET_STS_SUCCESS)) THEN
41: return FND_API.G_RET_STS_SUCCESS;
42: ELSE
43: return FND_API.G_RET_STS_ERROR;
44: END IF;
45: --
46: pa_debug.reset_err_stack;
47: EXCEPTION
46: pa_debug.reset_err_stack;
47: EXCEPTION
48: WHEN OTHERS THEN
49: RAISE;
50: -- return FND_API.G_RET_STS_UNEXP_ERROR;
51: END CHECK_ASSO_PROJ_OK;
52: --
53: --
54: --
54: --
55: procedure CREATE_RELATIONSHIP
56: (
57: p_api_version IN NUMBER := 1.0,
58: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
59: p_commit IN VARCHAR2 := FND_API.G_FALSE,
60: p_validate_only IN VARCHAR2 := FND_API.G_TRUE,
61: p_debug_mode IN VARCHAR2 := 'N',
62: p_task_id IN NUMBER,
55: procedure CREATE_RELATIONSHIP
56: (
57: p_api_version IN NUMBER := 1.0,
58: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
59: p_commit IN VARCHAR2 := FND_API.G_FALSE,
60: p_validate_only IN VARCHAR2 := FND_API.G_TRUE,
61: p_debug_mode IN VARCHAR2 := 'N',
62: p_task_id IN NUMBER,
63: p_project_id IN NUMBER,
56: (
57: p_api_version IN NUMBER := 1.0,
58: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
59: p_commit IN VARCHAR2 := FND_API.G_FALSE,
60: p_validate_only IN VARCHAR2 := FND_API.G_TRUE,
61: p_debug_mode IN VARCHAR2 := 'N',
62: p_task_id IN NUMBER,
63: p_project_id IN NUMBER,
64: x_return_status OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
134: --
135: Begin
136: pa_debug.set_err_stack('CREATE_RELATIONSHIP');
137: --
138: x_return_status := FND_API.G_RET_STS_SUCCESS;
139: l_user_id := FND_GLOBAL.USER_ID;
140: --
141: l_src_task_id:= p_task_id;
142: l_dest_proj_id:=p_project_id;
142: l_dest_proj_id:=p_project_id;
143: IF ((l_dest_proj_id = PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM) OR
144: (l_dest_proj_id IS NULL)) THEN
145: PA_UTILS.ADD_MESSAGE( 'PA', 'PA_PS_DEST_PROJ_NULL');
146: RAISE FND_API.G_EXC_ERROR;
147: END IF;
148: --
149: OPEN IS_CC_PRVDR(p_project_id);
150: LOOP
155: --
156: IF (l_cc_prvdr <> 'Y') AND (l_cc_prvdr <> 'y') THEN
157: l_create_ok := CHECK_ASSO_PROJ_OK(p_task_id => p_task_id, p_project_id => p_project_id);
158: --
159: IF (l_create_ok = FND_API.G_RET_STS_SUCCESS) THEN
160: --
161: OPEN get_src_task_det(p_task_id);
162: FETCH get_src_task_det INTO l_src_task_det_rec;
163: IF get_src_task_det%NOTFOUND THEN
161: OPEN get_src_task_det(p_task_id);
162: FETCH get_src_task_det INTO l_src_task_det_rec;
163: IF get_src_task_det%NOTFOUND THEN
164: PA_UTILS.ADD_Message('PA','PA_STRUCT_CREATE_ERR');
165: x_return_status := FND_API.G_RET_STS_ERROR;
166: END IF;
167: CLOSE get_src_task_det;
168: PA_PROJ_ELEMENTS_UTILS.Project_Name_Or_Id(
169: p_project_name => l_dest_proj_name
175: ,x_error_msg_code => l_error_msg_code
176: );
177:
178: -- added for Bug: 4537865
179: IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
180: l_dest_proj_id := l_new_dest_proj_id;
181: END IF;
182: -- added for Bug: 4537865
183:
180: l_dest_proj_id := l_new_dest_proj_id;
181: END IF;
182: -- added for Bug: 4537865
183:
184: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
185: PA_UTILS.ADD_MESSAGE( 'PA', l_error_msg_code);
186: x_return_status := FND_API.G_RET_STS_ERROR;
187: END IF;
188: --
182: -- added for Bug: 4537865
183:
184: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
185: PA_UTILS.ADD_MESSAGE( 'PA', l_error_msg_code);
186: x_return_status := FND_API.G_RET_STS_ERROR;
187: END IF;
188: --
189: /* Find owning project id */
190: OPEN get_owning_project_id(p_task_id);
196: --
197: IF (l_owning_proj_id is NULL) THEN
198: /* Selected task does not belong to a valid project */
199: PA_UTILS.ADD_Message('PA','PA_STRUCT_CREATE_ERR');
200: x_return_status := FND_API.G_RET_STS_ERROR;
201: ELSE
202: /* call table handler */
203: /*pa_object_relationships_pkg.insert_row(
204: p_user_id => l_user_id,
243: x_msg_count => l_new_msg_count, --added for Bug: 4537865
244: x_msg_data => x_msg_data);
245: --
246: /* Check for date warning */
247: IF (x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
248: --
249: --added for Bug: 4537865
250: x_msg_count := l_new_msg_count;
251: --added for Bug: 4537865
291: --
292: END IF; /* End Create Relationship */
293: ELSE
294: PA_UTILS.Add_Message('PA','PA_STRUCT_PJ_EXT_IN_STRUCT');
295: x_return_status := FND_API.G_RET_STS_ERROR;
296: END IF;
297: ELSE
298: PA_UTILS.Add_Message('PA','PA_STRUCT_PROJ_BILLABLE');
299: x_return_status := FND_API.G_RET_STS_ERROR;
295: x_return_status := FND_API.G_RET_STS_ERROR;
296: END IF;
297: ELSE
298: PA_UTILS.Add_Message('PA','PA_STRUCT_PROJ_BILLABLE');
299: x_return_status := FND_API.G_RET_STS_ERROR;
300: END IF;
301: --
302: x_msg_count := FND_MSG_PUB.Count_Msg;
303: --
301: --
302: x_msg_count := FND_MSG_PUB.Count_Msg;
303: --
304: IF (x_msg_count = 1) THEN
305: pa_interface_utils_pub.get_messages ( p_encoded => FND_API.G_TRUE
306: ,p_msg_index => 1
307: ,p_data => x_msg_data
308: ,p_msg_index_out => l_msg_index_out
309: );
313: END IF;
314: pa_debug.reset_err_stack;
315: EXCEPTION
316: When OTHERS Then
317: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
318: RAISE;
319: END CREATE_RELATIONSHIP;
320: --
321: --
322: --
323: procedure DELETE_RELATIONSHIP
324: (
325: p_api_version IN NUMBER := 1.0,
326: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
327: p_commit IN VARCHAR2 := FND_API.G_FALSE,
328: p_validate_only IN VARCHAR2 := FND_API.G_TRUE,
329: p_debug_mode IN VARCHAR2 := 'N',
330: p_task_id IN NUMBER,
323: procedure DELETE_RELATIONSHIP
324: (
325: p_api_version IN NUMBER := 1.0,
326: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
327: p_commit IN VARCHAR2 := FND_API.G_FALSE,
328: p_validate_only IN VARCHAR2 := FND_API.G_TRUE,
329: p_debug_mode IN VARCHAR2 := 'N',
330: p_task_id IN NUMBER,
331: p_project_id IN NUMBER,
324: (
325: p_api_version IN NUMBER := 1.0,
326: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
327: p_commit IN VARCHAR2 := FND_API.G_FALSE,
328: p_validate_only IN VARCHAR2 := FND_API.G_TRUE,
329: p_debug_mode IN VARCHAR2 := 'N',
330: p_task_id IN NUMBER,
331: p_project_id IN NUMBER,
332: x_return_status OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
466: l_msg_data VARCHAR2(250);
467: --
468: Begin
469: pa_debug.set_err_stack('DELETE_RELATIONSHIP');
470: x_return_status := FND_API.G_RET_STS_SUCCESS;
471: --
472: IF p_task_id IS NOT NULL THEN
473: OPEN get_src_task_det(p_task_id);
474: FETCH get_src_task_det INTO l_src_task_ver_id,l_src_proj_id;
473: OPEN get_src_task_det(p_task_id);
474: FETCH get_src_task_det INTO l_src_task_ver_id,l_src_proj_id;
475: IF get_src_task_det%NOTFOUND THEN
476: PA_UTILS.ADD_Message('PA','PA_STRUCT_CREATE_ERR');
477: x_return_status := FND_API.G_RET_STS_ERROR;
478: END IF;
479: CLOSE get_src_task_det;
480: END IF;
481: --
486: OPEN get_relationship_det1(l_src_task_ver_id,l_src_proj_id,p_project_id);
487: FETCH get_relationship_det1 INTO l_rel_id,l_rec_ver_num;
488: IF get_relationship_det1%NOTFOUND THEN
489: PA_UTILS.ADD_Message('PA','PA_STRUCT_CREATE_ERR');
490: x_return_status := FND_API.G_RET_STS_ERROR;
491: END IF;
492: CLOSE get_relationship_det1;
493: --
494: --
544: X_RETURN_STATUS => x_return_status
545: );
546: EXCEPTION
547: WHEN OTHERS THEN
548: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
549: PA_UTILS.ADD_Message('PA','PA_STRUCT_DELETE_ERR');
550: END;
551: EXIT WHEN (x_return_status <> FND_API.G_RET_STS_SUCCESS);
552: END LOOP;*/ --Commented the code to implement new functionality for subproject association
547: WHEN OTHERS THEN
548: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
549: PA_UTILS.ADD_Message('PA','PA_STRUCT_DELETE_ERR');
550: END;
551: EXIT WHEN (x_return_status <> FND_API.G_RET_STS_SUCCESS);
552: END LOOP;*/ --Commented the code to implement new functionality for subproject association
553: PA_RELATIONSHIP_PVT.Delete_SubProject_Association(
554: p_commit => p_commit
555: ,p_validate_only => p_validate_only
561: ,x_msg_data => x_msg_data);
562:
563: ELSE
564: /* Can't delete relationship due to other contracts*/
565: x_return_status := FND_API.G_RET_STS_ERROR;
566: PA_UTILS.ADD_Message('PA','PA_STRUCT_HAS_SUB_CONT');
567: END IF;
568: ELSIF (p_task_id IS NOT NULL) AND (p_project_id IS NULL) THEN
569: /* If task_id is not null, then delete all relationships that the task is associated with */
600: l_disassociation := 'Y';
601: END IF;*/ --Commented if block
602: l_disassociation := 'Y'; --Moved this line here from the above if block
603: if (l_disassociation = 'N') THEN
604: x_return_status := FND_API.G_RET_STS_ERROR;
605: PA_UTILS.ADD_Message('PA','PA_STRUCT_HAS_SUB_CONT');
606: end if;
607: --EXIT when l_disassociation = 'N';
608: --
637: ,x_msg_count => x_msg_count
638: ,x_msg_data => x_msg_data);
639: EXCEPTION
640: WHEN OTHERS THEN
641: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
642: PA_UTILS.ADD_Message('PA','PA_STRUCT_DELETE_ERR');
643: END;
644: --EXIT WHEN (x_return_status <> FND_API.G_RET_STS_SUCCESS);
645:
640: WHEN OTHERS THEN
641: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
642: PA_UTILS.ADD_Message('PA','PA_STRUCT_DELETE_ERR');
643: END;
644: --EXIT WHEN (x_return_status <> FND_API.G_RET_STS_SUCCESS);
645:
646: END LOOP;
647: -- CLOSE get_all_projects_for_task;
648: CLOSE get_all_sub_proj_ass_det;
701: ,x_msg_data => x_msg_data);
702: --
703: EXCEPTION
704: WHEN OTHERS THEN
705: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
706: PA_UTILS.ADD_Message('PA','PA_STRUCT_DELETE_ERR');
707: END;
708: EXIT WHEN (x_return_status <> FND_API.G_RET_STS_SUCCESS);
709: END LOOP;
704: WHEN OTHERS THEN
705: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
706: PA_UTILS.ADD_Message('PA','PA_STRUCT_DELETE_ERR');
707: END;
708: EXIT WHEN (x_return_status <> FND_API.G_RET_STS_SUCCESS);
709: END LOOP;
710: -- CLOSE get_all_tasks_for_project;
711: CLOSE get_str_sub_proj_ass_det; --SMukka Added
712: ELSE
709: END LOOP;
710: -- CLOSE get_all_tasks_for_project;
711: CLOSE get_str_sub_proj_ass_det; --SMukka Added
712: ELSE
713: x_return_status := FND_API.G_RET_STS_ERROR;
714: PA_UTILS.ADD_Message('PA','PA_STRUCT_DELETE_ERR');
715: END IF;
716: --
717: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
713: x_return_status := FND_API.G_RET_STS_ERROR;
714: PA_UTILS.ADD_Message('PA','PA_STRUCT_DELETE_ERR');
715: END IF;
716: --
717: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
718: x_return_status := FND_API.G_RET_STS_ERROR;
719: END IF;
720: --
721: x_msg_count := FND_MSG_PUB.Count_Msg;
714: PA_UTILS.ADD_Message('PA','PA_STRUCT_DELETE_ERR');
715: END IF;
716: --
717: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
718: x_return_status := FND_API.G_RET_STS_ERROR;
719: END IF;
720: --
721: x_msg_count := FND_MSG_PUB.Count_Msg;
722: IF (x_msg_count = 1) THEN
719: END IF;
720: --
721: x_msg_count := FND_MSG_PUB.Count_Msg;
722: IF (x_msg_count = 1) THEN
723: pa_interface_utils_pub.get_messages ( p_encoded => FND_API.G_TRUE
724: ,p_msg_index => 1
725: ,p_data => x_msg_data
726: ,p_msg_index_out => l_msg_index_out
727: );
730: END IF;
731: pa_debug.reset_err_stack;
732: EXCEPTION
733: When OTHERS Then
734: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
735: Raise;
736: END DELETE_RELATIONSHIP;
737:
738: