DBA Data[Home] [Help]

APPS.PA_FP_WEBADI_PKG dependencies on PA_BUDGET_LINES

Line 1761: l_projfunc_cost_rate pa_budget_lines.projfunc_cost_exchange_rate%TYPE;

1757: l_etc_revenue NUMBER;
1758: l_quantity NUMBER;
1759: l_etc_quantity NUMBER;
1760:
1761: l_projfunc_cost_rate pa_budget_lines.projfunc_cost_exchange_rate%TYPE;
1762: l_projfunc_rev_rate pa_budget_lines.projfunc_rev_exchange_rate%TYPE;
1763: l_project_cost_rate pa_budget_lines.project_cost_exchange_rate%TYPE;
1764: l_project_rev_rate pa_budget_lines.project_rev_exchange_rate%TYPE;
1765:

Line 1762: l_projfunc_rev_rate pa_budget_lines.projfunc_rev_exchange_rate%TYPE;

1758: l_quantity NUMBER;
1759: l_etc_quantity NUMBER;
1760:
1761: l_projfunc_cost_rate pa_budget_lines.projfunc_cost_exchange_rate%TYPE;
1762: l_projfunc_rev_rate pa_budget_lines.projfunc_rev_exchange_rate%TYPE;
1763: l_project_cost_rate pa_budget_lines.project_cost_exchange_rate%TYPE;
1764: l_project_rev_rate pa_budget_lines.project_rev_exchange_rate%TYPE;
1765:
1766:

Line 1763: l_project_cost_rate pa_budget_lines.project_cost_exchange_rate%TYPE;

1759: l_etc_quantity NUMBER;
1760:
1761: l_projfunc_cost_rate pa_budget_lines.projfunc_cost_exchange_rate%TYPE;
1762: l_projfunc_rev_rate pa_budget_lines.projfunc_rev_exchange_rate%TYPE;
1763: l_project_cost_rate pa_budget_lines.project_cost_exchange_rate%TYPE;
1764: l_project_rev_rate pa_budget_lines.project_rev_exchange_rate%TYPE;
1765:
1766:
1767: -- variable to keep track of number of records inserted to the budget line record type

Line 1764: l_project_rev_rate pa_budget_lines.project_rev_exchange_rate%TYPE;

1760:
1761: l_projfunc_cost_rate pa_budget_lines.projfunc_cost_exchange_rate%TYPE;
1762: l_projfunc_rev_rate pa_budget_lines.projfunc_rev_exchange_rate%TYPE;
1763: l_project_cost_rate pa_budget_lines.project_cost_exchange_rate%TYPE;
1764: l_project_rev_rate pa_budget_lines.project_rev_exchange_rate%TYPE;
1765:
1766:
1767: -- variable to keep track of number of records inserted to the budget line record type
1768: bl_count INTEGER := 1;

Line 1808: l_projfunc_cost_exchange_rate pa_budget_lines.projfunc_cost_exchange_rate%TYPE ;

1804:
1805: l_projfunc_cost_rate_type pa_proj_fp_options.projfunc_cost_rate_type%TYPE ;
1806: l_projfunc_cost_rate_date_type pa_proj_fp_options.projfunc_cost_rate_date_type%TYPE;
1807: l_projfunc_cost_rate_date pa_proj_fp_options.projfunc_cost_rate_date%TYPE ;
1808: l_projfunc_cost_exchange_rate pa_budget_lines.projfunc_cost_exchange_rate%TYPE ;
1809: l_projfunc_rev_rate_type pa_proj_fp_options.projfunc_rev_rate_type%TYPE ;
1810: l_projfunc_rev_rate_date_type pa_proj_fp_options.projfunc_rev_rate_date_type%TYPE ;
1811: l_projfunc_rev_rate_date pa_proj_fp_options.projfunc_rev_rate_date%TYPE ;
1812: l_projfunc_rev_exchange_rate pa_budget_lines.projfunc_rev_exchange_rate%TYPE ;

Line 1812: l_projfunc_rev_exchange_rate pa_budget_lines.projfunc_rev_exchange_rate%TYPE ;

