2: /* $Header: PAFPWPGB.pls 120.13.12010000.3 2009/02/01 08:22:48 jsundara ship $ */
3: P_PA_DEBUG_MODE varchar2(1) := NVL(FND_PROFILE.value('PA_DEBUG_MODE'), 'N');
4:
5: PROCEDURE GENERATE_WP_BUDGET_AMT
6: (P_PROJECT_ID IN PA_PROJ_FP_OPTIONS.PROJECT_ID%TYPE,
7: P_BUDGET_VERSION_ID IN PA_BUDGET_VERSIONS.BUDGET_VERSION_ID%TYPE,
8: P_PLAN_CLASS_CODE IN PA_FIN_PLAN_TYPES_B.PLAN_CLASS_CODE%TYPE,
9: P_GEN_SRC_CODE IN PA_PROJ_FP_OPTIONS.GEN_ALL_SRC_CODE%TYPE,
10: P_COST_PLAN_TYPE_ID IN PA_PROJ_FP_OPTIONS.GEN_SRC_COST_PLAN_TYPE_ID%TYPE,
5: PROCEDURE GENERATE_WP_BUDGET_AMT
6: (P_PROJECT_ID IN PA_PROJ_FP_OPTIONS.PROJECT_ID%TYPE,
7: P_BUDGET_VERSION_ID IN PA_BUDGET_VERSIONS.BUDGET_VERSION_ID%TYPE,
8: P_PLAN_CLASS_CODE IN PA_FIN_PLAN_TYPES_B.PLAN_CLASS_CODE%TYPE,
9: P_GEN_SRC_CODE IN PA_PROJ_FP_OPTIONS.GEN_ALL_SRC_CODE%TYPE,
10: P_COST_PLAN_TYPE_ID IN PA_PROJ_FP_OPTIONS.GEN_SRC_COST_PLAN_TYPE_ID%TYPE,
11: P_COST_VERSION_ID IN PA_BUDGET_VERSIONS.BUDGET_VERSION_ID%TYPE,
12: P_RETAIN_MANUAL_FLAG IN VARCHAR2,
13: P_CALLED_MODE IN VARCHAR2,
6: (P_PROJECT_ID IN PA_PROJ_FP_OPTIONS.PROJECT_ID%TYPE,
7: P_BUDGET_VERSION_ID IN PA_BUDGET_VERSIONS.BUDGET_VERSION_ID%TYPE,
8: P_PLAN_CLASS_CODE IN PA_FIN_PLAN_TYPES_B.PLAN_CLASS_CODE%TYPE,
9: P_GEN_SRC_CODE IN PA_PROJ_FP_OPTIONS.GEN_ALL_SRC_CODE%TYPE,
10: P_COST_PLAN_TYPE_ID IN PA_PROJ_FP_OPTIONS.GEN_SRC_COST_PLAN_TYPE_ID%TYPE,
11: P_COST_VERSION_ID IN PA_BUDGET_VERSIONS.BUDGET_VERSION_ID%TYPE,
12: P_RETAIN_MANUAL_FLAG IN VARCHAR2,
13: P_CALLED_MODE IN VARCHAR2,
14: P_INC_CHG_DOC_FLAG IN VARCHAR2,
17: P_CI_ID_TAB IN PA_PLSQL_DATATYPES.IdTabTyp,
18: P_INIT_MSG_FLAG IN VARCHAR2,
19: P_COMMIT_FLAG IN VARCHAR2,
20: P_CALLING_CONTEXT IN VARCHAR2,
21: P_ETC_PLAN_TYPE_ID IN PA_PROJ_FP_OPTIONS.FIN_PLAN_TYPE_ID%TYPE,
22: P_ETC_PLAN_VERSION_ID IN PA_PROJ_FP_OPTIONS.FIN_PLAN_VERSION_ID%TYPE,
23: P_ETC_PLAN_VERSION_NAME IN PA_BUDGET_VERSIONS.VERSION_NAME%TYPE,
24: P_ACTUALS_THRU_DATE IN PA_PERIODS_ALL.END_DATE%TYPE,
25: PX_DELETED_RES_ASG_ID_TAB IN OUT NOCOPY PA_PLSQL_DATATYPES.IdTabTyp,
18: P_INIT_MSG_FLAG IN VARCHAR2,
19: P_COMMIT_FLAG IN VARCHAR2,
20: P_CALLING_CONTEXT IN VARCHAR2,
21: P_ETC_PLAN_TYPE_ID IN PA_PROJ_FP_OPTIONS.FIN_PLAN_TYPE_ID%TYPE,
22: P_ETC_PLAN_VERSION_ID IN PA_PROJ_FP_OPTIONS.FIN_PLAN_VERSION_ID%TYPE,
23: P_ETC_PLAN_VERSION_NAME IN PA_BUDGET_VERSIONS.VERSION_NAME%TYPE,
24: P_ACTUALS_THRU_DATE IN PA_PERIODS_ALL.END_DATE%TYPE,
25: PX_DELETED_RES_ASG_ID_TAB IN OUT NOCOPY PA_PLSQL_DATATYPES.IdTabTyp,
26: PX_GEN_RES_ASG_ID_TAB IN OUT NOCOPY PA_PLSQL_DATATYPES.IdTabTyp,
39: l_gen_src_plan_ver_code VARCHAR2(100);
40: l_proj_resource_id PA_PLSQL_DATATYPES.IdTabTyp;
41:
42: /* Source Code constants */
43: lc_WorkPlanSrcCode CONSTANT PA_PROJ_FP_OPTIONS.GEN_COST_SRC_CODE%TYPE
44: := 'WORKPLAN_RESOURCES';
45: lc_FinancialPlanSrcCode CONSTANT PA_PROJ_FP_OPTIONS.GEN_COST_SRC_CODE%TYPE
46: := 'FINANCIAL_PLAN';
47:
41:
42: /* Source Code constants */
43: lc_WorkPlanSrcCode CONSTANT PA_PROJ_FP_OPTIONS.GEN_COST_SRC_CODE%TYPE
44: := 'WORKPLAN_RESOURCES';
45: lc_FinancialPlanSrcCode CONSTANT PA_PROJ_FP_OPTIONS.GEN_COST_SRC_CODE%TYPE
46: := 'FINANCIAL_PLAN';
47:
48: l_fp_options_id pa_proj_fp_options.proj_fp_options_id%TYPE;
49: l_gen_src_plan_ver_cod VARCHAR2(100);
44: := 'WORKPLAN_RESOURCES';
45: lc_FinancialPlanSrcCode CONSTANT PA_PROJ_FP_OPTIONS.GEN_COST_SRC_CODE%TYPE
46: := 'FINANCIAL_PLAN';
47:
48: l_fp_options_id pa_proj_fp_options.proj_fp_options_id%TYPE;
49: l_gen_src_plan_ver_cod VARCHAR2(100);
50: l_msg_count NUMBER;
51: l_msg_data VARCHAR2(2000);
52: l_data VARCHAR2(2000);
214: * data with starting date after the forecast's actuals through period. */
215: CURSOR fcst_budget_line_src_to_cal
216: (c_proj_currency_code PA_PROJECTS_ALL.PROJECT_CURRENCY_CODE%TYPE,
217: c_projfunc_currency_code PA_PROJECTS_ALL.PROJECT_CURRENCY_CODE%TYPE,
218: c_src_time_phased_code PA_PROJ_FP_OPTIONS.COST_TIME_PHASED_CODE%TYPE) IS
219: SELECT /*+ INDEX(tmp4,PA_RES_LIST_MAP_TMP4_N2)*/
220: ra.resource_assignment_id,
221: ra.rate_based_flag,
222: decode(l_txn_currency_flag,
285: -- please see the other cursor.
286: CURSOR fcst_bdgt_line_src_to_cal_none
287: (c_proj_currency_code PA_PROJECTS_ALL.PROJECT_CURRENCY_CODE%TYPE,
288: c_projfunc_currency_code PA_PROJECTS_ALL.PROJECT_CURRENCY_CODE%TYPE,
289: c_src_time_phased_code PA_PROJ_FP_OPTIONS.COST_TIME_PHASED_CODE%TYPE) IS
290: SELECT /*+ INDEX(tmp4,PA_RES_LIST_MAP_TMP4_N2)*/
291: ra.resource_assignment_id,
292: ra.rate_based_flag,
293: decode(l_txn_currency_flag,
634:
635: l_version_type := l_fp_cols_rec_target.x_version_type;
636: /*As of now, we have the l_wp_id as wp struct version id
637: * l_source_id as wp fin version id
638: * Now, we need to update back to pa_proj_fp_options*/
639: IF l_version_type = 'COST' THEN
640: UPDATE PA_PROJ_FP_OPTIONS
641: SET GEN_SRC_COST_WP_VERSION_ID = l_source_id
642: WHERE fin_plan_version_id = P_BUDGET_VERSION_ID;
636: /*As of now, we have the l_wp_id as wp struct version id
637: * l_source_id as wp fin version id
638: * Now, we need to update back to pa_proj_fp_options*/
639: IF l_version_type = 'COST' THEN
640: UPDATE PA_PROJ_FP_OPTIONS
641: SET GEN_SRC_COST_WP_VERSION_ID = l_source_id
642: WHERE fin_plan_version_id = P_BUDGET_VERSION_ID;
643: ELSIF l_version_type = 'ALL' THEN
644: UPDATE PA_PROJ_FP_OPTIONS
640: UPDATE PA_PROJ_FP_OPTIONS
641: SET GEN_SRC_COST_WP_VERSION_ID = l_source_id
642: WHERE fin_plan_version_id = P_BUDGET_VERSION_ID;
643: ELSIF l_version_type = 'ALL' THEN
644: UPDATE PA_PROJ_FP_OPTIONS
645: SET GEN_SRC_ALL_WP_VERSION_ID = l_source_id
646: WHERE fin_plan_version_id = P_BUDGET_VERSION_ID;
647: ELSIF l_version_type = 'REVENUE' THEN
648: UPDATE PA_PROJ_FP_OPTIONS
644: UPDATE PA_PROJ_FP_OPTIONS
645: SET GEN_SRC_ALL_WP_VERSION_ID = l_source_id
646: WHERE fin_plan_version_id = P_BUDGET_VERSION_ID;
647: ELSIF l_version_type = 'REVENUE' THEN
648: UPDATE PA_PROJ_FP_OPTIONS
649: SET GEN_SRC_REV_WP_VERSION_ID = l_source_id
650: WHERE fin_plan_version_id = P_BUDGET_VERSION_ID;
651: END IF;
652:
737: --dbms_output.put_line('==l_source_id:'||l_source_id);
738:
739: l_version_type := l_fp_cols_rec_target.x_version_type;
740: /*As of now, we have l_source_id as fin version id
741: * Now, we need to update back to pa_proj_fp_options*/
742: IF l_version_type = 'COST' THEN
743: UPDATE PA_PROJ_FP_OPTIONS
744: SET GEN_SRC_COST_PLAN_VERSION_ID = l_source_id
745: WHERE fin_plan_version_id = P_BUDGET_VERSION_ID;
739: l_version_type := l_fp_cols_rec_target.x_version_type;
740: /*As of now, we have l_source_id as fin version id
741: * Now, we need to update back to pa_proj_fp_options*/
742: IF l_version_type = 'COST' THEN
743: UPDATE PA_PROJ_FP_OPTIONS
744: SET GEN_SRC_COST_PLAN_VERSION_ID = l_source_id
745: WHERE fin_plan_version_id = P_BUDGET_VERSION_ID;
746: ELSIF l_version_type = 'ALL' THEN
747: UPDATE PA_PROJ_FP_OPTIONS
743: UPDATE PA_PROJ_FP_OPTIONS
744: SET GEN_SRC_COST_PLAN_VERSION_ID = l_source_id
745: WHERE fin_plan_version_id = P_BUDGET_VERSION_ID;
746: ELSIF l_version_type = 'ALL' THEN
747: UPDATE PA_PROJ_FP_OPTIONS
748: SET GEN_SRC_ALL_PLAN_VERSION_ID = l_source_id
749: WHERE fin_plan_version_id = P_BUDGET_VERSION_ID;
750: ELSIF l_version_type = 'REVENUE' THEN
751: UPDATE PA_PROJ_FP_OPTIONS
747: UPDATE PA_PROJ_FP_OPTIONS
748: SET GEN_SRC_ALL_PLAN_VERSION_ID = l_source_id
749: WHERE fin_plan_version_id = P_BUDGET_VERSION_ID;
750: ELSIF l_version_type = 'REVENUE' THEN
751: UPDATE PA_PROJ_FP_OPTIONS
752: SET GEN_SRC_REV_PLAN_VERSION_ID = l_source_id
753: WHERE fin_plan_version_id = P_BUDGET_VERSION_ID;
754: END IF;
755: END IF; -- end gen_src_code-based logic
2718: END GENERATE_WP_BUDGET_AMT;
2719:
2720:
2721: PROCEDURE MAINTAIN_BUDGET_LINES
2722: (P_PROJECT_ID IN PA_PROJ_FP_OPTIONS.PROJECT_ID%TYPE,
2723: P_SOURCE_BV_ID IN PA_BUDGET_VERSIONS.BUDGET_VERSION_ID%TYPE,
2724: P_TARGET_BV_ID IN PA_BUDGET_VERSIONS.BUDGET_VERSION_ID%TYPE,
2725: P_CALLING_CONTEXT IN VARCHAR2,
2726: P_ACTUALS_THRU_DATE IN PA_PERIODS_ALL.END_DATE%TYPE,
2736: lc_BudgetGeneration CONSTANT VARCHAR2(30) := 'BUDGET_GENERATION';
2737: lc_ForecastGeneration CONSTANT VARCHAR2(30) := 'FORECAST_GENERATION';
2738:
2739: /* Source Code constants */
2740: lc_WorkPlanSrcCode CONSTANT PA_PROJ_FP_OPTIONS.GEN_COST_SRC_CODE%TYPE
2741: := 'WORKPLAN_RESOURCES';
2742: lc_FinancialPlanSrcCode CONSTANT PA_PROJ_FP_OPTIONS.GEN_COST_SRC_CODE%TYPE
2743: := 'FINANCIAL_PLAN';
2744:
2738:
2739: /* Source Code constants */
2740: lc_WorkPlanSrcCode CONSTANT PA_PROJ_FP_OPTIONS.GEN_COST_SRC_CODE%TYPE
2741: := 'WORKPLAN_RESOURCES';
2742: lc_FinancialPlanSrcCode CONSTANT PA_PROJ_FP_OPTIONS.GEN_COST_SRC_CODE%TYPE
2743: := 'FINANCIAL_PLAN';
2744:
2745: /* Local copy of the Calling Context that will be checked instead of p_calling_context */
2746: l_calling_context VARCHAR2(30);
2945: * data with starting date after the forecast's actuals through period. */
2946: CURSOR fcst_budget_line_src_tgt
2947: (c_proj_currency_code PA_PROJECTS_ALL.PROJECT_CURRENCY_CODE%TYPE,
2948: c_projfunc_currency_code PA_PROJECTS_ALL.PROJECT_CURRENCY_CODE%TYPE,
2949: c_src_time_phased_code PA_PROJ_FP_OPTIONS.COST_TIME_PHASED_CODE%TYPE) IS
2950: SELECT /*+ INDEX(tmp4,PA_RES_LIST_MAP_TMP4_N2)*/
2951: ra.resource_assignment_id,
2952: ra.rate_based_flag,
2953: sbl.start_date,
3042:
3043: CURSOR fcst_budget_line_src_tgt_none
3044: (c_proj_currency_code PA_PROJECTS_ALL.PROJECT_CURRENCY_CODE%TYPE,
3045: c_projfunc_currency_code PA_PROJECTS_ALL.PROJECT_CURRENCY_CODE%TYPE,
3046: c_src_time_phased_code PA_PROJ_FP_OPTIONS.COST_TIME_PHASED_CODE%TYPE) IS
3047: SELECT /*+ INDEX(tmp4,PA_RES_LIST_MAP_TMP4_N2)*/
3048: ra.resource_assignment_id,
3049: ra.rate_based_flag,
3050: sbl.start_date,
3189: l_fp_cols_rec_source PA_FP_GEN_AMOUNT_UTILS.FP_COLS;
3190: l_fp_cols_rec_target PA_FP_GEN_AMOUNT_UTILS.FP_COLS;
3191:
3192: /* Variables for COMPARE_ETC_SRC_TARGET_FP_OPT API call */
3193: l_gen_src_code PA_PROJ_FP_OPTIONS.GEN_COST_SRC_CODE%TYPE;
3194: l_wp_src_plan_ver_id PA_BUDGET_VERSIONS.BUDGET_VERSION_ID%TYPE;
3195: l_fp_src_plan_ver_id PA_BUDGET_VERSIONS.BUDGET_VERSION_ID%TYPE;
3196: l_same_planning_options_flag VARCHAR2(1);
3197:
5599: /* Time-phase determines if budget lines have been populated by generation code */
5600: l_same_time_phase_flag VARCHAR2(1);
5601:
5602: /* Source Code constants */
5603: lc_WorkPlanSrcCode CONSTANT PA_PROJ_FP_OPTIONS.GEN_COST_SRC_CODE%TYPE
5604: := 'WORKPLAN_RESOURCES';
5605: lc_FinancialPlanSrcCode CONSTANT PA_PROJ_FP_OPTIONS.GEN_COST_SRC_CODE%TYPE
5606: := 'FINANCIAL_PLAN';
5607:
5601:
5602: /* Source Code constants */
5603: lc_WorkPlanSrcCode CONSTANT PA_PROJ_FP_OPTIONS.GEN_COST_SRC_CODE%TYPE
5604: := 'WORKPLAN_RESOURCES';
5605: lc_FinancialPlanSrcCode CONSTANT PA_PROJ_FP_OPTIONS.GEN_COST_SRC_CODE%TYPE
5606: := 'FINANCIAL_PLAN';
5607:
5608: /* String constants for valid Calling Context values */
5609: lc_BudgetGeneration CONSTANT VARCHAR2(30) := 'BUDGET_GENERATION';
5608: /* String constants for valid Calling Context values */
5609: lc_BudgetGeneration CONSTANT VARCHAR2(30) := 'BUDGET_GENERATION';
5610: lc_ForecastGeneration CONSTANT VARCHAR2(30) := 'FORECAST_GENERATION';
5611:
5612: l_gen_src_code PA_PROJ_FP_OPTIONS.GEN_COST_SRC_CODE%TYPE;
5613: l_source_version_type PA_BUDGET_VERSIONS.VERSION_TYPE%TYPE;
5614: l_target_version_type PA_BUDGET_VERSIONS.VERSION_TYPE%TYPE;
5615: l_rev_gen_method VARCHAR2(1);
5616: