DBA Data[Home] [Help]

APPS.PA_FP_WEBADI_PKG dependencies on PA_BUDGET_LINES

Line 1763: l_projfunc_cost_rate pa_budget_lines.projfunc_cost_exchange_rate%TYPE;

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

Line 1764: l_projfunc_rev_rate pa_budget_lines.projfunc_rev_exchange_rate%TYPE;

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

Line 1765: l_project_cost_rate pa_budget_lines.project_cost_exchange_rate%TYPE;

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

Line 1766: l_project_rev_rate pa_budget_lines.project_rev_exchange_rate%TYPE;

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

Line 1810: l_projfunc_cost_exchange_rate pa_budget_lines.projfunc_cost_exchange_rate%TYPE ;

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

Line 1814: l_projfunc_rev_exchange_rate pa_budget_lines.projfunc_rev_exchange_rate%TYPE ;

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

Line 1818: l_project_cost_exchange_rate pa_budget_lines.project_cost_exchange_rate%TYPE ;

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

Line 1822: l_project_rev_exchange_rate pa_budget_lines.project_rev_exchange_rate%TYPE ;

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

Line 1823: l_change_reason_code pa_budget_lines.change_reason_code%TYPE ;

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

Line 6166: p_txn_currency_code IN pa_budget_lines.txn_currency_code%TYPE,

6162: p_budget_version_id IN pa_budget_versions.budget_version_id%TYPE,
6163: p_task_id IN pa_tasks.task_id%TYPE,
6164: p_resource_list_member_id IN pa_resource_list_members.resource_list_member_id%TYPE,
6165: p_cbs_element_id IN pa_resource_assignments.cbs_element_id%TYPE, -- cbs enhancement changes bug#16445106
6166: p_txn_currency_code IN pa_budget_lines.txn_currency_code%TYPE,
6167: p_line_start_date IN DATE,
6168: p_line_end_date IN DATE,
6169: p_prd_mask_st_date_tbl IN SYSTEM.pa_date_tbl_type,
6170: p_prd_mask_end_date_tbl IN SYSTEM.pa_date_tbl_type,

Line 6404: FROM pa_budget_lines pbl,

6400: l_etc_burd_cost_tbl,
6401: l_fcst_revenue_tbl,
6402: l_etc_revenue_tbl,
6403: l_txn_currency_code_tbl
6404: FROM pa_budget_lines pbl,
6405: pa_resource_assignments pra
6406: WHERE pra.budget_version_id=p_budget_version_id
6407: AND pra.project_id=p_project_id
6408: AND pra.task_id=p_task_id

Line 6458: FROM pa_budget_lines pbl,

6454: l_etc_revenue_tbl,
6455: l_txn_currency_code_tbl,
6456: l_start_date_tbl,
6457: l_end_date_tbl
6458: FROM pa_budget_lines pbl,
6459: pa_resource_assignments pra
6460: WHERE pra.budget_version_id=p_budget_version_id
6461: AND pra.project_id=p_project_id
6462: AND pra.task_id=p_task_id

Line 6871: l_prev_txn_curr_code pa_budget_lines.txn_currency_code%TYPE;

6867: --Variable used in processing
6868: l_prev_task_id NUMBER;
6869: l_prev_rlm_id NUMBER;
6870: l_prev_cbs_element_id NUMBER;-- cbs enhancement changes bug#16445106
6871: l_prev_txn_curr_code pa_budget_lines.txn_currency_code%TYPE;
6872: l_bl_index NUMBER;
6873: l_st_index_in_prd_mask NUMBER;
6874: l_end_index_in_prd_mask NUMBER;
6875: l_sd_prd_exists_flag VARCHAR2(1);

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

8987: END LOOP;
8988: --log1('PBL 6 '||to_char(sysdate,'DD-MON-YYYY HH24:MI:SS'));
8989: --log1('PBL 7 '||to_char(sysdate,'DD-MON-YYYY HH24:MI:SS'));
8990:
8991: -- Deleting records from pa_budget_lines, for the records with delete_flag as Y
8992: -- and if it is non periodic layout
8993: -- Bug 4424457. Moved the delete statement before calculate. This is done for the following reason
8994: ----Consider a case where RA has currencies C1 and C2 and delete flag is marked for C1. If calculate API
8995: ----changes C2 to C1 and if delete is executed for RA and C1 after call to calculate API then amounts

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

