1: PACKAGE body PA_FP_GEN_PUB as
2: /* $Header: PAFPGNPB.pls 120.6 2007/02/06 10:00:11 dthakker ship $ */
3: P_PA_DEBUG_MODE varchar2(1) := NVL(FND_PROFILE.value('PA_DEBUG_MODE'), 'N');
4:
5: PROCEDURE UPDATE_RES_DEFAULTS
6: (P_PROJECT_ID IN pa_projects_all.PROJECT_ID%TYPE,
7: P_BUDGET_VERSION_ID IN PA_BUDGET_VERSIONS.BUDGET_VERSION_ID%TYPE,
111:
112: X_MSG_COUNT := 0;
113: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
114:
115: IF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'Y' THEN
116: PA_DEBUG.init_err_stack('PA_FP_GEN_PUB.UPDATE_RES_DEFAULTS');
117: ELSIF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'N' THEN
118: pa_debug.set_curr_function( p_function => 'UPDATE_RES_DEFAULTS'
119: ,p_debug_mode => p_pa_debug_mode);
112: X_MSG_COUNT := 0;
113: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
114:
115: IF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'Y' THEN
116: PA_DEBUG.init_err_stack('PA_FP_GEN_PUB.UPDATE_RES_DEFAULTS');
117: ELSIF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'N' THEN
118: pa_debug.set_curr_function( p_function => 'UPDATE_RES_DEFAULTS'
119: ,p_debug_mode => p_pa_debug_mode);
120: END IF;
113: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
114:
115: IF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'Y' THEN
116: PA_DEBUG.init_err_stack('PA_FP_GEN_PUB.UPDATE_RES_DEFAULTS');
117: ELSIF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'N' THEN
118: pa_debug.set_curr_function( p_function => 'UPDATE_RES_DEFAULTS'
119: ,p_debug_mode => p_pa_debug_mode);
120: END IF;
121:
114:
115: IF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'Y' THEN
116: PA_DEBUG.init_err_stack('PA_FP_GEN_PUB.UPDATE_RES_DEFAULTS');
117: ELSIF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'N' THEN
118: pa_debug.set_curr_function( p_function => 'UPDATE_RES_DEFAULTS'
119: ,p_debug_mode => p_pa_debug_mode);
120: END IF;
121:
122: -- 1. Bug 4895793: Get all target resources and their rlm_ids.
115: IF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'Y' THEN
116: PA_DEBUG.init_err_stack('PA_FP_GEN_PUB.UPDATE_RES_DEFAULTS');
117: ELSIF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'N' THEN
118: pa_debug.set_curr_function( p_function => 'UPDATE_RES_DEFAULTS'
119: ,p_debug_mode => p_pa_debug_mode);
120: END IF;
121:
122: -- 1. Bug 4895793: Get all target resources and their rlm_ids.
123: SELECT resource_assignment_id,
128: FROM pa_resource_assignments
129: WHERE budget_version_id = p_budget_version_id;
130:
131: IF l_da_resource_list_members_tab.count = 0 then
132: IF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'Y' THEN
133: PA_DEBUG.reset_err_stack;
134: ELSIF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'N' THEN
135: PA_DEBUG.Reset_Curr_Function;
136: END IF;
129: WHERE budget_version_id = p_budget_version_id;
130:
131: IF l_da_resource_list_members_tab.count = 0 then
132: IF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'Y' THEN
133: PA_DEBUG.reset_err_stack;
134: ELSIF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'N' THEN
135: PA_DEBUG.Reset_Curr_Function;
136: END IF;
137: RETURN;
130:
131: IF l_da_resource_list_members_tab.count = 0 then
132: IF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'Y' THEN
133: PA_DEBUG.reset_err_stack;
134: ELSIF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'N' THEN
135: PA_DEBUG.Reset_Curr_Function;
136: END IF;
137: RETURN;
138: END IF;
131: IF l_da_resource_list_members_tab.count = 0 then
132: IF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'Y' THEN
133: PA_DEBUG.reset_err_stack;
134: ELSIF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'N' THEN
135: PA_DEBUG.Reset_Curr_Function;
136: END IF;
137: RETURN;
138: END IF;
139:
157: -- 3. Bug 4895793: Get default attribute values for the distinct rlm_ids and store
158: -- them in the pl/sql tables prefixed by "l_" instead of by "l_da_".
159:
160: --Calling resource defualt API
161: IF p_pa_debug_mode = 'Y' THEN
162: pa_fp_gen_amount_utils.fp_debug
163: (p_msg => 'Before calling
164: pa_planning_resource_utils.get_resource_defaults',
165: p_module_name => l_module_name,
211:
212: IF X_RETURN_STATUS <> FND_API.G_RET_STS_SUCCESS THEN
213: RAISE PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc;
214: END IF;
215: IF p_pa_debug_mode = 'Y' THEN
216: pa_fp_gen_amount_utils.fp_debug
217: (p_msg => 'Status after calling
218: pa_planning_resource_utils.get_resource_defaults'
219: ||x_return_status,
274: -- Bug 4143869: Added call to GET_PLAN_VERSION_DTLS to get the value of the
275: -- Retain Maually Added Lines flag. Also, added manual lines logic to the
276: -- UPDATE statement for pa_resource_assignments.
277:
278: IF P_PA_DEBUG_MODE = 'Y' THEN
279: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG(
280: P_CALLED_MODE => P_CALLED_MODE,
281: P_MSG => 'Before calling PA_FP_GEN_AMOUNT_UTILS.'||
282: 'GET_PLAN_VERSION_DTL',
288: X_FP_COLS_REC => l_fp_cols_rec,
289: X_RETURN_STATUS => x_return_status,
290: X_MSG_COUNT => x_msg_count,
291: X_MSG_DATA => x_msg_data);
292: IF P_PA_DEBUG_MODE = 'Y' THEN
293: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG(
294: P_CALLED_MODE => P_CALLED_MODE,
295: P_MSG => 'After calling PA_FP_GEN_AMOUNT_UTILS.'||
296: 'GET_PLAN_VERSION_DTL:'||x_return_status,
413: bl.start_date)
414: AND rownum = 1 )));
415: END IF;
416:
417: IF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'Y' THEN
418: PA_DEBUG.reset_err_stack;
419: ELSIF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'N' THEN
420: PA_DEBUG.Reset_Curr_Function;
421: END IF;
414: AND rownum = 1 )));
415: END IF;
416:
417: IF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'Y' THEN
418: PA_DEBUG.reset_err_stack;
419: ELSIF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'N' THEN
420: PA_DEBUG.Reset_Curr_Function;
421: END IF;
422: RETURN;
415: END IF;
416:
417: IF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'Y' THEN
418: PA_DEBUG.reset_err_stack;
419: ELSIF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'N' THEN
420: PA_DEBUG.Reset_Curr_Function;
421: END IF;
422: RETURN;
423:
416:
417: IF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'Y' THEN
418: PA_DEBUG.reset_err_stack;
419: ELSIF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'N' THEN
420: PA_DEBUG.Reset_Curr_Function;
421: END IF;
422: RETURN;
423:
424: EXCEPTION
439: x_msg_count := l_msg_count;
440: END IF;
441: ROLLBACK;
442: x_return_status := FND_API.G_RET_STS_ERROR;
443: IF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'Y' THEN
444: PA_DEBUG.reset_err_stack;
445: ELSIF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'N' THEN
446: PA_DEBUG.Reset_Curr_Function;
447: END IF;
440: END IF;
441: ROLLBACK;
442: x_return_status := FND_API.G_RET_STS_ERROR;
443: IF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'Y' THEN
444: PA_DEBUG.reset_err_stack;
445: ELSIF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'N' THEN
446: PA_DEBUG.Reset_Curr_Function;
447: END IF;
448:
441: ROLLBACK;
442: x_return_status := FND_API.G_RET_STS_ERROR;
443: IF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'Y' THEN
444: PA_DEBUG.reset_err_stack;
445: ELSIF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'N' THEN
446: PA_DEBUG.Reset_Curr_Function;
447: END IF;
448:
449: WHEN OTHERS THEN
442: x_return_status := FND_API.G_RET_STS_ERROR;
443: IF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'Y' THEN
444: PA_DEBUG.reset_err_stack;
445: ELSIF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'N' THEN
446: PA_DEBUG.Reset_Curr_Function;
447: END IF;
448:
449: WHEN OTHERS THEN
450: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
454: FND_MSG_PUB.add_exc_msg
455: ( p_pkg_name => 'PA_FP_GEN_PUB'
456: ,p_procedure_name => 'UPDATE_RES_DEFAULTS');
457:
458: IF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'Y' THEN
459: PA_DEBUG.reset_err_stack;
460: ELSIF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'N' THEN
461: PA_DEBUG.Reset_Curr_Function;
462: END IF;
455: ( p_pkg_name => 'PA_FP_GEN_PUB'
456: ,p_procedure_name => 'UPDATE_RES_DEFAULTS');
457:
458: IF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'Y' THEN
459: PA_DEBUG.reset_err_stack;
460: ELSIF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'N' THEN
461: PA_DEBUG.Reset_Curr_Function;
462: END IF;
463: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
456: ,p_procedure_name => 'UPDATE_RES_DEFAULTS');
457:
458: IF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'Y' THEN
459: PA_DEBUG.reset_err_stack;
460: ELSIF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'N' THEN
461: PA_DEBUG.Reset_Curr_Function;
462: END IF;
463: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
464:
457:
458: IF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'Y' THEN
459: PA_DEBUG.reset_err_stack;
460: ELSIF p_pa_debug_mode = 'Y' AND p_init_msg_flag = 'N' THEN
461: PA_DEBUG.Reset_Curr_Function;
462: END IF;
463: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
464:
465: END UPDATE_RES_DEFAULTS;
491: /* Setting initial values */
492: X_MSG_COUNT := 0;
493: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
494:
495: IF p_pa_debug_mode = 'Y' THEN
496: pa_debug.set_curr_function( p_function => 'INCLUDE_CHANGE_DOCUMENT_WRP'
497: ,p_debug_mode => p_pa_debug_mode);
498: END IF;
499:
492: X_MSG_COUNT := 0;
493: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
494:
495: IF p_pa_debug_mode = 'Y' THEN
496: pa_debug.set_curr_function( p_function => 'INCLUDE_CHANGE_DOCUMENT_WRP'
497: ,p_debug_mode => p_pa_debug_mode);
498: END IF;
499:
500: -- Modified Select statement for adding distinct clause - Bug 3749556
493: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
494:
495: IF p_pa_debug_mode = 'Y' THEN
496: pa_debug.set_curr_function( p_function => 'INCLUDE_CHANGE_DOCUMENT_WRP'
497: ,p_debug_mode => p_pa_debug_mode);
498: END IF;
499:
500: -- Modified Select statement for adding distinct clause - Bug 3749556
501: SELECT /* pfc.ci_type_name as cd_type
547: AND pal.lookup_type = 'CONTROL_ITEM_SYSTEM_STATUS';
548: -- AND pfc.ci_type_id = pci.ci_type_id;
549:
550: IF l_ci_id_tbl.count = 0 THEN
551: IF p_pa_debug_mode = 'Y' THEN
552: pa_fp_gen_amount_utils.fp_debug
553: (p_msg => 'No CIs to implement. no rows returned from the view.Returning',
554: p_module_name => l_module_name,
555: p_log_level => 5);
553: (p_msg => 'No CIs to implement. no rows returned from the view.Returning',
554: p_module_name => l_module_name,
555: p_log_level => 5);
556: END IF;
557: IF P_PA_DEBUG_MODE = 'Y' THEN
558: PA_DEBUG.Reset_Curr_Function;
559: END IF;
560: RETURN;
561: END IF;
554: p_module_name => l_module_name,
555: p_log_level => 5);
556: END IF;
557: IF P_PA_DEBUG_MODE = 'Y' THEN
558: PA_DEBUG.Reset_Curr_Function;
559: END IF;
560: RETURN;
561: END IF;
562: l_budget_version_id_tbl.extend;
570:
571: /* Added PA_FP_MULTI_CURRENCY_PKG.CONVERT_TXN_CURRENCY and PA_FP_ROLLUP_PKG.ROLLUP_BUDGET_VERSION APIs
572: to include change orders. Bug 3985706 */
573:
574: IF P_PA_DEBUG_MODE = 'Y' THEN
575: pa_fp_gen_amount_utils.fp_debug
576: (p_msg => 'Before calling PA_FP_MULTI_CURRENCY_PKG.CONVERT_TXN_CURRENCY',
577: p_module_name => l_module_name,
578: p_log_level => 5);
583: p_calling_module => 'BUDGET_GENERATION', -- Added for Bug#5395732
584: X_RETURN_STATUS => X_RETURN_STATUS,
585: X_MSG_COUNT => X_MSG_COUNT,
586: X_MSG_DATA => X_MSG_DATA);
587: IF P_PA_DEBUG_MODE = 'Y' THEN
588: pa_fp_gen_amount_utils.fp_debug
589: (p_msg => 'After calling PA_FP_MULTI_CURRENCY_PKG.CONVERT_TXN_CURRENCY,
590: ret status: '||x_return_status,
591: p_module_name => l_module_name,
595: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
596: raise PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc;
597: END IF;
598:
599: IF P_PA_DEBUG_MODE = 'Y' THEN
600: pa_fp_gen_amount_utils.fp_debug
601: (p_msg => 'Before calling PA_FP_ROLLUP_PKG.ROLLUP_BUDGET_VERSION',
602: p_module_name => l_module_name,
603: p_log_level => 5);
607: p_entire_version => 'Y',
608: X_RETURN_STATUS => X_RETURN_STATUS,
609: X_MSG_COUNT => X_MSG_COUNT,
610: X_MSG_DATA => X_MSG_DATA);
611: IF P_PA_DEBUG_MODE = 'Y' THEN
612: pa_fp_gen_amount_utils.fp_debug
613: (p_msg => 'After calling PA_FP_ROLLUP_PKG.ROLLUP_BUDGET_VERSION,
614: ret status: '||x_return_status,
615: p_module_name => l_module_name,
619: RAISE PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc;
620: END IF;
621:
622:
623: IF p_pa_debug_mode = 'Y' THEN
624: pa_fp_gen_amount_utils.fp_debug
625: (p_msg => 'Before calling
626: pa_fp_ci_merge.implement_change_document',
627: p_module_name => l_module_name,
653: x_msg_count =>
654: x_msg_count,
655: x_msg_data =>
656: x_msg_data);
657: IF p_pa_debug_mode = 'Y' THEN
658: pa_fp_gen_amount_utils.fp_debug
659: (p_msg => 'Status after calling pa_fp_ci_merge.implement_change_document'
660: ||x_return_status,
661: p_module_name => l_module_name,
665: IF X_RETURN_STATUS <> FND_API.G_RET_STS_SUCCESS THEN
666: RAISE PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc;
667: END IF;
668:
669: IF P_PA_DEBUG_MODE = 'Y' THEN
670: PA_DEBUG.Reset_Curr_Function;
671: END IF;
672:
673:
666: RAISE PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc;
667: END IF;
668:
669: IF P_PA_DEBUG_MODE = 'Y' THEN
670: PA_DEBUG.Reset_Curr_Function;
671: END IF;
672:
673:
674: EXCEPTION
689: END IF;
690: ROLLBACK;
691: x_return_status := FND_API.G_RET_STS_ERROR;
692:
693: IF P_PA_DEBUG_MODE = 'Y' THEN
694: PA_DEBUG.Reset_Curr_Function;
695: END IF;
696: WHEN OTHERS THEN
697: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
690: ROLLBACK;
691: x_return_status := FND_API.G_RET_STS_ERROR;
692:
693: IF P_PA_DEBUG_MODE = 'Y' THEN
694: PA_DEBUG.Reset_Curr_Function;
695: END IF;
696: WHEN OTHERS THEN
697: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
698: x_msg_data := SUBSTR(SQLERRM,1,240);
698: x_msg_data := SUBSTR(SQLERRM,1,240);
699: FND_MSG_PUB.add_exc_msg
700: ( p_pkg_name => 'PA_FP_GEN_PUB'
701: ,p_procedure_name => 'INCLUDE_CHANGE_DOCUMENT_WRP');
702: IF P_PA_DEBUG_MODE = 'Y' THEN
703: PA_DEBUG.Reset_Curr_Function;
704: END IF;
705: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
706:
699: FND_MSG_PUB.add_exc_msg
700: ( p_pkg_name => 'PA_FP_GEN_PUB'
701: ,p_procedure_name => 'INCLUDE_CHANGE_DOCUMENT_WRP');
702: IF P_PA_DEBUG_MODE = 'Y' THEN
703: PA_DEBUG.Reset_Curr_Function;
704: END IF;
705: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
706:
707: END INCLUDE_CHANGE_DOCUMENT_WRP;
832: /* Setting initial values */
833: X_MSG_COUNT := 0;
834: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
835:
836: IF p_pa_debug_mode = 'Y' THEN
837: pa_debug.set_curr_function( p_function => 'UNSPENT_AMOUNT'
838: ,p_debug_mode => p_pa_debug_mode);
839: END IF;
840:
833: X_MSG_COUNT := 0;
834: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
835:
836: IF p_pa_debug_mode = 'Y' THEN
837: pa_debug.set_curr_function( p_function => 'UNSPENT_AMOUNT'
838: ,p_debug_mode => p_pa_debug_mode);
839: END IF;
840:
841: --dbms_output.put_line('p_app_cost_bdgt_ver_id = ' || p_app_cost_bdgt_ver_id);
834: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
835:
836: IF p_pa_debug_mode = 'Y' THEN
837: pa_debug.set_curr_function( p_function => 'UNSPENT_AMOUNT'
838: ,p_debug_mode => p_pa_debug_mode);
839: END IF;
840:
841: --dbms_output.put_line('p_app_cost_bdgt_ver_id = ' || p_app_cost_bdgt_ver_id);
842:
841: --dbms_output.put_line('p_app_cost_bdgt_ver_id = ' || p_app_cost_bdgt_ver_id);
842:
843: /* Calling the get_plan_version_dtls api
844: for the given app_cost_bdgt_ver_id*/
845: IF p_pa_debug_mode = 'Y' THEN
846: pa_fp_gen_amount_utils.fp_debug
847: (p_msg => 'Before calling
848: pa_fp_gen_amount_utils.get_plan_version_dtls',
849: p_module_name => l_module_name,
858: X_MSG_DATA => X_MSG_DATA);
859: IF X_RETURN_STATUS <> FND_API.G_RET_STS_SUCCESS THEN
860: RAISE PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc;
861: END IF;
862: IF p_pa_debug_mode = 'Y' THEN
863: pa_fp_gen_amount_utils.fp_debug
864: (p_msg => 'Status after calling
865: pa_fp_gen_amount_utils.get_plan_version_dtls'
866: ||x_return_status,
873: resource list and the amounts will be
874: populated in the pa_fp_calc_amt_tmp3 table only
875: for the periods till the actual thru period */
876:
877: IF P_PA_DEBUG_MODE = 'Y' THEN
878: pa_fp_gen_amount_utils.fp_debug
879: (p_msg => 'Before calling
880: pa_fp_map_bv_pub.gen_map_bv_to_target_rl',
881: p_module_name => l_module_name,
891: X_MSG_DATA => x_msg_data);
892: IF X_RETURN_STATUS <> FND_API.G_RET_STS_SUCCESS THEN
893: RAISE PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc;
894: END IF;
895: IF P_PA_DEBUG_MODE = 'Y' THEN
896: pa_fp_gen_amount_utils.fp_debug
897: (p_msg => 'Status after calling
898: pa_fp_map_bv_pub.gen_map_bv_to_target_rl'
899: ||x_return_status,
919: select count(*) into l_count from pa_res_list_map_tmp4 where rownum=1;
920: --dbms_output.put_line('Number of records inserted into tmp4 from tmp3 = ' || l_count);
921:
922: IF l_count = 0 THEN
923: IF p_pa_debug_mode = 'Y' THEN
924: PA_DEBUG.RESET_CURR_FUNCTION;
925: END IF;
926: RETURN;
927: END IF;
920: --dbms_output.put_line('Number of records inserted into tmp4 from tmp3 = ' || l_count);
921:
922: IF l_count = 0 THEN
923: IF p_pa_debug_mode = 'Y' THEN
924: PA_DEBUG.RESET_CURR_FUNCTION;
925: END IF;
926: RETURN;
927: END IF;
928:
999: select count(*) into l_count from pa_res_list_map_tmp4 where rownum=1;
1000: --dbms_output.put_line('Number of target resources in tmp4 to be processed = ' || l_count);
1001:
1002: IF l_count = 0 THEN
1003: IF p_pa_debug_mode = 'Y' THEN
1004: PA_DEBUG.RESET_CURR_FUNCTION;
1005: END IF;
1006: RETURN;
1007: END IF;
1000: --dbms_output.put_line('Number of target resources in tmp4 to be processed = ' || l_count);
1001:
1002: IF l_count = 0 THEN
1003: IF p_pa_debug_mode = 'Y' THEN
1004: PA_DEBUG.RESET_CURR_FUNCTION;
1005: END IF;
1006: RETURN;
1007: END IF;
1008:
1389: (nvl(quantity,0) + nvl(l_upd_quantity_tab(i),0))
1390: WHERE BUDGET_LINE_ID = l_upd_bl_id_tab(i);
1391: END IF;
1392:
1393: IF p_pa_debug_mode = 'Y' THEN
1394: pa_fp_gen_amount_utils.fp_debug
1395: (p_msg => 'Before calling
1396: pa_fp_maintain_actual_pub.sync_up_planning_dates',
1397: p_module_name => l_module_name,
1402: P_CALLING_CONTEXT => 'SYNC_VERSION_LEVEL',
1403: X_RETURN_STATUS => x_return_Status,
1404: X_MSG_COUNT => x_msg_count,
1405: X_MSG_DATA => x_msg_data );
1406: IF p_pa_debug_mode = 'Y' THEN
1407: pa_fp_gen_amount_utils.fp_debug
1408: (p_msg => 'Status after calling
1409: pa_fp_maintain_actual_pub.sync_up_planning_dates'
1410: ||x_return_status,
1414: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1415: raise PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc;
1416: END IF;
1417:
1418: IF P_PA_DEBUG_MODE = 'Y' THEN
1419: PA_DEBUG.RESET_CURR_FUNCTION;
1420: END IF;
1421:
1422: EXCEPTION
1415: raise PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc;
1416: END IF;
1417:
1418: IF P_PA_DEBUG_MODE = 'Y' THEN
1419: PA_DEBUG.RESET_CURR_FUNCTION;
1420: END IF;
1421:
1422: EXCEPTION
1423: WHEN PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc THEN
1438:
1439: ROLLBACK;
1440: x_return_status := FND_API.G_RET_STS_ERROR;
1441:
1442: IF p_pa_debug_mode = 'Y' THEN
1443: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
1444: ( p_msg => 'Invalid Arguments Passed',
1445: p_module_name => l_module_name,
1446: p_log_level => 5 );
1443: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
1444: ( p_msg => 'Invalid Arguments Passed',
1445: p_module_name => l_module_name,
1446: p_log_level => 5 );
1447: PA_DEBUG.RESET_CURR_FUNCTION;
1448: END IF;
1449: RAISE;
1450: WHEN OTHERS THEN
1451: ROLLBACK;
1456: ( p_pkg_name => 'PA_FP_GEN_PUB',
1457: p_procedure_name => 'UNSPENT_AMOUNT',
1458: p_error_text => substr(sqlerrm,1,240) );
1459:
1460: IF p_pa_debug_mode = 'Y' THEN
1461: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
1462: ( p_msg => 'Unexpected Error'||substr(sqlerrm, 1, 240),
1463: p_module_name => l_module_name,
1464: p_log_level => 5 );
1461: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
1462: ( p_msg => 'Unexpected Error'||substr(sqlerrm, 1, 240),
1463: p_module_name => l_module_name,
1464: p_log_level => 5 );
1465: PA_DEBUG.RESET_CURR_FUNCTION;
1466: END IF;
1467: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1468:
1469: END UNSPENT_AMOUNT;
1487: /* Setting initial values */
1488: X_MSG_COUNT := 0;
1489: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
1490:
1491: IF p_pa_debug_mode = 'Y' THEN
1492: pa_debug.set_curr_function( p_function => 'UPD_WBS_ELEMENT_VERSION_ID'
1493: ,p_debug_mode => p_pa_debug_mode);
1494: END IF;
1495:
1488: X_MSG_COUNT := 0;
1489: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
1490:
1491: IF p_pa_debug_mode = 'Y' THEN
1492: pa_debug.set_curr_function( p_function => 'UPD_WBS_ELEMENT_VERSION_ID'
1493: ,p_debug_mode => p_pa_debug_mode);
1494: END IF;
1495:
1496:
1489: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
1490:
1491: IF p_pa_debug_mode = 'Y' THEN
1492: pa_debug.set_curr_function( p_function => 'UPD_WBS_ELEMENT_VERSION_ID'
1493: ,p_debug_mode => p_pa_debug_mode);
1494: END IF;
1495:
1496:
1497:
1502: FROM pa_budget_versions
1503: WHERE budget_version_id = p_budget_version_id;
1504:
1505: IF l_wp_version_flag = 'N' THEN
1506: IF P_PA_DEBUG_MODE = 'Y' THEN
1507: PA_DEBUG.Reset_Curr_Function;
1508: END IF;
1509: RETURN;
1510: END IF;
1503: WHERE budget_version_id = p_budget_version_id;
1504:
1505: IF l_wp_version_flag = 'N' THEN
1506: IF P_PA_DEBUG_MODE = 'Y' THEN
1507: PA_DEBUG.Reset_Curr_Function;
1508: END IF;
1509: RETURN;
1510: END IF;
1511:
1520: WHERE ra.budget_version_id = p_budget_version_id
1521: AND nvl(ra.task_id,0) > 0;
1522:
1523: IF l_task_id_tab.count = 0 THEN
1524: IF P_PA_DEBUG_MODE = 'Y' THEN
1525: PA_DEBUG.Reset_Curr_Function;
1526: END IF;
1527: RETURN;
1528: END IF;
1521: AND nvl(ra.task_id,0) > 0;
1522:
1523: IF l_task_id_tab.count = 0 THEN
1524: IF P_PA_DEBUG_MODE = 'Y' THEN
1525: PA_DEBUG.Reset_Curr_Function;
1526: END IF;
1527: RETURN;
1528: END IF;
1529:
1532: SET wbs_element_version_id = l_wbs_element_ver_id_tab(i)
1533: WHERE budget_version_id = p_budget_version_id
1534: AND task_id = l_task_id_tab(i);
1535:
1536: IF P_PA_DEBUG_MODE = 'Y' THEN
1537: PA_DEBUG.Reset_Curr_Function;
1538: END IF;
1539:
1540: EXCEPTION
1533: WHERE budget_version_id = p_budget_version_id
1534: AND task_id = l_task_id_tab(i);
1535:
1536: IF P_PA_DEBUG_MODE = 'Y' THEN
1537: PA_DEBUG.Reset_Curr_Function;
1538: END IF;
1539:
1540: EXCEPTION
1541: WHEN OTHERS THEN
1543: x_msg_data := SUBSTR(SQLERRM,1,240);
1544: FND_MSG_PUB.add_exc_msg
1545: ( p_pkg_name => 'PA_FP_GEN_PUB'
1546: ,p_procedure_name => 'UPD_WBS_ELEMENT_VERSION_ID');
1547: IF P_PA_DEBUG_MODE = 'Y' THEN
1548: PA_DEBUG.Reset_Curr_Function;
1549: END IF;
1550: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1551:
1544: FND_MSG_PUB.add_exc_msg
1545: ( p_pkg_name => 'PA_FP_GEN_PUB'
1546: ,p_procedure_name => 'UPD_WBS_ELEMENT_VERSION_ID');
1547: IF P_PA_DEBUG_MODE = 'Y' THEN
1548: PA_DEBUG.Reset_Curr_Function;
1549: END IF;
1550: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1551:
1552: END UPD_WBS_ELEMENT_VERSION_ID;
1619:
1620: l_source_bv_id pa_budget_lines.budget_version_id%TYPE;
1621: BEGIN
1622:
1623: IF P_PA_DEBUG_MODE = 'Y' THEN
1624: pa_debug.set_curr_function( p_function => 'PRORATE_UNALIGNED_PERIOD_AMTS',
1625: p_debug_mode => p_pa_debug_mode );
1626: END IF;
1627:
1620: l_source_bv_id pa_budget_lines.budget_version_id%TYPE;
1621: BEGIN
1622:
1623: IF P_PA_DEBUG_MODE = 'Y' THEN
1624: pa_debug.set_curr_function( p_function => 'PRORATE_UNALIGNED_PERIOD_AMTS',
1625: p_debug_mode => p_pa_debug_mode );
1626: END IF;
1627:
1628: x_return_status := FND_API.G_RET_STS_SUCCESS;
1621: BEGIN
1622:
1623: IF P_PA_DEBUG_MODE = 'Y' THEN
1624: pa_debug.set_curr_function( p_function => 'PRORATE_UNALIGNED_PERIOD_AMTS',
1625: p_debug_mode => p_pa_debug_mode );
1626: END IF;
1627:
1628: x_return_status := FND_API.G_RET_STS_SUCCESS;
1629: /* Business Rules check */
1640: x_proj_burdened_cost := NULL;
1641: x_proj_revenue := NULL;
1642:
1643: IF p_src_res_asg_id_tab.count = 0 THEN
1644: IF P_PA_DEBUG_MODE = 'Y' THEN
1645: PA_DEBUG.RESET_CURR_FUNCTION;
1646: END IF;
1647: RETURN;
1648: END IF;
1641: x_proj_revenue := NULL;
1642:
1643: IF p_src_res_asg_id_tab.count = 0 THEN
1644: IF P_PA_DEBUG_MODE = 'Y' THEN
1645: PA_DEBUG.RESET_CURR_FUNCTION;
1646: END IF;
1647: RETURN;
1648: END IF;
1649:
1685: l_source_start_date,
1686: l_source_end_date;
1687: CLOSE gl_period_csr;
1688: ELSE
1689: IF P_PA_DEBUG_MODE = 'Y' THEN
1690: PA_DEBUG.RESET_CURR_FUNCTION;
1691: END IF;
1692: RETURN;
1693: END IF;
1686: l_source_end_date;
1687: CLOSE gl_period_csr;
1688: ELSE
1689: IF P_PA_DEBUG_MODE = 'Y' THEN
1690: PA_DEBUG.RESET_CURR_FUNCTION;
1691: END IF;
1692: RETURN;
1693: END IF;
1694:
1695: l_prorated_multiplier := (l_source_end_date - p_actual_thru_date) /
1696: (l_source_end_date - l_source_start_date + 1);
1697:
1698: IF l_prorated_multiplier = 0 THEN
1699: IF P_PA_DEBUG_MODE = 'Y' THEN
1700: PA_DEBUG.RESET_CURR_FUNCTION;
1701: END IF;
1702: RETURN;
1703: END IF;
1696: (l_source_end_date - l_source_start_date + 1);
1697:
1698: IF l_prorated_multiplier = 0 THEN
1699: IF P_PA_DEBUG_MODE = 'Y' THEN
1700: PA_DEBUG.RESET_CURR_FUNCTION;
1701: END IF;
1702: RETURN;
1703: END IF;
1704:
1843: BEGIN
1844: x_return_status := FND_API.G_RET_STS_SUCCESS;
1845: x_msg_count := 0;
1846:
1847: IF p_pa_debug_mode = 'Y' THEN
1848: PA_DEBUG.SET_CURR_FUNCTION
1849: ( p_function => 'MAINTAIN_FIXED_DATE_SP',
1850: p_debug_mode => p_pa_debug_mode );
1851: END IF;
1844: x_return_status := FND_API.G_RET_STS_SUCCESS;
1845: x_msg_count := 0;
1846:
1847: IF p_pa_debug_mode = 'Y' THEN
1848: PA_DEBUG.SET_CURR_FUNCTION
1849: ( p_function => 'MAINTAIN_FIXED_DATE_SP',
1850: p_debug_mode => p_pa_debug_mode );
1851: END IF;
1852:
1846:
1847: IF p_pa_debug_mode = 'Y' THEN
1848: PA_DEBUG.SET_CURR_FUNCTION
1849: ( p_function => 'MAINTAIN_FIXED_DATE_SP',
1850: p_debug_mode => p_pa_debug_mode );
1851: END IF;
1852:
1853: /* Check the input parameter(s) */
1854: IF p_budget_version_id IS NULL THEN
1916: WHERE budget_version_id = p_budget_version_id
1917: AND spread_curve_id <> l_fixed_date_id
1918: AND sp_fixed_date IS NOT NULL;
1919:
1920: IF p_pa_debug_mode = 'Y' THEN
1921: PA_DEBUG.RESET_CURR_FUNCTION;
1922: END IF;
1923: EXCEPTION
1924: WHEN PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc THEN
1917: AND spread_curve_id <> l_fixed_date_id
1918: AND sp_fixed_date IS NOT NULL;
1919:
1920: IF p_pa_debug_mode = 'Y' THEN
1921: PA_DEBUG.RESET_CURR_FUNCTION;
1922: END IF;
1923: EXCEPTION
1924: WHEN PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc THEN
1925: l_msg_count := FND_MSG_PUB.count_msg;
1939:
1940: ROLLBACK;
1941: x_return_status := FND_API.G_RET_STS_ERROR;
1942:
1943: IF p_pa_debug_mode = 'Y' THEN
1944: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
1945: ( p_msg => 'Invalid Arguments Passed',
1946: p_module_name => l_module_name,
1947: p_log_level => 5 );
1944: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
1945: ( p_msg => 'Invalid Arguments Passed',
1946: p_module_name => l_module_name,
1947: p_log_level => 5 );
1948: PA_DEBUG.RESET_CURR_FUNCTION;
1949: END IF;
1950: RAISE;
1951: WHEN OTHERS THEN
1952: ROLLBACK;
1957: ( p_pkg_name => 'PA_FP_GEN_PUB',
1958: p_procedure_name => 'MAINTAIN_FIXED_DATE_SP',
1959: p_error_text => substr(sqlerrm,1,240) );
1960:
1961: IF p_pa_debug_mode = 'Y' THEN
1962: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
1963: ( p_msg => 'Unexpected Error'||substr(sqlerrm, 1, 240),
1964: p_module_name => l_module_name,
1965: p_log_level => 5 );
1962: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
1963: ( p_msg => 'Unexpected Error'||substr(sqlerrm, 1, 240),
1964: p_module_name => l_module_name,
1965: p_log_level => 5 );
1966: PA_DEBUG.RESET_CURR_FUNCTION;
1967: END IF;
1968: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1969:
1970: END MAINTAIN_FIXED_DATE_SP;
2055: BEGIN
2056: x_return_status := FND_API.G_RET_STS_SUCCESS;
2057: x_msg_count := 0;
2058:
2059: IF p_pa_debug_mode = 'Y' THEN
2060: PA_DEBUG.SET_CURR_FUNCTION
2061: ( p_function => 'COPY_SRC_ATTRS_TO_TARGET_FCST',
2062: p_debug_mode => p_pa_debug_mode );
2063: END IF;
2056: x_return_status := FND_API.G_RET_STS_SUCCESS;
2057: x_msg_count := 0;
2058:
2059: IF p_pa_debug_mode = 'Y' THEN
2060: PA_DEBUG.SET_CURR_FUNCTION
2061: ( p_function => 'COPY_SRC_ATTRS_TO_TARGET_FCST',
2062: p_debug_mode => p_pa_debug_mode );
2063: END IF;
2064:
2058:
2059: IF p_pa_debug_mode = 'Y' THEN
2060: PA_DEBUG.SET_CURR_FUNCTION
2061: ( p_function => 'COPY_SRC_ATTRS_TO_TARGET_FCST',
2062: p_debug_mode => p_pa_debug_mode );
2063: END IF;
2064:
2065: /* Enforce that p_fp_cols_rec has valid id values. */
2066: IF p_fp_cols_rec.x_project_id IS NULL OR
2076: ( p_project_id => p_fp_cols_rec.x_project_id );
2077: IF l_stru_sharing_code <> 'SHARE_FULL' OR
2078: ( p_fp_cols_rec.x_gen_src_wp_version_id IS NULL AND
2079: p_fp_cols_rec.x_gen_src_plan_version_id IS NULL ) THEN
2080: IF p_pa_debug_mode = 'Y' THEN
2081: PA_DEBUG.RESET_CURR_FUNCTION;
2082: END IF;
2083: RETURN;
2084: END IF;
2077: IF l_stru_sharing_code <> 'SHARE_FULL' OR
2078: ( p_fp_cols_rec.x_gen_src_wp_version_id IS NULL AND
2079: p_fp_cols_rec.x_gen_src_plan_version_id IS NULL ) THEN
2080: IF p_pa_debug_mode = 'Y' THEN
2081: PA_DEBUG.RESET_CURR_FUNCTION;
2082: END IF;
2083: RETURN;
2084: END IF;
2085:
2093: l_src_version_id := l_src_version_id_tab(i);
2094: IF l_src_version_id IS NOT NULL THEN
2095: --dbms_output.put_line('l_src_version_id = ' || l_src_version_id);
2096: /* CAll API to get Source data into l_fp_cols_rec_src */
2097: IF p_pa_debug_mode = 'Y' THEN
2098: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
2099: ( p_msg => 'Before calling PA_FP_GEN_AMOUNT_UTILS.' ||
2100: 'GET_PLAN_VERSION_DTLS',
2101: p_module_name => l_module_name,
2107: x_fp_cols_rec => l_fp_cols_rec_src,
2108: x_return_status => x_return_status,
2109: x_msg_count => x_msg_count,
2110: x_msg_data => x_msg_data );
2111: IF p_pa_debug_mode = 'Y' THEN
2112: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
2113: ( p_msg => 'Status after calling PA_FP_GEN_AMOUNT_UTILS.' ||
2114: 'GET_PLAN_VERSION_DTLS: ' ||
2115: x_return_status,
2243: END IF; -- copy attributes logic
2244: END IF; -- src id not null
2245: END LOOP;
2246:
2247: IF p_pa_debug_mode = 'Y' THEN
2248: PA_DEBUG.RESET_CURR_FUNCTION;
2249: END IF;
2250: EXCEPTION
2251: WHEN PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc THEN
2244: END IF; -- src id not null
2245: END LOOP;
2246:
2247: IF p_pa_debug_mode = 'Y' THEN
2248: PA_DEBUG.RESET_CURR_FUNCTION;
2249: END IF;
2250: EXCEPTION
2251: WHEN PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc THEN
2252: l_msg_count := FND_MSG_PUB.count_msg;
2266:
2267: ROLLBACK;
2268: x_return_status := FND_API.G_RET_STS_ERROR;
2269:
2270: IF p_pa_debug_mode = 'Y' THEN
2271: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
2272: ( p_msg => 'Invalid Arguments Passed',
2273: p_module_name => l_module_name,
2274: p_log_level => 5 );
2271: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
2272: ( p_msg => 'Invalid Arguments Passed',
2273: p_module_name => l_module_name,
2274: p_log_level => 5 );
2275: PA_DEBUG.RESET_CURR_FUNCTION;
2276: END IF;
2277: RAISE;
2278: WHEN OTHERS THEN
2279: ROLLBACK;
2284: ( p_pkg_name => 'PA_FP_GEN_PUB',
2285: p_procedure_name => 'COPY_SRC_ATTRS_TO_TARGET_FCST',
2286: p_error_text => substr(sqlerrm,1,240) );
2287:
2288: IF p_pa_debug_mode = 'Y' THEN
2289: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
2290: ( p_msg => 'Unexpected Error'||substr(sqlerrm, 1, 240),
2291: p_module_name => l_module_name,
2292: p_log_level => 5 );
2289: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
2290: ( p_msg => 'Unexpected Error'||substr(sqlerrm, 1, 240),
2291: p_module_name => l_module_name,
2292: p_log_level => 5 );
2293: PA_DEBUG.RESET_CURR_FUNCTION;
2294: END IF;
2295: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2296:
2297: END COPY_SRC_ATTRS_TO_TARGET_FCST;