1808: l_projfunc_cost_exchange_rate pa_budget_lines.projfunc_cost_exchange_rate%TYPE ;
1809: l_projfunc_rev_rate_type pa_proj_fp_options.projfunc_rev_rate_type%TYPE ;
1810: l_projfunc_rev_rate_date_type pa_proj_fp_options.projfunc_rev_rate_date_type%TYPE ;
1811: l_projfunc_rev_rate_date pa_proj_fp_options.projfunc_rev_rate_date%TYPE ;
1812: l_projfunc_rev_exchange_rate pa_budget_lines.projfunc_rev_exchange_rate%TYPE ;
1813: l_project_cost_rate_type pa_proj_fp_options.project_cost_rate_type%TYPE ;
1814: l_project_cost_rate_date_type pa_proj_fp_options.project_cost_rate_date_type%TYPE ;
1815: l_project_cost_rate_date pa_proj_fp_options.project_cost_rate_date%TYPE ;
1816: l_project_cost_exchange_rate pa_budget_lines.project_cost_exchange_rate%TYPE ;

Line 1816: l_project_cost_exchange_rate pa_budget_lines.project_cost_exchange_rate%TYPE ;

1812: l_projfunc_rev_exchange_rate pa_budget_lines.projfunc_rev_exchange_rate%TYPE ;
1813: l_project_cost_rate_type pa_proj_fp_options.project_cost_rate_type%TYPE ;
1814: l_project_cost_rate_date_type pa_proj_fp_options.project_cost_rate_date_type%TYPE ;
1815: l_project_cost_rate_date pa_proj_fp_options.project_cost_rate_date%TYPE ;
1816: l_project_cost_exchange_rate pa_budget_lines.project_cost_exchange_rate%TYPE ;
1817: l_project_rev_rate_type pa_proj_fp_options.project_rev_rate_type%TYPE ;
1818: l_project_rev_rate_date_type pa_proj_fp_options.project_rev_rate_date_type%TYPE ;
1819: l_project_rev_rate_date pa_proj_fp_options.project_rev_rate_date%TYPE ;
1820: l_project_rev_exchange_rate pa_budget_lines.project_rev_exchange_rate%TYPE ;

Line 1820: l_project_rev_exchange_rate pa_budget_lines.project_rev_exchange_rate%TYPE ;

1816: l_project_cost_exchange_rate pa_budget_lines.project_cost_exchange_rate%TYPE ;
1817: l_project_rev_rate_type pa_proj_fp_options.project_rev_rate_type%TYPE ;
1818: l_project_rev_rate_date_type pa_proj_fp_options.project_rev_rate_date_type%TYPE ;
1819: l_project_rev_rate_date pa_proj_fp_options.project_rev_rate_date%TYPE ;
1820: l_project_rev_exchange_rate pa_budget_lines.project_rev_exchange_rate%TYPE ;
1821: l_change_reason_code pa_budget_lines.change_reason_code%TYPE ;
1822:
1823: l_rc_rate NUMBER;
1824: l_bc_rate NUMBER;

Line 1821: l_change_reason_code pa_budget_lines.change_reason_code%TYPE ;

1817: l_project_rev_rate_type pa_proj_fp_options.project_rev_rate_type%TYPE ;
1818: l_project_rev_rate_date_type pa_proj_fp_options.project_rev_rate_date_type%TYPE ;
1819: l_project_rev_rate_date pa_proj_fp_options.project_rev_rate_date%TYPE ;
1820: l_project_rev_exchange_rate pa_budget_lines.project_rev_exchange_rate%TYPE ;
1821: l_change_reason_code pa_budget_lines.change_reason_code%TYPE ;
1822:
1823: l_rc_rate NUMBER;
1824: l_bc_rate NUMBER;
1825: l_bill_rate NUMBER;

Line 6072: p_txn_currency_code IN pa_budget_lines.txn_currency_code%TYPE,