8997: IF p_context = 'WEBADI_NON_PERIODIC' THEN
8998: -- checking if there is any reord with delete_flag = Y
8999: IF l_df_ra_id_tbl.COUNT > 0 THEN
9000: IF l_debug_mode = 'Y' THEN
9001: pa_debug.g_err_stage := 'Deleting from pa_budget_lines for the records with delete_flag = Y';
9002: pa_debug.write(l_module_name,pa_debug.g_err_stage,l_debug_level3);
9003: END IF;
9004: --log1('PBL 11 '||to_char(sysdate,'DD-MON-YYYY HH24:MI:SS'));
9005:

Line 9135: FROM pa_budget_lines pbl

9131: l_bl_del_flag_r_rej_code_tbl(i),
9132: l_bl_del_flag_o_rej_code_tbl(i),
9133: l_bl_del_fg_pc_cnv_rej_cd_tbl(i),
9134: l_bl_del_fg_pf_cnv_rej_cd_tbl(i)
9135: FROM pa_budget_lines pbl
9136: WHERE pbl.resource_assignment_id = l_df_ra_id_tbl(i)
9137: AND pbl.txn_currency_code = l_df_txn_currency_code_tbl(i);
9138: END LOOP;
9139: */

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

9137: AND pbl.txn_currency_code = l_df_txn_currency_code_tbl(i);
9138: END LOOP;
9139: */
9140: /*Bug 5144013: Calling delete_planning_transactions api to delete the planning transaction
9141: from pa_budget_lines and from new entity when delete flag is set as 'Y' in Excel for a
9142: planning transaction. This is done as part of merging the MRUP3 changes done in 11i into R12.
9143: */
9144: IF l_debug_mode = 'Y' THEN
9145: pa_debug.g_err_stage := 'Before Calling pa_fp_planning_transaction_pub.delete_planning_transactions';

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

9166: END IF;
9167:
9168: IF l_bl_del_flag_ra_id_tbl.COUNT > 0 THEN
9169: IF l_debug_mode = 'Y' THEN
9170: pa_debug.g_err_stage := l_bl_del_flag_ra_id_tbl.COUNT || ' records deleted from pa_budget_lines';
9171: pa_debug.write(l_module_name,pa_debug.g_err_stage,l_debug_level3);
9172: pa_debug.g_err_stage := 'Inserting these records into pa_fp_rollup_tmp';
9173: pa_debug.write(l_module_name,pa_debug.g_err_stage,l_debug_level3);
9174: END IF;

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

9282: END;
9283:
9284: END IF; -- if there are data in input tables prepared
9285:
9286: -- Deleting records from pa_budget_lines, for the records with delete_flag as Y
9287: -- and if it is non periodic layout
9288: IF p_context = 'WEBADI_NON_PERIODIC' THEN
9289: -- checking if there is any reord with delete_flag = Y
9290: IF l_df_ra_id_tbl.COUNT > 0 THEN

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

9290: IF l_df_ra_id_tbl.COUNT > 0 THEN
9291: --log1('PBL 12 '||to_char(sysdate,'DD-MON-YYYY HH24:MI:SS'));
9292: IF l_bl_del_flag_ra_id_tbl.COUNT > 0 THEN
9293: IF l_debug_mode = 'Y' THEN
9294: pa_debug.g_err_stage := l_bl_del_flag_ra_id_tbl.COUNT || ' records deleted from pa_budget_lines';
9295: pa_debug.write(l_module_name,pa_debug.g_err_stage,l_debug_level3);
9296: pa_debug.g_err_stage := 'Inserting these records into pa_fp_rollup_tmp';
9297: pa_debug.write(l_module_name,pa_debug.g_err_stage,l_debug_level3);
9298: END IF;

Line 9397: -- no records deleted from pa_budget_lines

9393: pa_debug.write(l_module_name,pa_debug.g_err_stage,l_debug_level3);
9394: END IF;
9395: */
9396: ELSE
9397: -- no records deleted from pa_budget_lines
9398: IF l_debug_mode = 'Y' THEN
9399: pa_debug.g_err_stage := 'No records deleted from pa_budget_lines';
9400: pa_debug.write(l_module_name,pa_debug.g_err_stage,l_debug_level3);
9401: END IF;

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

9395: */
9396: ELSE
9397: -- no records deleted from pa_budget_lines
9398: IF l_debug_mode = 'Y' THEN
9399: pa_debug.g_err_stage := 'No records deleted from pa_budget_lines';
9400: pa_debug.write(l_module_name,pa_debug.g_err_stage,l_debug_level3);
9401: END IF;
9402: END IF;
9403: END IF; -- records with delete_flag

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

9483:
9484: END IF; -- p_context = WEBADI_NON_PERIODIC
9485:
9486: IF l_debug_mode = 'Y' THEN
9487: pa_debug.g_err_stage:='Updating pa_budget_lines with change reason code, desc and conv attr';
9488: pa_debug.write(l_module_name,pa_debug.g_err_stage, l_debug_level3);
9489: END IF;
9490:
9491: -- updating conversion attributes if the version is enabled for multi currency

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

9488: pa_debug.write(l_module_name,pa_debug.g_err_stage, l_debug_level3);
9489: END IF;
9490:
9491: -- updating conversion attributes if the version is enabled for multi currency
9492: -- Bug 4424457 : In all the below updates replaced pa_budget_lines with pa_fp_rollup_tmp. These
9493: -- attributes will be finally stamped back in pa_budget_lines after MC conversion
9494: IF p_version_info_rec.x_plan_in_multi_curr_flag = 'Y' AND
9495: p_context = 'WEBADI_PERIODIC' THEN
9496: IF l_ra_id_tbl.COUNT > 0 AND

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

9489: END IF;
9490:
9491: -- updating conversion attributes if the version is enabled for multi currency
9492: -- Bug 4424457 : In all the below updates replaced pa_budget_lines with pa_fp_rollup_tmp. These
9493: -- attributes will be finally stamped back in pa_budget_lines after MC conversion
9494: IF p_version_info_rec.x_plan_in_multi_curr_flag = 'Y' AND
9495: p_context = 'WEBADI_PERIODIC' THEN
9496: IF l_ra_id_tbl.COUNT > 0 AND
9497: l_bls_proccessed_flag ='Y' THEN

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

9604: END IF; -- there are records in local ra tbl
9605: END IF; -- end of update
9606:
9607: IF l_debug_mode = 'Y' THEN
9608: pa_debug.g_err_stage:='pa_budget_lines updated with change reason code, desc and conv attr';
9609: pa_debug.write(l_module_name,pa_debug.g_err_stage, l_debug_level3);
9610: END IF;
9611:
9612:

Line 9656: --pa_budget_lines

9652: --already exiss for the same RA. This might get resolved with the MRC API changes. Till then this should
9653: --be taken care
9654: --Previously PJI plan_update was called and hence the required input was collected in _pji_ tbls. Now
9655: --plan_delete and plan_create are called. But the _pji_ tbls are still retained for update on
9656: --pa_budget_lines
9657:
9658: SELECT rlp.resource_assignment_id,
9659: max(rlp.period_name),
9660: rlp.start_date,

Line 9863: UPDATE pa_budget_lines pbl

9859:
9860:
9861:
9862: FORALL i IN l_pji_res_ass_id_tbl.FIRST .. l_pji_res_ass_id_tbl.LAST
9863: UPDATE pa_budget_lines pbl
9864: 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)),
9865: pbl.project_burdened_cost = decode(l_extra_bl_flag_tbl(i),'Y',pbl.project_burdened_cost,'N',l_pji_project_burd_cost_tbl(i)),
9866: pbl.project_revenue = decode(l_extra_bl_flag_tbl(i),'Y',pbl.project_revenue,'N',l_pji_project_revenue_tbl(i)),
9867: pbl.raw_cost = decode(l_extra_bl_flag_tbl(i),'Y',pbl.raw_cost,'N',l_pji_raw_cost_tbl(i)),

Line 9930: UPDATE pa_budget_lines pbl

9926: -- Changes done for bug 7184576
9927: -- IF p_context <> 'WEBADI_NON_PERIODIC' THEN
9928: IF p_version_info_rec.x_time_phased_code <> 'N' THEN
9929: FORALL i IN l_upd_budget_line_id_tbl.FIRST .. l_upd_budget_line_id_tbl.LAST
9930: UPDATE pa_budget_lines pbl
9931: SET pbl.project_raw_cost = l_pji_project_raw_cost_tbl(i),
9932: pbl.project_burdened_cost = l_pji_project_burd_cost_tbl(i),
9933: pbl.project_revenue = l_pji_project_revenue_tbl(i),
9934: pbl.raw_cost = l_pji_raw_cost_tbl(i),

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