6068: (p_project_id IN pa_projects_all.project_id%TYPE,
6069: p_budget_version_id IN pa_budget_versions.budget_version_id%TYPE,
6070: p_task_id IN pa_tasks.task_id%TYPE,
6071: p_resource_list_member_id IN pa_resource_list_members.resource_list_member_id%TYPE,
6072: p_txn_currency_code IN pa_budget_lines.txn_currency_code%TYPE,
6073: p_line_start_date IN DATE,
6074: p_line_end_date IN DATE,
6075: p_prd_mask_st_date_tbl IN SYSTEM.pa_date_tbl_type,
6076: p_prd_mask_end_date_tbl IN SYSTEM.pa_date_tbl_type,

Line 6299: FROM pa_budget_lines pbl,

6295: l_etc_burd_cost_tbl,
6296: l_fcst_revenue_tbl,
6297: l_etc_revenue_tbl,
6298: l_txn_currency_code_tbl
6299: FROM pa_budget_lines pbl,
6300: pa_resource_assignments pra
6301: WHERE pra.budget_version_id=p_budget_version_id
6302: AND pra.project_id=p_project_id
6303: AND pra.task_id=p_task_id

Line 6352: FROM pa_budget_lines pbl,

6348: l_etc_revenue_tbl,
6349: l_txn_currency_code_tbl,
6350: l_start_date_tbl,
6351: l_end_date_tbl
6352: FROM pa_budget_lines pbl,
6353: pa_resource_assignments pra
6354: WHERE pra.budget_version_id=p_budget_version_id
6355: AND pra.project_id=p_project_id
6356: AND pra.task_id=p_task_id

Line 6761: l_prev_txn_curr_code pa_budget_lines.txn_currency_code%TYPE;

6757:
6758: --Variable used in processing
6759: l_prev_task_id NUMBER;
6760: l_prev_rlm_id NUMBER;
6761: l_prev_txn_curr_code pa_budget_lines.txn_currency_code%TYPE;
6762: l_bl_index NUMBER;
6763: l_st_index_in_prd_mask NUMBER;
6764: l_end_index_in_prd_mask NUMBER;
6765: l_sd_prd_exists_flag VARCHAR2(1);

Line 8824: -- Deleting records from pa_budget_lines, for the records with delete_flag as Y

8820: END LOOP;
8821: --log1('PBL 6 '||to_char(sysdate,'DD-MON-YYYY HH24:MI:SS'));
8822: --log1('PBL 7 '||to_char(sysdate,'DD-MON-YYYY HH24:MI:SS'));
8823:
8824: -- Deleting records from pa_budget_lines, for the records with delete_flag as Y
8825: -- and if it is non periodic layout
8826: -- Bug 4424457. Moved the delete statement before calculate. This is done for the following reason
8827: ----Consider a case where RA has currencies C1 and C2 and delete flag is marked for C1. If calculate API
8828: ----changes C2 to C1 and if delete is executed for RA and C1 after call to calculate API then amounts

Line 8834: pa_debug.g_err_stage := 'Deleting from pa_budget_lines for the records with delete_flag = Y';

8830: IF p_context = 'WEBADI_NON_PERIODIC' THEN
8831: -- checking if there is any reord with delete_flag = Y
8832: IF l_df_ra_id_tbl.COUNT > 0 THEN
8833: IF l_debug_mode = 'Y' THEN
8834: pa_debug.g_err_stage := 'Deleting from pa_budget_lines for the records with delete_flag = Y';
8835: pa_debug.write(l_module_name,pa_debug.g_err_stage,l_debug_level3);
8836: END IF;
8837: --log1('PBL 11 '||to_char(sysdate,'DD-MON-YYYY HH24:MI:SS'));
8838:

Line 8967: FROM pa_budget_lines pbl

8963: l_bl_del_flag_r_rej_code_tbl(i),
8964: l_bl_del_flag_o_rej_code_tbl(i),
8965: l_bl_del_fg_pc_cnv_rej_cd_tbl(i),
8966: l_bl_del_fg_pf_cnv_rej_cd_tbl(i)
8967: FROM pa_budget_lines pbl
8968: WHERE pbl.resource_assignment_id = l_df_ra_id_tbl(i)
8969: AND pbl.txn_currency_code = l_df_txn_currency_code_tbl(i);
8970: END LOOP;
8971:

Line 8973: from pa_budget_lines and from new entity when delete flag is set as 'Y' in Excel for a

8969: AND pbl.txn_currency_code = l_df_txn_currency_code_tbl(i);
8970: END LOOP;
8971:
8972: /*Bug 5144013: Calling delete_planning_transactions api to delete the planning transaction
8973: from pa_budget_lines and from new entity when delete flag is set as 'Y' in Excel for a
8974: planning transaction. This is done as part of merging the MRUP3 changes done in 11i into R12.
8975: */
8976: IF l_debug_mode = 'Y' THEN
8977: pa_debug.g_err_stage := 'Before Calling pa_fp_planning_transaction_pub.delete_planning_transactions';

Line 9002: pa_debug.g_err_stage := l_bl_del_flag_ra_id_tbl.COUNT || ' records deleted from pa_budget_lines';

8998: END IF;
8999:
9000: IF l_bl_del_flag_ra_id_tbl.COUNT > 0 THEN
9001: IF l_debug_mode = 'Y' THEN
9002: pa_debug.g_err_stage := l_bl_del_flag_ra_id_tbl.COUNT || ' records deleted from pa_budget_lines';
9003: pa_debug.write(l_module_name,pa_debug.g_err_stage,l_debug_level3);
9004: pa_debug.g_err_stage := 'Inserting these records into pa_fp_rollup_tmp';
9005: pa_debug.write(l_module_name,pa_debug.g_err_stage,l_debug_level3);
9006: END IF;

Line 9118: -- Deleting records from pa_budget_lines, for the records with delete_flag as Y

9114: END;
9115:
9116: END IF; -- if there are data in input tables prepared
9117:
9118: -- Deleting records from pa_budget_lines, for the records with delete_flag as Y
9119: -- and if it is non periodic layout
9120: IF p_context = 'WEBADI_NON_PERIODIC' THEN
9121: -- checking if there is any reord with delete_flag = Y
9122: IF l_df_ra_id_tbl.COUNT > 0 THEN

Line 9126: pa_debug.g_err_stage := l_bl_del_flag_ra_id_tbl.COUNT || ' records deleted from pa_budget_lines';

9122: IF l_df_ra_id_tbl.COUNT > 0 THEN
9123: --log1('PBL 12 '||to_char(sysdate,'DD-MON-YYYY HH24:MI:SS'));
9124: IF l_bl_del_flag_ra_id_tbl.COUNT > 0 THEN
9125: IF l_debug_mode = 'Y' THEN
9126: pa_debug.g_err_stage := l_bl_del_flag_ra_id_tbl.COUNT || ' records deleted from pa_budget_lines';
9127: pa_debug.write(l_module_name,pa_debug.g_err_stage,l_debug_level3);
9128: pa_debug.g_err_stage := 'Inserting these records into pa_fp_rollup_tmp';
9129: pa_debug.write(l_module_name,pa_debug.g_err_stage,l_debug_level3);
9130: END IF;

Line 9227: -- no records deleted from pa_budget_lines

9223: pa_debug.g_err_stage := 'records inserted into pa_fp_rollup_tmp';
9224: pa_debug.write(l_module_name,pa_debug.g_err_stage,l_debug_level3);
9225: END IF;
9226: ELSE
9227: -- no records deleted from pa_budget_lines
9228: IF l_debug_mode = 'Y' THEN
9229: pa_debug.g_err_stage := 'No records deleted from pa_budget_lines';
9230: pa_debug.write(l_module_name,pa_debug.g_err_stage,l_debug_level3);
9231: END IF;

Line 9229: pa_debug.g_err_stage := 'No records deleted from pa_budget_lines';

9225: END IF;
9226: ELSE
9227: -- no records deleted from pa_budget_lines
9228: IF l_debug_mode = 'Y' THEN
9229: pa_debug.g_err_stage := 'No records deleted from pa_budget_lines';
9230: pa_debug.write(l_module_name,pa_debug.g_err_stage,l_debug_level3);
9231: END IF;
9232: END IF;
9233: END IF; -- records with delete_flag

Line 9316: pa_debug.g_err_stage:='Updating pa_budget_lines with change reason code, desc and conv attr';

9312:
9313: END IF; -- p_context = WEBADI_NON_PERIODIC
9314:
9315: IF l_debug_mode = 'Y' THEN
9316: pa_debug.g_err_stage:='Updating pa_budget_lines with change reason code, desc and conv attr';
9317: pa_debug.write(l_module_name,pa_debug.g_err_stage, l_debug_level3);
9318: END IF;
9319:
9320: -- updating conversion attributes if the version is enabled for multi currency

Line 9321: -- Bug 4424457 : In all the below updates replaced pa_budget_lines with pa_fp_rollup_tmp. These

9317: pa_debug.write(l_module_name,pa_debug.g_err_stage, l_debug_level3);
9318: END IF;
9319:
9320: -- updating conversion attributes if the version is enabled for multi currency
9321: -- Bug 4424457 : In all the below updates replaced pa_budget_lines with pa_fp_rollup_tmp. These
9322: -- attributes will be finally stamped back in pa_budget_lines after MC conversion
9323: IF p_version_info_rec.x_plan_in_multi_curr_flag = 'Y' AND
9324: p_context = 'WEBADI_PERIODIC' THEN
9325: IF l_ra_id_tbl.COUNT > 0 AND

Line 9322: -- attributes will be finally stamped back in pa_budget_lines after MC conversion

9318: END IF;
9319:
9320: -- updating conversion attributes if the version is enabled for multi currency
9321: -- Bug 4424457 : In all the below updates replaced pa_budget_lines with pa_fp_rollup_tmp. These
9322: -- attributes will be finally stamped back in pa_budget_lines after MC conversion
9323: IF p_version_info_rec.x_plan_in_multi_curr_flag = 'Y' AND
9324: p_context = 'WEBADI_PERIODIC' THEN
9325: IF l_ra_id_tbl.COUNT > 0 AND
9326: l_bls_proccessed_flag ='Y' THEN

Line 9437: pa_debug.g_err_stage:='pa_budget_lines updated with change reason code, desc and conv attr';

9433: END IF; -- there are records in local ra tbl
9434: END IF; -- end of update
9435:
9436: IF l_debug_mode = 'Y' THEN
9437: pa_debug.g_err_stage:='pa_budget_lines updated with change reason code, desc and conv attr';
9438: pa_debug.write(l_module_name,pa_debug.g_err_stage, l_debug_level3);
9439: END IF;
9440:
9441:

Line 9485: --pa_budget_lines

9481: --already exiss for the same RA. This might get resolved with the MRC API changes. Till then this should
9482: --be taken care
9483: --Previously PJI plan_update was called and hence the required input was collected in _pji_ tbls. Now
9484: --plan_delete and plan_create are called. But the _pji_ tbls are still retained for update on
9485: --pa_budget_lines
9486:
9487: SELECT rlp.resource_assignment_id,
9488: max(rlp.period_name),
9489: rlp.start_date,

Line 9687: UPDATE pa_budget_lines pbl

9683:
9684:
9685:
9686: FORALL i IN l_pji_res_ass_id_tbl.FIRST .. l_pji_res_ass_id_tbl.LAST
9687: UPDATE pa_budget_lines pbl
9688: SET pbl.project_raw_cost = decode(l_extra_bl_flag_tbl(i),'Y',pbl.project_raw_cost,'N',l_pji_project_raw_cost_tbl(i)),
9689: pbl.project_burdened_cost = decode(l_extra_bl_flag_tbl(i),'Y',pbl.project_burdened_cost,'N',l_pji_project_burd_cost_tbl(i)),
9690: pbl.project_revenue = decode(l_extra_bl_flag_tbl(i),'Y',pbl.project_revenue,'N',l_pji_project_revenue_tbl(i)),
9691: pbl.raw_cost = decode(l_extra_bl_flag_tbl(i),'Y',pbl.raw_cost,'N',l_pji_raw_cost_tbl(i)),

Line 9752: UPDATE pa_budget_lines pbl

9748: --with duplicates are already taken care of in calculate API
9749: -- IF l_pji_res_ass_id_tbl.COUNT > 0 THEN
9750: IF p_context <> 'WEBADI_NON_PERIODIC' THEN
9751: FORALL i IN l_upd_budget_line_id_tbl.FIRST .. l_upd_budget_line_id_tbl.LAST
9752: UPDATE pa_budget_lines pbl
9753: SET pbl.project_raw_cost = l_pji_project_raw_cost_tbl(i),
9754: pbl.project_burdened_cost = l_pji_project_burd_cost_tbl(i),
9755: pbl.project_revenue = l_pji_project_revenue_tbl(i),
9756: pbl.raw_cost = l_pji_raw_cost_tbl(i),

Line 9804: /* Start of fix for Bug : 5144013.Call is made to the api PA_BUDGET_LINES_UTILS.populate_display_qty

9800: AND (l_upd_delete_flag_tbl(i) IS NULL OR
9801: l_upd_delete_flag_tbl(i) <> 'Y');
9802: END IF;
9803:
9804: /* Start of fix for Bug : 5144013.Call is made to the api PA_BUDGET_LINES_UTILS.populate_display_qty
9805: to populate the display_quantity in pa_budget_lines. This is done as part of merging the MRUP3
9806: changes done in 11i into R12.
9807: */
9808: IF l_debug_mode = 'Y' THEN

Line 9805: to populate the display_quantity in pa_budget_lines. This is done as part of merging the MRUP3

9801: l_upd_delete_flag_tbl(i) <> 'Y');
9802: END IF;
9803:
9804: /* Start of fix for Bug : 5144013.Call is made to the api PA_BUDGET_LINES_UTILS.populate_display_qty
9805: to populate the display_quantity in pa_budget_lines. This is done as part of merging the MRUP3
9806: changes done in 11i into R12.
9807: */
9808: IF l_debug_mode = 'Y' THEN
9809: pa_debug.g_err_stage := 'Before calling Populate Display Qty api';

Line 9812: PA_BUDGET_LINES_UTILS.populate_display_qty

9808: IF l_debug_mode = 'Y' THEN
9809: pa_debug.g_err_stage := 'Before calling Populate Display Qty api';
9810: pa_debug.write(l_module_name,pa_debug.g_err_stage,l_debug_level3);
9811: END IF;
9812: PA_BUDGET_LINES_UTILS.populate_display_qty
9813: ( p_budget_version_id => p_budget_version_id
9814: ,p_context => 'FINANCIAL'
9815: ,x_return_status => x_return_status);
9816: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN

Line 9818: pa_debug.g_err_stage := 'The API PA_BUDGET_LINES_UTILS.populate_display_qty returned error';

9814: ,p_context => 'FINANCIAL'
9815: ,x_return_status => x_return_status);
9816: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9817: IF l_debug_mode = 'Y' THEN
9818: pa_debug.g_err_stage := 'The API PA_BUDGET_LINES_UTILS.populate_display_qty returned error';
9819: pa_debug.write(l_module_name,pa_debug.g_err_stage,5);
9820: END IF;
9821: RAISE PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc;
9822: END IF;

Line 12001: CURSOR txn_curr_cur(c_budget_version_id pa_budget_lines.budget_version_id%TYPE,

11997: */
11998: /* Start of code changes for bug 5330532*/
11999: --Cursor created for fetching transaction currencies.
12000: /* --Bug 5144013.
12001: CURSOR txn_curr_cur(c_budget_version_id pa_budget_lines.budget_version_id%TYPE,
12002: c_ra_id pa_budget_lines.resource_assignment_id%TYPE)
12003: IS
12004: SELECT DISTINCT(txn_currency_code)
12005: FROM pa_budget_lines pbl

Line 12002: c_ra_id pa_budget_lines.resource_assignment_id%TYPE)

11998: /* Start of code changes for bug 5330532*/
11999: --Cursor created for fetching transaction currencies.
12000: /* --Bug 5144013.
12001: CURSOR txn_curr_cur(c_budget_version_id pa_budget_lines.budget_version_id%TYPE,
12002: c_ra_id pa_budget_lines.resource_assignment_id%TYPE)
12003: IS
12004: SELECT DISTINCT(txn_currency_code)
12005: FROM pa_budget_lines pbl
12006: WHERE pbl.budget_version_id = c_budget_version_id

Line 12005: FROM pa_budget_lines pbl

12001: CURSOR txn_curr_cur(c_budget_version_id pa_budget_lines.budget_version_id%TYPE,
12002: c_ra_id pa_budget_lines.resource_assignment_id%TYPE)
12003: IS
12004: SELECT DISTINCT(txn_currency_code)
12005: FROM pa_budget_lines pbl
12006: WHERE pbl.budget_version_id = c_budget_version_id
12007: AND pbl.resource_assignment_id = c_ra_id;
12008: --PL/SQL table created based on txn_curr_cur.
12009: TYPE txn_curr_tbl IS TABLE OF txn_curr_cur%ROWTYPE;

Line 12404: FROM pa_budget_lines pbl,

12400: pftc.project_rev_exchange_rate,
12401: pftc.projfunc_cost_exchange_rate,
12402: pftc.projfunc_rev_exchange_rate
12403: BULK COLLECT INTO l_txn_curr_tbl
12404: FROM pa_budget_lines pbl,
12405: pa_fp_txn_currencies pftc
12406: WHERE pbl.budget_version_id = l_budget_version_id
12407: AND pftc.fin_plan_version_id = l_budget_version_id
12408: AND pftc.proj_fp_options_id = l_proj_fp_options_id