9978: AND (l_upd_delete_flag_tbl(i) IS NULL OR
9979: l_upd_delete_flag_tbl(i) <> 'Y');
9980: END IF;
9981:
9982: /* Start of fix for Bug : 5144013.Call is made to the api PA_BUDGET_LINES_UTILS.populate_display_qty
9983: to populate the display_quantity in pa_budget_lines. This is done as part of merging the MRUP3
9984: changes done in 11i into R12.
9985: */
9986: IF l_debug_mode = 'Y' THEN

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

9979: l_upd_delete_flag_tbl(i) <> 'Y');
9980: END IF;
9981:
9982: /* Start of fix for Bug : 5144013.Call is made to the api PA_BUDGET_LINES_UTILS.populate_display_qty
9983: to populate the display_quantity in pa_budget_lines. This is done as part of merging the MRUP3
9984: changes done in 11i into R12.
9985: */
9986: IF l_debug_mode = 'Y' THEN
9987: pa_debug.g_err_stage := 'Before calling Populate Display Qty api';

Line 9990: PA_BUDGET_LINES_UTILS.populate_display_qty

9986: IF l_debug_mode = 'Y' THEN
9987: pa_debug.g_err_stage := 'Before calling Populate Display Qty api';
9988: pa_debug.write(l_module_name,pa_debug.g_err_stage,l_debug_level3);
9989: END IF;
9990: PA_BUDGET_LINES_UTILS.populate_display_qty
9991: ( p_budget_version_id => p_budget_version_id
9992: ,p_context => 'FINANCIAL'
9993: ,x_return_status => x_return_status);
9994: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN

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

9992: ,p_context => 'FINANCIAL'
9993: ,x_return_status => x_return_status);
9994: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9995: IF l_debug_mode = 'Y' THEN
9996: pa_debug.g_err_stage := 'The API PA_BUDGET_LINES_UTILS.populate_display_qty returned error';
9997: pa_debug.write(l_module_name,pa_debug.g_err_stage,5);
9998: END IF;
9999: RAISE PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc;
10000: END IF;

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

12230: */
12231: /* Start of code changes for bug 5330532*/
12232: --Cursor created for fetching transaction currencies.
12233: /* --Bug 5144013.
12234: CURSOR txn_curr_cur(c_budget_version_id pa_budget_lines.budget_version_id%TYPE,
12235: c_ra_id pa_budget_lines.resource_assignment_id%TYPE)
12236: IS
12237: SELECT DISTINCT(txn_currency_code)
12238: FROM pa_budget_lines pbl

Line 12235: c_ra_id pa_budget_lines.resource_assignment_id%TYPE)

12231: /* Start of code changes for bug 5330532*/
12232: --Cursor created for fetching transaction currencies.
12233: /* --Bug 5144013.
12234: CURSOR txn_curr_cur(c_budget_version_id pa_budget_lines.budget_version_id%TYPE,
12235: c_ra_id pa_budget_lines.resource_assignment_id%TYPE)
12236: IS
12237: SELECT DISTINCT(txn_currency_code)
12238: FROM pa_budget_lines pbl
12239: WHERE pbl.budget_version_id = c_budget_version_id

Line 12238: FROM pa_budget_lines pbl

12234: CURSOR txn_curr_cur(c_budget_version_id pa_budget_lines.budget_version_id%TYPE,
12235: c_ra_id pa_budget_lines.resource_assignment_id%TYPE)
12236: IS
12237: SELECT DISTINCT(txn_currency_code)
12238: FROM pa_budget_lines pbl
12239: WHERE pbl.budget_version_id = c_budget_version_id
12240: AND pbl.resource_assignment_id = c_ra_id;
12241: --PL/SQL table created based on txn_curr_cur.
12242: TYPE txn_curr_tbl IS TABLE OF txn_curr_cur%ROWTYPE;

Line 12644: FROM pa_budget_lines pbl,

12640: pftc.project_rev_exchange_rate,
12641: pftc.projfunc_cost_exchange_rate,
12642: pftc.projfunc_rev_exchange_rate
12643: BULK COLLECT INTO l_txn_curr_tbl
12644: FROM pa_budget_lines pbl,
12645: pa_fp_txn_currencies pftc
12646: WHERE pbl.budget_version_id = l_budget_version_id
12647: AND pftc.fin_plan_version_id = l_budget_version_id
12648: AND pftc.proj_fp_options_id = l_proj_fp_options_id