DBA Data[Home] [Help]

APPS.PA_FP_CALC_UTILS SQL Statements

The following lines contain the word 'select', 'insert', 'update' or 'delete':

Line: 7

    g_LAST_UPDATE_DATE  Date  := SYSDATE;
Line: 8

    g_LAST_UPDATED_BY   Number:= fnd_global.user_id;
Line: 11

    g_LAST_UPDATE_LOGIN   Number:= fnd_global.login_id;
Line: 52

        SELECT gsb.period_set_name              period_set_name
                ,gsb.accounted_period_type      accounted_period_type
                ,pia.pa_period_type             pa_period_type
                ,pbv.version_type               version_type
                ,decode(pbv.version_type,
                        'COST',ppfo.cost_time_phased_code,
                        'REVENUE',ppfo.revenue_time_phased_code,
                         ppfo.all_time_phased_code) time_phased_code
         FROM gl_sets_of_books          gsb
                ,pa_implementations_all pia
                ,pa_projects_all        ppa
                ,pa_budget_versions     pbv
                ,pa_proj_fp_options     ppfo
        WHERE ppa.project_id        = pbv.project_id
        AND pbv.budget_version_id = ppfo.fin_plan_version_id
        /* MOAC changes: AND nvl(ppa.org_id,-99)   = nvl(pia.org_id,-99) */
	AND  ppa.org_id = pia.org_id
        AND gsb.set_of_books_id   = pia.set_of_books_id
        AND pbv.budget_version_id = p_budget_version_id;
Line: 74

    /* curosr to select the version level details */
    CURSOR cur_bvDetails(p_budget_version_id Number) IS
    SELECT decode(nvl(bv.wp_version_flag,'N'),'Y',NVL(pfo.track_workplan_costs_flag,'N'),'Y') track_workplan_costs_flag
          ,bv.version_type
          ,bv.resource_list_id
          ,bv.approved_rev_plan_type_flag
          ,nvl(pfo.plan_in_multi_curr_flag,'N') plan_in_multi_curr_flag
          ,bv.etc_start_date
          ,nvl(bv.wp_version_flag,'N') wp_version_flag
          ,decode(bv.version_type,
                  'COST',NVL(pfo.cost_time_phased_code,'N'),
                  'REVENUE',NVL(pfo.revenue_time_phased_code,'N'),
                  NVL(pfo.all_time_phased_code,'N')) time_phased_code
      ,pp.segment1  project_name
      ,pp.project_currency_code
      ,pp.projfunc_currency_code
      ,bv.version_name
      ,NVL(pp.baseline_funding_flag,'N') baseline_funding_flag
        ,bv.project_id
        ,bv.ci_id ciId
        ,decode(fpt.plan_class_code,'BUDGET'
            ,decode(bv.wp_version_flag,'Y','WORKPLAN',fpt.plan_class_code),fpt.plan_class_code) Plan_Class_Type
        FROM pa_proj_fp_options pfo
            ,pa_budget_versions bv
        ,pa_projects_all pp
        ,pa_fin_plan_types_b fpt
        WHERE pfo.fin_plan_version_id = bv.budget_version_id
        AND bv.project_id = pp.project_id
        AND bv.budget_version_id = p_budget_version_id
        AND  fpt.fin_plan_type_id = pfo.fin_plan_type_id;
Line: 114

            INSERT INTO PA_FP_CALCULATE_LOG
                (SESSIONID
                ,SEQ_NUMBER
                ,LOG_MESSAGE)
            VALUES
                (userenv('sessionid')
                ,HR.PAY_US_GARN_FEE_RULES_S.nextval
                ,substr(P_MSG,1,240)
                );
Line: 146

    g_RsAtrb_RaId_tab.delete;
Line: 147

        g_RsAtrb_TxnCur_tab.delete;
Line: 149

        g_Rspd_RaId_tab.delete;
Line: 150

        g_Rspd_TxnCur_tab.delete;
Line: 151

        g_Rspd_Pjcur_tab.delete;
Line: 152

        g_Rspd_pjf_cur_tab.delete;
Line: 153

        g_Rspd_SdShrk_Flg_tab.delete;
Line: 154

        g_Rspd_EdShrk_Flg_tab.delete;
Line: 155

        g_Rspd_SD_old_tab.delete;
Line: 156

        g_Rspd_SD_new_tab.delete;
Line: 157

        g_Rspd_ED_old_tab.delete;
Line: 158

        g_Rspd_ED_new_tab.delete;
Line: 164

    SELECT 'Y'
    FROM dual
    WHERE EXISTS ( select null
            from pa_budget_lines bl
            where bl.budget_version_id = p_budget_version_id
            and   bl.resource_assignment_id = p_resAsgnId
            GROUP BY bl.resource_assignment_id
            HAVING COUNT(*) > 1
             );
Line: 201

 	     SELECT /*+ INDEX(BL PA_BUDGET_LINES_U1) */
 	         sum(bl.quantity)  bl_sum_quantity
 	         ,sum(bl.init_quantity) bl_sum_act_quantity
 	     FroM pa_budget_lines bl
 	     where bl.resource_assignment_id = p_ra_id
 	     and bl.txn_currency_code = p_txn_cur_code
 	     and bl.budget_version_id = p_budget_version_id;
Line: 211

 	     SELECT /*+ INDEX(BL PA_BUDGET_LINES_U1) */
 	         sum(bl.quantity) bl_sum_quantity
 	         ,sum(bl.init_quantity) bl_sum_act_quantity
 	     FroM pa_budget_lines bl
 	     where bl.resource_assignment_id = p_ra_id
 	     and bl.txn_currency_code = p_txn_cur_code
 	     and bl.budget_version_id = p_budget_version_id
 	     and bl.start_date between p_start_date and p_end_date;
Line: 250

    SELECT tmp.resource_assignment_id
          ,rl.alias resource_name
          ,tmp.txn_currency_code
    FROM  pa_fp_spread_calc_tmp tmp
         ,pa_resource_assignments ra
         ,pa_resource_list_members rl
    WHERE tmp.budget_version_id = p_budget_version_id
    AND   ra.resource_assignment_id = tmp.resource_assignment_id
    AND   rl.resource_list_member_id = ra.resource_list_member_id
    AND EXISTS (SELECT NULL
            FROM pa_budget_lines bl
                WHERE  bl.resource_assignment_id = tmp.resource_assignment_id
            AND  bl.txn_currency_code = tmp.txn_currency_code
            /* Bug fix: 4294902 :Check zero quantity only for the open periods */
                AND   NVL(g_etc_start_date,bl.start_date) BETWEEN bl.start_date and bl.end_date
                AND  ((NVL(bl.quantity,0)       = 0
                  AND (NVL(bl.txn_raw_cost,0)   <> 0
                OR NVL(bl.txn_burdened_cost,0)<> 0
                OR NVL(bl.txn_revenue,0)    <> 0
                OR NVL(bl.init_quantity,0)  <> 0 )
              )
            OR
                    (NVL(bl.init_quantity,0)    = 0
                         AND (NVL(bl.txn_init_raw_cost,0)   <> 0
                             OR NVL(bl.txn_init_burdened_cost,0) <> 0
                             OR NVL(bl.txn_init_revenue,0)  <> 0)
                        ))
         );
Line: 283

     *1:SELECT STATEMENT   :(cost=22,rows=1)
     * 2:NESTED LOOPS   :(cost=22,rows=1)
         *  3:NESTED LOOPS   :(cost=21,rows=1)
         *   4:HASH JOIN SEMI  :(cost=20,rows=1)
         *    5:TABLE ACCESS BY INDEX ROWID PA_FP_SPREAD_CALC_TMP :(cost=6,rows=82)
         *      6:INDEX RANGE SCAN PA_FP_SPREAD_CALC_TMP_N2 :(cost=2,rows=33)
         *    5:TABLE ACCESS BY INDEX ROWID PA_BUDGET_LINES :(cost=13,rows=8)
         *      6:INDEX RANGE SCAN PA_BUDGET_LINES_N3 :(cost=2,rows=1)
         *   4:TABLE ACCESS BY INDEX ROWID PA_RESOURCE_ASSIGNMENTS :(cost=1,rows=1)
         *    5:INDEX UNIQUE SCAN PA_RESOURCE_ASSIGNMENTS_U1 :(cost=,rows=1)
         *  3:TABLE ACCESS BY INDEX ROWID PA_RESOURCE_LIST_MEMBERS :(cost=1,rows=1)
         *   4:INDEX UNIQUE SCAN PA_RESOURCE_LIST_MEMBERS_U1 :(cost=,rows=1)
     **/
    CURSOR cur_blDatesCheck IS
    SELECT tmp.resource_assignment_id
              ,rl.alias resource_name
          ,tmp.txn_currency_code
        FROM  pa_fp_spread_calc_tmp tmp
             ,pa_resource_assignments ra
             ,pa_resource_list_members rl
        WHERE tmp.budget_version_id = p_budget_version_id
        AND   ra.resource_assignment_id = tmp.resource_assignment_id
        AND   rl.resource_list_member_id = ra.resource_list_member_id
        AND EXISTS (SELECT /*+ NO_UNNEST INDEX (BL,PA_BUDGET_LINES_U1) */ NULL  -- Bug#4728472
                    FROM pa_budget_lines bl
                    WHERE  bl.resource_assignment_id = tmp.resource_assignment_id
                    AND  bl.txn_currency_code = tmp.txn_currency_code
            AND  bl.end_date < bl.start_date
            /* Bug:4440255 : added the following conditions reduces the FTS on pa_budget_lines and cost will reduce from 50 to 22 */
            AND bl.budget_version_id = tmp.budget_version_id
            /* end of bug fix:4440255 */
           );
Line: 395

	,p_delete_bl_flag               IN VARCHAR2
	,p_Qty_miss_num_flag		IN VARCHAR2
	,p_bl_quantity			IN NUMBER
	,p_bl_init_quantity		IN NUMBER
	,x_total_quantity		IN OUT NOCOPY NUMBER
	,p_Rw_miss_num_flag		IN VARCHAR2
	,p_bl_txn_raw_cost		IN NUMBER
	,p_bl_txn_init_raw_cost		IN NUMBER
	,x_total_raw_cost		IN OUT NOCOPY NUMBER
	,p_Br_miss_num_flag		IN VARCHAR2
	,p_bl_txn_burdened_cost		IN NUMBER
	,p_bl_txn_init_burdened_cost	IN NUMBER
	,x_total_burdened_cost		IN OUT NOCOPY NUMBER
	,p_Rv_miss_num_flag		IN VARCHAR2
	,p_bl_txn_revenue		IN NUMBER
	,p_bl_txn_init_revenue		IN NUMBER
	,x_total_revenue		IN OUT NOCOPY NUMBER
	,p_cost_rt_miss_num_flag	IN VARCHAR2
	,p_bl_etc_cost_rate		IN NUMBER
	,p_bl_etc_cost_rate_override	IN NUMBER
	,x_raw_cost_rate		IN OUT NOCOPY NUMBER
	,x_rw_cost_rate_override	IN OUT NOCOPY NUMBER
	,p_burd_rt_miss_num_flag	IN VARCHAR2
	,p_bl_etc_burden_rate		IN NUMBER
	,p_bl_etc_burden_rate_override	IN NUMBER
	,x_b_cost_rate			IN OUT NOCOPY NUMBER
	,x_b_cost_rate_override		IN OUT NOCOPY NUMBER
	,p_bill_rt_miss_num_flag	IN VARCHAR2
	,p_bl_etc_bill_rate		IN NUMBER
	,p_bl_etc_bill_rate_override	IN NUMBER
	,x_bill_rate			IN OUT NOCOPY NUMBER
	,x_bill_rate_override		IN OUT NOCOPY NUMBER
	,x_return_status		OUT NOCOPY VARCHAR2
	) IS

	l_message_name		varchar2(100);
Line: 475

 	             print_msg('p_delete_bl_flag               => '||p_delete_bl_flag    );
Line: 710

	 * IF NVL(p_delete_bl_flag,'N') <> 'Y' Then --{
	 * END IF; --}
Line: 725

/* Bug fix:5309529: This API extends the IN param araays and bulk inserts into spread calc tmp
 * table. This avoids looping through plsql arrays just to extend the plsql table
 * Did performance test on pjperf instance. if the number of records in plsql table increases
 * the time gain is almost half of the original time.
 * Example:
 * Num#RAs      Old Code     New Code
 * --------------------------------------
 *  1698        1.52 sec     1.01 sec
 *  8574       13.23 sec     9.25 sec
 *  10206      15.69 sec    10.99 sec
 */
PROCEDURE insert_calcTmp_records
	  ( x_resource_assignment_tab       IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_delete_budget_lines_tab       IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_spread_amts_flag_tab          IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_txn_currency_code_tab         IN  OUT NOCOPY SYSTEM.pa_varchar2_15_tbl_type
                ,x_txn_currency_override_tab     IN  OUT NOCOPY SYSTEM.pa_varchar2_15_tbl_type
                ,x_total_qty_tab                 IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_addl_qty_tab                  IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_total_raw_cost_tab            IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_addl_raw_cost_tab             IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_total_burdened_cost_tab       IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_addl_burdened_cost_tab        IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_total_revenue_tab             IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_addl_revenue_tab              IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_raw_cost_rate_tab             IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_rw_cost_rate_override_tab     IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_b_cost_rate_tab               IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_b_cost_rate_override_tab      IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_bill_rate_tab                 IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_bill_rate_override_tab        IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_line_start_date_tab           IN  OUT NOCOPY SYSTEM.pa_date_tbl_type
                ,x_line_end_date_tab             IN  OUT NOCOPY SYSTEM.pa_date_tbl_type
                ,x_apply_progress_flag_tab       IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_spread_curve_id_old_tab       IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_spread_curve_id_new_tab       IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_sp_fixed_date_old_tab         IN  OUT NOCOPY SYSTEM.pa_date_tbl_type
                ,x_sp_fixed_date_new_tab         IN  OUT NOCOPY SYSTEM.pa_date_tbl_type
                ,x_plan_start_date_old_tab       IN  OUT NOCOPY SYSTEM.pa_date_tbl_type
                ,x_plan_start_date_new_tab       IN  OUT NOCOPY SYSTEM.pa_date_tbl_type
                ,x_plan_end_date_old_tab         IN  OUT NOCOPY SYSTEM.pa_date_tbl_type
		,x_plan_end_date_new_tab         IN  OUT NOCOPY SYSTEM.pa_date_tbl_type
                ,x_re_spread_flag_tab            IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_sp_curve_change_flag_tab      IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_plan_dates_change_flag_tab    IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_spfix_date_flag_tab           IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_mfc_cost_change_flag_tab      IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_mfc_cost_type_id_old_tab      IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_mfc_cost_type_id_new_tab      IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
        	,x_rlm_id_change_flag_tab        IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
        	,x_plan_sdate_shrunk_flag_tab    IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_plan_edate_shrunk_flag_tab    IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_mfc_cost_refresh_flag_tab     IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
        	,x_ra_in_multi_cur_flag_tab      IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
        	,x_quantity_changed_flag_tab     IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_raw_cost_changed_flag_tab     IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_cost_rate_changed_flag_tab    IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_burden_cost_changed_flag_tab  IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_burden_rate_changed_flag_tab  IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_rev_changed_flag_tab          IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_bill_rate_changed_flag_tab    IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_multcur_plan_start_date_tab   IN  OUT NOCOPY SYSTEM.pa_date_tbl_type
                ,x_multcur_plan_end_date_tab     IN  OUT NOCOPY SYSTEM.pa_date_tbl_type
                ,x_fp_task_billable_flag_tab     IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_cost_rt_miss_num_flag_tab     IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_burd_rt_miss_num_flag_tab     IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_bill_rt_miss_num_flag_tab     IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_Qty_miss_num_flag_tab         IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_Rw_miss_num_flag_tab          IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_Br_miss_num_flag_tab          IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_Rv_miss_num_flag_tab          IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_rev_only_entry_flag_tab       IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_return_status                 OUT NOCOPY VARCHAR2
                ,x_msg_data                      OUT NOCOPY varchar2
                ) IS

	CURSOR cur_validate IS
	SELECT tmp.resource_assignment_id
		,tmp.txn_currency_code
		,tmp.start_date
	FROM pa_fp_spread_calc_tmp tmp
	WHERE tmp.budget_version_id = g_budget_version_id
	AND   (tmp.start_date is NULL OR tmp.end_date is NULL);
Line: 821

	   	If x_delete_budget_lines_tab.count = 0 Then
			x_delete_budget_lines_tab.extend(l_numRows);
Line: 957

	   print_msg(' Inserting records into spread calc tmp table');
Line: 960

                INSERT INTO pa_fp_spread_calc_tmp
                        (RESOURCE_ASSIGNMENT_ID --resource_assignment_id
                         ,DELETE_BL_FLAG          --delete_budget_lines_flag
                         ,SPREAD_AMTS_FLAG      --spread_amts_flag
                         ,TXN_CURRENCY_CODE     --txn_currency_code
                         ,TXN_CURR_CODE_OVERRIDE --txn_currency_override
                         ,QUANTITY              --total_qty
                         ,SYSTEM_REFERENCE_NUM1 --addl_qty
                         ,TXN_RAW_COST          --total_raw_cost
                         ,SYSTEM_REFERENCE_NUM2 --addl_raw_cost
                         ,TXN_BURDENED_COST     --total_burdened_cost
                         ,SYSTEM_REFERENCE_NUM3 --addl_burdened_cost
                         ,TXN_REVENUE           --total_revenue
                         ,SYSTEM_REFERENCE_NUM4 --addl_revenue
                         ,COST_RATE             --raw_cost_rate
                         ,COST_RATE_OVERRIDE    --rw_cost_rate_override
                         ,BURDEN_COST_RATE      --b_cost_rate
                         ,BURDEN_COST_RATE_OVERRIDE --b_cost_rate_override
                         ,BILL_RATE             --bill_rate
                         ,BILL_RATE_OVERRIDE    --bill_rate_override
                         ,START_DATE            --line_start_date
                         ,END_DATE              --line_end_date
                         ,APPLY_PROGRESS_FLAG   --apply_progress_flag
                         ,BUDGET_VERSION_ID     --budget_version_id
                         ,OLD_SPREAD_CURVE_ID   --x_spread_curve_id_old_tab
                         ,NEW_SPREAD_CURVE_ID   --x_spread_curve_id_new_tab
                         ,OLD_SP_FIX_DATE       --x_sp_fixed_date_old_tab
                         ,NEW_SP_FIX_DATE       --x_sp_fixed_date_new_tab
                         ,OLD_PLAN_START_DATE   --x_plan_start_date_old_tab
                         ,NEW_PLAN_START_DATE   --x_plan_start_date_new_tab
                         ,OLD_PLAN_END_DATE     --x_plan_end_date_old_tab
                         ,NEW_PLAN_END_DATE     --x_plan_end_date_new_tab
                         ,RE_SPREAD_AMTS_FLAG   --x_re_spread_flag_tab
                         ,SP_CURVE_CHANGE_FLAG  --x_sp_curve_change_flag_tab
                         ,PLAN_DATES_CHANGE_FLAG --x_plan_dates_change_flag_tab
                         ,SP_FIX_DATE_CHANGE_FLAG --x_spfix_date_flag_tab
                         ,MFC_COST_CHANGE_FLAG   --x_mfc_cost_change_flag_tab
                         ,OLD_MFC_COST_TYPE_ID   --x_mfc_cost_type_id_old_tab
                         ,NEW_MFC_COST_TYPE_ID   --x_mfc_cost_type_id_new_tab
             		 ,ETC_START_DATE
             		,PROJECT_CURRENCY_CODE
             		,PROJFUNC_CURRENCY_CODE
             		,RLM_ID_CHANGE_FLAG
             		,BUDGET_VERSION_TYPE
            		,BILLABLE_FLAG
			,COST_RATE_G_MISS_NUM_FLAG
			,BURDEN_RATE_G_MISS_NUM_FLAG
			,BILL_RATE_G_MISS_NUM_FLAG
			,QUANTITY_G_MISS_NUM_FLAG
			,RAW_COST_G_MISS_NUM_FLAG
			,BURDEN_COST_G_MISS_NUM_FLAG
			,REVENUE_G_MISS_NUM_FLAG
                        )
                VALUES (
                        x_resource_assignment_tab(i)
			,decode(NVL(g_wp_cost_changed_flag,'N'),'Y',decode(NVL(g_time_phase_changed_flag,'N'),'Y','Y')
                         ,decode(NVL(g_time_phase_changed_flag,'N'),'Y','Y'
			  ,decode(g_source_context,'RESOURCE_ASSIGNMENT','N'
			   ,decode(x_delete_budget_lines_tab(i),l_miss_char,'N',NULL,'N'
			    ,x_delete_budget_lines_tab(i)))))
                        ,decode(NVL(g_wp_cost_changed_flag,'N'),'Y'
 	                  ,decode(NVL(g_time_phase_changed_flag,'N'),'Y','Y','N')
 	                    ,decode(NVL(g_time_phase_changed_flag,'N'),'Y','Y','N'))
                        ,x_txn_currency_code_tab(i)
                        ,decode(x_txn_currency_override_tab(i),l_miss_char,NULL
			  ,NULL,NULL,x_txn_currency_code_tab(i),NULL,x_txn_currency_override_tab(i))
                        ,decode(x_total_qty_tab(i),l_miss_num,NULL,x_total_qty_tab(i))
                        ,NULL  --x_addl_qty_tab(i)
                        ,decode(x_total_raw_cost_tab(i),l_miss_num,0,x_total_raw_cost_tab(i))
                        ,NULL --x_addl_raw_cost_tab(i)
                        ,decode(x_total_burdened_cost_tab(i),l_miss_num,0,x_total_burdened_cost_tab(i))
                        ,NULL  --x_addl_burdened_cost_tab(i)
                        ,decode(x_total_revenue_tab(i),l_miss_num,0,x_total_revenue_tab(i))
                        ,NULL  --x_addl_revenue_tab(i)
                        ,decode(x_raw_cost_rate_tab(i),l_miss_num,NULL,x_raw_cost_rate_tab(i))
                        ,decode(x_rw_cost_rate_override_tab(i),l_miss_num,NULL,x_rw_cost_rate_override_tab(i))
                        ,decode(x_b_cost_rate_tab(i),l_miss_num,NULL,x_b_cost_rate_tab(i))
                        ,decode(x_b_cost_rate_override_tab(i),l_miss_num,NULL,x_b_cost_rate_override_tab(i))
                        ,decode(x_bill_rate_tab(i),l_miss_num,NULL,x_bill_rate_tab(i))
                        ,decode(x_bill_rate_override_tab(i),l_miss_num,NULL,x_bill_rate_override_tab(i))
                        ,decode(g_source_context,'RESOURCE_ASSIGNMENT',NULL
				,decode(x_line_start_date_tab(i),l_miss_date,NULL,x_line_start_date_tab(i)))
                        ,decode(g_source_context,'RESOURCE_ASSIGNMENT',NULL
				,decode(x_line_end_date_tab(i),l_miss_date,NULL,x_line_end_date_tab(i)))
                        ,NVL(g_apply_progress_flag,'N') --x_apply_progress_flag_tab(i)
                        ,g_budget_version_id
                        ,decode(x_spread_curve_id_old_tab(i),l_miss_num,NULL,x_spread_curve_id_old_tab(i))
                        ,decode(x_spread_curve_id_new_tab(i),l_miss_num,NULL,x_spread_curve_id_new_tab(i))
                        ,decode(x_sp_fixed_date_old_tab(i),l_miss_date,NULL,x_sp_fixed_date_old_tab(i))
                        ,decode(x_sp_fixed_date_new_tab(i),l_miss_date,NULL,x_sp_fixed_date_new_tab(i))
                        ,decode(x_plan_start_date_old_tab(i),l_miss_date,NULL,x_plan_start_date_old_tab(i))
                        ,decode(x_plan_start_date_new_tab(i),l_miss_date,NULL,x_plan_start_date_new_tab(i))
                        ,decode(x_plan_end_date_old_tab(i),l_miss_date,NULL,x_plan_end_date_old_tab(i))
                        ,decode(x_plan_end_date_new_tab(i),l_miss_date,NULL,x_plan_end_date_new_tab(i))
                        ,decode(x_re_spread_flag_tab(i),l_miss_char,'N',NULL,'N',x_re_spread_flag_tab(i))
                        ,decode(x_sp_curve_change_flag_tab(i),l_miss_char,'N',NULL,'N'
					,x_sp_curve_change_flag_tab(i))
                        ,decode(x_plan_dates_change_flag_tab(i),l_miss_char,'N',NULL,'N'
					,x_plan_dates_change_flag_tab(i))
                        ,decode(x_spfix_date_flag_tab(i),l_miss_char,'N',NULL,'N'
					,x_spfix_date_flag_tab(i))
                        ,decode(x_mfc_cost_change_flag_tab(i),l_miss_char,'N',NULL,'N'
					,x_mfc_cost_change_flag_tab(i))
                        ,decode(x_mfc_cost_type_id_old_tab(i),l_miss_num,NULL,x_mfc_cost_type_id_old_tab(i))
                        ,decode(x_mfc_cost_type_id_new_tab(i),l_miss_num,NULL,x_mfc_cost_type_id_new_tab(i))
            		,g_etc_start_date
            		,g_project_currency_code
            		,g_projfunc_currency_code
            		,decode(x_rlm_id_change_flag_tab(i),l_miss_char,'N',NULL,'N'
				,x_rlm_id_change_flag_tab(i))
            		,g_budget_version_type
            		,decode(x_fp_task_billable_flag_tab(i),l_miss_char,'D',NULL,'D'
				,x_fp_task_billable_flag_tab(i))
			,decode(x_rw_cost_rate_override_tab(i),l_miss_num,'Y'
				,decode(x_raw_cost_rate_tab(i),l_miss_num,'Y'
				,'N')) -- x_cost_rt_miss_num_flag_tab(i)
                	,decode(x_b_cost_rate_tab(i),l_miss_num,'Y'
                          	,decode(x_b_cost_rate_override_tab(i),l_miss_num,'Y'
				,'N'))  --x_burd_rt_miss_num_flag_tab(i)
                	,decode(x_bill_rate_tab(i),l_miss_num,'Y'
                        	,decode(x_bill_rate_override_tab(i),l_miss_num,'Y'
				,'N')) --x_bill_rt_miss_num_flag_tab(i)
			,decode(x_total_qty_tab(i),l_miss_num,'Y','N') --x_Qty_miss_num_flag_tab(i)
                	,decode(x_total_raw_cost_tab(i),l_miss_num,'Y','N') --x_Rw_miss_num_flag_tab(i)
                	,decode(x_total_burdened_cost_tab(i),l_miss_num,'Y','N') --x_Br_miss_num_flag_tab(i)
                	,decode(x_total_revenue_tab(i),l_miss_num,'Y','N') --x_Rv_miss_num_flag_tab(i)
              );
Line: 1088

		print_msg('Number of records inserted into calctemp:['||sql%rowcount||']');
Line: 1121

 	                         INSERT INTO pa_fp_gen_rate_tmp fptmp
 	                         (fptmp.target_res_asg_id
 	                         ,fptmp.txn_currency_code
 	                         ,fptmp.raw_cost_rate
 	                         ,fptmp.burdened_cost_rate
 	                         ,fptmp.revenue_bill_rate
 	                         )
 	                         SELECT tmp.resource_assignment_id
 	                                 ,tmp.txn_currency_code
 	                                 ,tmp.cost_rate_override
 	                                 ,tmp.burden_cost_rate_override
 	                                 ,tmp.bill_rate_override
 	                         FROM pa_fp_spread_calc_tmp tmp
 	                         WHERE tmp.budget_version_id = g_budget_version_id
 	                         AND tmp.cost_rate_override = 0
 	                         AND tmp.burden_cost_rate_override = 0
 	                         AND tmp.bill_rate_override = 1
 	                         AND NOT EXISTS (select null
 	                                         from pa_fp_gen_rate_tmp fptmp1
 	                                         where fptmp1.target_res_asg_id = tmp.resource_assignment_id
 	                                         and fptmp1.txn_currency_code = tmp.txn_currency_code
 	                                         );
Line: 1143

 	                         print_msg('Number of records inserted into pa_fp_gen_rate_tmp['||sql%rowcount||']');
Line: 1149

		print_msg('Exception occured in insert_calcTmp_records['||sqlerrm||sqlcode||']');
Line: 1153

END insert_calcTmp_records;
Line: 1165

    SELECT tmp2.quantity        bl_quantity
               ,tmp2.txn_raw_cost   bl_txn_raw_cost
               ,tmp2.txn_burdened_cost  bl_txn_burdened_cost
               ,tmp2.txn_revenue    bl_txn_revenue
               ,tmp2.init_quantity  bl_init_quantity
               ,tmp2.txn_init_raw_cost  bl_txn_init_raw_cost
               ,tmp2.txn_init_burdened_cost bl_txn_init_burdened_cost
               ,tmp2.txn_init_revenue    bl_txn_init_revenue
               ,tmp2.cost_rate       bl_cost_rate
               ,tmp2.cost_rate_override  bl_cost_rate_override
               ,tmp2.burden_cost_rate    bl_burden_cost_rate
               ,tmp2.burden_cost_rate_override  bl_burden_cost_rate_override
               ,tmp2.bill_rate      bl_bill_rate
               ,tmp2.bill_rate_override bl_bill_rate_override
           ,tmp.quantity
               ,tmp.txn_raw_cost
               ,tmp.txn_burdened_cost
               ,tmp.txn_revenue
               ,tmp.cost_rate
               ,tmp.cost_rate_override
               ,tmp.burden_cost_rate
               ,tmp.burden_cost_rate_override
               ,tmp.bill_rate
               ,tmp.bill_rate_override
           ,tmp.txn_curr_code_override
           ,tmp.rowid
           ,tmp.resource_assignment_id
           ,tmp.txn_currency_code
           ,nvl(ra.rate_based_flag,'N') rate_based_flag
	    /*Bug fix:  */
	   ,tmp2.system_reference_num1         	bl_zero_null_quantity
           ,tmp2.system_reference_num2         	bl_zero_null_rawcost
           ,tmp2.system_reference_num3     	bl_zero_null_burdencost
           ,tmp2.system_reference_num4          bl_zero_null_revenue
	   ,tmp2.system_reference_var1  	avg_zero_null_cost_rate
           ,tmp2.system_reference_var2  	avg_zero_null_burden_rate
           ,tmp2.system_reference_var3  	avg_zero_null_bill_rate
	   ,NVL(ra.resource_rate_based_flag,'N') resource_rate_based_flag
	   ,tmp2.bill_markup_percentage
	   ,NVL(tmp.cost_rate_g_miss_num_flag,'N') cost_rate_g_miss_num_flag
	   ,NVL(tmp.burden_rate_g_miss_num_flag,'N') burden_rate_g_miss_num_flag
	   ,NVL(tmp.bill_rate_g_miss_num_flag,'N') bill_rate_g_miss_num_flag
	   ,nvl(tmp.raw_cost_g_miss_num_flag,'N') raw_cost_g_miss_num_flag
	   ,nvl(tmp.burden_cost_g_miss_num_flag,'N') burden_cost_g_miss_num_flag
	   ,nvl(tmp.revenue_g_miss_num_flag,'N') revenue_g_miss_num_flag
	   ,nvl(tmp.quantity_g_miss_num_flag,'N') quantity_g_miss_num_flag
	   ,rlm.unit_of_measure resource_uom
	   ,tmp.start_date
	   ,tmp.end_date
	   ,NVL(tmp.delete_bl_flag,'N') delete_bl_flag
    FROM pa_fp_spread_calc_tmp tmp
        ,pa_fp_spread_calc_tmp2 tmp2
        ,pa_resource_assignments ra
	,pa_resource_list_members rlm
    WHERE tmp.budget_version_id = p_budget_version_id
    AND   ra.resource_assignment_id = tmp.resource_assignment_id
    AND   rlm.resource_list_member_id = ra.resource_list_member_id
    AND   tmp.resource_assignment_id = tmp2.resource_assignment_id
    AND   tmp.txn_currency_code = tmp2.txn_currency_code
    AND   ((p_source_context = 'BUDGET_LINE'
          and tmp.start_date = tmp2.start_date)
          OR
          p_source_context <> 'BUDGET_LINE'
         );
Line: 1298

        DELETE FROM pa_fp_spread_calc_tmp2
        WHERE budget_version_id = p_budget_version_id;
Line: 1300

        l_res_Asgn_Id_Tab.delete;
Line: 1301

        l_txn_cur_code_Tab.delete;
Line: 1302

        l_start_date_tab.delete;
Line: 1303

                l_end_date_tab.delete;
Line: 1304

        l_rowid_tab.delete;
Line: 1305

            l_quantity_ch_flag_tab.delete;
Line: 1306

            l_rawCost_ch_flag_tab.delete;
Line: 1307

            l_burdenCost_ch_flag_tab.delete;
Line: 1308

            l_Revnue_ch_flag_tab.delete;
Line: 1309

            l_costRt_ch_flag_tab.delete;
Line: 1310

            l_burdRt_ch_flag_tab.delete;
Line: 1311

            l_billRt_ch_flag_tab.delete;
Line: 1312

        SELECT  tmp.resource_assignment_id
            ,tmp.txn_currency_code
            ,decode(p_source_context,'BUDGET_LINE',tmp.start_date,to_date(null))
            ,decode(p_source_context,'BUDGET_LINE',tmp.end_date,to_date(null))
        BULK COLLECT INTO
            l_res_Asgn_Id_Tab
            ,l_txn_cur_code_Tab
            ,l_start_date_tab
                        ,l_end_date_tab
        FROM pa_fp_spread_calc_tmp tmp
        WHERE tmp.budget_version_id = p_budget_version_id;
Line: 1326

           print_msg('NumOf Lines inserted['||l_res_Asgn_Id_Tab.count||']');
Line: 1329

            INSERT INTO pa_fp_spread_calc_tmp2
                (BUDGET_VERSION_ID
                ,BUDGET_VERSION_TYPE
                ,RESOURCE_ASSIGNMENT_ID
                ,TXN_CURRENCY_CODE
                ,START_DATE
                ,END_DATE
                )
            VALUES (p_budget_version_id
                ,p_budget_version_type
                ,l_res_Asgn_Id_Tab(i)
                ,l_txn_cur_code_Tab(i)
                ,l_start_date_tab(i)
                ,l_end_date_tab(i)
                );
Line: 1346

		print_msg('Inserting records into sprdcalctmp2 for resource assignment context');
Line: 1349

		UPDATE /*+ INDEX(TMP PA_FP_SPREAD_CALC_TMP2_N1) */ pa_fp_spread_calc_tmp2 tmp
            	SET ( tmp.quantity
                ,tmp.txn_raw_cost
                ,tmp.txn_burdened_cost
                ,tmp.txn_revenue
                ,tmp.init_quantity
                ,tmp.txn_init_raw_cost
                ,tmp.txn_init_burdened_cost
                ,tmp.txn_init_revenue
                ,tmp.cost_rate
                ,tmp.cost_rate_override
                ,tmp.burden_cost_rate
                ,tmp.burden_cost_rate_override
                ,tmp.bill_rate
                ,tmp.bill_rate_override
                ,tmp.system_reference_num1  --quantity
                ,tmp.system_reference_num2  --txnRaw
                ,tmp.system_reference_num3  --txnburd
                ,tmp.system_reference_num4  --txnrev
		,tmp.system_reference_var1  --avg_zero_null_cost_rate
                ,tmp.system_reference_var2  --avg_zero_null_burden_rate
                ,tmp.system_reference_var3  --avg_zero_null_bill_rate
		) =
		(SELECT decode(rtx.total_quantity,0,null,rtx.total_quantity) quantity
                ,decode(rtx.total_txn_raw_cost,0,NULL,rtx.total_txn_raw_cost) txn_raw_cost
                ,decode(rtx.total_txn_burdened_cost,0,NULL,rtx.total_txn_burdened_cost) txn_burdened_cost
                ,decode(rtx.total_txn_revenue,0,NULL,rtx.total_txn_revenue) txn_revenue
                ,decode(rtx.total_init_quantity,0,NULL,rtx.total_init_quantity) init_quantity
                ,decode(rtx.total_txn_init_raw_cost,0,NULL,rtx.total_txn_init_raw_cost) init_raw_cost
                ,decode(rtx.total_txn_init_burdened_cost,0,NULL,rtx.total_txn_init_burdened_cost) init_burdened_cost
                ,decode(rtx.total_txn_init_revenue,0,NULL,rtx.total_txn_init_revenue) init_revenue
                ,rtx.TXN_ETC_RAW_COST_RATE              etc_cost_rate
                ,rtx.TXN_RAW_COST_RATE_OVERRIDE         etc_cost_rate_override
                ,rtx.TXN_ETC_BURDEN_COST_RATE           etc_burden_rate
                ,rtx.TXN_BURDEN_COST_RATE_OVERRIDE      etc_burden_rate_override
                ,rtx.TXN_ETC_BILL_RATE                  etc_bill_rate
                ,rtx.TXN_BILL_RATE_OVERRIDE             etc_bill_rate_override
                ,rtx.total_quantity                     bl_zero_null_quantity
                ,rtx.total_txn_raw_cost                 bl_zero_null_rawcost
                ,rtx.total_txn_burdened_cost            bl_zero_null_burdencost
                ,rtx.total_txn_revenue                  bl_zero_null_revenue
	        ,rtx.TXN_RAW_COST_RATE_OVERRIDE
		,rtx.TXN_BURDEN_COST_RATE_OVERRIDE
		,rtx.TXN_BILL_RATE_OVERRIDE
        	FROM pa_resource_asgn_curr rtx
        	WHERE rtx.resource_assignment_id = l_res_Asgn_Id_Tab(i)
        	AND  rtx.txn_currency_code = l_txn_cur_code_Tab(i)
		)
	     WHERE tmp.resource_assignment_id = l_res_Asgn_Id_Tab(i)
             AND  tmp.txn_currency_code = l_txn_cur_code_Tab(i);
Line: 1400

		/* update table with txn markup percentage */
		UPDATE /*+ INDEX(TMP PA_FP_SPREAD_CALC_TMP2_N1) */ pa_fp_spread_calc_tmp2 tmp
		SET tmp.bill_markup_percentage = (select AVG(bl.txn_markup_percent)
						  from pa_budget_lines bl
						  where bl.resource_assignment_id = tmp.resource_assignment_id
						  and  bl.txn_currency_code = tmp.txn_currency_code
						 )
		WHERE tmp.budget_version_id = p_budget_version_id
		AND EXISTS ( select null
			     from pa_budget_lines bl1
                             where bl1.resource_assignment_id = tmp.resource_assignment_id
                             and  bl1.txn_currency_code = tmp.txn_currency_code
			   );
Line: 1419

                UPDATE  /*+ INDEX(TMP PA_FP_SPREAD_CALC_TMP2_N1) */ pa_fp_spread_calc_tmp2 tmp
                SET (tmp.avg_cost_rate_override
                    ,tmp.avg_burden_rate_override
                    ,tmp.avg_bill_rate_override
		    /* Bug fix:4693839 */
		    ,tmp.system_reference_var1  --avg_zero_null_cost_rate
		    ,tmp.system_reference_var2  --avg_zero_null_burden_rate
		    ,tmp.system_reference_var3  --avg_zero_null_bill_rate
		    ,tmp.bill_markup_percentage
		    ) =
                    (SELECT /*+ INDEX(BLAVGRT PA_BUDGET_LINES_U1) */
				AVG(DECODE((nvl(blavgrt.quantity,0) - nvl(blavgrt.init_quantity,0)),0
                                                ,NULL,blavgrt.txn_cost_rate_override)) avg_txn_cost_rate_override
                                         ,AVG(DECODE((nvl(blavgrt.quantity,0) - nvl(blavgrt.init_quantity,0)),0
                                                ,NULL,blavgrt.burden_cost_rate_override))   avg_burden_cost_rate_override
                                         ,AVG(DECODE((nvl(blavgrt.quantity,0) - nvl(blavgrt.init_quantity,0)),0
                                                ,NULL,blavgrt.txn_bill_rate_override)) avg_txn_bill_rate_override
				     	,AVG(NVL(blavgrt.txn_cost_rate_override,blavgrt.txn_standard_cost_rate))
				    	,AVG(NVL(blavgrt.burden_cost_rate_override,blavgrt.burden_cost_rate))
					,AVG(NVL(blavgrt.txn_bill_rate_override,blavgrt.txn_standard_bill_rate))
					,AVG(blavgrt.txn_markup_percent)
                                    FROM pa_budget_lines blavgrt
                                    WHERE blavgrt.budget_version_id = p_budget_version_id
                                    AND  blavgrt.resource_assignment_id = tmp.resource_assignment_id
                                    AND blavgrt.txn_currency_code      = tmp.txn_currency_code
                                    AND ( (tmp.start_date is NULL AND tmp.end_date is NULL )
                                        OR
                                        (tmp.start_date is NOT NULL AND tmp.end_date is NOT NULL
                                        AND blavgrt.start_date BETWEEN tmp.start_date AND tmp.end_date))
                                        )
                /* Perf fix: WHERE tmp.budget_version_id = p_budget_version_id to avoid N2 index */
                WHERE tmp.resource_assignment_id = l_res_Asgn_Id_Tab(i)
                AND   tmp.txn_currency_code = l_txn_cur_code_Tab(i)
                AND   ((tmp.start_date is NOT NULL
                    and tmp.start_date = l_start_date_tab(i))
                      OR tmp.start_date is NULL
                      );
Line: 1458

            UPDATE /*+ INDEX(TMP PA_FP_SPREAD_CALC_TMP2_N1) */ pa_fp_spread_calc_tmp2 tmp
            SET (tmp.quantity
                ,tmp.txn_raw_cost
                ,tmp.txn_burdened_cost
                ,tmp.txn_revenue
                ,tmp.init_quantity
                ,tmp.txn_init_raw_cost
                ,tmp.txn_init_burdened_cost
                ,tmp.txn_init_revenue
                ,tmp.cost_rate
                ,tmp.cost_rate_override
                ,tmp.burden_cost_rate
                ,tmp.burden_cost_rate_override
                ,tmp.bill_rate
                ,tmp.bill_rate_override
		/* Bug fix:4693839 */
		,tmp.system_reference_num1  --quantity
		,tmp.system_reference_num2  --txnRaw
		,tmp.system_reference_num3  --txnburd
		,tmp.system_reference_num4  --txnrev
		) =
               ( SELECT /*+ INDEX(BL PA_BUDGET_LINES_U1) */
                decode(sum(bl.quantity),0,NULL,sum(bl.quantity)) --quantity
                ,decode(sum(bl.txn_raw_cost),0,NULL,sum(bl.txn_raw_cost))  --txn_raw_cost
                ,decode(sum(bl.txn_burdened_cost),0,NULL,sum(bl.txn_burdened_cost)) --txn_burdened_cost
                ,decode(sum(bl.txn_revenue),0,NULL,sum(bl.txn_revenue)) --txn_revenue
                ,decode(sum(bl.init_quantity),0,NULL,sum(bl.init_quantity)) --init_quantity
                ,decode(sum(bl.txn_init_raw_cost),0,NULL,sum(bl.txn_init_raw_cost)) --init_raw_cost
                ,decode(sum(bl.txn_init_burdened_cost),0,NULL,sum(bl.txn_init_burdened_cost)) --init_burdened_cost
                ,decode(sum(bl.txn_init_revenue),0,NULL,sum(bl.txn_init_revenue)) --init_revenue
                ,(sum(( decode((nvl(bl.quantity,0)- nvl(bl.init_quantity,0)),0,null
                         ,decode(nvl(bl.txn_cost_rate_override,nvl(bl.txn_standard_cost_rate,0)),0,null
                         ,((nvl(bl.quantity,0)- nvl(bl.init_quantity,0)) * nvl(bl.txn_cost_rate_override,nvl(bl.txn_standard_cost_rate,0)))))))
                    / DECODE((sum(decode((nvl(bl.quantity,0)- nvl(bl.init_quantity,0)),0,null
                                ,decode(nvl(bl.txn_cost_rate_override,nvl(bl.txn_standard_cost_rate,0)),0,null
                       		  ,(nvl(bl.quantity,0)- nvl(bl.init_quantity,0))))))
			      ,0,NULL,
			       	(sum(decode((nvl(bl.quantity,0)- nvl(bl.init_quantity,0)),0,null
                                ,decode(nvl(bl.txn_cost_rate_override,nvl(bl.txn_standard_cost_rate,0)),0,null
                                  ,(nvl(bl.quantity,0)- nvl(bl.init_quantity,0))))))
				)
                  ) --etc_cost_rate
                ,(sum(decode(tmp.avg_cost_rate_override,NULL,NULL
                               ,decode((nvl(bl.quantity,0) - nvl(bl.init_quantity,0)),0,NULL
                                ,decode(nvl(bl.txn_cost_rate_override,nvl(bl.txn_standard_cost_rate,0)),0,NULL
                                     ,((nvl(bl.quantity,0)- nvl(bl.init_quantity,0)) * nvl(bl.txn_cost_rate_override,nvl(bl.txn_standard_cost_rate,0)))))))
                    / DECODE((sum(decode(tmp.avg_cost_rate_override,NULL,NULL
                            ,decode((nvl(bl.quantity,0)- nvl(bl.init_quantity,0)),0,NULL
                              ,decode(nvl(bl.txn_cost_rate_override,nvl(bl.txn_standard_cost_rate,0)),0,null
                    	        ,(nvl(bl.quantity,0)- nvl(bl.init_quantity,0)))))))
			 ,0,NULL,
			  (sum(decode(tmp.avg_cost_rate_override,NULL,NULL
                            ,decode((nvl(bl.quantity,0)- nvl(bl.init_quantity,0)),0,NULL
                              ,decode(nvl(bl.txn_cost_rate_override,nvl(bl.txn_standard_cost_rate,0)),0,null
                                ,(nvl(bl.quantity,0)- nvl(bl.init_quantity,0)))))))
			 )
                 ) --etc_cost_rate_override
                ,(sum(( decode((nvl(bl.quantity,0)- nvl(bl.init_quantity,0)),0,null
                       ,decode(nvl(bl.burden_cost_rate_override,nvl(bl.burden_cost_rate,0)),0,null
                           ,((nvl(bl.quantity,0)- nvl(bl.init_quantity,0)) * nvl(bl.burden_cost_rate_override,nvl(bl.burden_cost_rate,0)))))))
                   / DECODE((sum(decode((nvl(bl.quantity,0)- nvl(bl.init_quantity,0)),0,null
                        ,decode(nvl(bl.burden_cost_rate_override,nvl(bl.burden_cost_rate,0)),0,null
                    	  ,(nvl(bl.quantity,0)- nvl(bl.init_quantity,0))))))
			,0,NULL,
			(sum(decode((nvl(bl.quantity,0)- nvl(bl.init_quantity,0)),0,null
                        ,decode(nvl(bl.burden_cost_rate_override,nvl(bl.burden_cost_rate,0)),0,null
                          ,(nvl(bl.quantity,0)- nvl(bl.init_quantity,0))))))
		   	)
                 ) --etc_burden_rate
                ,(sum(decode(tmp.avg_burden_rate_override,NULL,NULL
                     ,decode((nvl(bl.quantity,0) - nvl(bl.init_quantity,0)),0,NULL
                       ,decode(nvl(bl.burden_cost_rate_override,nvl(bl.burden_cost_rate,0)),0,NULL
                          ,((nvl(bl.quantity,0)- nvl(bl.init_quantity,0)) * nvl(bl.burden_cost_rate_override,nvl(bl.burden_cost_rate,0)))))))
                    / DECODE((sum(decode(tmp.avg_burden_rate_override,NULL,NULL
                          ,decode((nvl(bl.quantity,0)- nvl(bl.init_quantity,0)),0,NULL
                            ,decode(nvl(bl.burden_cost_rate_override,nvl(bl.burden_cost_rate,0)),0,NULL
                         	,(nvl(bl.quantity,0)- nvl(bl.init_quantity,0)))))))
			,0,NULL,
			(sum(decode(tmp.avg_burden_rate_override,NULL,NULL
                          ,decode((nvl(bl.quantity,0)- nvl(bl.init_quantity,0)),0,NULL
                            ,decode(nvl(bl.burden_cost_rate_override,nvl(bl.burden_cost_rate,0)),0,NULL
                                ,(nvl(bl.quantity,0)- nvl(bl.init_quantity,0)))))))
			)
                 ) --etc_burden_rate_override
                ,(sum((decode((nvl(bl.quantity,0)- nvl(bl.init_quantity,0)),0,null
                       ,decode(nvl(bl.txn_bill_rate_override,nvl(bl.txn_standard_bill_rate,0)),0,null
                         ,((nvl(bl.quantity,0)- nvl(bl.init_quantity,0)) * nvl(bl.txn_bill_rate_override,nvl(bl.txn_standard_bill_rate,0)))))))
                   / DECODE((sum(decode((nvl(bl.quantity,0)- nvl(bl.init_quantity,0)),0,null
                       ,decode(nvl(bl.txn_bill_rate_override,nvl(bl.txn_standard_bill_rate,0)),0,null
                    	  ,(nvl(bl.quantity,0)- nvl(bl.init_quantity,0))))))
			,0,NULL,
			(sum(decode((nvl(bl.quantity,0)- nvl(bl.init_quantity,0)),0,null
                       ,decode(nvl(bl.txn_bill_rate_override,nvl(bl.txn_standard_bill_rate,0)),0,null
                          ,(nvl(bl.quantity,0)- nvl(bl.init_quantity,0))))))
			)
                 ) --etc_bill_rate
                ,(sum(decode(tmp.avg_bill_rate_override,NULL,NULL
                      , decode((nvl(bl.quantity,0)- nvl(bl.init_quantity,0)),0,NULL
                         ,decode(nvl(bl.txn_bill_rate_override,nvl(bl.txn_standard_bill_rate,0)),0,NULL
                            ,((nvl(bl.quantity,0)- nvl(bl.init_quantity,0)) * nvl(bl.txn_bill_rate_override,nvl(bl.txn_standard_bill_rate,0)))))))
                   / DECODE((sum(decode(tmp.avg_bill_rate_override,NULL,NULL
                        ,decode((nvl(bl.quantity,0)- nvl(bl.init_quantity,0)),0,NULL
                          ,decode(nvl(bl.txn_bill_rate_override,nvl(bl.txn_standard_bill_rate,0)),0,null
                      		,(nvl(bl.quantity,0)- nvl(bl.init_quantity,0)))))))
			,0,NULL,
			(sum(decode(tmp.avg_bill_rate_override,NULL,NULL
                        ,decode((nvl(bl.quantity,0)- nvl(bl.init_quantity,0)),0,NULL
                          ,decode(nvl(bl.txn_bill_rate_override,nvl(bl.txn_standard_bill_rate,0)),0,null
                                ,(nvl(bl.quantity,0)- nvl(bl.init_quantity,0)))))))
			)
                ) --etc_bill_rate_override
		/* Bug fix:4693839 Currently all the UI page shows null instead of zeros, and when they pass to param value
		 * will be passed null, representing no change, but some other API like AMG etc, may pass zero in param value.
	         * In order to avoid changing all the calling api, this api is modified to handle nulls and zeros carefully */
		,SUM(tmp.quantity)	 	-- bl_zero_null_quantity
                ,SUM(tmp.txn_raw_cost)	   	-- bl_zero_null_rawcost
                ,SUM(tmp.txn_burdened_cost)	-- bl_zero_null_burdencost
                ,SUM(tmp.txn_revenue)		-- bl_zero_null_revenue
                FROM pa_budget_lines bl
                WHERE bl.budget_version_id = p_budget_version_id
                AND  bl.resource_assignment_id = tmp.resource_assignment_id
                AND bl.txn_currency_code      = tmp.txn_currency_code
                AND ( (tmp.start_date is NULL AND tmp.end_date is NULL )
                            OR
                           (tmp.start_date is NOT NULL AND tmp.end_date is NOT NULL
                            AND bl.start_date BETWEEN tmp.start_date AND tmp.end_date)
                       )
                )
      	/* Perf fix: WHERE tmp.budget_version_id = p_budget_version_id to avoid N2 index */
      	WHERE tmp.resource_assignment_id = l_res_Asgn_Id_Tab(i)
      	AND   tmp.txn_currency_code = l_txn_cur_code_Tab(i)
      	AND   ((tmp.start_date is NOT NULL
                  and tmp.start_date = l_start_date_tab(i))
                OR tmp.start_date is NULL
              );
Line: 1596

            FOR tmp in (select * from pa_fp_spread_calc_tmp2 where budget_version_id = p_budget_version_id) LOOP
            print_msg('Res['||tmp.resource_assignment_id||']blTxncur['||tmp.txn_currency_code||'blQty['||tmp.quantity||']');
Line: 1605

            l_resource_assingment_id_tab.delete;
Line: 1606

		l_txn_currency_code_tab.delete;
Line: 1607

                l_bl_Start_date_tab.delete;
Line: 1608

                l_bl_quantity_tab.delete;
Line: 1609

                l_bl_txn_raw_cost_tab.delete;
Line: 1610

                l_bl_txn_burden_cost_tab.delete;
Line: 1611

                l_bl_txn_revenue_tab.delete;
Line: 1612

                l_bl_init_quantity_tab.delete;
Line: 1613

                l_bl_txn_init_raw_cost_tab.delete;
Line: 1614

                l_bl_txn_init_burden_cost_tab.delete;
Line: 1615

                l_bl_txn_init_revenue_tab.delete;
Line: 1616

                l_bl_cost_rate_tab.delete;
Line: 1617

                l_bl_cost_rate_override_tab.delete;
Line: 1618

                l_bl_burden_cost_rate_tab.delete;
Line: 1619

                l_bl_burden_rate_override_tab.delete;
Line: 1620

                l_bl_bill_rate_tab.delete;
Line: 1621

                l_bl_bill_rate_override_tab.delete;
Line: 1622

            	l_rate_based_flag_tab.delete;
Line: 1623

		l_res_rate_based_flag_tab.delete;
Line: 1624

		l_bl_txn_markup_tab.delete;
Line: 1625

		l_costRt_g_miss_num_flag_tab.delete;
Line: 1626

                l_burdRt_g_miss_num_flag_tab.delete;
Line: 1627

                l_revRt_g_miss_num_flag_tab.delete;
Line: 1628

		l_rwCost_g_miss_num_flag_tab.delete;
Line: 1629

        	l_brdCost_g_miss_num_flag_tab.delete;
Line: 1630

        	l_revenue_g_miss_num_flag_tab.delete;
Line: 1631

	        l_resource_uom_tab.delete;
Line: 1632

		l_quantity_tab.delete;
Line: 1633

        	l_raw_cost_tab.delete;
Line: 1634

        	l_burdened_cost_tab.delete;
Line: 1635

        	l_revenue_tab.delete;
Line: 1636

        	l_raw_cost_rate_tab.delete;
Line: 1637

        	l_rw_cost_rate_override_tab.delete;
Line: 1638

        	l_b_cost_rate_tab.delete;
Line: 1639

        	l_b_cost_rate_override_tab.delete;
Line: 1640

        	l_bill_rate_tab.delete;
Line: 1641

        	l_bill_rate_override_tab.delete;
Line: 1643

 	        l_negQty_Change_flag_tab.delete;
Line: 1644

 	        l_negRawCst_Change_flag_tab.delete;
Line: 1645

 	        l_neg_BurdCst_Change_flag_tab.delete;
Line: 1646

 	        l_neg_revChange_flag_tab.delete;
Line: 1700

        	,p_delete_bl_flag               => i.delete_bl_flag
        	,p_Qty_miss_num_flag            => i.quantity_g_miss_num_flag
        	,p_bl_quantity                  => i.bl_quantity
        	,p_bl_init_quantity             => i.bl_init_quantity
        	,x_total_quantity               => i.quantity
        	,p_Rw_miss_num_flag             => i.raw_cost_g_miss_num_flag
        	,p_bl_txn_raw_cost              => i.bl_txn_raw_cost
        	,p_bl_txn_init_raw_cost         => i.bl_txn_init_raw_cost
        	,x_total_raw_cost               => i.txn_raw_cost
        	,p_Br_miss_num_flag             => i.burden_cost_g_miss_num_flag
        	,p_bl_txn_burdened_cost         => i.bl_txn_burdened_cost
        	,p_bl_txn_init_burdened_cost    => i.bl_txn_init_burdened_cost
        	,x_total_burdened_cost          => i.txn_burdened_cost
        	,p_Rv_miss_num_flag             => i.revenue_g_miss_num_flag
        	,p_bl_txn_revenue               => i.bl_txn_revenue
        	,p_bl_txn_init_revenue          => i.bl_txn_init_revenue
        	,x_total_revenue                => i.txn_revenue
        	,p_cost_rt_miss_num_flag        => i.cost_rate_g_miss_num_flag
        	,p_bl_etc_cost_rate             => i.bl_cost_rate
        	,p_bl_etc_cost_rate_override    => i.bl_cost_rate_override
        	,x_raw_cost_rate                => i.cost_rate
        	,x_rw_cost_rate_override        => i.cost_rate_override
        	,p_burd_rt_miss_num_flag        => i.burden_rate_g_miss_num_flag
        	,p_bl_etc_burden_rate           => i.bl_burden_cost_rate
        	,p_bl_etc_burden_rate_override  => i.bl_burden_cost_rate_override
        	,x_b_cost_rate                  => i.burden_cost_rate
        	,x_b_cost_rate_override         => i.burden_cost_rate_override
        	,p_bill_rt_miss_num_flag        => i.bill_rate_g_miss_num_flag
        	,p_bl_etc_bill_rate             => i.bl_bill_rate
        	,p_bl_etc_bill_rate_override    => i.bl_bill_rate_override
        	,x_bill_rate                    => i.bill_rate
        	,x_bill_rate_override           => i.bill_rate_override
        	,x_return_status                => l_return_status
        	);
Line: 2056

                   UPDATE  pa_fp_spread_calc_tmp tmp
                   SET  tmp.QUANTITY_CHANGED_FLAG      = NVL(l_quantity_ch_flag_tab(i),'N')
                    ,tmp.COST_RATE_CHANGED_FLAG   = NVL(l_costRt_ch_flag_tab(i),'N')
                    ,tmp.BURDEN_RATE_CHANGED_FLAG = NVL(l_burdRt_ch_flag_tab(i),'N')
                    ,tmp.BILL_RATE_CHANGED_FLAG   = NVL(l_billRt_ch_flag_tab(i),'N')
                    ,tmp.RAW_COST_CHANGED_FLAG    = NVL(l_rawCost_ch_flag_tab(i),'N')
                    ,tmp.BURDEN_COST_CHANGED_FLAG = NVL(l_burdenCost_ch_flag_tab(i),'N')
                    ,tmp.REVENUE_CHANGED_FLAG     = NVL(l_Revnue_ch_flag_tab(i),'N')
		    ,tmp.QUANTITY                 = decode(NVL(l_quantity_ch_flag_tab(i),'N'),'Y'
							,l_quantity_tab(i),l_bl_quantity_tab(i))
                    ,tmp.BL_QUANTITY          = l_bl_quantity_tab(i)
                    ,tmp.BL_TXN_RAW_COST      = l_bl_txn_raw_cost_tab(i)
                    ,tmp.BL_TXN_BURDENED_COST     = l_bl_txn_burden_cost_tab(i)
                    ,tmp.BL_TXN_REVENUE           = l_bl_txn_revenue_tab(i)
                    ,tmp.BL_TXN_INIT_RAW_COST     = l_bl_txn_init_raw_cost_tab(i)
                    ,tmp.BL_TXN_INIT_BURDENED_COST = l_bl_txn_init_burden_cost_tab(i)
                    ,tmp.BL_TXN_INIT_REVENUE      =l_bl_txn_init_revenue_tab(i)
                    ,tmp.BL_INIT_QUANTITY     = l_bl_init_quantity_tab(i)
                    ,tmp.BL_COST_RATE         = l_bl_cost_rate_tab(i)
                    ,tmp.BL_COST_RATE_OVERRIDE    = l_bl_cost_rate_override_tab(i)
                    ,tmp.BL_BURDEN_COST_RATE      = l_bl_burden_cost_rate_tab(i)
                    ,tmp.BL_BURDEN_COST_RATE_OVERRIDE = l_bl_burden_rate_override_tab(i)
                    ,tmp.BL_BILL_RATE          = l_bl_bill_rate_tab(i)
                    ,tmp.BL_BILL_RATE_OVERRIDE     = l_bl_bill_rate_override_tab(i)
                    /* Bug fix:4293020 : For rate base resource retain the param value. for non-rate base
                     * resource: hard code the cost rate 1 and bill rate to 1 based on the version type
                     * Reason: the rates cannot be changed for non-rate base resource
                    ,tmp.COST_RATE_OVERRIDE        = decode(l_rate_based_flag_tab(i),'Y',tmp.COST_RATE_OVERRIDE
                                           ,decode(g_budget_version_type,'COST',nvl(tmp.COST_RATE_OVERRIDE,1)
                                          ,'ALL',nvl(tmp.COST_RATE_OVERRIDE,1),tmp.COST_RATE_OVERRIDE))
                    ,tmp.BILL_RATE_OVERRIDE        = decode(l_rate_based_flag_tab(i),'Y',tmp.BILL_RATE_OVERRIDE
                                          ,decode(g_budget_version_type,'REVENUE',nvl(tmp.BILL_RATE_OVERRIDE,1)
                                         ,tmp.BILL_RATE_OVERRIDE))
                    **/
                    ,tmp.COST_RATE_OVERRIDE = decode(l_costRt_g_miss_num_flag_tab(i),'Y',NULL
					,decode(NVL(l_costRt_ch_flag_tab(i),'N'),'N',NULL
					,decode(l_rate_based_flag_tab(i),'Y',l_rw_cost_rate_override_tab(i)
					,decode(l_res_rate_based_flag_tab(i),'Y'
						,l_rw_cost_rate_override_tab(i)
						,decode(l_bl_cost_rate_override_tab(i),0,0,1)))))
                    ,tmp.BILL_RATE_OVERRIDE = decode(l_revRt_g_miss_num_flag_tab(i),'Y',NULL
					,decode(NVL(l_billRt_ch_flag_tab(i),'N'),'N',NULL
					,decode(l_rate_based_flag_tab(i),'Y',l_bill_rate_override_tab(i)
                                        ,decode(g_budget_version_type,'REVENUE'
					,decode(l_res_rate_based_flag_tab(i),'Y',l_bill_rate_override_tab(i),1)
						,'ALL',l_bill_rate_override_tab(i)
						,l_bill_rate_override_tab(i)))))
		    ,tmp.BILL_MARKUP_PERCENTAGE   = decode(l_revRt_g_miss_num_flag_tab(i),'Y',NULL,l_bl_txn_markup_tab(i))
		    ,tmp.burden_cost_rate_override  = decode(l_burdRt_g_miss_num_flag_tab(i),'Y',NULL
						        ,decode(NVL(l_burdRt_ch_flag_tab(i),'N'),'N',NULL
							   ,l_b_cost_rate_override_tab(i)))
		    ,tmp.cost_rate_g_miss_num_flag  = l_costRt_g_miss_num_flag_tab(i)
                    ,tmp.burden_rate_g_miss_num_flag = l_burdRt_g_miss_num_flag_tab(i)
                    ,tmp.bill_rate_g_miss_num_flag = l_revRt_g_miss_num_flag_tab(i)
		    ,tmp.rate_based_flag	= l_rate_based_flag_tab(i)
		    ,tmp.resource_rate_based_flag = l_res_rate_based_flag_tab(i)
		    ,tmp.resource_uom	= l_resource_uom_tab(i)
		    /* added for perf impr: removed loop and execution of cursor */
                    ,tmp.txn_raw_cost = l_raw_cost_tab(i)
                    ,tmp.txn_burdened_cost = l_burdened_cost_tab(i)
                    ,tmp.txn_revenue = l_revenue_tab(i)
                    ,tmp.cost_rate = l_raw_cost_rate_tab(i)
                    ,tmp.burden_cost_rate = l_b_cost_rate_tab(i)
                    ,tmp.bill_rate = l_bill_rate_tab(i)
		    /* bug fix: 5726773 */
 	            ,tmp.NEG_QUANTITY_CHANGE_FLAG  = l_negQty_Change_flag_tab(i)
 	            ,tmp.NEG_RAWCOST_CHANGE_FLAG  = l_negRawCst_Change_flag_tab(i)
 	            ,tmp.NEG_BURDEN_CHANGE_FALG =  l_neg_BurdCst_Change_flag_tab(i)
 	            ,tmp.NEG_REVENUE_CHANGE_FLAG  = l_neg_revChange_flag_tab(i)
                   WHERE tmp.rowid = l_rowid_tab(i) ;
Line: 2163

        SELECT tmp.resource_assignment_id
                ,tmp.txn_currency_code
                ,tmp.start_date
                ,tmp.end_date
                ,ra.resource_rate_based_flag
                ,ra.rate_based_flag
                ,tmp.raw_cost_changed_flag
                ,tmp.burden_cost_changed_flag
                ,tmp.revenue_changed_flag
                ,tmp.revenue_only_entered_flag
                ,tmp.burden_only_entered_flag
		,tmp.bl_txn_raw_cost
		,tmp.bl_txn_burdened_cost
		,tmp.bl_txn_revenue
		,tmp.BL_TXN_INIT_RAW_COST
                ,tmp.BL_TXN_INIT_BURDENED_COST
                ,tmp.BL_TXN_INIT_REVENUE
                ,NVL(tmp.RE_SPREAD_AMTS_FLAG,'N')  re_spread_amts_flag
                ,NVL(tmp.SP_CURVE_CHANGE_FLAG,'N')  sp_curve_change_flag
                ,NVL(tmp.PLAN_DATES_CHANGE_FLAG,'N') plan_dates_change_flag
                ,NVL(tmp.SP_FIX_DATE_CHANGE_FLAG,'N') spfix_date_change_flag
                ,NVL(tmp.MFC_COST_CHANGE_FLAG,'N') mfc_cost_change_flag
                ,NVL(tmp.RLM_ID_CHANGE_FLAG,'N') rlm_id_change_flag
                ,NVL(tmp.system_reference_var1 ,'N') ra_in_multi_cur_flag
        FROM pa_fp_spread_calc_tmp tmp
                ,pa_resource_assignments ra
        WHERE tmp.budget_version_id = p_budget_version_id
        AND   tmp.resource_assignment_id = ra.resource_assignment_id
        AND   ra.rate_based_flag = 'N'
        AND   ( (NVL(tmp.bl_txn_raw_cost,0) = nvl(tmp.bl_quantity,0)
		and NVL(tmp.bl_txn_raw_cost,0) <> 0 )
	        OR
		(NVL(tmp.bl_txn_revenue,0) = nvl(tmp.bl_quantity,0)
		 and NVL(tmp.bl_txn_revenue,0) <> 0)
	      )
	 and  (nvl(tmp.bl_txn_raw_cost,0) - nvl(tmp.bl_txn_init_raw_cost,0)) <> 0 --Added for bug 6842835
	AND  (NVL(tmp.RE_SPREAD_AMTS_FLAG,'N')  = 'Y'
              OR NVL(tmp.SP_CURVE_CHANGE_FLAG,'N')  = 'Y'
              OR NVL(tmp.PLAN_DATES_CHANGE_FLAG,'N') = 'Y'
              OR NVL(tmp.SP_FIX_DATE_CHANGE_FLAG,'N') = 'Y'
              --OR NVL(tmp.MFC_COST_CHANGE_FLAG,'N') = 'Y'
              OR NVL(tmp.RLM_ID_CHANGE_FLAG,'N') = 'Y'
	     );
Line: 2222

        l_resource_assignment_tab.delete;
Line: 2223

        l_txn_currency_code_tab.delete;
Line: 2224

        l_start_date_tab.delete;
Line: 2225

        l_end_date_tab.delete;
Line: 2226

        l_bilRtSetFlag_Tab.delete;
Line: 2227

        l_bl_resprd_flag_tab.delete;
Line: 2228

        l_resetAmts_Tab.delete;
Line: 2229

	l_cost_rate_override_tab.delete;
Line: 2230

        l_burden_rate_override_tab.delete;
Line: 2231

        l_bill_rate_override_tab.delete;
Line: 2276

                  UPDATE pa_resource_asgn_curr rtx
                  SET   rtx.txn_raw_cost_rate_override = l_cost_rate_override_tab(i)
                        ,rtx.txn_burden_cost_rate_override = l_burden_rate_override_tab(i)
                        ,rtx.txn_bill_rate_override = l_bill_rate_override_tab(i)
                   WHERE rtx.resource_assignment_id = l_resource_assignment_tab(i)
                   AND rtx.txn_currency_code = l_txn_currency_code_tab(i);
Line: 2284

                UPDATE pa_budget_lines bl
                SET bl.txn_bill_rate_override = l_bill_rate_override_tab(i)
                    ,bl.txn_cost_rate_override = l_cost_rate_override_tab(i)
                    ,bl.burden_cost_rate_override = l_burden_rate_override_tab(i)
                WHERE bl.resource_assignment_id = l_resource_assignment_tab(i)
                AND  bl.txn_currency_code = l_txn_currency_code_tab(i);
Line: 2292

                   UPDATE /*+ INDEX(TMP PA_FP_SPREAD_CALC_TMP_N1) */ pa_fp_spread_calc_tmp tmp
                   SET  tmp.cost_rate_override = l_cost_rate_override_tab(i)
			,tmp.burden_cost_rate_override = l_burden_rate_override_tab(i)
			,tmp.bill_rate_override = l_bill_rate_override_tab(i)
                   WHERE tmp.resource_assignment_id = l_resource_assignment_tab(i)
                   AND  tmp.txn_currency_code = l_txn_currency_code_tab(i);
Line: 2328

	SELECT tmp.resource_assignment_id
		,tmp.txn_currency_code
		,tmp.start_date
		,tmp.end_date
		,ra.resource_rate_based_flag
		,ra.rate_based_flag
		,tmp.raw_cost_changed_flag
		,tmp.burden_cost_changed_flag
		,tmp.revenue_changed_flag
		,tmp.revenue_only_entered_flag
		,tmp.burden_only_entered_flag
		,tmp.txn_raw_cost
		,tmp.txn_burdened_cost
		,tmp.txn_revenue
		,tmp.BL_TXN_INIT_RAW_COST
                ,tmp.BL_TXN_INIT_BURDENED_COST
                ,tmp.BL_TXN_INIT_REVENUE
		,tmp.bl_txn_raw_cost
		,tmp.bl_quantity
		,NVL(tmp.RE_SPREAD_AMTS_FLAG,'N')  re_spread_amts_flag
                ,NVL(tmp.SP_CURVE_CHANGE_FLAG,'N')  sp_curve_change_flag
                ,NVL(tmp.PLAN_DATES_CHANGE_FLAG,'N') plan_dates_change_flag
                ,NVL(tmp.SP_FIX_DATE_CHANGE_FLAG,'N') spfix_date_change_flag
                ,NVL(tmp.MFC_COST_CHANGE_FLAG,'N') mfc_cost_change_flag
		,NVL(tmp.RLM_ID_CHANGE_FLAG,'N') rlm_id_change_flag
		,NVL(tmp.system_reference_var1 ,'N') ra_in_multi_cur_flag
		,NVL(tmp.DELETE_BL_FLAG,'N') delete_bl_flag
	FROM pa_fp_spread_calc_tmp tmp
		,pa_resource_assignments ra
	WHERE tmp.budget_version_id = p_budget_version_id
	AND   tmp.resource_assignment_id = ra.resource_assignment_id
	AND   nvl(ra.rate_based_flag,'N') = 'N'
	AND   NVL(tmp.quantity_changed_flag,'N') = 'N'
	AND   NVL(tmp.bl_txn_raw_cost,0) <> 0
	AND   NVL(tmp.bl_txn_raw_cost,0) <> nvl(tmp.bl_quantity,0)
	AND   NVL(tmp.revenue_only_entered_flag,'N') <> 'Y'
	/*AND   NVL(tmp.RE_SPREAD_AMTS_FLAG,'N')  = 'N'
        AND   NVL(tmp.SP_CURVE_CHANGE_FLAG,'N')  = 'N'
        AND   NVL(tmp.PLAN_DATES_CHANGE_FLAG,'N') = 'N'
        AND   NVL(tmp.SP_FIX_DATE_CHANGE_FLAG,'N') = 'N'
        AND   NVL(tmp.RLM_ID_CHANGE_FLAG,'N') = 'N'
	*/
	AND   NVL(tmp.DELETE_BL_FLAG,'N') = 'N'
	AND   EXISTS ( select null
			from pa_budget_lines bl
			where bl.resource_assignment_id = tmp.resource_assignment_id
			and   bl.txn_currency_code = tmp.txn_currency_code
			and   ((p_source_context = 'BUDGET_LINE'
				and bl.start_date between tmp.start_date and tmp.end_date)
				OR
				p_source_context <> 'BUDGET_LINE'
				)
		    );
Line: 2399

	l_resource_assignment_tab.delete;
Line: 2400

        l_txn_currency_code_tab.delete;
Line: 2401

        l_start_date_tab.delete;
Line: 2402

        l_end_date_tab.delete;
Line: 2403

        l_bilRtSetFlag_Tab.delete;
Line: 2404

	l_bl_resprd_flag_tab.delete;
Line: 2405

	l_resetAmts_Tab.delete;
Line: 2406

	l_cost_rate_override_tab.delete;
Line: 2407

        l_burden_rate_override_tab.delete;
Line: 2408

        l_bill_rate_override_tab.delete;
Line: 2461

                  UPDATE pa_resource_asgn_curr rtx
                  SET   (rtx.txn_raw_cost_rate_override
			,rtx.txn_burden_cost_rate_override
			,rtx.txn_bill_rate_override) =
                        (select decode(sum(nvl(bl.txn_raw_cost,0) - nvl(bl.txn_init_raw_cost,0)),0,rtx.txn_raw_cost_rate_override,1)
				,decode(sum(nvl(bl.txn_raw_cost,0) - nvl(bl.txn_init_raw_cost,0)),0,0
					,(sum(nvl(bl.txn_burdened_cost,0) - nvl(bl.txn_init_burdened_cost,0))/
					(sum(nvl(bl.txn_raw_cost,0) - nvl(bl.txn_init_raw_cost,0)))))
				,decode(sum(nvl(bl.txn_revenue,0)-nvl(bl.txn_init_revenue,0)),0,rtx.txn_bill_rate_override
					,(sum(nvl(bl.txn_revenue,0)-nvl(bl.txn_init_revenue,0)))/
					 (sum(nvl(bl.txn_raw_cost,0) - nvl(bl.txn_init_raw_cost,0))))
                        from pa_budget_lines bl
                        where bl.resource_assignment_id = rtx.resource_assignment_id
                        and bl.txn_currency_code = rtx.txn_currency_code
                        )
                   WHERE rtx.resource_assignment_id = l_resource_assignment_tab(i)
                   AND rtx.txn_currency_code = l_txn_currency_code_tab(i)
                   AND EXISTS (select null
				from pa_budget_lines bl1
				where bl1.resource_assignment_id = rtx.resource_assignment_id
				and bl1.txn_currency_code = rtx.txn_currency_code
				);
Line: 2486

		print_msg('1.4: Update spread calc tmp with quantity = raw cost');
Line: 2489

                   UPDATE /*+ INDEX(TMP PA_FP_SPREAD_CALC_TMP_N1) */ pa_fp_spread_calc_tmp tmp
                   SET tmp.quantity =
				(select decode(sum(bl.txn_raw_cost),NULL,sum(bl.txn_revenue),sum(bl.txn_raw_cost))
				from pa_budget_lines bl
                        	where bl.resource_assignment_id = tmp.resource_assignment_id
                        	and bl.txn_currency_code = tmp.txn_currency_code
				)
                   WHERE tmp.resource_assignment_id = l_resource_assignment_tab(i)
                   AND  tmp.txn_currency_code = l_txn_currency_code_tab(i)
		   AND EXISTS (select null
                                from pa_budget_lines bl1
                                where bl1.resource_assignment_id = tmp.resource_assignment_id
                                and bl1.txn_currency_code = tmp.txn_currency_code
                                );
Line: 2504

		--print_msg('1.5: update budget lines set override rates to null');
Line: 2506

                UPDATE pa_budget_lines bl
                SET bl.txn_bill_rate_override = null
		    ,bl.burden_cost_rate_override = null
                    ,bl.txn_cost_rate_override = 1
                WHERE bl.resource_assignment_id = l_resource_assignment_tab(i)
                AND  bl.txn_currency_code = l_txn_currency_code_tab(i);
Line: 2515

		--print_msg('1.1.1: Update budget lines to set override rates');
Line: 2517

		UPDATE pa_budget_lines bl
		SET bl.txn_bill_rate_override = l_bill_rate_override_tab(i)
			/* bug fix: 5089153 stamp bill rate override only if revenue is changed along with cost
			decode(bl.txn_cost_rate_override,0
			,decode(bl.txn_bill_rate_override,1,l_bill_rate_override_tab(i)
				,nvl(l_bill_rate_override_tab(i),bl.txn_bill_rate_override))
			,decode(bl.txn_bill_rate_override,1,l_bill_rate_override_tab(i)
				,nvl(l_bill_rate_override_tab(i),bl.txn_bill_rate_override))) */
		    ,bl.txn_cost_rate_override = 1
		    ,bl.burden_cost_rate_override =
			decode(bl.txn_cost_rate_override,0,l_burden_rate_override_tab(i)
				,NULL,l_burden_rate_override_tab(i)
				,NVL(l_burden_rate_override_tab(i),bl.burden_cost_rate_override))
		WHERE bl.resource_assignment_id = l_resource_assignment_tab(i)
		AND  bl.txn_currency_code = l_txn_currency_code_tab(i)
		AND  ((p_source_context = 'BUDGET_LINE'
                       and bl.start_date between l_start_date_tab(i) and l_end_date_tab(i))
                       OR
                       p_source_context <> 'BUDGET_LINE'
                     );
Line: 2539

		  --print_msg('1.1.2: update resource asgn cur to set rate overrides');
Line: 2541

		  UPDATE pa_resource_asgn_curr rtx
		  SET (rtx.txn_bill_rate_override
			,rtx.txn_burden_cost_rate_override ) =
			(select decode(rtx.txn_bill_rate_override,NULL
				  ,nvl(l_bill_rate_override_tab(i),rtx.txn_bill_rate_override)
				,decode((nvl(tmp.bl_txn_raw_cost,0)-nvl(tmp.bl_txn_init_raw_cost,0)),0
				 ,nvl(l_bill_rate_override_tab(i),rtx.txn_bill_rate_override)
			          ,((tmp.txn_revenue - nvl(tmp.bl_txn_init_revenue,0))/
				  (nvl(tmp.bl_txn_raw_cost,0)-nvl(tmp.bl_txn_init_raw_cost,0)))))
			  ,decode(nvl(tmp.burden_cost_changed_flag,'N'), 'Y'
					,nvl(l_burden_rate_override_tab(i),rtx.txn_burden_cost_rate_override))
		  	from pa_fp_spread_calc_tmp tmp
			where tmp.resource_assignment_id = rtx.resource_assignment_id
			and tmp.txn_currency_code = rtx.txn_currency_code
			and tmp.raw_cost_changed_flag = 'Y'
			)
		   WHERE rtx.resource_assignment_id = l_resource_assignment_tab(i)
		   AND rtx.txn_currency_code = l_txn_currency_code_tab(i)
		   ;
Line: 2562

		--print_msg('1.1.3: update spread calc tmp to rate overrides');
Line: 2564

		   UPDATE /*+ INDEX(TMP PA_FP_SPREAD_CALC_TMP_N1) */ pa_fp_spread_calc_tmp tmp
		   SET tmp.re_spread_amts_flag =
				decode(tmp.re_spread_amts_flag,'Y','Y',l_bl_resprd_flag_tab(i))
			,tmp.delete_bl_flag = decode(tmp.delete_bl_flag,'Y','Y'
				,decode(l_bl_resprd_flag_tab(i),'Y','Y',tmp.delete_bl_flag))
			,tmp.bill_rate_override =
				nvl(l_bill_rate_override_tab(i),tmp.bill_rate_override)
			,tmp.burden_cost_rate_override =
				nvl(l_burden_rate_override_tab(i),tmp.burden_cost_rate_override)
			/* bug fix:5463690 */
 	                ,tmp.NEG_QUANTITY_CHANGE_FLAG  = decode(nvl(l_bl_resprd_flag_tab(i),'N'),'Y','N'
 	                                                         ,tmp.NEG_QUANTITY_CHANGE_FLAG)
 	                ,tmp.NEG_RAWCOST_CHANGE_FLAG = decode(nvl(l_bl_resprd_flag_tab(i),'N'),'Y','N'
 	                                                         ,tmp.NEG_RAWCOST_CHANGE_FLAG)
 	                ,tmp.NEG_BURDEN_CHANGE_FALG = decode(nvl(l_bl_resprd_flag_tab(i),'N'),'Y','N'
 	                                                         ,tmp.NEG_BURDEN_CHANGE_FALG)
 	                ,tmp.NEG_REVENUE_CHANGE_FLAG = decode(nvl(l_bl_resprd_flag_tab(i),'N'),'Y','N'
 	                                                         ,tmp.NEG_REVENUE_CHANGE_FLAG)
		   WHERE tmp.resource_assignment_id = l_resource_assignment_tab(i)
                   AND  tmp.txn_currency_code = l_txn_currency_code_tab(i)
                   AND  ((p_source_context = 'BUDGET_LINE'
                       and tmp.start_date = l_start_date_tab(i) )
                       OR
                       p_source_context <> 'BUDGET_LINE'
                     );
Line: 2643

    SELECT tmp.resource_assignment_id
        ,tmp.txn_currency_code
        ,tmp.quantity
        ,tmp.txn_raw_cost
        ,tmp.txn_burdened_cost
        ,tmp.txn_revenue
        ,g_budget_version_type  version_type
        ,tmp.start_date
        ,tmp.end_date
        ,rlm.alias
        ,g_budget_version_name  version_name
        ,tmp.bl_quantity
	,tmp.bl_txn_raw_cost
	,tmp.bl_cost_rate_override bl_rw_cost_rate
	,tmp.bl_burden_cost_rate_override bl_burd_rate
	,tmp.bl_bill_rate_override bl_bill_rate
	,tmp.cost_rate_override
	,tmp.burden_cost_rate_override
	,tmp.bill_rate_override
	,tmp.bl_init_quantity  		init_quantity
	,tmp.bl_txn_init_raw_cost 	txn_init_raw_cost
	,tmp.bl_txn_init_burdened_cost 	txn_init_burdened_cost
	,tmp.bl_txn_init_revenue	txn_init_revenue
        ,NVL(ra.resource_rate_based_flag,'N') resource_rate_based_flag
	,NVL(ra.rate_based_flag ,'N') rate_based_flag
	,rlm.unit_of_measure UOM
	,ra.unit_of_measure currentUOM
	,NVL(tmp.quantity_changed_flag,'N') quantity_changed_flag
	,NVL(tmp.cost_rate_changed_flag,'N') cost_rate_changed_flag
	,NVL(tmp.burden_rate_changed_flag,'N') burden_rate_changed_flag
	,NVL(tmp.bill_rate_changed_flag,'N') bill_rate_changed_flag
	,NVL(tmp.raw_cost_changed_flag,'N') raw_cost_changed_flag
	,NVL(tmp.burden_cost_changed_flag,'N') burden_cost_changed_flag
	,NVL(tmp.revenue_changed_flag,'N') revenue_changed_flag
    FROM pa_fp_spread_calc_tmp tmp
        ,pa_resource_assignments ra
        ,pa_resource_list_members rlm
    WHERE ra.budget_version_id = p_budget_version_id
    AND  ra.resource_assignment_id = tmp.resource_assignment_id
    AND  rlm.resource_list_member_id = ra.resource_list_member_id
    AND  NVL(ra.rate_based_flag,'N') <> NVL(ra.resource_rate_based_flag,'N')
    AND  NVL(ra.resource_rate_based_flag,'N') = 'Y'
    ORDER BY tmp.resource_assignment_id,tmp.txn_currency_code;
Line: 2688

    SELECT tmp.resource_assignment_id
        ,tmp.txn_currency_code
        ,tmp.quantity
        ,tmp.txn_raw_cost
        ,tmp.txn_burdened_cost
        ,tmp.txn_revenue
        ,g_budget_version_type  version_type
        ,tmp.start_date
        ,tmp.end_date
        ,rlm.alias
        ,g_budget_version_name  version_name
        ,tmp.bl_quantity
	,tmp.bl_txn_raw_cost
        ,tmp.bl_cost_rate_override bl_rw_cost_rate
        ,tmp.bl_burden_cost_rate_override bl_burd_rate
	,tmp.bl_bill_rate_override bl_bill_rate
        ,tmp.cost_rate_override
        ,tmp.burden_cost_rate_override
        ,tmp.bill_rate_override
	,tmp.bl_init_quantity           init_quantity
        ,tmp.bl_txn_init_raw_cost       txn_init_raw_cost
        ,tmp.bl_txn_init_burdened_cost  txn_init_burdened_cost
        ,tmp.bl_txn_init_revenue        txn_init_revenue
        ,NVL(ra.resource_rate_based_flag,'N') resource_rate_based_flag
        ,NVL(ra.rate_based_flag ,'N') rate_based_flag
        ,rlm.unit_of_measure UOM
	,ra.unit_of_measure currentUOM
        ,NVL(tmp.quantity_changed_flag,'N') quantity_changed_flag
        ,NVL(tmp.cost_rate_changed_flag,'N') cost_rate_changed_flag
        ,NVL(tmp.burden_rate_changed_flag,'N') burden_rate_changed_flag
        ,NVL(tmp.bill_rate_changed_flag,'N') bill_rate_changed_flag
        ,NVL(tmp.raw_cost_changed_flag,'N') raw_cost_changed_flag
        ,NVL(tmp.burden_cost_changed_flag,'N') burden_cost_changed_flag
        ,NVL(tmp.revenue_changed_flag,'N') revenue_changed_flag
	,tmp.bill_markup_percentage
    FROM pa_fp_spread_calc_tmp tmp
        ,pa_resource_assignments ra
        ,pa_resource_list_members rlm
    WHERE ra.budget_version_id = p_budget_version_id
    AND  ra.resource_assignment_id = tmp.resource_assignment_id
    AND  rlm.resource_list_member_id = ra.resource_list_member_id
    AND  NVL(ra.rate_based_flag,'N') = 'N'
    AND  ( (tmp.txn_raw_cost is NOT NULL or tmp.txn_revenue is NOT NULL)
 	           OR
 	        /* added this to pickup the lines where budget line exists and sum raw is zero and sum revenue is zero
 	          * and user changed burdened cost only
 	        */
 	        (nvl(tmp.txn_raw_cost,0)=0 and nvl(tmp.txn_revenue,0) =0 and tmp.txn_burdened_cost is NOT NULL)
 	        )
    AND  NVL(ra.resource_rate_based_flag,'N') = 'N'
    /* bug fix:5726773: commented out this and added exist clause
     * reason: when budget line exists and total plan qty is zero, the above cursor fails
     * AND  tmp.quantity is not null */
 	     AND  EXISTS (select /*+ INDEX(BL PA_BUDGET_LINES_U1) */ null
 	                  from pa_budget_lines bl1
 	                  where bl1.resource_assignment_id = tmp.resource_assignment_id
 	                  and bl1.txn_currency_code = tmp.txn_currency_code
 	                  and ((g_source_context = 'BUDGET_LINE'
 	                        and bl1.start_date between tmp.start_date and tmp.end_date)
 	                         OR
 	                        (g_source_context <> 'BUDGET_LINE')
 	                      )
 	                 )
    ORDER BY tmp.resource_assignment_id,tmp.txn_currency_code;
Line: 2758

	   l_resource_assignment_tab.delete;
Line: 2759

           l_txn_currency_code_tab.delete;
Line: 2760

           l_quantity_tab.delete;
Line: 2761

           l_raw_cost_tab.delete;
Line: 2762

           l_burden_cost_tab.delete;
Line: 2763

           l_revenue_tab.delete;
Line: 2764

           l_start_date_tab.delete;
Line: 2765

           l_end_date_tab.delete;
Line: 2766

           l_revenue_only_flag_tab.delete;
Line: 2767

	   l_reset_rate_based_flag_tab.delete;
Line: 2768

	   l_bd_cost_rate_override_tab.delete;
Line: 2769

	   l_rw_cost_rate_override_tab.delete;
Line: 2770

	   l_bill_rate_override_tab.delete;
Line: 2771

	   l_uom_tab.delete;
Line: 2772

	   l_rwRtSetFlag_Tab.delete;
Line: 2773

	   l_bilRtSetFlag_Tab.delete;
Line: 2774

	   l_bdRtSetFlag_tab.delete;
Line: 2775

	   l_reCalcbdRt_Tab.delete;
Line: 2776

           l_reCalcBilRt_Tab.delete;
Line: 2777

	   l_revenue_only_flag_tab.delete;
Line: 2778

	   l_costRt_g_miss_num_flag_tab.delete;
Line: 2779

           l_burdRt_g_miss_num_flag_tab.delete;
Line: 2780

           l_revRt_g_miss_num_flag_tab.delete;
Line: 2781

	   l_burden_only_flag_tab.delete;
Line: 3224

	   /* Update the RA and set the rate based flag = Y */
       	If x_return_status = 'S' AND l_resource_assignment_tab.COUNT > 0 Then --{

	/*
	for i in l_resource_assignment_tab.FIRST .. l_resource_assignment_tab.LAST loop
	print_msg('Contxt['||p_source_context||']raid['||l_resource_assignment_tab(i)||']');
Line: 3245

		DELETE FROM pa_fp_spread_calc_tmp2;
Line: 3247

		INSERT INTO pa_fp_spread_calc_tmp2 tmp2
		   	(budget_version_id
			,resource_assignment_id
			,txn_currency_code
			,task_id
			,resource_name
			)
		SELECT /*+ INDEX(TMP PA_FP_SPREAD_CALC_TMP_N1) */ p_budget_version_id
			,tmp.resource_assignment_id
			,tmp.txn_currency_code
			,tmp.task_id
			,tmp.resource_name
		FROM pa_fp_spread_calc_tmp tmp
		WHERE tmp.budget_version_id = p_budget_version_id
		AND tmp.resource_assignment_id = l_resource_assignment_tab(i)
		AND tmp.txn_currency_code = l_txn_currency_code_tab(i)
		AND  l_reset_rate_based_flag_tab(i) = 'Y'
		AND EXISTS (select null
				from pa_budget_lines bl
				WHERE tmp.resource_assignment_id = bl.resource_assignment_id
				AND  (tmp.txn_currency_code <> bl.txn_currency_code
				    OR
				    ( tmp.txn_currency_code = bl.txn_currency_code
				      and nvl(bl.init_quantity,0) <> 0 )
				     )
			   );
Line: 3276

                DELETE FROM pa_fp_spread_calc_tmp2;
Line: 3278

                INSERT INTO pa_fp_spread_calc_tmp2 tmp2
                        (budget_version_id
                        ,resource_assignment_id
                        ,txn_currency_code
                        ,task_id
                        ,resource_name
                        ,start_date
                        ,end_date
                        )
                SELECT /*+ INDEX(TMP PA_FP_SPREAD_CALC_TMP_N1) */ p_budget_version_id
                        ,tmp.resource_assignment_id
                        ,tmp.txn_currency_code
                        ,tmp.task_id
                        ,tmp.resource_name
                        ,tmp.start_date
                        ,tmp.end_date
                FROM pa_fp_spread_calc_tmp tmp
                WHERE tmp.budget_version_id = p_budget_version_id
                AND tmp.resource_assignment_id = l_resource_assignment_tab(i)
                AND tmp.txn_currency_code = l_txn_currency_code_tab(i)
		AND tmp.start_date = l_start_date_tab(i)
                AND l_reset_rate_based_flag_tab(i) = 'Y'
                AND EXISTS (select null
                                from pa_budget_lines bl
                                WHERE tmp.resource_assignment_id = bl.resource_assignment_id
                                AND  ( (tmp.txn_currency_code <> bl.txn_currency_code)
				      OR (tmp.txn_currency_code = bl.txn_currency_code
					  --and bl.start_date NOT BETWEEN tmp.start_date and tmp.end_date
					  and nvl(bl.init_quantity,0) <> 0  --7185263
					 ))
                           );
Line: 3313

		FOR i IN (SELECT tmp2.resource_assignment_id
				,tmp2.txn_currency_code
				,tmp2.task_id
				,tmp2.resource_name
				,tmp2.start_date
			 FROM pa_fp_spread_calc_tmp2 tmp2
			 WHERE tmp2.budget_version_id = p_budget_version_id ) LOOP --{

			g_stage := 'PA_FP_RATE_BASE_QTY_REQD:RaId['||i.resource_assignment_id||']';
Line: 3360

            		UPDATE PA_RESOURCE_ASSIGNMENTS ra
            		SET ra.rate_based_flag = 'Y'
               		,ra.unit_of_measure = l_uom_tab(i)
            	WHERE ra.resource_assignment_id = l_resource_assignment_tab(i)
		AND l_reset_rate_based_flag_tab(i) = 'Y';
Line: 3369

			UPDATE PA_RESOURCE_ASGN_CURR rtx
			SET rtx.txn_raw_cost_rate_override = decode(l_rwRtSetFlag_Tab(i),'Y',NULL,rtx.txn_raw_cost_rate_override)
			    ,rtx.txn_bill_rate_override = decode(l_bilRtSetFlag_Tab(i),'Y',NULL,rtx.txn_bill_rate_override)
			    ,rtx.txn_burden_cost_rate_override = decode(l_bdRtSetFlag_Tab(i),'Y',NULL,rtx.txn_burden_cost_rate_override)
			WHERE rtx.resource_assignment_id = l_resource_assignment_tab(i)
                        AND  rtx.txn_currency_code = l_txn_currency_code_tab(i)
			AND  (l_rwRtSetFlag_Tab(i) = 'Y' OR l_bilRtSetFlag_Tab(i) = 'Y' OR l_bdRtSetFlag_Tab(i) = 'Y' )
			AND ( p_source_context = 'RESOURCE_ASSIGNMENT'
			      OR
			      (p_source_context = 'BUDGET_LINE'
				and l_reset_rate_based_flag_tab(i) = 'Y')
			    );
Line: 3385

                        UPDATE PA_BUDGET_LINES bl
                        SET bl.txn_cost_rate_override = decode(l_rwRtSetFlag_Tab(i),'Y',NULL,bl.txn_cost_rate_override)
                            ,bl.txn_bill_rate_override = decode(l_bilRtSetFlag_Tab(i),'Y',NULL,bl.txn_bill_rate_override)
			    ,bl.burden_cost_rate_override = decode(l_bdRtSetFlag_Tab(i),'Y',NULL,bl.burden_cost_rate_override)
                        WHERE bl.resource_assignment_id = l_resource_assignment_tab(i)
                        AND  bl.txn_currency_code = l_txn_currency_code_tab(i)
			AND  ((p_source_context = 'BUDGET_LINE'
				and bl.start_date BETWEEN l_start_date_tab(i) and l_end_date_tab(i))
			      OR
				p_source_context <> 'BUDGET_LINE'
			     )
                        AND  (l_rwRtSetFlag_Tab(i) = 'Y' OR l_bilRtSetFlag_Tab(i) = 'Y' OR l_bdRtSetFlag_Tab(i) = 'Y');
Line: 3400

        	/* Now update the rollup tmp with the new qty and raw cost */
        	print_msg('Updating tmp table  with qty = rawcost or burden cost');
Line: 3403

            		UPDATE /*+ INDEX(TMP PA_FP_SPREAD_CALC_TMP_N1) */ pa_fp_spread_calc_tmp tmp
            		SET tmp.quantity = NVL(l_quantity_tab(i),tmp.quantity)
               		,tmp.txn_raw_cost = NVL(l_raw_cost_tab(i),tmp.txn_raw_cost)
               		,tmp.cost_rate_override = decode(l_rwRtSetFlag_Tab(i),'Y',NULL,NVL(l_rw_cost_rate_override_tab(i),tmp.cost_rate_override))
			,tmp.bill_rate_override = decode(l_bilRtSetFlag_Tab(i),'Y',NULL,NVL(l_bill_rate_override_tab(i),tmp.bill_rate_override))
			,tmp.burden_cost_rate_override = decode(l_bdRtSetFlag_Tab(i),'Y',NULL
							   ,decode(l_reCalcBdRt_tab(i),'Y',NULL,NVL(l_bd_cost_rate_override_tab(i),tmp.burden_cost_rate_override)))
			,tmp.burden_rate_changed_flag = decode(l_bdRtSetFlag_Tab(i),'Y',tmp.burden_rate_changed_flag
							   ,decode(l_reCalcBdRt_tab(i),'Y','N',tmp.burden_rate_changed_flag))
			,tmp.burden_rate_g_miss_num_flag = decode(l_bdRtSetFlag_Tab(i),'Y',nvl(l_burdRt_g_miss_num_flag_tab(i),tmp.burden_rate_g_miss_num_flag)
								,decode(l_reCalcBdRt_tab(i),'Y','N'
								  ,nvl(l_burdRt_g_miss_num_flag_tab(i), tmp.burden_rate_g_miss_num_flag)))
			,tmp.bill_rate_changed_flag = decode(l_bilRtSetFlag_tab(i),'Y',tmp.bill_rate_changed_flag
								,decode(l_reCalcBilRt_tab(i),'Y','N',tmp.bill_rate_changed_flag))
			,tmp.revenue_only_entered_flag = l_revenue_only_flag_tab(i)
                        ,tmp.cost_rate_g_miss_num_flag = NVL(l_costRt_g_miss_num_flag_tab(i),tmp.cost_rate_g_miss_num_flag)
                        ,tmp.bill_rate_g_miss_num_flag = NVL(l_revRt_g_miss_num_flag_tab(i),tmp.bill_rate_g_miss_num_flag)
			,tmp.burden_only_entered_flag = l_burden_only_flag_tab(i)
			,(tmp.rate_based_flag
                 	 ,tmp.resource_rate_based_flag
			 ,tmp.resource_UOM) =
                                        (select nvl(ra.rate_based_flag,'N' )
                                                ,nvl(ra.resource_rate_based_flag,'N')
						,l_uom_tab(i)
                                        from pa_resource_assignments ra
                                        where ra.resource_assignment_id = tmp.resource_assignment_id)
			/* bug fix:5116157: to store the reset flag so that correct rate base flag and uom can pass to PJI*/
			,tmp.system_reference_var3 = NVL(l_reset_rate_based_flag_tab(i),'N') -- Reset_Rate_Base_Flag
			/* bug fix:5726773 */
 	                ,tmp.NEG_QUANTITY_CHANGE_FLAG = decode(nvl(l_reset_rate_based_flag_tab(i),'N'),'Y','N'
 	                                                         ,tmp.NEG_QUANTITY_CHANGE_FLAG)
 	                ,tmp.NEG_RAWCOST_CHANGE_FLAG = decode(nvl(l_reset_rate_based_flag_tab(i),'N'),'Y','N'
 	                                                         ,tmp.NEG_RAWCOST_CHANGE_FLAG)
 	                ,tmp.NEG_BURDEN_CHANGE_FALG= decode(nvl(l_reset_rate_based_flag_tab(i),'N'),'Y','N'
 	                                                         ,tmp.NEG_BURDEN_CHANGE_FALG)
 	                ,tmp.NEG_REVENUE_CHANGE_FLAG = decode(nvl(l_reset_rate_based_flag_tab(i),'N'),'Y','N'
 	                                                         ,tmp.NEG_REVENUE_CHANGE_FLAG)
            		WHERE tmp.resource_assignment_id = l_resource_assignment_tab(i)
            		AND  tmp.txn_currency_code = l_txn_currency_code_tab(i)
			AND  ((p_source_context = 'BUDGET_LINE'
                                and tmp.start_date BETWEEN l_start_date_tab(i) and l_end_date_tab(i))
                              OR
                                p_source_context <> 'BUDGET_LINE'
                             );
Line: 3512

    SELECT tmp.resource_assignment_id
        ,tmp.txn_currency_code
        ,tmp.quantity
        ,tmp.txn_raw_cost
        ,tmp.txn_burdened_cost
        ,tmp.txn_revenue
        ,g_budget_version_type  version_type
        ,tmp.start_date
        ,tmp.end_date
        ,rlm.alias
        ,g_budget_version_name  version_name
        ,tmp.bl_quantity
	,ra.resource_rate_based_flag
	,rlm.unit_of_measure uom
	/* bug fix:5726773 */
 	,to_number(null) bl_sum_qty
 	,nvl(tmp.cost_rate_changed_flag,'N') cost_rate_changed_flag
 	,nvl(tmp.burden_rate_changed_flag,'N') burden_rate_changed_flag
 	,nvl(tmp.bill_rate_changed_flag,'N') bill_rate_changed_flag
 	,NVL(tmp.RE_SPREAD_AMTS_FLAG,'N') re_spread_amts_flag
 	,NVL(tmp.SP_CURVE_CHANGE_FLAG,'N') sp_curve_change_flag
 	,NVL(tmp.PLAN_DATES_CHANGE_FLAG,'N') plan_dates_change_flag
 	,NVL(tmp.SP_FIX_DATE_CHANGE_FLAG,'N') sp_fix_date_change_flag
 	,NVL(tmp.MFC_COST_CHANGE_FLAG,'N') mfc_cost_change_flag
 	,NVL(tmp.RLM_ID_CHANGE_FLAG,'N') rlm_id_change_flag
 	,NVL(tmp.delete_bl_flag,'N') delete_bl_flag
 	,NVL(tmp.raw_cost_changed_flag,'N') raw_cost_changed_flag
 	,NVL(tmp.burden_cost_changed_flag,'N') burden_cost_changed_flag
 	,NVL(tmp.revenue_changed_flag,'N') revenue_changed_flag
    FROM pa_fp_spread_calc_tmp tmp
        ,pa_resource_assignments ra
        ,pa_resource_list_members rlm
    WHERE ra.budget_version_id = p_budget_version_id
    AND  ra.resource_assignment_id = tmp.resource_assignment_id
    AND  rlm.resource_list_member_id = ra.resource_list_member_id
    AND  NVL(ra.rate_based_flag,'N') = 'Y'
        AND  NVL(tmp.quantity,0) = 0
    AND NVL(tmp.quantity_changed_flag,'N') = 'N'
    ORDER BY tmp.resource_assignment_id,tmp.txn_currency_code;
Line: 3553

    SELECT 'Y'
    FROM dual
    WHERE EXISTS (select null
            from pa_budget_lines bl
                ,pa_resource_assignments ra
            where ra.resource_assignment_id = p_ra_id
            and bl.resource_assignment_id = ra.resource_assignment_id
            and NVL(ra.rate_based_flag,'N') = 'Y'
            /* Bug fix:4083873 and bl.txn_currency_code = p_txn_cur_code */
            and bl.budget_version_id = p_budget_version_id
             );
Line: 3566

        SELECT 'Y'
        FROM dual
        WHERE EXISTS (select null
                        from pa_fp_spread_calc_tmp bl
                        where bl.resource_assignment_id = p_ra_id
                        /* Bug fix:4083873 and bl.txn_currency_code = p_txn_cur_code */
            and nvl(bl.quantity,0) <>  0
                     );
Line: 3579

        SELECT tmp.resource_assignment_id
                ,tmp.txn_currency_code
                ,tmp.quantity
                ,tmp.txn_raw_cost
                ,tmp.txn_burdened_cost
                ,tmp.txn_revenue
                ,tmp.start_date
                ,tmp.end_date
        	,tmp.bl_quantity
		,rlm.unit_of_measure uom
        FROM pa_fp_spread_calc_tmp tmp
        ,pa_resource_assignments ra
	,pa_resource_list_members rlm
        WHERE tmp.budget_version_id = p_budget_version_id
        AND   ra.resource_assignment_id = tmp.resource_assignment_id
	AND  rlm.resource_list_member_id = ra.resource_list_member_id
        AND  NVL(ra.rate_based_flag,'N') = 'N'
        AND  ( g_budget_version_type IN ('COST','ALL')
        AND NVL(tmp.quantity,0) = 0
        AND NVL(tmp.txn_raw_cost,0) = 0
        AND ((NVL(tmp.txn_burdened_cost,0) <> 0 )
             OR
             NVL(tmp.txn_revenue,0) <> 0
            )
         )
    AND NOT EXISTS ( select null
            from pa_budget_lines bl
            where bl.budget_version_id = p_budget_version_id
            and   bl.resource_assignment_id = tmp.resource_assignment_id
            and  bl.txn_currency_code = tmp.txn_currency_code
            and  (p_source_context <> 'BUDGET_LINE'
                 OR
                 (p_source_context = 'BUDGET_LINE'
                  and bl.start_date between tmp.start_date and tmp.end_date)
                 )
            );
Line: 3636

       l_resource_assignment_tab.delete;
Line: 3637

           l_txn_currency_code_tab.delete;
Line: 3638

           l_quantity_tab.delete;
Line: 3639

           l_raw_cost_tab.delete;
Line: 3640

           l_burden_cost_tab.delete;
Line: 3641

           l_revenue_tab.delete;
Line: 3642

           l_start_date_tab.delete;
Line: 3643

           l_end_date_tab.delete;
Line: 3644

	   l_revenue_only_flag_tab.delete;
Line: 3645

	   l_costRt_g_miss_num_flag_tab.delete;
Line: 3646

           l_burdRt_g_miss_num_flag_tab.delete;
Line: 3647

           l_revRt_g_miss_num_flag_tab.delete;
Line: 3648

	   l_costRt_changed_flag_tab.delete;
Line: 3649

    	   l_burdRt_changed_flag_tab.delete;
Line: 3650

    	   l_billRt_changed_flag_tab.delete;
Line: 3651

	   l_burden_only_flag_tab.delete;
Line: 3652

	   l_uom_tab.delete;
Line: 3726

            UPDATE /*+ INDEX(TMP PA_FP_SPREAD_CALC_TMP_N1) */ pa_fp_spread_calc_tmp tmp
                        SET tmp.quantity = l_quantity_tab(i)
                           ,tmp.txn_raw_cost = decode(nvl(tmp.txn_raw_cost,0),0,l_raw_cost_tab(i),tmp.txn_raw_cost)
               		   ,tmp.cost_rate_override = decode(l_revenue_only_flag_tab(i),'Y',0,1)
			   ,tmp.burden_cost_rate_override = decode(l_revenue_only_flag_tab(i),'Y',0
						,decode(g_wp_version_flag,'Y',tmp.burden_cost_rate_override
						 , decode(nvl(tmp.burden_cost_changed_flag,'N'),'N',NULL,tmp.burden_cost_rate_override)))
			   ,tmp.revenue_only_entered_flag = l_revenue_only_flag_tab(i)
			   ,tmp.cost_rate_g_miss_num_flag = NVL(l_costRt_g_miss_num_flag_tab(i),tmp.cost_rate_g_miss_num_flag)
			   ,tmp.burden_rate_g_miss_num_flag = nvl(l_burdRt_g_miss_num_flag_tab(i),tmp.burden_rate_g_miss_num_flag)
                           ,tmp.bill_rate_g_miss_num_flag = NVL(l_revRt_g_miss_num_flag_tab(i),tmp.bill_rate_g_miss_num_flag)
			   ,tmp.cost_rate_changed_flag = nvl(l_costRt_changed_flag_tab(i),tmp.cost_rate_changed_flag)
			   ,tmp.burden_rate_changed_flag = Nvl(l_burdRt_changed_flag_tab(i),tmp.burden_rate_changed_flag)
			   ,tmp.bill_rate_changed_flag = nvl(l_billRt_changed_flag_tab(i),tmp.bill_rate_changed_flag)
			   ,tmp.burden_only_entered_flag = l_burden_only_flag_tab(i)
                        WHERE tmp.resource_assignment_id = l_resource_assignment_tab(i)
                        AND  tmp.txn_currency_code = l_txn_currency_code_tab(i)
                        AND  ((p_source_context = 'RESOURCE_ASSIGNMENT')
                              OR
                              (p_source_context = 'BUDGET_LINE'
                               and tmp.start_date = l_start_date_tab(i)
                               and tmp.end_date = l_end_date_tab(i)
                             ));
Line: 3757

    l_resource_assignment_tab.delete;
Line: 3758

        l_txn_currency_code_tab.delete;
Line: 3759

        l_quantity_tab.delete;
Line: 3760

        l_raw_cost_tab.delete;
Line: 3761

        l_burden_cost_tab.delete;
Line: 3762

        l_revenue_tab.delete;
Line: 3763

        l_start_date_tab.delete;
Line: 3764

        l_end_date_tab.delete;
Line: 3765

	l_revenue_only_flag_tab.delete;
Line: 3766

	l_costRt_g_miss_num_flag_tab.delete;
Line: 3767

        l_burdRt_g_miss_num_flag_tab.delete;
Line: 3768

        l_revRt_g_miss_num_flag_tab.delete;
Line: 3769

	l_costRt_changed_flag_tab.delete;
Line: 3770

           l_burdRt_changed_flag_tab.delete;
Line: 3771

           l_billRt_changed_flag_tab.delete;
Line: 3772

	 l_burden_only_flag_tab.delete;
Line: 3773

	 l_uom_tab.delete;
Line: 3796

 	                 or i.delete_bl_flag = 'Y' ) Then
 	                 -- Resource attribute changed, so skip this record
 	                 NULL;
Line: 3866

                        SELECT pra.task_id,
                               pra.resource_list_member_id
                        INTO   l_webadi_task_id,
                               l_webadi_rlm_id
                        FROM   pa_resource_assignments pra
                        WHERE  pra.resource_assignment_id = i.resource_assignment_id
                        AND    pra.budget_version_id = p_budget_version_id;
Line: 3924

                        SELECT pra.task_id,
                               pra.resource_list_member_id
                        INTO   l_webadi_task_id,
                               l_webadi_rlm_id
                        FROM   pa_resource_assignments pra
                        WHERE  pra.resource_assignment_id = i.resource_assignment_id
                        AND    pra.budget_version_id = p_budget_version_id;
Line: 4118

                UPDATE pa_resource_asgn_curr rtx
                SET rtx.txn_raw_cost_rate_override = NULL
                   ,rtx.txn_burden_cost_rate_override = NULL
                   ,rtx.txn_bill_rate_override = NULL
                WHERE rtx.resource_assignment_id = l_resource_assignment_tab(i)
                AND rtx.txn_currency_code = l_txn_currency_code_tab(i)
                AND EXISTS ( select null
                                from pa_resource_assignments ra
                                where ra.rate_based_flag = 'Y'
                                and ra.resource_assignment_id = rtx.resource_assignment_id
                        );
Line: 4130

        /* update the resource assignments mark it as Non-Rate based */
	IF P_PA_DEBUG_MODE = 'Y' Then
        print_msg('Updating RA with Non-Rate base flag');
Line: 4135

            UPDATE PA_RESOURCE_ASSIGNMENTS ra
            SET ra.rate_based_flag = 'N'
               ,ra.unit_of_measure = 'DOLLARS'
            WHERE ra.resource_assignment_id = l_resource_assignment_tab(i);
Line: 4141

        /* Now update the rollup tmp with the new qty and raw cost */
	IF P_PA_DEBUG_MODE = 'Y' Then
        print_msg('Updating rollup tmp with qty = rawcost or burden cost');
Line: 4146

            UPDATE /*+ INDEX(TMP PA_FP_SPREAD_CALC_TMP_N1) */ pa_fp_spread_calc_tmp tmp
            SET tmp.quantity = l_quantity_tab(i)
               ,tmp.txn_raw_cost = decode(nvl(tmp.txn_raw_cost,0),0,l_raw_cost_tab(i),tmp.txn_raw_cost)
	       ,tmp.cost_rate_override = decode(nvl(l_revenue_only_flag_tab(i),'N'),'Y',0
					   ,decode(nvl(l_burden_only_flag_tab(i),'N'),'Y',1,tmp.cost_rate_override))
	       ,tmp.burden_cost_rate_override = decode(l_revenue_only_flag_tab(i),'Y',0
                                                ,decode(g_wp_version_flag,'Y',tmp.burden_cost_rate_override
                                                 , decode(nvl(tmp.burden_cost_changed_flag,'N'),'N',NULL,tmp.burden_cost_rate_override)))
	       ,tmp.revenue_only_entered_flag = l_revenue_only_flag_tab(i)
		,tmp.cost_rate_g_miss_num_flag = NVL(l_costRt_g_miss_num_flag_tab(i),tmp.cost_rate_g_miss_num_flag)
               ,tmp.burden_rate_g_miss_num_flag = nvl(l_burdRt_g_miss_num_flag_tab(i),tmp.burden_rate_g_miss_num_flag)
               ,tmp.bill_rate_g_miss_num_flag = NVL(l_revRt_g_miss_num_flag_tab(i),tmp.bill_rate_g_miss_num_flag)
		,tmp.cost_rate_changed_flag = nvl(l_costRt_changed_flag_tab(i),tmp.cost_rate_changed_flag)
                ,tmp.burden_rate_changed_flag = Nvl(l_burdRt_changed_flag_tab(i),tmp.burden_rate_changed_flag)
                ,tmp.bill_rate_changed_flag = nvl(l_billRt_changed_flag_tab(i),tmp.bill_rate_changed_flag)
		,tmp.burden_only_entered_flag = l_burden_only_flag_tab(i)
		,(tmp.rate_based_flag
		 ,tmp.resource_rate_based_flag
		 ,tmp.resource_uom) =
					(select nvl(ra.rate_based_flag,'N' )
						,nvl(ra.resource_rate_based_flag,'N')
						,l_uom_tab(i)
					from pa_resource_assignments ra
					where ra.resource_assignment_id = tmp.resource_assignment_id)
            WHERE tmp.resource_assignment_id = l_resource_assignment_tab(i)
            AND  tmp.txn_currency_code = l_txn_currency_code_tab(i)
            AND  ((p_source_context = 'RESOURCE_ASSIGNMENT')
                  OR
                  (p_source_context = 'BUDGET_LINE'
                   and tmp.start_date = l_start_date_tab(i)
                   and tmp.end_date = l_end_date_tab(i)
                 ));
Line: 4211

        SELECT gsb.period_set_name 		period_set_name
                ,gsb.accounted_period_type	accounted_period_type
                ,pia.pa_period_type		pa_period_type
         FROM gl_sets_of_books          gsb
                ,pa_implementations_all pia
                ,pa_projects_all        ppa
                ,pa_budget_versions     pbv
                ,pa_proj_fp_options     ppfo
        WHERE ppa.project_id        = pbv.project_id
          AND pbv.budget_version_id = ppfo.fin_plan_version_id
          AND ppa.org_id   = pia.org_id
          AND gsb.set_of_books_id   = pia.set_of_books_id
          AND pbv.budget_version_id = p_budget_verson_id;
Line: 4228

	SELECT ra.resource_assignment_id
		,ra.task_id
		,DECODE(ra.spread_curve_id,6,ra.sp_fixed_date
			,decode(LEAST(NVL(g_etc_start_date,ra.planning_start_date),ra.planning_end_date),ra.planning_end_date,ra.planning_start_date,NVL(g_etc_start_date,ra.planning_start_date))) planning_start_date   --Bug#6936782
		,DECODE(ra.spread_curve_id,6,ra.sp_fixed_date,ra.planning_end_date) planning_end_date
		,tmp.task_name
		,tmp.resource_name
	FROM pa_resource_assignments ra
	    ,pa_fp_spread_calc_tmp tmp
	WHERE ra.budget_version_id = p_budget_verson_id
	AND  ra.resource_assignment_id = tmp.resource_assignment_id
	AND NOT EXISTS
		(SELECT 'No period exist'
        	FROM gl_periods gp
        	WHERE gp.period_set_name  = periodDetailsRec.period_set_name
        	AND gp.period_type        = decode(p_time_phase_code,'G',periodDetailsRec.accounted_period_type
							,'P',periodDetailsRec.pa_period_type)
        	AND gp.adjustment_period_flag = 'N'
        	AND gp.start_date  <= decode(nvl(ra.spread_curve_id,1),6
					 ,ra.sp_fixed_date,ra.planning_end_date)   -- plan end date
        	AND  gp.end_date   >= decode(nvl(ra.spread_curve_id,1),6
					,ra.sp_fixed_date,decode(LEAST(NVL(g_etc_start_date,ra.planning_start_date),ra.planning_end_date),ra.planning_end_date,ra.planning_start_date,NVL(g_etc_start_date,ra.planning_start_date)))
					-- planning start date Bug#6936782
		);
Line: 4324

    SELECT tmp.resource_assignment_id
          ,tmp.txn_currency_code
          ,ra.planning_start_date
          ,ra.planning_end_date
          ,rl.alias resource_name
    FROM  pa_fp_spread_calc_tmp tmp
         ,pa_resource_assignments ra
         ,pa_resource_list_members rl
    WHERE tmp.budget_version_id = p_budget_version_id
    AND   ra.resource_assignment_id = tmp.resource_assignment_id
    AND   rl.resource_list_member_id = ra.resource_list_member_id
    AND   EXISTS ( select null
            from pa_budget_lines bl
            where bl.budget_version_id = p_budget_version_id
            and bl.resource_assignment_id = tmp.resource_assignment_id
            and bl.txn_currency_code = tmp.txn_currency_code
            group by bl.resource_assignment_id,bl.txn_currency_code
            having count(*) > 1
             );
Line: 4345

    SELECT /*+ INDEX(BL PA_BUDGET_LINES_U1) */ bl.budget_line_id
                ,bl.resource_assignment_id
                ,bl.txn_currency_code
                ,bl.start_date
                ,bl.end_date
                ,bl.period_name
                ,bl.budget_version_id
                ,bl.quantity bl_quantity
                ,bl.txn_standard_cost_rate
                ,bl.txn_cost_rate_override
                ,bl.txn_raw_cost
                ,bl.burden_cost_rate
                ,bl.burden_cost_rate_override
                ,bl.txn_burdened_cost
                ,bl.txn_standard_bill_rate
                ,bl.txn_bill_rate_override
                ,bl.txn_revenue
                ,bl.project_currency_code
                ,bl.project_raw_cost
                ,bl.project_burdened_cost
                ,bl.project_revenue
                ,bl.projfunc_currency_code
                ,bl.raw_cost
                ,bl.burdened_cost
                ,bl.revenue
                ,bl.cost_rejection_code
                ,bl.burden_rejection_code
                ,bl.revenue_rejection_code
                ,bl.pc_cur_conv_rejection_code
                ,bl.pfc_cur_conv_rejection_code
                ,bl.init_quantity  bl_init_quantity
                ,bl.txn_init_raw_cost
                ,bl.txn_init_burdened_cost
                ,bl.txn_init_revenue
                ,tmp.new_plan_start_date   plan_start_date
        ,tmp.new_plan_end_date    plan_end_date
        FROM pa_budget_lines bl
            ,pa_fp_spread_calc_tmp tmp
        WHERE bl.budget_version_id = p_budget_version_id
        AND  bl.resource_assignment_id = tmp.resource_assignment_id
        AND  bl.txn_currency_code = tmp.txn_currency_code
    AND  NVL(tmp.plan_dates_change_flag,'N') = 'Y'
    AND  NVL(tmp.system_reference_var1,'N') = 'Y'  --ResourceWithMultiCurrency
    AND  ( (bl.start_date <> trunc(tmp.new_plan_start_date))
          OR
           (bl.end_date <> trunc(tmp.new_plan_end_date))
         );
Line: 4421

        l_r_budget_line_id_tab.delete;
Line: 4422

            l_r_assignment_id_tab.delete;
Line: 4423

            l_r_txn_currency_code_tab.delete;
Line: 4424

            l_r_start_date_tab.delete;
Line: 4425

            l_r_end_date_tab.delete;
Line: 4426

            l_r_period_name_tab.delete;
Line: 4427

            l_r_quantity_tab.delete;
Line: 4428

            l_r_txn_raw_cost_tab.delete;
Line: 4429

            l_r_txn_burdened_cost_tab.delete;
Line: 4430

            l_r_txn_revenue_tab.delete;
Line: 4431

            l_r_project_currency_code_tab.delete;
Line: 4432

            l_r_project_raw_cost_tab.delete;
Line: 4433

            l_r_project_burdened_cost_tab.delete;
Line: 4434

            l_r_project_revenue_tab.delete;
Line: 4435

            l_r_projfunc_currency_code_tab.delete;
Line: 4436

            l_r_raw_cost_tab.delete;
Line: 4437

            l_r_burdened_cost_tab.delete;
Line: 4438

            l_r_revenue_tab.delete;
Line: 4439

            l_r_cost_rejection_code_tab.delete;
Line: 4440

            l_r_burden_rejection_code_tab.delete;
Line: 4441

            l_r_revenue_rejection_code_tab.delete;
Line: 4442

            l_r_pc_cur_rejection_code_tab.delete;
Line: 4443

            l_r_pfc_cur_rejection_code_tab.delete;
Line: 4472

           l_budget_line_id_tab.delete;
Line: 4473

               l_resAsgn_id_tab.delete;
Line: 4474

               l_txn_curr_code_tab.delete;
Line: 4475

               l_start_date_tab.delete;
Line: 4476

               l_end_date_tab.delete;
Line: 4479

                   /* populate the plsql tabs for bulk update of budget lines later */
                   l_rwCounter := l_rwCounter + 1;
Line: 4499

                       ,p_activity_code                => 'UPDATE'
                       ,p_budget_version_id            => p_budget_version_id
                       ,p_budget_line_id               => i.budget_line_id
                       ,p_resource_assignment_id       => i.resource_assignment_id
                       ,p_start_date                   => i.start_date
                       ,p_end_date                     => i.end_date
                       ,p_period_name                  => i.period_name
                       ,p_txn_currency_code            => i.txn_currency_code
                       ,p_quantity                     => i.bl_quantity *-1
                       ,p_txn_raw_cost                 => i.txn_raw_cost *-1
                       ,p_txn_burdened_cost            => i.txn_burdened_cost *-1
                       ,p_txn_revenue                  => i.txn_revenue *-1
                       ,p_project_currency_code        => i.project_currency_code
                       ,p_project_raw_cost             => i.project_raw_cost *-1
                       ,p_project_burdened_cost        => i.project_burdened_cost *-1
                       ,p_project_revenue              => i.project_revenue *-1
                       ,p_projfunc_currency_code       => i.projfunc_currency_code
                       ,p_projfunc_raw_cost            => i.raw_cost *-1
                       ,p_projfunc_burdened_cost       => i.burdened_cost *-1
                       ,p_projfunc_revenue             => i.revenue *-1
			,p_rep_line_mode               => 'REVERSAL'
                       ,x_msg_data                     => x_msg_data
                       ,x_return_status                => x_return_status
                       );
Line: 4529

            UPDATE PA_BUDGET_LINES bl
            SET bl.start_date = NVL(l_start_date_tab(i),bl.start_date)
               ,bl.end_date   = NVL(l_end_date_tab(i),bl.end_date)
            WHERE bl.budget_version_id = p_budget_version_id
            AND  bl.budget_line_id = l_budget_line_id_tab(i)
            RETURNING
             bl.budget_line_id
            ,bl.resource_assignment_id
            ,bl.txn_currency_code
            ,bl.start_date
            ,bl.end_date
            ,bl.period_name
            ,bl.quantity
            ,bl.txn_raw_cost
            ,bl.txn_burdened_cost
            ,bl.txn_revenue
            ,bl.project_currency_code
            ,bl.project_raw_cost
            ,bl.project_burdened_cost
            ,bl.project_revenue
            ,bl.projfunc_currency_code
            ,bl.raw_cost
            ,bl.burdened_cost
            ,bl.revenue
            ,bl.cost_rejection_code
                        ,bl.burden_rejection_code
                        ,bl.revenue_rejection_code
                        ,bl.pc_cur_conv_rejection_code
                        ,bl.pfc_cur_conv_rejection_code
            BULK COLLECT INTO
                l_r_budget_line_id_tab
                            ,l_r_assignment_id_tab
                            ,l_r_txn_currency_code_tab
                            ,l_r_start_date_tab
                            ,l_r_end_date_tab
                            ,l_r_period_name_tab
                            ,l_r_quantity_tab
                            ,l_r_txn_raw_cost_tab
                            ,l_r_txn_burdened_cost_tab
                            ,l_r_txn_revenue_tab
                            ,l_r_project_currency_code_tab
                            ,l_r_project_raw_cost_tab
                            ,l_r_project_burdened_cost_tab
                            ,l_r_project_revenue_tab
                            ,l_r_projfunc_currency_code_tab
                            ,l_r_raw_cost_tab
                            ,l_r_burdened_cost_tab
                            ,l_r_revenue_tab
                            ,l_r_cost_rejection_code_tab
                            ,l_r_burden_rejection_code_tab
                            ,l_r_revenue_rejection_code_tab
                            ,l_r_pc_cur_rejection_code_tab
                            ,l_r_pfc_cur_rejection_code_tab ;
Line: 4598

                           ,p_activity_code                => 'UPDATE'
                           ,p_budget_version_id            => p_budget_version_id
                           ,p_budget_line_id               => l_r_budget_line_id_tab(i)
                           ,p_resource_assignment_id       => l_r_assignment_id_tab(i)
                           ,p_start_date                   => l_r_start_date_tab(i)
                           ,p_end_date                     => l_r_end_date_tab(i)
                           ,p_period_name                  => l_r_period_name_tab(i)
                           ,p_txn_currency_code            => l_r_txn_currency_code_tab(i)
                           ,p_quantity                     => l_r_quantity_tab(i)
                           ,p_txn_raw_cost                 => l_r_txn_raw_cost_tab(i)
                           ,p_txn_burdened_cost            => l_r_txn_burdened_cost_tab(i)
                           ,p_txn_revenue                  => l_r_txn_revenue_tab(i)
                           ,p_project_currency_code        => l_r_project_currency_code_tab(i)
                           ,p_project_raw_cost             => l_r_project_raw_cost_tab(i)
                           ,p_project_burdened_cost        => l_r_project_burdened_cost_tab(i)
                           ,p_project_revenue              => l_r_project_revenue_tab(i)
                           ,p_projfunc_currency_code       => l_r_projfunc_currency_code_tab(i)
                           ,p_projfunc_raw_cost            => l_r_raw_cost_tab(i)
                           ,p_projfunc_burdened_cost       => l_r_burdened_cost_tab(i)
                           ,p_projfunc_revenue             => l_r_revenue_tab(i)
			   ,p_rep_line_mode               => 'POSITIVE_ENTRY'
                           ,x_msg_data                     => x_msg_data
                           ,x_return_status                => x_return_status
                           );
Line: 4646

/* This API deletes all the budget lines which falls beyond the planning start and end dates
*/
PROCEDURE delete_budget_lines(
        p_budget_version_id             IN Number
                ,p_budget_version_type          IN Varchar2
                ,p_rollup_required_flag         IN Varchar2
        ,p_process_mode                 IN Varchar2
                ,x_return_status                OUT NOCOPY Varchar2
                ,x_msg_data                     OUT NOCOPY Varchar2
                ) IS
        /* This cursor picks all the budget lines which falls beyond the plan dates
         * where actual donot exists and deletes the records from pa_budget_lines table
         */
        CURSOR cur_Delbl_Lines IS
        SELECT /*+ INDEX(BL PA_BUDGET_LINES_U1) */ bl.budget_line_id
                ,bl.resource_assignment_id
                ,bl.txn_currency_code
                ,bl.start_date
                ,bl.end_date
                ,bl.period_name
                ,bl.budget_version_id
                ,bl.quantity bl_quantity
                ,bl.txn_standard_cost_rate
                ,bl.txn_cost_rate_override
                ,bl.txn_raw_cost
                ,bl.burden_cost_rate
                ,bl.burden_cost_rate_override
                ,bl.txn_burdened_cost
                ,bl.txn_standard_bill_rate
                ,bl.txn_bill_rate_override
                ,bl.txn_revenue
                ,bl.project_currency_code
                ,bl.project_raw_cost
                ,bl.project_burdened_cost
                ,bl.project_revenue
                ,bl.projfunc_currency_code
                ,bl.raw_cost
                ,bl.burdened_cost
                ,bl.revenue
                ,bl.cost_rejection_code
                ,bl.burden_rejection_code
                ,bl.revenue_rejection_code
                ,bl.pc_cur_conv_rejection_code
                ,bl.pfc_cur_conv_rejection_code
                ,bl.init_quantity  bl_init_quantity
                ,bl.txn_init_raw_cost
                ,bl.txn_init_burdened_cost
                ,bl.txn_init_revenue
        ,tmp.start_date  plan_start_date ,tmp.end_date plan_end_date
        FROM pa_budget_lines bl
            ,pa_fp_rollup_tmp tmp
        WHERE bl.budget_version_id = p_budget_version_id
        AND  bl.resource_assignment_id = tmp.resource_assignment_id
        AND  bl.txn_currency_code = tmp.txn_currency_code
    AND  NVL(tmp.processed_flag,'N') = 'Y'
    AND  ( NVL(bl.init_quantity,0) = 0
        and NVL(bl.txn_init_raw_cost,0) = 0
        and NVL(bl.txn_init_burdened_cost,0) = 0
        and NVL(bl.txn_init_revenue,0) = 0
         )
        AND  (( p_process_mode = 'PLAN_START_DATE'
        AND NVL(plan_Start_Date_shrunk_flag,'N') = 'Y'
            AND bl.end_date  < tmp.start_date )
         OR (p_process_mode = 'PLAN_END_DATE'
        AND NVL(plan_End_Date_shrunk_flag,'N') = 'Y'
        AND bl.start_date > tmp.END_DATE)
        );
Line: 4724

            pa_debug.init_err_stack('PA_FP_CALC_UTILS.delete_budget_lines');
Line: 4729

        l_budget_line_id_tab.delete;
Line: 4730

        l_resAsgn_id_tab.delete;
Line: 4731

        l_txn_curr_code_tab.delete;
Line: 4732

        l_start_date_tab.delete;
Line: 4737

           /* populate the plsql tabs for bulk update of budget lines later */
           l_rwCounter := l_rwCounter + 1;
Line: 4756

                ,p_activity_code                => 'UPDATE'
                ,p_budget_version_id            => p_budget_version_id
                ,p_budget_line_id               => i.budget_line_id
                ,p_resource_assignment_id       => i.resource_assignment_id
                ,p_start_date                   => i.start_date
                ,p_end_date                     => i.end_date
                ,p_period_name                  => i.period_name
                ,p_txn_currency_code            => i.txn_currency_code
                ,p_quantity                     => i.bl_quantity *-1
                ,p_txn_raw_cost                 => i.txn_raw_cost *-1
                ,p_txn_burdened_cost            => i.txn_burdened_cost *-1
                ,p_txn_revenue                  => i.txn_revenue *-1
                ,p_project_currency_code        => i.project_currency_code
                ,p_project_raw_cost             => i.project_raw_cost *-1
                ,p_project_burdened_cost        => i.project_burdened_cost *-1
                ,p_project_revenue              => i.project_revenue *-1
                ,p_projfunc_currency_code       => i.projfunc_currency_code
                ,p_projfunc_raw_cost            => i.raw_cost *-1
                ,p_projfunc_burdened_cost       => i.burdened_cost *-1
                ,p_projfunc_revenue             => i.revenue *-1
		,p_rep_line_mode               => 'REVERSAL'
                ,x_msg_data                     => x_msg_data
                ,x_return_status                => x_return_status
                );
Line: 4805

        ,p_delete_flag                  => 'Y'
                ,x_msg_data                     => x_msg_data
                ,x_return_status                => x_return_status
                );
Line: 4813

    print_msg('Number of budgetLines deleted['||l_budget_line_id_tab.COUNT||']');
Line: 4814

    /* Now delete the budget lines */
    IF l_budget_line_id_tab.COUNT > 0 THEN
        FORALL i IN l_budget_line_id_tab.FIRST .. l_budget_line_id_tab.LAST
        DELETE FROM PA_BUDGET_LINES bl
        WHERE bl.budget_version_id = p_budget_version_id
        AND bl.budget_line_id = l_budget_line_id_tab(i);
Line: 4832

                print_msg('Failed in delete_budget_lines API'||x_msg_data);
Line: 4838

                 ,p_procedure_name => 'delete_budget_lines');
Line: 4840

END delete_budget_lines ;
Line: 4842

/* This API inserts a new budget line with the given quantity for new budget line dates
 * If duplicate line exists then updates the existing line by adding the given quantity
 */
PROCEDURE insert_budget_lines(
        p_budget_version_id             IN Number
        ,p_budget_version_type          IN Varchar2
        ,p_rollup_required_flag         IN Varchar2
        ,x_return_status                OUT NOCOPY Varchar2
        ,x_msg_data                     OUT NOCOPY Varchar2
        ) IS

    CURSOR cur_Oldbl_Lines IS
    SELECT /*+ INDEX(BL PA_BUDGET_LINES_U1) */ bl.budget_line_id
        ,bl.resource_assignment_id
        ,bl.txn_currency_code
        ,bl.start_date
        ,bl.end_date
        ,bl.period_name
        ,bl.budget_version_id
        ,bl.quantity bl_quantity
        ,bl.txn_standard_cost_rate
        ,bl.txn_cost_rate_override
        ,bl.txn_raw_cost
        ,bl.burden_cost_rate
        ,bl.burden_cost_rate_override
        ,bl.txn_burdened_cost
        ,bl.txn_standard_bill_rate
        ,bl.txn_bill_rate_override
        ,bl.txn_revenue
        ,bl.project_currency_code
        ,bl.project_raw_cost
        ,bl.project_burdened_cost
        ,bl.project_revenue
        ,bl.projfunc_currency_code
        ,bl.raw_cost
        ,bl.burdened_cost
        ,bl.revenue
        ,bl.cost_rejection_code
        ,bl.burden_rejection_code
        ,bl.revenue_rejection_code
        ,bl.pc_cur_conv_rejection_code
        ,bl.pfc_cur_conv_rejection_code
        ,bl.init_quantity  bl_init_quantity
        ,bl.txn_init_raw_cost
        ,bl.txn_init_burdened_cost
        ,bl.txn_init_revenue
        ,tmp.quantity  fp_quantity
    FROM pa_budget_lines bl
        ,pa_fp_rollup_tmp tmp
    WHERE bl.budget_version_id = p_budget_version_id
    AND  bl.resource_assignment_id = tmp.resource_assignment_id
    AND  bl.txn_currency_code = tmp.txn_currency_code
    AND  bl.start_date = tmp.start_date
    AND  NVL(tmp.quantity,0) <> 0 ;
Line: 4898

     * and insert these records into budget lines */
    CURSOR cur_newtmp_lines IS
    SELECT PA_BUDGET_LINES_S.NEXTVAL
           ,tmp.resource_assignment_id
           ,tmp.txn_currency_code
           ,tmp.start_date
           ,tmp.end_date
        ,tmp.period_name
        ,tmp.quantity
        ,tmp.project_currency_code
        ,tmp.projfunc_currency_code
    FROM pa_fp_rollup_tmp tmp
    WHERE tmp.budget_version_id = p_budget_version_id
    AND NOT EXISTS
        (SELECT null
        FROM pa_budget_lines bl
        WHERE bl.budget_version_id = p_budget_version_id
        AND  bl.resource_assignment_id = tmp.resource_assignment_id
            AND  bl.txn_currency_code = tmp.txn_currency_code
            AND  bl.start_date = tmp.start_date
        );
Line: 4941

        pa_debug.init_err_stack('PA_FP_CALC_UTILS.insert_budget_lines');
Line: 4945

        l_budget_line_id_tab.delete;
Line: 4946

        l_resAsgn_id_tab.delete;
Line: 4947

        l_txn_curr_code_tab.delete;
Line: 4948

        l_start_date_tab.delete;
Line: 4949

        l_end_date_tab.delete;
Line: 4950

        l_period_name_tab.delete;
Line: 4951

        l_quantity_tab.delete;
Line: 4952

        l_proj_curr_code_tab.delete;
Line: 4953

        l_projfunc_curr_code_tab.delete;
Line: 4954

    l_txn_raw_cost_tab.delete;
Line: 4955

    l_txn_burden_cost_tab.delete;
Line: 4956

    l_txn_revenue_tab.delete;
Line: 4962

       /* populate the plsql tabs for bulk update of budget lines later */
       l_rwCounter := l_rwCounter + 1;
Line: 4999

                ,p_activity_code                => 'UPDATE'
                ,p_budget_version_id            => p_budget_version_id
                ,p_budget_line_id               => i.budget_line_id
                ,p_resource_assignment_id       => i.resource_assignment_id
                ,p_start_date                   => i.start_date
                ,p_end_date                     => i.end_date
                ,p_period_name                  => i.period_name
                ,p_txn_currency_code            => i.txn_currency_code
                ,p_quantity                     => i.bl_quantity *-1
                ,p_txn_raw_cost                 => i.txn_raw_cost *-1
                ,p_txn_burdened_cost            => i.txn_burdened_cost *-1
                ,p_txn_revenue                  => i.txn_revenue *-1
                ,p_project_currency_code        => i.project_currency_code
                ,p_project_raw_cost             => i.project_raw_cost *-1
                ,p_project_burdened_cost        => i.project_burdened_cost *-1
                ,p_project_revenue              => i.project_revenue *-1
                ,p_projfunc_currency_code       => i.projfunc_currency_code
                ,p_projfunc_raw_cost            => i.raw_cost *-1
                ,p_projfunc_burdened_cost       => i.burdened_cost *-1
                ,p_projfunc_revenue             => i.revenue *-1
		,p_rep_line_mode               => 'REVERSAL'
                ,x_msg_data                     => x_msg_data
                ,x_return_status                => x_return_status
                );
Line: 5027

    /* Now bulk update the budget lines */
    IF l_budget_line_id_tab.COUNT > 0 THEN
        --print_msg('Number of budget Lines updated['||l_budget_line_id_tab.COUNT||']');
Line: 5031

            /* now update the budget lines with new quantity */
            UPDATE PA_BUDGET_LINES bl
            SET bl.quantity = NVL(bl.quantity,0) + NVL(l_quantity_tab(i),0)
                ,bl.txn_raw_cost =  decode(p_budget_version_type,'REVENUE',bl.txn_raw_cost,l_txn_raw_cost_tab(i))
                ,bl.txn_burdened_cost = decode(p_budget_version_type,'REVENUE',bl.txn_burdened_cost,l_txn_burden_cost_tab(i))
                ,bl.txn_revenue = decode(p_budget_version_type,'COST',bl.txn_revenue,l_txn_revenue_tab(i))
            WHERE bl.budget_line_id = l_budget_line_id_tab(i)
            AND   bl.budget_version_id = p_budget_version_id ;
Line: 5041

            UPDATE PA_BUDGET_LINES bl
                SET bl.project_raw_cost = decode(p_budget_version_type,'REVENUE',bl.project_raw_cost
                    ,decode(bl.project_currency_code,bl.txn_currency_code,bl.txn_raw_cost
                    ,pa_currency.round_trans_currency_amt1((bl.txn_raw_cost * bl.project_cost_exchange_rate ),bl.project_currency_code)))
                ,bl.project_burdened_cost = decode(p_budget_version_type,'REVENUE',bl.project_burdened_cost
                    ,decode(bl.project_currency_code,bl.txn_currency_code,bl.txn_burdened_cost
                    ,pa_currency.round_trans_currency_amt1((bl.txn_burdened_cost * bl.project_cost_exchange_rate ),bl.project_currency_code)))
                ,bl.project_revenue = decode(p_budget_version_type,'COST',bl.project_revenue
                    ,decode(bl.project_currency_code,bl.txn_currency_code,bl.project_revenue
                    ,pa_currency.round_trans_currency_amt1((bl.project_revenue*bl.project_rev_exchange_rate ),bl.project_currency_code)))
                ,bl.raw_cost = decode(p_budget_version_type,'REVENUE',bl.raw_cost
                    ,decode(bl.projfunc_currency_code,bl.txn_currency_code,bl.txn_raw_cost
                                        ,pa_currency.round_trans_currency_amt1((bl.txn_raw_cost * bl.projfunc_cost_exchange_rate ),bl.projfunc_currency_code)))
                    ,bl.burdened_cost = decode(p_budget_version_type,'REVENUE',bl.burdened_cost
                    ,decode(bl.projfunc_currency_code,bl.txn_currency_code,bl.txn_burdened_cost
                                        ,pa_currency.round_trans_currency_amt1((bl.txn_burdened_cost * bl.projfunc_cost_exchange_rate ),bl.projfunc_currency_code)))
                    ,bl.revenue = decode(p_budget_version_type,'COST',bl.revenue
                    ,decode(bl.projfunc_currency_code,bl.txn_currency_code,bl.project_revenue
                                        ,pa_currency.round_trans_currency_amt1((bl.project_revenue*bl.projfunc_rev_exchange_rate ),bl.projfunc_currency_code)))
                WHERE bl.budget_line_id = l_budget_line_id_tab(i)
                AND   bl.budget_version_id = p_budget_version_id ;
Line: 5080

                ,p_activity_code                => 'UPDATE'
                ,p_budget_version_id            => p_budget_version_id
                ,p_budget_line_id               => i.budget_line_id
                ,p_resource_assignment_id       => i.resource_assignment_id
                ,p_start_date                   => i.start_date
                ,p_end_date                     => i.end_date
                ,p_period_name                  => i.period_name
                ,p_txn_currency_code            => i.txn_currency_code
                ,p_quantity                     => i.bl_quantity
                ,p_txn_raw_cost                 => i.txn_raw_cost
                ,p_txn_burdened_cost            => i.txn_burdened_cost
                ,p_txn_revenue                  => i.txn_revenue
                ,p_project_currency_code        => i.project_currency_code
                ,p_project_raw_cost             => i.project_raw_cost
                ,p_project_burdened_cost        => i.project_burdened_cost
                ,p_project_revenue              => i.project_revenue
                ,p_projfunc_currency_code       => i.projfunc_currency_code
                ,p_projfunc_raw_cost            => i.raw_cost
                ,p_projfunc_burdened_cost       => i.burdened_cost
                ,p_projfunc_revenue             => i.revenue
		,p_rep_line_mode               => 'POSITIVE_ENTRY'
                ,x_msg_data                     => x_msg_data
                ,x_return_status                => x_return_status
                );
Line: 5129

        	,p_delete_flag                  => 'N'
                ,x_msg_data                     => x_msg_data
                ,x_return_status                => x_return_status
                );
Line: 5137

    IF    1 = 1 then --{ no budget line exists so insert a new line
        /* Initialize the plsql tabs */
        l_budget_line_id_tab.delete;
Line: 5140

                l_resAsgn_id_tab.delete;
Line: 5141

                l_txn_curr_code_tab.delete;
Line: 5142

                l_start_date_tab.delete;
Line: 5143

                l_end_date_tab.delete;
Line: 5144

                l_period_name_tab.delete;
Line: 5145

                l_quantity_tab.delete;
Line: 5146

                l_proj_curr_code_tab.delete;
Line: 5147

                l_projfunc_curr_code_tab.delete;
Line: 5165

                INSERT INTO PA_BUDGET_LINES(
                BUDGET_VERSION_ID
                        ,BUDGET_LINE_ID
                        ,RESOURCE_ASSIGNMENT_ID
                ,TXN_CURRENCY_CODE
                ,PROJECT_CURRENCY_CODE
                    ,PROJFUNC_CURRENCY_CODE
                ,PERIOD_NAME
                    ,START_DATE
                ,END_DATE
                ,QUANTITY
                    ,LAST_UPDATE_DATE
                    ,LAST_UPDATED_BY
                    ,CREATION_DATE
                    ,CREATED_BY
                    ,LAST_UPDATE_LOGIN
                ,QUANTITY_SOURCE
                ,RAW_COST_SOURCE
                ,BURDENED_COST_SOURCE
                ,REVENUE_SOURCE
                    )
                SELECT
                    p_BUDGET_VERSION_ID
                    ,l_budget_line_id_tab(i)
                    ,l_resAsgn_id_tab(i)
                    ,l_txn_curr_code_tab(i)
                    ,l_proj_curr_code_tab(i)
                    ,l_projfunc_curr_code_tab(i)
                    ,l_period_name_tab(i)
                    ,l_start_date_tab(i)
                    ,l_end_date_tab(i)
                ,l_quantity_tab(i)
                    ,g_LAST_UPDATE_DATE
                    ,g_LAST_UPDATED_BY
                    ,g_CREATION_DATE
                    ,g_CREATED_BY
                    ,g_LAST_UPDATE_LOGIN
                ,'SP'
                ,'SP'
                ,'SP'
                ,'SP'
            FROM dual
            WHERE NVL(l_quantity_tab(i),0) <> 0;
Line: 5215

                        ,p_activity_code                => 'UPDATE'
                        ,p_budget_version_id            => p_budget_version_id
                        ,p_budget_line_id               => l_budget_line_id_tab(i)
                        ,p_resource_assignment_id       => l_resAsgn_id_tab(i)
                        ,p_start_date                   => l_start_date_tab(i)
                        ,p_end_date                     => l_end_date_tab(i)
                        ,p_period_name                  => l_period_name_tab(i)
                        ,p_txn_currency_code            => l_txn_curr_code_tab(i)
                        ,p_quantity                     => l_quantity_tab(i)
                        ,p_txn_raw_cost                 => null
                        ,p_txn_burdened_cost            => null
                        ,p_txn_revenue                  => null
                        ,p_project_currency_code        => l_proj_curr_code_tab(i)
                        ,p_project_raw_cost             => null
                        ,p_project_burdened_cost        => null
                        ,p_project_revenue              => null
                        ,p_projfunc_currency_code       => l_projfunc_curr_code_tab(i)
                        ,p_projfunc_raw_cost            => null
                        ,p_projfunc_burdened_cost       => null
                        ,p_projfunc_revenue             => null
			,p_rep_line_mode               => 'POSITIVE_ENTRY'
                        ,x_msg_data                     => x_msg_data
                        ,x_return_status                => x_return_status
                        );
Line: 5247

    	print_msg('RetSts of Insert_budget_lines api['||x_return_status||']');
Line: 5255

                print_msg('Failed in insert_budget_lines API'||x_msg_data);
Line: 5261

                 ,p_procedure_name => 'insert_budget_lines');
Line: 5263

END insert_budget_lines;
Line: 5265

/* This API populates the plsql tables required for bulk update of process_ResAttribs */
PROCEDURE Populate_ResAttribTabs
        (p_resource_assignment_id  IN  Number
        ,p_txn_currency_code       IN  Varchar2) IS

BEGIN
    g_RsAtrb_RaId_tab(NVL(g_RsAtrb_RaId_tab.LAST,0)+1) := p_resource_assignment_id;
Line: 5295

        UPDATE /*+ INDEX(TMP PA_FP_SPREAD_CALC_TMP_N1) */ pa_fp_spread_calc_tmp tmp
        SET (tmp.SYSTEM_REFERENCE_DAT1
            ,tmp.SYSTEM_REFERENCE_DAT2) = (select MIN(bl.start_date),MAX(bl.end_date)
                               from pa_budget_lines bl
                           where bl.resource_assignment_id = tmp.resource_assignment_id
                           and   bl.txn_currency_code = tmp.txn_currency_code)
        WHERE tmp.resource_assignment_id = p_resource_assignment_id_tab(i)
        AND  tmp.txn_currency_code = p_txn_currency_code_tab(i)
        AND  NVL(tmp.system_reference_var1,'N') = 'Y'
        AND  tmp.budget_version_id = p_budget_version_id ;
Line: 5309

                * based on this logic Now update the DAT1 and DAT2 from planning dates
        */
        FORALL i IN p_resource_assignment_id_tab.FIRST .. p_resource_assignment_id_tab.LAST
        UPDATE /*+ INDEX(TMP PA_FP_SPREAD_CALC_TMP_N1) */ pa_fp_spread_calc_tmp tmp
                SET (tmp.SYSTEM_REFERENCE_DAT1
                    ,tmp.SYSTEM_REFERENCE_DAT2) = (select decode(tmp.SYSTEM_REFERENCE_DAT1,NULL,NULL
                               ,decode(sign(trunc(tmp.SYSTEM_REFERENCE_DAT1)-trunc(ra.planning_start_date)),-1
                                      ,ra.planning_start_date,tmp.SYSTEM_REFERENCE_DAT1))
                            ,decode(tmp.SYSTEM_REFERENCE_DAT2,NULL,NULL
                                                           ,decode(sign(trunc(tmp.SYSTEM_REFERENCE_DAT2)-trunc(ra.planning_end_date)),1
                                                                      ,ra.planning_end_date,tmp.SYSTEM_REFERENCE_DAT2))
                                                   from pa_resource_assignments ra
                                                   where ra.resource_assignment_id = tmp.resource_assignment_id
                           and ra.budget_version_id = tmp.budget_version_id)
                WHERE tmp.resource_assignment_id = p_resource_assignment_id_tab(i)
                AND  NVL(tmp.system_reference_var1,'N') = 'Y'
        AND  tmp.budget_version_id = p_budget_version_id ;
Line: 5333

                print_msg('Failed in insert_budget_lines API'||x_msg_data);
Line: 5372

 * and then delete all the budgetlines prior to new start date and update a budget line existsing on the new plan start
 * date. If no budget line exists then insert a new budget line with the sum (quantity)
 *
 * IF Planning end date is shrunk, then sum (quantity) all budget line later than new end date
 * and then delete all the budget lines later than new plan end date.
 * update existing budget line on new plan end with the above sum(quantity), If no budget line exists then
 * insert a new budget line
 */
PROCEDURE process_planDates_change(
        p_budget_version_id              IN  Number
        ,x_return_status                 OUT NOCOPY Varchar2
        ,x_msg_data                      OUT NOCOPY Varchar2 ) IS

    l_period_type   Varchar2(100);
Line: 5401

    DELETE FROM pa_fp_rollup_tmp
    WHERE budget_version_id = p_budget_version_id;
Line: 5407

           INSERT INTO pa_fp_rollup_tmp tmp
            (resource_assignment_id
            ,txn_currency_code
            ,start_date
            ,end_date
            ,period_name
            ,project_currency_code
            ,projfunc_currency_code
            ,quantity
            ,plan_Start_Date_shrunk_flag
            )
           SELECT g_Rspd_RaId_tab(i)
            , g_Rspd_TxnCur_tab(i)
            , glp1.start_date
            , glp1.end_date
            , glp1.period_name
            , g_Rspd_Pjcur_tab(i)
            , g_Rspd_Pjf_cur_tab(i)
            , null
            ,NVL(g_Rspd_SdShrk_Flg_tab(i),'N')
           FROM  gl_periods glp1
               WHERE glp1.adjustment_period_flag = 'N'
               AND   glp1.period_set_name = perdRec.period_set_name
               AND   glp1.period_type = l_period_type
               AND   trunc(g_Rspd_SD_new_tab(i)) BETWEEN glp1.start_date and glp1.end_date
           AND   NVL(g_Rspd_SdShrk_Flg_tab(i),'N') = 'Y';
Line: 5435

        /* Now update the rollup tmp table with the sum of bl line quantities prior to new plan start date*/
        UPDATE pa_fp_rollup_tmp tmp
        SET tmp.processed_flag = 'Y'
           ,tmp.quantity = (SELECT SUM(nvl(bl.quantity,0)-nvl(bl.init_quantity,0))
                        FROM  pa_budget_lines bl
                        WHERE bl.budget_version_id = p_budget_version_id
                        AND   bl.resource_assignment_id = tmp.resource_assignment_id
                        AND   bl.txn_currency_code = tmp.txn_currency_code
                            AND   bl.end_date < ( tmp.start_date) )
        WHERE NVL(tmp.processed_flag,'N') = 'N'
        AND  NVL(plan_Start_Date_shrunk_flag,'N') = 'Y';
Line: 5447

        /* Delete all the budget lines which falls beyond the plan start date */
        delete_budget_lines(
                p_budget_version_id             => p_budget_version_id
                ,p_budget_version_type          => g_budget_version_type
                ,p_rollup_required_flag         => g_rollup_required_flag
                ,p_process_mode                 => 'PLAN_START_DATE'
                ,x_return_status                => x_return_status
                ,x_msg_data                     => x_msg_data
                );
Line: 5459

                   INSERT INTO pa_fp_rollup_tmp tmp
                        (resource_assignment_id
                        ,txn_currency_code
                        ,start_date
                        ,end_date
                        ,period_name
                        ,project_currency_code
                        ,projfunc_currency_code
                        ,quantity
            ,plan_End_Date_shrunk_flag
                        )
                   SELECT g_Rspd_RaId_tab(i)
                        , g_Rspd_TxnCur_tab(i)
                        , glp1.start_date
                        , glp1.end_date
                        , glp1.period_name
                        , g_Rspd_Pjcur_tab(i)
                        , g_Rspd_Pjf_cur_tab(i)
                        , null
            , NVL(g_Rspd_EdShrk_Flg_tab(i),'N')
                   FROM  gl_periods glp1
                   WHERE glp1.adjustment_period_flag = 'N'
                   AND   glp1.period_set_name = perdRec.period_set_name
                   AND   glp1.period_type = l_period_type
                   AND   trunc(g_Rspd_ED_new_tab(i)) BETWEEN glp1.start_date and glp1.end_date
                   AND   NVL(g_Rspd_EdShrk_Flg_tab(i),'N') = 'Y';
Line: 5487

                /* Now update the rollup tmp table with the sum of bl line quantities later than new plan end date */
                UPDATE pa_fp_rollup_tmp tmp
                SET tmp.processed_flag = 'Y'
                   ,tmp.quantity = (SELECT SUM(nvl(bl.quantity,0)-nvl(bl.init_quantity,0))
                                    FROM  pa_budget_lines bl
                                    WHERE bl.budget_version_id = p_budget_version_id
                                    AND   bl.resource_assignment_id = tmp.resource_assignment_id
                                    AND   bl.txn_currency_code = tmp.txn_currency_code
                                    AND   bl.start_date > ( tmp.end_date) )
        WHERE NVL(tmp.processed_flag,'N') = 'N'
        AND NVL(plan_End_Date_shrunk_flag,'N') = 'Y' ;
Line: 5499

        /* Delete all the budget lines which falls beyond the plan end date */
                delete_budget_lines(
                p_budget_version_id             => p_budget_version_id
                ,p_budget_version_type          => g_budget_version_type
                ,p_rollup_required_flag         => g_rollup_required_flag
                ,p_process_mode                 => 'PLAN_END_DATE'
                ,x_return_status                => x_return_status
                ,x_msg_data                     => x_msg_data
                );
Line: 5510

        /* Finally update the existing budget line or insert the new budget lines */
        insert_budget_lines(
                p_budget_version_id             => p_budget_version_id
                ,p_budget_version_type          => g_budget_version_type
                ,p_rollup_required_flag         => g_rollup_required_flag
                ,x_return_status                => x_return_status
                ,x_msg_data                     => x_msg_data
                );
Line: 5553

    /* bulk select all the RA+Txn currency combo from budget lines and later insert these records into tmp table
     * for processing
     */
    If p_pa_debug_mode = 'Y' Then
        pa_debug.init_err_stack('PA_FP_CALC_UTILS.populate_blTxnCurCombo');
Line: 5560

        SELECT /*+ INDEX(BL PA_BUDGET_LINES_U1) */
	  bl.resource_assignment_id
            ,bl.txn_currency_code
        BULK COLLECT INTO
            l_raId_Tab
            ,l_TxnCur_Tab
        FROM pa_budget_lines bl
             ,pa_fp_spread_calc_tmp tmp
        WHERE bl.budget_version_id = p_budget_version_id
        AND  bl.resource_assignment_id = tmp.resource_assignment_id
        AND  bl.txn_currency_code <> tmp.txn_currency_code
        AND  NVL(tmp.system_reference_var1,'N') = 'Y'
            AND  ( NVL(tmp.sp_curve_change_flag,'N') = 'Y'
                    OR NVL(tmp.plan_dates_change_flag,'N') = 'Y'
                    OR NVL(tmp.mfc_cost_change_flag,'N') = 'Y'
                    OR NVL(tmp.sp_fix_date_change_flag,'N') = 'Y'
            OR NVL(tmp.rlm_id_change_flag,'N') = 'Y'
                    )
        AND  NOT EXISTS (select null
                                from pa_fp_spread_calc_tmp tmp1
                                where tmp1.budget_version_id = p_budget_version_id
                                and tmp1.resource_assignment_id = tmp.resource_assignment_id
                                and tmp1.txn_currency_code = bl.txn_currency_code
                )
        GROUP BY bl.resource_assignment_id
                        ,bl.txn_currency_code ;
Line: 5591

            INSERT INTO pa_fp_spread_calc_tmp
                            (BUDGET_VERSION_ID
                ,BUDGET_VERSION_TYPE
                ,RESOURCE_ASSIGNMENT_ID --resource_assignment_id
                            ,TXN_CURRENCY_CODE     --txn_currency_code
                ,SYSTEM_REFERENCE_VAR2
                )
            VALUES (p_budget_version_id
                ,g_budget_version_type
                ,l_raId_Tab(i)
                ,l_TxnCur_Tab(i)
                ,'Y'
                );
Line: 5605

              print_msg('Number of rows inserted ra+txncur into tmp['||sql%rowcount||']');
Line: 5608

            /* Now updates the other attributes for the newly inserted rows */
            FORALL i IN l_raId_Tab.FIRST .. l_raId_Tab.LAST
            UPDATE /*+ INDEX(TMP PA_FP_SPREAD_CALC_TMP_N1) */ pa_fp_spread_calc_tmp tmp
            SET tmp.quantity = (select sum(bl.quantity)
                       from pa_budget_lines bl
                       where bl.budget_version_id = tmp.budget_version_id
                           and   bl.resource_assignment_id = tmp.resource_assignment_id
                       and   bl.txn_currency_code = tmp.txn_currency_code)
                ,tmp.system_reference_var2 = NULL
                ,(tmp.OLD_SPREAD_CURVE_ID   --x_spread_curve_id_old_tab
                            ,NEW_SPREAD_CURVE_ID   --x_spread_curve_id_new_tab
                            ,OLD_SP_FIX_DATE       --x_sp_fixed_date_old_tab
                            ,NEW_SP_FIX_DATE       --x_sp_fixed_date_new_tab
                            ,OLD_PLAN_START_DATE   --x_plan_start_date_old_tab
                            ,NEW_PLAN_START_DATE   --x_plan_start_date_new_tab
                            ,OLD_PLAN_END_DATE     --x_plan_end_date_old_tab
                            ,NEW_PLAN_END_DATE     --x_plan_end_date_new_tab
                            ,RE_SPREAD_AMTS_FLAG   --x_re_spread_flag_tab
                            ,SP_CURVE_CHANGE_FLAG  --x_sp_curve_change_flag_tab
                            ,PLAN_DATES_CHANGE_FLAG --x_plan_dates_change_flag_tab
                            ,SP_FIX_DATE_CHANGE_FLAG --x_spfix_date_flag_tab
                            ,MFC_COST_CHANGE_FLAG   --x_mfc_cost_change_flag_tab
                            ,OLD_MFC_COST_TYPE_ID   --x_mfc_cost_type_id_old_tab
                            ,NEW_MFC_COST_TYPE_ID   --x_mfc_cost_type_id_new_tab
                            ,ETC_START_DATE
                            ,PROJECT_CURRENCY_CODE
                            ,PROJFUNC_CURRENCY_CODE
                ,SYSTEM_REFERENCE_VAR1
                ,PLAN_START_DATE_SHRUNK_FLAG
                ,PLAN_END_DATE_SHRUNK_FLAG
                ,RLM_ID_CHANGE_FLAG
                ) = (SELECT /*+ INDEX(TMP1 PA_FP_SPREAD_CALC_TMP_N1) */
                            tmp1.OLD_SPREAD_CURVE_ID
                            ,tmp1.NEW_SPREAD_CURVE_ID
                            ,tmp1.OLD_SP_FIX_DATE
                            ,tmp1.NEW_SP_FIX_DATE
                            ,tmp1.OLD_PLAN_START_DATE
                            ,tmp1.NEW_PLAN_START_DATE
                            ,tmp1.OLD_PLAN_END_DATE
                            ,tmp1.NEW_PLAN_END_DATE
                            ,tmp1.RE_SPREAD_AMTS_FLAG
                            ,tmp1.SP_CURVE_CHANGE_FLAG
                            ,tmp1.PLAN_DATES_CHANGE_FLAG
                            ,tmp1.SP_FIX_DATE_CHANGE_FLAG
                            ,tmp1.MFC_COST_CHANGE_FLAG
                            ,tmp1.OLD_MFC_COST_TYPE_ID
                            ,tmp1.NEW_MFC_COST_TYPE_ID
                            ,tmp1.ETC_START_DATE
                            ,tmp1.PROJECT_CURRENCY_CODE
                            ,tmp1.PROJFUNC_CURRENCY_CODE
                ,tmp1.SYSTEM_REFERENCE_VAR1
                ,tmp1.PLAN_START_DATE_SHRUNK_FLAG
                ,tmp1.PLAN_END_DATE_SHRUNK_FLAG
                ,tmp1.RLM_ID_CHANGE_FLAG
                FROM pa_fp_spread_calc_tmp tmp1
                WHERE tmp1.budget_version_id = p_budget_version_id
                AND   tmp1.resource_assignment_id = tmp.resource_assignment_id
                AND  tmp1.txn_currency_code <> tmp.txn_currency_code
                AND  NVL(tmp1.SYSTEM_REFERENCE_VAR2,'N') = 'N'
                AND rownum =1 )
            WHERE tmp.budget_version_id = p_budget_version_id
            AND  tmp.resource_assignment_id = l_raId_Tab(i)
            AND  tmp.txn_currency_code = l_TxnCur_Tab(i)
            AND  tmp.SYSTEM_REFERENCE_VAR2 = 'Y';
Line: 5672

            print_msg('Num of rows updated in tmp ['||sql%rowcount||']');
Line: 5679

        UPDATE pa_fp_spread_calc_tmp tmp
        SET tmp.SP_CURVE_CHANGE_FLAG  = decode(nvl(tmp.rlm_id_change_flag,'N'),'Y','N',tmp.SP_CURVE_CHANGE_FLAG)
            ,tmp.PLAN_DATES_CHANGE_FLAG = decode(nvl(tmp.rlm_id_change_flag,'N'),'Y','N',tmp.PLAN_DATES_CHANGE_FLAG)
            ,tmp.SP_FIX_DATE_CHANGE_FLAG = decode(nvl(tmp.rlm_id_change_flag,'N'),'Y','N',tmp.SP_FIX_DATE_CHANGE_FLAG)
            ,tmp.MFC_COST_CHANGE_FLAG = decode(nvl(tmp.rlm_id_change_flag,'N'),'Y','N',tmp.MFC_COST_CHANGE_FLAG)
        WHERE tmp.budget_version_id = p_budget_version_id;
Line: 5715

                /* If multiple RA + Txn cur combo is passed, then updates the res attributes whereever it is null */
            UPDATE pa_fp_spread_calc_tmp tmp
                SET tmp.RLM_ID_CHANGE_FLAG = decode(tmp.RLM_ID_CHANGE_FLAG,NULL,(select tmp1.RLM_ID_CHANGE_FLAG
                                                from pa_fp_spread_calc_tmp tmp1
                                                where tmp1.resource_assignment_id = tmp.resource_assignment_id
                                                and tmp1.txn_currency_code <> tmp.txn_currency_code
                                                and tmp1.RLM_ID_CHANGE_FLAG is not null
                                                and rownum = 1
                                              ),tmp.RLM_ID_CHANGE_FLAG)
                   ,tmp.OLD_SPREAD_CURVE_ID = decode(tmp.OLD_SPREAD_CURVE_ID,NULL,(select tmp1.OLD_SPREAD_CURVE_ID
                                                from pa_fp_spread_calc_tmp tmp1
                                                where tmp1.resource_assignment_id = tmp.resource_assignment_id
                                                and tmp1.txn_currency_code <> tmp.txn_currency_code
                                                and tmp1.OLD_SPREAD_CURVE_ID is not null
                                                and rownum = 1
                                              ),tmp.OLD_SPREAD_CURVE_ID)
                   ,tmp.NEW_SPREAD_CURVE_ID = decode(tmp.NEW_SPREAD_CURVE_ID,NULL,(select tmp1.NEW_SPREAD_CURVE_ID
                                                from pa_fp_spread_calc_tmp tmp1
                                                where tmp1.resource_assignment_id = tmp.resource_assignment_id
                                                and tmp1.txn_currency_code <> tmp.txn_currency_code
                                                and tmp1.NEW_SPREAD_CURVE_ID is not null
                                                and rownum = 1
                                              ),tmp.NEW_SPREAD_CURVE_ID)
                   ,tmp.OLD_SP_FIX_DATE = decode(tmp.OLD_SP_FIX_DATE,NULL,(select tmp1.OLD_SP_FIX_DATE
                                                from pa_fp_spread_calc_tmp tmp1
                                                where tmp1.resource_assignment_id = tmp.resource_assignment_id
                                                and tmp1.txn_currency_code <> tmp.txn_currency_code
                                                and tmp1.OLD_SP_FIX_DATE is not null
                                                and rownum = 1
                                              ),tmp.OLD_SP_FIX_DATE)
                   ,tmp.NEW_SP_FIX_DATE = decode(tmp.NEW_SP_FIX_DATE,NULL,(select tmp1.NEW_SP_FIX_DATE
                                                from pa_fp_spread_calc_tmp tmp1
                                                where tmp1.resource_assignment_id = tmp.resource_assignment_id
                                                and tmp1.txn_currency_code <> tmp.txn_currency_code
                                                and tmp1.NEW_SP_FIX_DATE is not null
                                                and rownum = 1
                                              ),tmp.NEW_SP_FIX_DATE)
                   ,tmp.OLD_MFC_COST_TYPE_ID = decode(tmp.OLD_MFC_COST_TYPE_ID,NULL,(select tmp1.OLD_MFC_COST_TYPE_ID
                                                from pa_fp_spread_calc_tmp tmp1
                                                where tmp1.resource_assignment_id = tmp.resource_assignment_id
                                                and tmp1.txn_currency_code <> tmp.txn_currency_code
                                                and tmp1.OLD_MFC_COST_TYPE_ID is not null
                                                and rownum = 1
                                              ),tmp.OLD_MFC_COST_TYPE_ID)
                   ,tmp.NEW_MFC_COST_TYPE_ID = decode(tmp.NEW_MFC_COST_TYPE_ID,NULL,(select tmp1.NEW_MFC_COST_TYPE_ID
                                                from pa_fp_spread_calc_tmp tmp1
                                                where tmp1.resource_assignment_id = tmp.resource_assignment_id
                                                and tmp1.txn_currency_code <> tmp.txn_currency_code
                                                and tmp1.NEW_MFC_COST_TYPE_ID is not null
                                                and rownum = 1
                                              ),tmp.NEW_MFC_COST_TYPE_ID)
                   ,tmp.OLD_PLAN_START_DATE = decode(tmp.OLD_PLAN_START_DATE,NULL,(select tmp1.OLD_PLAN_START_DATE
                                                from pa_fp_spread_calc_tmp tmp1
                                                where tmp1.resource_assignment_id = tmp.resource_assignment_id
                                                and tmp1.txn_currency_code <> tmp.txn_currency_code
                                                and tmp1.OLD_PLAN_START_DATE is not null
                                                and rownum = 1
                                              ),tmp.OLD_PLAN_START_DATE)
                   ,tmp.OLD_PLAN_END_DATE = decode(tmp.OLD_PLAN_END_DATE,NULL,(select tmp1.OLD_PLAN_END_DATE
                                                from pa_fp_spread_calc_tmp tmp1
                                                where tmp1.resource_assignment_id = tmp.resource_assignment_id
                                                and tmp1.txn_currency_code <> tmp.txn_currency_code
                                                and tmp1.OLD_PLAN_END_DATE is not null
                                                and rownum = 1
                                              ),tmp.OLD_PLAN_END_DATE)
           ,tmp.NEW_PLAN_START_DATE = decode(tmp.NEW_PLAN_START_DATE,NULL,(select ra.planning_start_date
                                                from pa_resource_assignments ra
                                                where ra.resource_assignment_id = tmp.resource_assignment_id
                                              ),tmp.NEW_PLAN_START_DATE)
           ,tmp.NEW_PLAN_END_DATE = decode(tmp.NEW_PLAN_END_DATE,NULL,(select ra.planning_end_date
                                                from pa_resource_assignments ra
                                                where ra.resource_assignment_id = tmp.resource_assignment_id
                                              ),tmp.NEW_PLAN_END_DATE)
            WHERE tmp.budget_version_id = p_budget_version_id;
Line: 5793

                   UPDATE pa_fp_spread_calc_tmp tmp
                   SET tmp.SP_CURVE_CHANGE_FLAG = decode(NVL(tmp.OLD_SPREAD_CURVE_ID,1),NVL(tmp.NEW_SPREAD_CURVE_ID,1),'N','Y')
                   ,tmp.PLAN_DATES_CHANGE_FLAG =decode(tmp.OLD_PLAN_START_DATE,NULL,'N'
                                                            ,decode(tmp.NEW_PLAN_START_DATE,NULL,'N'
                                                             ,decode(tmp.OLD_PLAN_START_DATE,tmp.NEW_PLAN_START_DATE,'N','Y')))
                   ,tmp.SP_FIX_DATE_CHANGE_FLAG = decode(tmp.OLD_SP_FIX_DATE,NULL,'N'
                                                        ,decode(tmp.NEW_SP_FIX_DATE,NULL,'N'
                                                         ,decode(tmp.OLD_SP_FIX_DATE,tmp.NEW_SP_FIX_DATE,'N','Y')))
                   ,tmp.MFC_COST_CHANGE_FLAG = decode(NVL(tmp.OLD_MFC_COST_TYPE_ID,-999),NVL(tmp.NEW_MFC_COST_TYPE_ID,-999),'N','Y')
                   ,tmp.SYSTEM_REFERENCE_VAR1 = (SELECT 'Y'
                                                 FROM dual
                                                 WHERE EXISTS ( select null
                                                                from pa_budget_lines bl
                                                                where bl.budget_version_id = tmp.budget_version_id
                                                                and   bl.resource_assignment_id = tmp.resource_assignment_id
                                                                and   bl.txn_currency_code <> tmp.txn_currency_code
                                                                GROUP BY bl.resource_assignment_id,bl.txn_currency_code
                                                        ))
                   WHERE tmp.budget_version_id = p_budget_version_id;
Line: 5813

                   UPDATE pa_fp_spread_calc_tmp tmp
                   SET tmp.PLAN_DATES_CHANGE_FLAG = decode(tmp.PLAN_DATES_CHANGE_FLAG,'Y','Y'
                                                        ,decode(tmp.OLD_PLAN_END_DATE,NULL,'N'
                                                            ,decode(tmp.NEW_PLAN_END_DATE,NULL,'N'
                                                             ,decode(tmp.OLD_PLAN_END_DATE,tmp.NEW_PLAN_END_DATE,'N','Y'))))
                        ,tmp.system_reference_var1 = NVL(system_reference_var1,'N')
                   WHERE tmp.budget_version_id = p_budget_version_id;
Line: 5822

                   UPDATE pa_fp_spread_calc_tmp tmp
                   SET tmp.PLAN_START_DATE_SHRUNK_FLAG = decode(tmp.PLAN_DATES_CHANGE_FLAG,'N','N'
                                             ,decode(tmp.new_plan_start_date,NULL,'N'
                                              ,decode(tmp.old_plan_start_date,NULL,'N'
                                               ,decode(sign(trunc(tmp.new_plan_start_date) - trunc(tmp.old_plan_start_date)),1 ,'Y','N'))))
                   ,tmp.PLAN_END_DATE_SHRUNK_FLAG = decode(tmp.PLAN_DATES_CHANGE_FLAG,'N','N'
                                             ,decode(tmp.new_plan_end_date,NULL,'N'
                                               ,decode(tmp.old_plan_end_date,NULL,'N'
                                                ,decode(sign(trunc(tmp.new_plan_end_date) - trunc(tmp.old_plan_end_date)),-1 ,'Y','N'))))
                   WHERE tmp.budget_version_id = p_budget_version_id;
Line: 5864

            UPDATE pa_fp_spread_calc_tmp tmp
                SET tmp.SP_CURVE_CHANGE_FLAG = (select 'Y'
                            from dual
                        where exists (select null
                                 from pa_fp_spread_calc_tmp tmp1
                                 where tmp1.resource_assignment_id = tmp.resource_assignment_id
                                 and tmp1.sp_curve_change_flag = 'Y' ))
                   ,tmp.PLAN_DATES_CHANGE_FLAG = (select 'Y'
                                                from dual
                                                where exists (select null
                                                             from pa_fp_spread_calc_tmp tmp1
                                                             where tmp1.resource_assignment_id = tmp.resource_assignment_id
                                                             and tmp1.plan_dates_change_flag = 'Y' ))
                   ,tmp.SP_FIX_DATE_CHANGE_FLAG = (select 'Y'
                                                from dual
                                                where exists (select null
                                                             from pa_fp_spread_calc_tmp tmp1
                                                             where tmp1.resource_assignment_id = tmp.resource_assignment_id
                                                             and tmp1.sp_fix_date_change_flag = 'Y' ))
                   ,tmp.MFC_COST_CHANGE_FLAG = (select 'Y'
                                                from dual
                                                where exists (select null
                                                             from pa_fp_spread_calc_tmp tmp1
                                                             where tmp1.resource_assignment_id = tmp.resource_assignment_id
                                                             and tmp1.mfc_cost_change_flag = 'Y' ))
          ,tmp.PLAN_START_DATE_SHRUNK_FLAG = (select 'Y'
                            from dual
                            where exists (select null
                                from pa_fp_spread_calc_tmp tmp1
                                where tmp1.resource_assignment_id = tmp.resource_assignment_id
                                and tmp1.plan_start_date_shrunk_flag = 'Y'))
          ,tmp.PLAN_END_DATE_SHRUNK_FLAG = (select 'Y'
                                                        from dual
                                                        where exists (select null
                                                                from pa_fp_spread_calc_tmp tmp1
                                                                where tmp1.resource_assignment_id = tmp.resource_assignment_id
                                                                and tmp1.plan_end_date_shrunk_flag = 'Y'))
          ,tmp.RLM_ID_CHANGE_FLAG  = (select 'Y'
                                                        from dual
                                                        where exists (select null
                                                                from pa_fp_spread_calc_tmp tmp1
                                                                where tmp1.resource_assignment_id = tmp.resource_assignment_id
                                                                and tmp1.rlm_id_change_flag = 'Y'))
          ,(tmp.task_id,tmp.resource_name) =
                (select ra.task_id,rlm.alias
                 from pa_resource_assignments ra
                    ,pa_resource_list_members rlm
                 where ra.resource_assignment_id = tmp.resource_assignment_id
                 and  rlm.resource_list_member_id = ra.resource_list_member_id
                )
          ,tmp.billable_flag = NVL((select decode(NVL(tmp.billable_flag,'D'),'D'
					,decode(NVL(ra.task_id,0),0,'Y',NVL(t.billable_flag,'N')),NVL(tmp.billable_flag,'N'))
                      from pa_resource_assignments ra
                         ,pa_tasks t
                      where ra.resource_assignment_id = tmp.resource_assignment_id
                      and   t.task_id(+) = ra.task_id
                      ),'N')
	   ,tmp.task_name = (select t.task_name
			     from pa_resource_assignments ra
                         	,pa_tasks t
                      		where ra.resource_assignment_id = tmp.resource_assignment_id
                      		and   t.task_id = ra.task_id
			     )
           WHERE tmp.budget_version_id = p_budget_version_id;
Line: 5931

                UPDATE pa_fp_spread_calc_tmp tmp
                SET tmp.SP_CURVE_CHANGE_FLAG = 'N'
                   ,tmp.PLAN_DATES_CHANGE_FLAG = 'N'
                   ,tmp.SP_FIX_DATE_CHANGE_FLAG = 'N'
                   ,tmp.MFC_COST_CHANGE_FLAG = 'N'
                   ,tmp.PLAN_START_DATE_SHRUNK_FLAG = 'N'
                   ,tmp.PLAN_END_DATE_SHRUNK_FLAG = 'N'
                WHERE tmp.budget_version_id = p_budget_version_id
        AND  tmp.RLM_ID_CHANGE_FLAG  = 'Y' ;
Line: 5944

        UPDATE pa_fp_spread_calc_tmp tmp
        SET (tmp.task_id,tmp.resource_name) =
                                (select ra.task_id,rlm.alias
                                 from pa_resource_assignments ra
                                        ,pa_resource_list_members rlm
                                 where ra.resource_assignment_id = tmp.resource_assignment_id
                                 and  rlm.resource_list_member_id = ra.resource_list_member_id
                                )
                ,tmp.billable_flag = NVL((select decode(NVL(tmp.billable_flag,'D'),'D'
                                        ,decode(NVL(ra.task_id,0),0,'Y',NVL(t.billable_flag,'N')),NVL(tmp.billable_flag,'N'))
                      from pa_resource_assignments ra
                         ,pa_tasks t
                      where ra.resource_assignment_id = tmp.resource_assignment_id
                      and   t.task_id(+) = ra.task_id
                      ),'N')
		,tmp.task_name = (select t.task_name
                             from pa_resource_assignments ra
                                ,pa_tasks t
                                where ra.resource_assignment_id = tmp.resource_assignment_id
                                and   t.task_id = ra.task_id
                             )
                WHERE tmp.budget_version_id = p_budget_version_id;
Line: 5997

                ,x_delete_budget_lines_tab       IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_spread_amts_flag_tab          IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_txn_currency_code_tab         IN  OUT NOCOPY SYSTEM.pa_varchar2_15_tbl_type
                ,x_txn_currency_override_tab     IN  OUT NOCOPY SYSTEM.pa_varchar2_15_tbl_type
                ,x_total_qty_tab                 IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_addl_qty_tab                  IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_total_raw_cost_tab            IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_addl_raw_cost_tab             IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_total_burdened_cost_tab       IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_addl_burdened_cost_tab        IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_total_revenue_tab             IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_addl_revenue_tab              IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_raw_cost_rate_tab             IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_rw_cost_rate_override_tab     IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_b_cost_rate_tab               IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_b_cost_rate_override_tab      IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_bill_rate_tab                 IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_bill_rate_override_tab        IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_line_start_date_tab           IN  OUT NOCOPY SYSTEM.pa_date_tbl_type
                ,x_line_end_date_tab             IN  OUT NOCOPY SYSTEM.pa_date_tbl_type
                ,x_apply_progress_flag_tab       IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_spread_curve_id_old_tab       IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_spread_curve_id_new_tab       IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_sp_fixed_date_old_tab         IN  OUT NOCOPY SYSTEM.pa_date_tbl_type
                ,x_sp_fixed_date_new_tab         IN  OUT NOCOPY SYSTEM.pa_date_tbl_type
                ,x_plan_start_date_old_tab       IN  OUT NOCOPY SYSTEM.pa_date_tbl_type
                ,x_plan_start_date_new_tab       IN  OUT NOCOPY SYSTEM.pa_date_tbl_type
                ,x_plan_end_date_old_tab         IN  OUT NOCOPY SYSTEM.pa_date_tbl_type
                ,x_plan_end_date_new_tab         IN  OUT NOCOPY SYSTEM.pa_date_tbl_type
                ,x_re_spread_flag_tab            IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_sp_curve_change_flag_tab      IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_plan_dates_change_flag_tab    IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_spfix_date_flag_tab           IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_mfc_cost_change_flag_tab      IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_mfc_cost_type_id_old_tab      IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
                ,x_mfc_cost_type_id_new_tab      IN  OUT NOCOPY SYSTEM.pa_num_tbl_type
        ,x_rlm_id_change_flag_tab        IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
        ,x_plan_sdate_shrunk_flag_tab    IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_plan_edate_shrunk_flag_tab    IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_mfc_cost_refresh_flag_tab     IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
        ,x_ra_in_multi_cur_flag_tab      IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
        ,x_quantity_changed_flag_tab     IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_raw_cost_changed_flag_tab     IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_cost_rate_changed_flag_tab    IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_burden_cost_changed_flag_tab  IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_burden_rate_changed_flag_tab  IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_rev_changed_flag_tab          IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_bill_rate_changed_flag_tab    IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
        	,x_multcur_plan_start_date_tab   IN  OUT NOCOPY SYSTEM.pa_date_tbl_type
                ,x_multcur_plan_end_date_tab     IN  OUT NOCOPY SYSTEM.pa_date_tbl_type
        	,x_fp_task_billable_flag_tab     IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
		,x_cost_rt_miss_num_flag_tab     IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_burd_rt_miss_num_flag_tab     IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_bill_rt_miss_num_flag_tab     IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_Qty_miss_num_flag_tab         IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_Rw_miss_num_flag_tab          IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_Br_miss_num_flag_tab          IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_Rv_miss_num_flag_tab          IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_rev_only_entry_flag_tab       IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
		/* bug fix:5726773 */
 	        ,x_neg_Qty_Changflag_tab           IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
 	        ,x_neg_Raw_Changflag_tab         IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
 	        ,x_neg_Burd_Changflag_tab          IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
 	        ,x_neg_rev_Changflag_tab           IN  OUT NOCOPY SYSTEM.pa_varchar2_1_tbl_type
                ,x_return_status                 OUT NOCOPY VARCHAR2
        ,x_msg_data                      OUT NOCOPY varchar2
                ) IS

    l_stage     Varchar2(1000);
Line: 6068

    SELECT tmp.resource_assignment_id
        ,tmp.txn_currency_code
        ,tmp.old_spread_curve_id
        ,tmp.new_spread_curve_id
        ,tmp.old_sp_fix_date
        ,tmp.new_sp_fix_date
        ,tmp.old_plan_start_date
        ,tmp.new_plan_start_date
        ,tmp.old_plan_end_date
        ,tmp.new_plan_end_date
        ,tmp.re_spread_amts_flag
        ,tmp.sp_curve_change_flag
        ,tmp.plan_dates_change_flag
        ,tmp.sp_fix_date_change_flag
        ,tmp.mfc_cost_change_flag
        ,tmp.old_mfc_cost_type_id
        ,tmp.new_mfc_cost_type_id
        ,tmp.etc_start_date
        ,tmp.project_currency_code
        ,tmp.projfunc_currency_code
        ,NVL(tmp.system_reference_var1,'N')  MultiCurrLineFlag
        ,NVL(tmp.plan_start_date_shrunk_flag,'N') plan_start_date_shrunk_flag
        ,NVL(tmp.plan_end_date_shrunk_flag,'N') plan_end_date_shrunk_flag
        ,NVL(tmp.rlm_id_change_flag,'N') rlm_id_change_flag
    FROM pa_fp_spread_calc_tmp tmp
    WHERE  tmp.budget_version_id = p_budget_version_id
    AND    NVL(tmp.system_reference_var1,'N') = 'Y'
    AND    NVL(tmp.rlm_id_change_flag,'N') <> 'Y'
    AND   (tmp.re_spread_amts_flag  = 'Y'
               OR tmp.sp_curve_change_flag  = 'Y'
               OR tmp.plan_dates_change_flag  = 'Y'
               OR tmp.sp_fix_date_change_flag  = 'Y'
               OR tmp.mfc_cost_change_flag = 'Y'
        );
Line: 6105

    SELECT 'Y'
    FROM DUAL
    WHERE EXISTS (SELECT 'MultipleLAdjustments'
            FROM pa_fp_spread_calc_tmp tmp
            WHERE tmp.budget_version_id = p_budget_version_id
            AND  ((decode(tmp.OLD_PLAN_START_DATE,NULL,'N'
                                 ,decode(tmp.NEW_PLAN_START_DATE,NULL,'N'
                                  ,decode(tmp.OLD_PLAN_START_DATE,tmp.NEW_PLAN_START_DATE,'N','Y'))) ='Y')
                OR
                (decode(tmp.OLD_PLAN_END_DATE,NULL,'N'
                                 ,decode(tmp.NEW_PLAN_END_DATE,NULL,'N'
                                  ,decode(tmp.OLD_PLAN_END_DATE,tmp.NEW_PLAN_END_DATE,'N','Y'))) = 'Y')
                 )
            GROUP BY tmp.resource_assignment_id
            HAVING count(*) > 1
             );
Line: 6124

    SELECT tmp.resource_assignment_id
        ,rl.alias  resource_name
    ,tmp.txn_currency_code
        ,tmp.old_plan_start_date
        ,tmp.new_plan_start_date
        ,tmp.old_plan_end_date
        ,tmp.new_plan_end_date
        ,tmp.old_spread_curve_id
        ,tmp.new_spread_curve_id
        ,tmp.old_sp_fix_date
        ,tmp.new_sp_fix_date
        ,tmp.old_mfc_cost_type_id
        ,tmp.new_mfc_cost_type_id
    FROM pa_fp_spread_calc_tmp tmp
        ,pa_resource_list_members rl
        ,pa_resource_assignments ra
        WHERE tmp.budget_version_id = p_budget_version_id
    AND   ra.resource_assignment_id = tmp.resource_assignment_id
    AND   rl.resource_list_member_id = ra.resource_list_member_id
    /** Bug fix:  ORA-00979: not a GROUP BY expression in Package PA_FP_CALC_UTILS
        AND  ((decode(tmp.OLD_PLAN_START_DATE,NULL,'N'
                ,decode(tmp.NEW_PLAN_START_DATE,NULL,'N'
                  ,decode(tmp.OLD_PLAN_START_DATE,tmp.NEW_PLAN_START_DATE,'N','Y'))) ='Y')
               OR
               (decode(tmp.OLD_PLAN_END_DATE,NULL,'N'
                 ,decode(tmp.NEW_PLAN_END_DATE,NULL,'N'
                   ,decode(tmp.OLD_PLAN_END_DATE,tmp.NEW_PLAN_END_DATE,'N','Y'))) = 'Y')
               )
        GROUP BY tmp.resource_assignment_id
        HAVING count(*) > 1 ;
Line: 6155

        AND EXISTS (SELECT 'MultipleLAdjustments'
                    FROM pa_fp_spread_calc_tmp tmpb
                    WHERE tmpb.budget_version_id = tmp.budget_version_id
                    AND   tmpb.resource_assignment_id = tmp.resource_assignment_id
                    AND  ((decode(tmpb.OLD_PLAN_START_DATE,NULL,'N'
                           ,decode(tmpb.NEW_PLAN_START_DATE,NULL,'N'
                            ,decode(tmpb.OLD_PLAN_START_DATE,tmpb.NEW_PLAN_START_DATE,'N','Y'))) ='Y')
                          OR
                           (decode(tmpb.OLD_PLAN_END_DATE,NULL,'N'
                            ,decode(tmpb.NEW_PLAN_END_DATE,NULL,'N'
                             ,decode(tmpb.OLD_PLAN_END_DATE,tmpb.NEW_PLAN_END_DATE,'N','Y'))) = 'Y')
                          )
                    GROUP BY tmpb.resource_assignment_id
                    HAVING count(*) > 1
                    );
Line: 6173

        SELECT tmp.resource_assignment_id
                ,tmp.txn_currency_code
        FROM pa_fp_spread_calc_tmp tmp
        WHERE tmp.budget_version_id = p_budget_version_id
        GROUP BY tmp.resource_assignment_id
                ,tmp.txn_currency_code
        HAVING COUNT(*) > 1 ;
Line: 6191

        SELECT 'Y'
        INTO l_return_flg
        FROM DUAL
        WHERE EXISTS (Select null
                from pa_fp_spread_calc_tmp tmp
                where  ( NVL(tmp.sp_curve_change_flag,'N') = 'Y'
                            OR NVL(tmp.plan_dates_change_flag,'N') = 'Y'
                            OR NVL(tmp.sp_fix_date_change_flag,'N') = 'Y'
                    OR NVL(tmp.re_spread_amts_flag,'N') = 'Y'
                            OR ( (NVL(tmp.mfc_cost_change_flag,'N') = 'Y'
                          AND p_calling_context = 'RATXNCOMBO')
                       )
                    --OR NVL(tmp.rlm_id_changed_flag,'N') = 'Y'
                        ));
Line: 6225

       DELETE FROM pa_fp_spread_calc_tmp;
Line: 6226

       DELETE FROM pa_fp_rollup_tmp
       WHERE budget_version_id = p_budget_version_id;
Line: 6267

	  insert_calcTmp_records
		( x_resource_assignment_tab       => x_resource_assignment_tab
                ,x_delete_budget_lines_tab        => x_delete_budget_lines_tab
                ,x_spread_amts_flag_tab           => x_spread_amts_flag_tab
                ,x_txn_currency_code_tab          => x_txn_currency_code_tab
                ,x_txn_currency_override_tab      => x_txn_currency_override_tab
                ,x_total_qty_tab                  => x_total_qty_tab
                ,x_addl_qty_tab                   => x_addl_qty_tab
                ,x_total_raw_cost_tab             => x_total_raw_cost_tab
                ,x_addl_raw_cost_tab              => x_addl_raw_cost_tab
                ,x_total_burdened_cost_tab        => x_total_burdened_cost_tab
                ,x_addl_burdened_cost_tab         => x_addl_burdened_cost_tab
                ,x_total_revenue_tab              => x_total_revenue_tab
                ,x_addl_revenue_tab               => x_addl_revenue_tab
                ,x_raw_cost_rate_tab              => x_raw_cost_rate_tab
                ,x_rw_cost_rate_override_tab      => x_rw_cost_rate_override_tab
                ,x_b_cost_rate_tab                => x_b_cost_rate_tab
                ,x_b_cost_rate_override_tab       => x_b_cost_rate_override_tab
                ,x_bill_rate_tab                  => x_bill_rate_tab
                ,x_bill_rate_override_tab         => x_bill_rate_override_tab
                ,x_line_start_date_tab            => x_line_start_date_tab
                ,x_line_end_date_tab              => x_line_end_date_tab
                ,x_apply_progress_flag_tab        => x_apply_progress_flag_tab
                ,x_spread_curve_id_old_tab        => x_spread_curve_id_old_tab
                ,x_spread_curve_id_new_tab        => x_spread_curve_id_new_tab
                ,x_sp_fixed_date_old_tab          => x_sp_fixed_date_old_tab
                ,x_sp_fixed_date_new_tab          => x_sp_fixed_date_new_tab
                ,x_plan_start_date_old_tab        => x_plan_start_date_old_tab
                ,x_plan_start_date_new_tab        => x_plan_start_date_new_tab
                ,x_plan_end_date_old_tab          => x_plan_end_date_old_tab
		,x_plan_end_date_new_tab          => x_plan_end_date_new_tab
                ,x_re_spread_flag_tab             => x_re_spread_flag_tab
                ,x_sp_curve_change_flag_tab       => x_sp_curve_change_flag_tab
                ,x_plan_dates_change_flag_tab     => x_plan_dates_change_flag_tab
                ,x_spfix_date_flag_tab            => x_spfix_date_flag_tab
                ,x_mfc_cost_change_flag_tab       => x_mfc_cost_change_flag_tab
                ,x_mfc_cost_type_id_old_tab       => x_mfc_cost_type_id_old_tab
                ,x_mfc_cost_type_id_new_tab       => x_mfc_cost_type_id_new_tab
        	,x_rlm_id_change_flag_tab         => x_rlm_id_change_flag_tab
        	,x_plan_sdate_shrunk_flag_tab     => x_plan_sdate_shrunk_flag_tab
                ,x_plan_edate_shrunk_flag_tab     => x_plan_edate_shrunk_flag_tab
                ,x_mfc_cost_refresh_flag_tab      => x_mfc_cost_refresh_flag_tab
        	,x_ra_in_multi_cur_flag_tab       => x_ra_in_multi_cur_flag_tab
        	,x_quantity_changed_flag_tab      => x_quantity_changed_flag_tab
                ,x_raw_cost_changed_flag_tab      => x_raw_cost_changed_flag_tab
                ,x_cost_rate_changed_flag_tab     => x_cost_rate_changed_flag_tab
                ,x_burden_cost_changed_flag_tab   => x_burden_cost_changed_flag_tab
                ,x_burden_rate_changed_flag_tab   => x_burden_rate_changed_flag_tab
                ,x_rev_changed_flag_tab           => x_rev_changed_flag_tab
                ,x_bill_rate_changed_flag_tab     => x_bill_rate_changed_flag_tab
                ,x_multcur_plan_start_date_tab    => x_multcur_plan_start_date_tab
                ,x_multcur_plan_end_date_tab      => x_multcur_plan_end_date_tab
                ,x_fp_task_billable_flag_tab      => x_fp_task_billable_flag_tab
                ,x_cost_rt_miss_num_flag_tab      => x_cost_rt_miss_num_flag_tab
                ,x_burd_rt_miss_num_flag_tab      => x_burd_rt_miss_num_flag_tab
                ,x_bill_rt_miss_num_flag_tab      => x_bill_rt_miss_num_flag_tab
                ,x_Qty_miss_num_flag_tab          => x_Qty_miss_num_flag_tab
                ,x_Rw_miss_num_flag_tab           => x_Rw_miss_num_flag_tab
                ,x_Br_miss_num_flag_tab           => x_Br_miss_num_flag_tab
                ,x_Rv_miss_num_flag_tab           => x_Rv_miss_num_flag_tab
                ,x_rev_only_entry_flag_tab        => x_rev_only_entry_flag_tab
                ,x_return_status                  => l_return_status
                ,x_msg_data                       => x_msg_data
		);
Line: 6337

                INSERT INTO pa_fp_spread_calc_tmp
                        (RESOURCE_ASSIGNMENT_ID --resource_assignment_id
                         ,DELETE_BL_FLAG          --delete_budget_lines_flag
                         ,SPREAD_AMTS_FLAG      --spread_amts_flag
                         ,TXN_CURRENCY_CODE     --txn_currency_code
                         ,TXN_CURR_CODE_OVERRIDE --txn_currency_override
                         ,QUANTITY              --total_qty
                         ,SYSTEM_REFERENCE_NUM1 --addl_qty
                         ,TXN_RAW_COST          --total_raw_cost
                         ,SYSTEM_REFERENCE_NUM2 --addl_raw_cost
                         ,TXN_BURDENED_COST     --total_burdened_cost
                         ,SYSTEM_REFERENCE_NUM3 --addl_burdened_cost
                         ,TXN_REVENUE           --total_revenue
                         ,SYSTEM_REFERENCE_NUM4 --addl_revenue
                         ,COST_RATE             --raw_cost_rate
                         ,COST_RATE_OVERRIDE    --rw_cost_rate_override
                         ,BURDEN_COST_RATE      --b_cost_rate
                         ,BURDEN_COST_RATE_OVERRIDE --b_cost_rate_override
                         ,BILL_RATE             --bill_rate
                         ,BILL_RATE_OVERRIDE    --bill_rate_override
                         ,START_DATE            --line_start_date
                         ,END_DATE              --line_end_date
                         ,APPLY_PROGRESS_FLAG   --apply_progress_flag
                         ,BUDGET_VERSION_ID     --budget_version_id
                         ,OLD_SPREAD_CURVE_ID   --x_spread_curve_id_old_tab
                         ,NEW_SPREAD_CURVE_ID   --x_spread_curve_id_new_tab
                         ,OLD_SP_FIX_DATE       --x_sp_fixed_date_old_tab
                         ,NEW_SP_FIX_DATE       --x_sp_fixed_date_new_tab
                         ,OLD_PLAN_START_DATE   --x_plan_start_date_old_tab
                         ,NEW_PLAN_START_DATE   --x_plan_start_date_new_tab
                         ,OLD_PLAN_END_DATE     --x_plan_end_date_old_tab
                         ,NEW_PLAN_END_DATE     --x_plan_end_date_new_tab
                         ,RE_SPREAD_AMTS_FLAG   --x_re_spread_flag_tab
                         ,SP_CURVE_CHANGE_FLAG  --x_sp_curve_change_flag_tab
                         ,PLAN_DATES_CHANGE_FLAG --x_plan_dates_change_flag_tab
                         ,SP_FIX_DATE_CHANGE_FLAG --x_spfix_date_flag_tab
                         ,MFC_COST_CHANGE_FLAG   --x_mfc_cost_change_flag_tab
                         ,OLD_MFC_COST_TYPE_ID   --x_mfc_cost_type_id_old_tab
                         ,NEW_MFC_COST_TYPE_ID   --x_mfc_cost_type_id_new_tab
             ,ETC_START_DATE
             ,PROJECT_CURRENCY_CODE
             ,PROJFUNC_CURRENCY_CODE
             ,RLM_ID_CHANGE_FLAG
             ,BUDGET_VERSION_TYPE
            ,BILLABLE_FLAG
			,COST_RATE_G_MISS_NUM_FLAG
			,BURDEN_RATE_G_MISS_NUM_FLAG
			,BILL_RATE_G_MISS_NUM_FLAG
			,QUANTITY_G_MISS_NUM_FLAG
			,RAW_COST_G_MISS_NUM_FLAG
			,BURDEN_COST_G_MISS_NUM_FLAG
			,REVENUE_G_MISS_NUM_FLAG
                        )
                VALUES (
                        x_resource_assignment_tab(i)
                        ,x_delete_budget_lines_tab(i)
                        ,x_spread_amts_flag_tab(i)
                        ,x_txn_currency_code_tab(i)
                        ,x_txn_currency_override_tab(i)
                        ,x_total_qty_tab(i)
                        ,x_addl_qty_tab(i)
                        ,x_total_raw_cost_tab(i)
                        ,x_addl_raw_cost_tab(i)
                        ,x_total_burdened_cost_tab(i)
                        ,x_addl_burdened_cost_tab(i)
                        ,x_total_revenue_tab(i)
                        ,x_addl_revenue_tab(i)
                        ,x_raw_cost_rate_tab(i)
                        ,x_rw_cost_rate_override_tab(i)
                        ,x_b_cost_rate_tab(i)
                        ,x_b_cost_rate_override_tab(i)
                        ,x_bill_rate_tab(i)
                        ,x_bill_rate_override_tab(i)
                        ,x_line_start_date_tab(i)
                        ,x_line_end_date_tab(i)
                        ,x_apply_progress_flag_tab(i)
                        ,g_budget_version_id
                        ,x_spread_curve_id_old_tab(i)
                        ,x_spread_curve_id_new_tab(i)
                        ,x_sp_fixed_date_old_tab(i)
                        ,x_sp_fixed_date_new_tab(i)
                        ,x_plan_start_date_old_tab(i)
                        ,x_plan_start_date_new_tab(i)
                        ,x_plan_end_date_old_tab(i)
                        ,x_plan_end_date_new_tab(i)
                        ,x_re_spread_flag_tab(i)
                        ,x_sp_curve_change_flag_tab(i)
                        ,x_plan_dates_change_flag_tab(i)
                        ,x_spfix_date_flag_tab(i)
                        ,x_mfc_cost_change_flag_tab(i)
                        ,x_mfc_cost_type_id_old_tab(i)
                        ,x_mfc_cost_type_id_new_tab(i)
            		,g_etc_start_date
            		,g_project_currency_code
            		,g_projfunc_currency_code
            		,x_rlm_id_change_flag_tab(i)
            		,g_budget_version_type
            		,x_fp_task_billable_flag_tab(i)
			,x_cost_rt_miss_num_flag_tab(i)
                	,x_burd_rt_miss_num_flag_tab(i)
                	,x_bill_rt_miss_num_flag_tab(i)
			,x_Qty_miss_num_flag_tab(i)
                	,x_Rw_miss_num_flag_tab(i)
                	,x_Br_miss_num_flag_tab(i)
                	,x_Rv_miss_num_flag_tab(i)
              );
Line: 6528

             print_msg('Delete zero Quantity budget lines where actuals donot exists');
Line: 6531

             DELETE FROM pa_budget_lines bl
             WHERE bl.budget_version_id = p_budget_version_id
             AND  bl.resource_assignment_id = x_resource_assignment_tab(i)
             AND  NVL(bl.quantity,0)            = 0
             AND (NVL(bl.init_quantity,0)       = 0
              and NVL(bl.txn_raw_cost,0)        = 0
                          and NVL(bl.txn_burdened_cost,0)   = 0
                          and NVL(bl.txn_revenue,0)         = 0
                  and NVL(bl.txn_init_raw_cost,0)   = 0
              and NVL(bl.txn_init_burdened_cost,0)  = 0
              and NVL(bl.txn_init_revenue,0)    = 0
             );
Line: 6544

            	print_msg('Number of lines deleted['||sql%rowcount||']');
Line: 6549

                /* Now update the Rate/Amount/Qty changed flags on the Tmp table */
		IF P_PA_DEBUG_MODE = 'Y' Then
                print_msg('Calling Compare_bdgtLine_Values Api');
Line: 6567

        /* If multiple RA + Txn cur combo is passed, then updates the res attributes whereever it is null */
	IF P_PA_DEBUG_MODE = 'Y' Then
        print_msg('Calling synchronize resource attributes api');
Line: 6684

        FOR i IN (select * from pa_fp_spread_calc_tmp ) LOOP
            print_msg('Ra['||i.resource_assignment_id||']TxnCur['||i.txn_currency_code||']');
Line: 6872

                SELECT tmp.RESOURCE_ASSIGNMENT_ID --resource_assignment_id
                         ,tmp.DELETE_BL_FLAG          --delete_budget_lines_flag
                         ,tmp.SPREAD_AMTS_FLAG      --spread_amts_flag
                         ,tmp.TXN_CURRENCY_CODE     --txn_currency_code
                         ,tmp.TXN_CURR_CODE_OVERRIDE --txn_currency_override
                         ,tmp.QUANTITY              --total_qty
                         ,tmp.SYSTEM_REFERENCE_NUM1 --addl_qty
                         ,tmp.TXN_RAW_COST          --total_raw_cost
                         ,tmp.SYSTEM_REFERENCE_NUM2 --addl_raw_cost
                         ,tmp.TXN_BURDENED_COST     --total_burdened_cost
                         ,tmp.SYSTEM_REFERENCE_NUM3 --addl_burdened_cost
                         ,tmp.TXN_REVENUE           --total_revenue
                         ,tmp.SYSTEM_REFERENCE_NUM4 --addl_revenue
                         ,tmp.COST_RATE             --raw_cost_rate
                         ,tmp.COST_RATE_OVERRIDE    --rw_cost_rate_override
                         ,tmp.BURDEN_COST_RATE      --b_cost_rate
                         ,tmp.BURDEN_COST_RATE_OVERRIDE --b_cost_rate_override
                         ,tmp.BILL_RATE             --bill_rate
                         ,tmp.BILL_RATE_OVERRIDE    --bill_rate_override
                         ,tmp.START_DATE            --line_start_date
                         ,tmp.END_DATE              --line_end_date
                         ,tmp.APPLY_PROGRESS_FLAG   --apply_progress_flag
                         ,tmp.OLD_SPREAD_CURVE_ID   --x_spread_curve_id_old_tab
                         ,tmp.NEW_SPREAD_CURVE_ID   --x_spread_curve_id_new_tab
                         ,tmp.OLD_SP_FIX_DATE       --x_sp_fixed_date_old_tab
                         ,tmp.NEW_SP_FIX_DATE       --x_sp_fixed_date_new_tab
                         ,tmp.OLD_PLAN_START_DATE   --x_plan_start_date_old_tab
                         ,tmp.NEW_PLAN_START_DATE   --x_plan_start_date_new_tab
                         ,tmp.OLD_PLAN_END_DATE     --x_plan_end_date_old_tab
                         ,tmp.NEW_PLAN_END_DATE     --x_plan_end_date_new_tab
                         ,NVL(tmp.RE_SPREAD_AMTS_FLAG,'N')   --x_re_spread_flag_tab
                         ,NVL(tmp.SP_CURVE_CHANGE_FLAG,'N')  --x_sp_curve_change_flag_tab
                         ,NVL(tmp.PLAN_DATES_CHANGE_FLAG,'N') --x_plan_dates_change_flag_tab
                         ,NVL(tmp.SP_FIX_DATE_CHANGE_FLAG,'N') --x_spfix_date_flag_tab
                         ,NVL(tmp.MFC_COST_CHANGE_FLAG,'N')   --x_mfc_cost_change_flag_tab
                         ,tmp.OLD_MFC_COST_TYPE_ID   --x_mfc_cost_type_id_old_tab
                         ,tmp.NEW_MFC_COST_TYPE_ID   --x_mfc_cost_type_id_new_tab
             ,NVL(tmp.RLM_ID_CHANGE_FLAG,'N')
             ,NVL(tmp.plan_start_date_shrunk_flag,'N')
             ,NVL(tmp.plan_end_date_shrunk_flag,'N')
             ,NVL(tmp.mfc_cost_refresh_flag,'N')
             ,NVL(tmp.system_reference_var1 ,'N') --ResourceWithMultiCurrency
             ,NVL(tmp.quantity_changed_flag,'N')
                     ,NVL(tmp.raw_cost_changed_flag,'N')
                     ,NVL(tmp.cost_rate_changed_flag,'N')
                     ,NVL(tmp.burden_cost_changed_flag,'N')
                     ,NVL(tmp.burden_rate_changed_flag,'N')
                     ,NVL(tmp.revenue_changed_flag,'N')
                     ,NVL(tmp.bill_rate_changed_flag,'N')
             ,tmp.system_reference_dat1  --newPlanStartDate for resPlannedIn Multicur
             ,tmp.system_reference_dat2  --newPlanEndDate for resPlannedIn Multicur
			,NVL(tmp.COST_RATE_G_MISS_NUM_FLAG,'N')
                        ,NVL(tmp.BURDEN_RATE_G_MISS_NUM_FLAG,'N')
                        ,NVL(tmp.BILL_RATE_G_MISS_NUM_FLAG,'N')
			,NVL(tmp.revenue_only_entered_flag,'N')
			,NVL(tmp.QUANTITY_G_MISS_NUM_FLAG,'N')
                       ,NVL(tmp.RAW_COST_G_MISS_NUM_FLAG,'N')
                       ,NVL(tmp.BURDEN_COST_G_MISS_NUM_FLAG,'N')
                      ,NVL(tmp.REVENUE_G_MISS_NUM_FLAG,'N')
		      /* bug fix:5726773 */
 	              ,NVL(tmp.NEG_QUANTITY_CHANGE_FLAG,'N') -- negQtyChangeflag
 	              ,NVL(tmp.NEG_RAWCOST_CHANGE_FLAG,'N') -- negRawCostChangeFlag
 	              ,NVL(tmp.NEG_BURDEN_CHANGE_FALG,'N') -- negBurdChangeFlag
 	              ,NVL(tmp.NEG_REVENUE_CHANGE_FLAG,'N') -- negRevChangeFlag
                BULK COLLECT INTO
                        x_resource_assignment_tab
                        ,x_delete_budget_lines_tab
                        ,x_spread_amts_flag_tab
                        ,x_txn_currency_code_tab
                        ,x_txn_currency_override_tab
                        ,x_total_qty_tab
                        ,x_addl_qty_tab
                        ,x_total_raw_cost_tab
                        ,x_addl_raw_cost_tab
                        ,x_total_burdened_cost_tab
                        ,x_addl_burdened_cost_tab
                        ,x_total_revenue_tab
                        ,x_addl_revenue_tab
                        ,x_raw_cost_rate_tab
                        ,x_rw_cost_rate_override_tab
                        ,x_b_cost_rate_tab
                        ,x_b_cost_rate_override_tab
                        ,x_bill_rate_tab
                        ,x_bill_rate_override_tab
                        ,x_line_start_date_tab
                        ,x_line_end_date_tab
                        ,x_apply_progress_flag_tab
                        ,x_spread_curve_id_old_tab
                        ,x_spread_curve_id_new_tab
                        ,x_sp_fixed_date_old_tab
                        ,x_sp_fixed_date_new_tab
                        ,x_plan_start_date_old_tab
                        ,x_plan_start_date_new_tab
                        ,x_plan_end_date_old_tab
                        ,x_plan_end_date_new_tab
                        ,x_re_spread_flag_tab
                        ,x_sp_curve_change_flag_tab
                        ,x_plan_dates_change_flag_tab
                        ,x_spfix_date_flag_tab
                        ,x_mfc_cost_change_flag_tab
                        ,x_mfc_cost_type_id_old_tab
                        ,x_mfc_cost_type_id_new_tab
            ,x_rlm_id_change_flag_tab
            ,x_plan_sdate_shrunk_flag_tab
                    ,x_plan_edate_shrunk_flag_tab
                    ,x_mfc_cost_refresh_flag_tab
            ,x_ra_in_multi_cur_flag_tab
            ,x_quantity_changed_flag_tab
                    ,x_raw_cost_changed_flag_tab
                    ,x_cost_rate_changed_flag_tab
                    ,x_burden_cost_changed_flag_tab
                    ,x_burden_rate_changed_flag_tab
                    ,x_rev_changed_flag_tab
                    ,x_bill_rate_changed_flag_tab
            ,x_multcur_plan_start_date_tab
                    ,x_multcur_plan_end_date_tab
		,x_cost_rt_miss_num_flag_tab
                ,x_burd_rt_miss_num_flag_tab
                ,x_bill_rt_miss_num_flag_tab
		,x_rev_only_entry_flag_tab
		,x_Qty_miss_num_flag_tab
                ,x_Rw_miss_num_flag_tab
                ,x_Br_miss_num_flag_tab
                ,x_Rv_miss_num_flag_tab
		/* bug fix:5726773 */
 	        ,x_neg_Qty_Changflag_tab
 	        ,x_neg_Raw_Changflag_tab
 	        ,x_neg_Burd_Changflag_tab
 	        ,x_neg_rev_Changflag_tab
                FROM PA_FP_SPREAD_CALC_TMP tmp
                WHERE tmp.budget_version_id = p_budget_version_id;
Line: 7042

    SELECT tmp.resource_assignment_id
        ,tmp.txn_currency_code
        ,tmp.cost_rate_override
        ,tmp.burden_cost_rate_override
        ,tmp.bill_rate_override
        ,tmp.budget_version_type
        ,tmp.quantity_changed_flag
        ,tmp.cost_rate_changed_flag
        ,tmp.burden_rate_changed_flag
        ,tmp.bill_rate_changed_flag
        ,tmp.mfc_cost_change_flag
    FROM pa_fp_spread_calc_tmp tmp
    WHERE tmp.budget_version_id = p_budget_verson_id
    AND   nvl(tmp.rlm_id_change_flag,'N') <> 'Y'
    AND   (tmp.cost_rate_override is NOT NULL
        OR tmp.burden_cost_rate_override is NOT NULL
        OR tmp.bill_rate_override is NOT NULL
        OR tmp.mfc_cost_change_flag = 'Y' );
Line: 7068

    INSERT INTO pa_fp_spread_calc_tmp1
            (RESOURCE_ASSIGNMENT_ID --resource_assignment_id
                         ,BUDGET_VERSION_ID     --budget_version_id
             ,BUDGET_VERSION_TYPE
             ,BUDGET_LINE_ID
                         ,TXN_CURRENCY_CODE     --txn_currency_code
                         ,TXN_CURR_CODE_OVERRIDE --txn_currency_override
                         ,QUANTITY              --total_qty
                         ,TXN_RAW_COST          --total_raw_cost
                         ,TXN_BURDENED_COST     --total_burdened_cost
                         ,TXN_REVENUE           --total_revenue
                         ,COST_RATE             --raw_cost_rate
                         ,COST_RATE_OVERRIDE    --rw_cost_rate_override
                         ,BURDEN_COST_RATE      --b_cost_rate
                         ,BURDEN_COST_RATE_OVERRIDE --b_cost_rate_override
                         ,BILL_RATE             --bill_rate
                         ,BILL_RATE_OVERRIDE    --bill_rate_override
                         ,START_DATE            --line_start_date
                         ,END_DATE              --line_end_date
             ,PERIOD_NAME
            ,PROJECT_CURRENCY_CODE
            ,PROJFUNC_CURRENCY_CODE
            ,PROJECT_COST_RATE_TYPE
            ,PROJECT_COST_EXCHANGE_RATE
            ,PROJECT_COST_RATE_DATE_TYPE
            ,PROJECT_COST_RATE_DATE
            ,PROJECT_REV_RATE_TYPE
            ,PROJECT_REV_EXCHANGE_RATE
            ,PROJECT_REV_RATE_DATE_TYPE
            ,PROJECT_REV_RATE_DATE
            ,PROJFUNC_COST_RATE_TYPE
            ,PROJFUNC_COST_EXCHANGE_RATE
            ,PROJFUNC_COST_RATE_DATE_TYPE
            ,PROJFUNC_COST_RATE_DATE
            ,PROJFUNC_REV_RATE_TYPE
            ,PROJFUNC_REV_EXCHANGE_RATE
            ,PROJFUNC_REV_RATE_DATE_TYPE
            ,PROJFUNC_REV_RATE_DATE
            ,CHANGE_REASON_CODE
            ,DESCRIPTION
            ,ATTRIBUTE_CATEGORY
            ,ATTRIBUTE1
            ,ATTRIBUTE2
            ,ATTRIBUTE3
            ,ATTRIBUTE4
            ,ATTRIBUTE5
            ,ATTRIBUTE6
            ,ATTRIBUTE7
            ,ATTRIBUTE8
            ,ATTRIBUTE9
            ,ATTRIBUTE10
            ,ATTRIBUTE11
            ,ATTRIBUTE12
            ,ATTRIBUTE13
            ,ATTRIBUTE14
            ,ATTRIBUTE15
            ,RAW_COST_SOURCE
            ,BURDENED_COST_SOURCE
            ,QUANTITY_SOURCE
            ,REVENUE_SOURCE
            ,PM_PRODUCT_CODE
            ,PM_BUDGET_LINE_REFERENCE
            ,CODE_COMBINATION_ID
            ,CCID_GEN_STATUS_CODE
            ,CCID_GEN_REJ_MESSAGE
            ,BORROWED_REVENUE
            ,TP_REVENUE_IN
            ,TP_REVENUE_OUT
            ,REVENUE_ADJ
            ,LENT_RESOURCE_COST
            ,TP_COST_IN
            ,TP_COST_OUT
            ,COST_ADJ
            ,UNASSIGNED_TIME_COST
            ,UTILIZATION_PERCENT
            ,UTILIZATION_HOURS
            ,UTILIZATION_ADJ
            ,CAPACITY
            ,HEAD_COUNT
            ,HEAD_COUNT_ADJ
            ,BUCKETING_PERIOD_CODE
            ,TXN_DISCOUNT_PERCENTAGE
            ,TRANSFER_PRICE_RATE
            ,BL_CREATED_BY
            ,BL_CREATION_DATE
            ,mfc_cost_change_flag
            )
        SELECT /*+ INDEX(BL PA_BUDGET_LINES_U1) */
            bl.RESOURCE_ASSIGNMENT_ID --resource_assignment_id
                         ,bl.BUDGET_VERSION_ID     --budget_version_id
             ,tmp.BUDGET_VERSION_TYPE
             ,bl.BUDGET_LINE_ID
                         ,bl.TXN_CURRENCY_CODE     --txn_currency_code
                         ,tmp.TXN_CURR_CODE_OVERRIDE --txn_currency_override
                         ,bl.QUANTITY              --total_qty
                         ,bl.TXN_RAW_COST          --total_raw_cost
                         ,bl.TXN_BURDENED_COST     --total_burdened_cost
                         ,bl.TXN_REVENUE           --total_revenue
                         ,bl.TXN_STANDARD_COST_RATE             --raw_cost_rate
                         ,bl.TXN_COST_RATE_OVERRIDE    --rw_cost_rate_override
                         ,bl.BURDEN_COST_RATE      --b_cost_rate
                         ,bl.BURDEN_COST_RATE_OVERRIDE --b_cost_rate_override
                         ,bl.TXN_STANDARD_BILL_RATE             --bill_rate
                         ,bl.TXN_BILL_RATE_OVERRIDE    --bill_rate_override
                         ,bl.START_DATE            --line_start_date
                         ,bl.END_DATE              --line_end_date
            ,bl.PERIOD_NAME
            ,bl.PROJECT_CURRENCY_CODE
            ,bl.PROJFUNC_CURRENCY_CODE
            ,bl.PROJECT_COST_RATE_TYPE
            ,bl.PROJECT_COST_EXCHANGE_RATE
            ,bl.PROJECT_COST_RATE_DATE_TYPE
            ,bl.PROJECT_COST_RATE_DATE
            ,bl.PROJECT_REV_RATE_TYPE
            ,bl.PROJECT_REV_EXCHANGE_RATE
            ,bl.PROJECT_REV_RATE_DATE_TYPE
            ,bl.PROJECT_REV_RATE_DATE
            ,bl.PROJFUNC_COST_RATE_TYPE
            ,bl.PROJFUNC_COST_EXCHANGE_RATE
            ,bl.PROJFUNC_COST_RATE_DATE_TYPE
            ,bl.PROJFUNC_COST_RATE_DATE
            ,bl.PROJFUNC_REV_RATE_TYPE
            ,bl.PROJFUNC_REV_EXCHANGE_RATE
            ,bl.PROJFUNC_REV_RATE_DATE_TYPE
            ,bl.PROJFUNC_REV_RATE_DATE
            ,bl.CHANGE_REASON_CODE
            ,bl.DESCRIPTION
            ,bl.ATTRIBUTE_CATEGORY
            ,bl.ATTRIBUTE1
            ,bl.ATTRIBUTE2
            ,bl.ATTRIBUTE3
            ,bl.ATTRIBUTE4
            ,bl.ATTRIBUTE5
            ,bl.ATTRIBUTE6
            ,bl.ATTRIBUTE7
            ,bl.ATTRIBUTE8
            ,bl.ATTRIBUTE9
            ,bl.ATTRIBUTE10
            ,bl.ATTRIBUTE11
            ,bl.ATTRIBUTE12
            ,bl.ATTRIBUTE13
            ,bl.ATTRIBUTE14
            ,bl.ATTRIBUTE15
            ,bl.RAW_COST_SOURCE
            ,bl.BURDENED_COST_SOURCE
            ,bl.QUANTITY_SOURCE
            ,bl.REVENUE_SOURCE
            ,bl.PM_PRODUCT_CODE
            ,bl.PM_BUDGET_LINE_REFERENCE
            ,bl.CODE_COMBINATION_ID
            ,bl.CCID_GEN_STATUS_CODE
            ,bl.CCID_GEN_REJ_MESSAGE
            ,bl.BORROWED_REVENUE
            ,bl.TP_REVENUE_IN
            ,bl.TP_REVENUE_OUT
            ,bl.REVENUE_ADJ
            ,bl.LENT_RESOURCE_COST
            ,bl.TP_COST_IN
            ,bl.TP_COST_OUT
            ,bl.COST_ADJ
            ,bl.UNASSIGNED_TIME_COST
            ,bl.UTILIZATION_PERCENT
            ,bl.UTILIZATION_HOURS
            ,bl.UTILIZATION_ADJ
            ,bl.CAPACITY
            ,bl.HEAD_COUNT
            ,bl.HEAD_COUNT_ADJ
            ,bl.BUCKETING_PERIOD_CODE
            ,bl.TXN_DISCOUNT_PERCENTAGE
            ,bl.TRANSFER_PRICE_RATE
            ,bl.CREATED_BY
            ,bl.CREATION_DATE
            ,tmp.mfc_cost_change_flag
        FROM PA_BUDGET_LINES bl
            ,PA_FP_SPREAD_CALC_TMP tmp
        WHERE bl.budget_version_id = p_budget_verson_id
        AND   bl.budget_version_id = tmp.budget_version_id
        AND   bl.resource_assignment_id = tmp.resource_assignment_id
        AND   bl.txn_currency_code = tmp.txn_currency_code
        AND   ((tmp.ETC_START_DATE is NOT NULL
            AND bl.end_date >= tmp.ETC_START_DATE)
            OR
            tmp.ETC_START_DATE is NULL
              )
        AND  NVL(tmp.RLM_ID_CHANGE_FLAG,'N') <> 'Y'
        AND   (NVL(tmp.SP_CURVE_CHANGE_FLAG,'N') = 'Y'
            OR NVL(tmp.SP_FIX_DATE_CHANGE_FLAG,'N') = 'Y'
            OR NVL(tmp.PLAN_DATES_CHANGE_FLAG,'N') = 'Y'
            OR NVL(tmp.MFC_COST_CHANGE_FLAG,'N') = 'Y'
            OR NVL(tmp.RE_SPREAD_AMTS_FLAG,'N') = 'Y'
              );
Line: 7264

    /* Now update the override rates If any passed from the Page */
    FOR i IN cur_ovr_rts LOOP
	/*
        print_msg('mfcCostFlag['||i.mfc_cost_change_flag||'Ver['||i.budget_version_type||']');
Line: 7271

        UPDATE /*+ INDEX(TMP1 PA_FP_SPREAD_CALC_TMP1_N1) */  pa_fp_spread_calc_tmp1 tmp1
        SET tmp1.cost_rate_override = decode(i.budget_version_type,'REVENUE',tmp1.cost_rate_override
                        ,decode(nvl(i.cost_rate_changed_flag,'N')
                          ,'Y',decode(i.mfc_cost_change_flag,'Y'
                           ,decode(nvl(i.cost_rate_override,0),0,NULL,i.cost_rate_override),i.cost_rate_override)
                          ,'N',decode(i.mfc_cost_change_flag,'Y'
                               ,decode(nvl(i.cost_rate_override,0),0,NULL,i.cost_rate_override),tmp1.cost_rate_override)))
           ,tmp1.burden_cost_rate_override = decode(i.budget_version_type,'REVENUE',tmp1.burden_cost_rate_override
                        ,decode(nvl(i.burden_rate_changed_flag,'N')
                         ,'Y',decode(i.mfc_cost_change_flag,'Y'
                                                   ,decode(nvl(i.burden_cost_rate_override,0),0,NULL,i.burden_cost_rate_override),i.burden_cost_rate_override)
                         ,'N',decode(i.mfc_cost_change_flag,'Y'
                                                       ,decode(nvl(i.burden_cost_rate_override,0),0,NULL,i.burden_cost_rate_override),tmp1.burden_cost_rate_override)))
           ,tmp1.bill_rate_override = decode(i.budget_version_type,'COST',tmp1.bill_rate_override
                        ,decode(nvl(i.bill_rate_changed_flag,'N')
                                                  ,'Y',decode(i.mfc_cost_change_flag,'Y'
                                                   ,decode(nvl(i.bill_rate_override,0),0,NULL,i.bill_rate_override),i.bill_rate_override)
                                                  ,'N',decode(i.mfc_cost_change_flag,'Y'
                                                       ,decode(nvl(i.bill_rate_override,0),0,NULL,i.bill_rate_override),tmp1.bill_rate_override)))
        WHERE tmp1.budget_version_id = p_budget_verson_id
        AND  tmp1.resource_assignment_id = i.resource_assignment_id
        AND  tmp1.txn_currency_code = i.txn_currency_code ;
Line: 7296

        print_msg('Number of cached rows updated['||l_rowcount||']');
Line: 7336

                in Update Task Details page, the following piece of code gets executed.

                This code caches several attributes from pa_budget_lines table and will use them in the
                later part of the flow, thus causing the above bug. When ever currency code is overwritten
                we need to use the new currency's conversion attributes, but where as this code will use
                old currency's conversion attributes.

                As a part of the fix the following cursor is rewritten to cache old attrs only if the
                currency code is not overwritten

    SELECT tmp.rowid
              ,tmp.resource_assignment_id
              ,tmp.txn_currency_code
              ,tmp.start_date
              ,tmp.end_date
              ,tmp.period_name
              ,decode(cache.Budget_version_type ,'ALL'
            , decode(cache.txn_curr_code_override,NULL
                ,decode(NVL(cache.mfc_cost_change_flag,'N'),'Y'
                ,cache.cost_rate_override,NVL(cache.cost_rate_override,tmp.rw_cost_rate_override))
                    ,cache.cost_rate_override)
                        ,'COST',decode(cache.txn_curr_code_override,NULL
                            ,decode(NVL(cache.mfc_cost_change_flag,'N'),'Y'
                                 ,cache.cost_rate_override,NVL(cache.cost_rate_override,tmp.rw_cost_rate_override))
                                      ,cache.cost_rate_override)
                 ,tmp.rw_cost_rate_override) cost_rate_override
              ,decode(cache.Budget_version_type ,'ALL', decode(cache.txn_curr_code_override,NULL
                       ,decode(NVL(cache.mfc_cost_change_flag,'N'),'Y'
               ,cache.burden_cost_rate_override,NVL(cache.burden_cost_rate_override,tmp.burden_cost_rate_override))
                    ,cache.burden_cost_rate_override)
                       ,'COST',decode(cache.txn_curr_code_override,NULL
                           ,decode(NVL(cache.mfc_cost_change_flag,'N'),'Y'
                               ,cache.burden_cost_rate_override,NVL(cache.burden_cost_rate_override,tmp.burden_cost_rate_override))
                                  ,cache.burden_cost_rate_override)
            ,tmp.burden_cost_rate_override) burden_rate_override
              ,decode(cache.budget_version_type ,'ALL',decode(cache.txn_curr_code_override,NULL
                        ,decode(NVL(cache.mfc_cost_change_flag,'N'),'Y'
                ,cache.bill_rate_override,NVL(cache.bill_rate_override,tmp.bill_rate_override))
                    ,cache.bill_rate_override)
                        ,'REVENUE',decode(cache.txn_curr_code_override,NULL
                           ,decode(NVL(cache.mfc_cost_change_flag,'N'),'Y'
                              ,cache.bill_rate_override,NVL(cache.bill_rate_override,tmp.bill_rate_override))
                                  ,cache.bill_rate_override)
                             ,tmp.bill_rate_override) bill_rate_override
              ,decode(cache.txn_currency_code,tmp.txn_currency_code,cache.PROJECT_COST_RATE_TYPE
                ,tmp.PROJECT_COST_RATE_TYPE) PROJECT_COST_RATE_TYPE
              ,decode(cache.txn_currency_code,tmp.txn_currency_code
                ,cache.PROJECT_COST_EXCHANGE_RATE,tmp.PROJECT_COST_EXCHANGE_RATE) PROJECT_COST_EXCHANGE_RATE
              ,decode(cache.txn_currency_code,tmp.txn_currency_code
                ,cache.PROJECT_COST_RATE_DATE_TYPE,tmp.PROJECT_COST_RATE_DATE_TYPE) PROJECT_COST_RATE_DATE_TYPE
              ,decode(cache.txn_currency_code,tmp.txn_currency_code
                ,cache.PROJECT_COST_RATE_DATE,tmp.PROJECT_COST_RATE_DATE) PROJECT_COST_RATE_DATE
              ,decode(cache.txn_currency_code,tmp.txn_currency_code
                ,cache.PROJECT_REV_RATE_TYPE,tmp.PROJECT_REV_RATE_TYPE) PROJECT_REV_RATE_TYPE
              ,decode(cache.txn_currency_code,tmp.txn_currency_code
                ,cache.PROJECT_REV_EXCHANGE_RATE,tmp.PROJECT_REV_EXCHANGE_RATE) PROJECT_REV_EXCHANGE_RATE
              ,decode(cache.txn_currency_code,tmp.txn_currency_code
                ,cache.PROJECT_REV_RATE_DATE_TYPE,tmp.PROJECT_REV_RATE_DATE_TYPE) PROJECT_REV_RATE_DATE_TYPE
              ,decode(cache.txn_currency_code,tmp.txn_currency_code
                ,cache.PROJECT_REV_RATE_DATE,tmp.PROJECT_REV_RATE_DATE) PROJECT_REV_RATE_DATE
              ,decode(cache.txn_currency_code,tmp.txn_currency_code
                ,cache.PROJFUNC_COST_RATE_TYPE,tmp.PROJFUNC_COST_RATE_TYPE) PROJFUNC_COST_RATE_TYPE
              ,decode(cache.txn_currency_code,tmp.txn_currency_code
                ,cache.PROJFUNC_COST_EXCHANGE_RATE,tmp.PROJFUNC_COST_EXCHANGE_RATE) PROJFUNC_COST_EXCHANGE_RATE
              ,decode(cache.txn_currency_code,tmp.txn_currency_code
                ,cache.PROJFUNC_COST_RATE_DATE_TYPE,tmp.PROJFUNC_COST_RATE_DATE_TYPE) PROJFUNC_COST_RATE_DATE_TYPE
              ,decode(cache.txn_currency_code,tmp.txn_currency_code
                ,cache.PROJFUNC_COST_RATE_DATE,tmp.PROJFUNC_COST_RATE_DATE) PROJFUNC_COST_RATE_DATE
              ,decode(cache.txn_currency_code,tmp.txn_currency_code
                ,cache.PROJFUNC_REV_RATE_TYPE,tmp.PROJFUNC_REV_RATE_TYPE) PROJFUNC_REV_RATE_TYPE
              ,decode(cache.txn_currency_code,tmp.txn_currency_code
                ,cache.PROJFUNC_REV_EXCHANGE_RATE,tmp.PROJFUNC_REV_EXCHANGE_RATE) PROJFUNC_REV_EXCHANGE_RATE
              ,decode(cache.txn_currency_code,tmp.txn_currency_code
                ,cache.PROJFUNC_REV_RATE_DATE_TYPE,tmp.PROJFUNC_REV_RATE_DATE_TYPE) PROJFUNC_REV_RATE_DATE_TYPE
              ,decode(cache.txn_currency_code,tmp.txn_currency_code
                ,cache.PROJFUNC_REV_RATE_DATE,tmp.PROJFUNC_REV_RATE_DATE) PROJFUNC_REV_RATE_DATE
              */
                SELECT tmp.rowid
              ,tmp.resource_assignment_id
              ,tmp.txn_currency_code
              ,tmp.start_date
              ,tmp.end_date
              ,tmp.period_name
              ,DECODE(cache.txn_curr_code_override,NULL,
               decode(cache.Budget_version_type ,'ALL'
                ,decode(cache.txn_curr_code_override,NULL
                ,decode(NVL(cache.mfc_cost_change_flag,'N'),'Y'
                ,cache.cost_rate_override,NVL(cache.cost_rate_override,tmp.rw_cost_rate_override))
                    ,cache.cost_rate_override)
                        ,'COST',decode(cache.txn_curr_code_override,NULL
                            ,decode(NVL(cache.mfc_cost_change_flag,'N'),'Y'
                                 ,cache.cost_rate_override,NVL(cache.cost_rate_override,tmp.rw_cost_rate_override))
                                      ,cache.cost_rate_override)
                 ,tmp.rw_cost_rate_override),NULL) cost_rate_override
             ,DECODE(cache.txn_curr_code_override,NULL,
               decode(cache.Budget_version_type ,'ALL', decode(cache.txn_curr_code_override,NULL
                       ,decode(NVL(cache.mfc_cost_change_flag,'N'),'Y'
               ,cache.burden_cost_rate_override,NVL(cache.burden_cost_rate_override,tmp.burden_cost_rate_override))
                    ,cache.burden_cost_rate_override)
                       ,'COST',decode(cache.txn_curr_code_override,NULL
                           ,decode(NVL(cache.mfc_cost_change_flag,'N'),'Y'
                               ,cache.burden_cost_rate_override,NVL(cache.burden_cost_rate_override,tmp.burden_cost_rate_override))
                                  ,cache.burden_cost_rate_override)
            ,tmp.burden_cost_rate_override),NULL) burden_rate_override
            ,DECODE(cache.txn_curr_code_override,NULL,
             decode(cache.budget_version_type ,'ALL',decode(cache.txn_curr_code_override,NULL
                        ,decode(NVL(cache.mfc_cost_change_flag,'N'),'Y'
                ,cache.bill_rate_override,NVL(cache.bill_rate_override,tmp.bill_rate_override))
                    ,cache.bill_rate_override)
                        ,'REVENUE',decode(cache.txn_curr_code_override,NULL
                           ,decode(NVL(cache.mfc_cost_change_flag,'N'),'Y'
                              ,cache.bill_rate_override,NVL(cache.bill_rate_override,tmp.bill_rate_override))
                                  ,cache.bill_rate_override)
                             ,tmp.bill_rate_override),NULL) bill_rate_override
               --Bug 4224464. Changed the decode below to handle the G_MISS_XXX values for curreny conversion attributes.
            ,DECODE(cache.txn_curr_code_override,
                                         NULL,decode(cache.txn_currency_code,
                                                        tmp.txn_currency_code,decode(cache.PROJECT_COST_RATE_TYPE,
                                                                                        NULL,tmp.PROJECT_COST_RATE_TYPE,
                                                                                        FND_API.G_MISS_CHAR, NULL,
                                                                                        cache.PROJECT_COST_RATE_TYPE),
                                                        tmp.PROJECT_COST_RATE_TYPE),
                                         NULL) PROJECT_COST_RATE_TYPE
            ,DECODE(cache.txn_curr_code_override,
                                         NULL,decode(cache.txn_currency_code,
                                                        tmp.txn_currency_code,decode(cache.PROJECT_COST_EXCHANGE_RATE,
                                                                                        NULL,tmp.PROJECT_COST_EXCHANGE_RATE,
                                                                                        FND_API.G_MISS_NUM, NULL,
                                                                                        cache.PROJECT_COST_EXCHANGE_RATE),
                                                        tmp.PROJECT_COST_EXCHANGE_RATE),
                                         NULL) PROJECT_COST_EXCHANGE_RATE
            ,DECODE(cache.txn_curr_code_override,
                                         NULL,decode(cache.txn_currency_code,
                                                        tmp.txn_currency_code,decode(cache.PROJECT_COST_RATE_DATE_TYPE,
                                                                                        NULL,tmp.PROJECT_COST_RATE_DATE_TYPE,
                                                                                        FND_API.G_MISS_CHAR, NULL,
                                                                                        cache.PROJECT_COST_RATE_DATE_TYPE),
                                                        tmp.PROJECT_COST_RATE_DATE_TYPE),
                                         NULL) PROJECT_COST_RATE_DATE_TYPE
            ,DECODE(cache.txn_curr_code_override,
                                         NULL,decode(cache.txn_currency_code,
                                                        tmp.txn_currency_code,decode(cache.PROJECT_COST_RATE_DATE,
                                                                                        NULL,tmp.PROJECT_COST_RATE_DATE,
                                                                                        FND_API.G_MISS_DATE, NULL,
                                                                                        cache.PROJECT_COST_RATE_DATE),
                                                        tmp.PROJECT_COST_RATE_DATE),
                                         NULL) PROJECT_COST_RATE_DATE
            ,DECODE(cache.txn_curr_code_override,
                                         NULL,decode(cache.txn_currency_code,
                                                        tmp.txn_currency_code,decode(cache.PROJECT_REV_RATE_TYPE,
                                                                                        NULL,tmp.PROJECT_REV_RATE_TYPE,
                                                                                        FND_API.G_MISS_CHAR, NULL,
                                                                                        cache.PROJECT_REV_RATE_TYPE),
                                                        tmp.PROJECT_REV_RATE_TYPE),
                                         NULL) PROJECT_REV_RATE_TYPE
            ,DECODE(cache.txn_curr_code_override,
                                         NULL,decode(cache.txn_currency_code,
                                                        tmp.txn_currency_code,decode(cache.PROJECT_REV_EXCHANGE_RATE,
                                                                                        NULL,tmp.PROJECT_REV_EXCHANGE_RATE,
                                                                                        FND_API.G_MISS_NUM, NULL,
                                                                                        cache.PROJECT_REV_EXCHANGE_RATE),
                                                        tmp.PROJECT_REV_EXCHANGE_RATE),
                                         NULL) PROJECT_REV_EXCHANGE_RATE
            ,DECODE(cache.txn_curr_code_override,
                                         NULL,decode(cache.txn_currency_code,
                                                        tmp.txn_currency_code,decode(cache.PROJECT_REV_RATE_DATE_TYPE,
                                                                                        NULL,tmp.PROJECT_REV_RATE_DATE_TYPE,
                                                                                        FND_API.G_MISS_CHAR, NULL,
                                                                                        cache.PROJECT_REV_RATE_DATE_TYPE),
                                                        tmp.PROJECT_REV_RATE_DATE_TYPE),
                                         NULL) PROJECT_REV_RATE_DATE_TYPE
            ,DECODE(cache.txn_curr_code_override,
                                         NULL,decode(cache.txn_currency_code,
                                                        tmp.txn_currency_code,decode(cache.PROJECT_REV_RATE_DATE,
                                                                                        NULL,tmp.PROJECT_REV_RATE_DATE,
                                                                                        FND_API.G_MISS_DATE, NULL,
                                                                                        cache.PROJECT_REV_RATE_DATE),
                                                        tmp.PROJECT_REV_RATE_DATE),
                                         NULL) PROJECT_REV_RATE_DATE
            ,DECODE(cache.txn_curr_code_override,
                                         NULL,decode(cache.txn_currency_code,
                                                        tmp.txn_currency_code,decode(cache.PROJFUNC_COST_RATE_TYPE,
                                                                                        NULL,tmp.PROJFUNC_COST_RATE_TYPE,
                                                                                        FND_API.G_MISS_CHAR, NULL,
                                                                                        cache.PROJFUNC_COST_RATE_TYPE),
                                                        tmp.PROJFUNC_COST_RATE_TYPE),
                                         NULL) PROJFUNC_COST_RATE_TYPE
            ,DECODE(cache.txn_curr_code_override,
                                         NULL,decode(cache.txn_currency_code,
                                                        tmp.txn_currency_code,decode(cache.PROJFUNC_COST_EXCHANGE_RATE,
                                                                                        NULL,tmp.PROJFUNC_COST_EXCHANGE_RATE,
                                                                                        FND_API.G_MISS_NUM, NULL,
                                                                                        cache.PROJFUNC_COST_EXCHANGE_RATE),
                                                        tmp.PROJFUNC_COST_EXCHANGE_RATE),
                                         NULL) PROJFUNC_COST_EXCHANGE_RATE
            ,DECODE(cache.txn_curr_code_override,
                                         NULL,decode(cache.txn_currency_code,
                                                        tmp.txn_currency_code,decode(cache.PROJFUNC_COST_RATE_DATE_TYPE,
                                                                                        NULL,tmp.PROJFUNC_COST_RATE_DATE_TYPE,
                                                                                        FND_API.G_MISS_CHAR, NULL,
                                                                                        cache.PROJFUNC_COST_RATE_DATE_TYPE),
                                                        tmp.PROJFUNC_COST_RATE_DATE_TYPE),
                                         NULL) PROJFUNC_COST_RATE_DATE_TYPE
            ,DECODE(cache.txn_curr_code_override,
                                         NULL,decode(cache.txn_currency_code,
                                                        tmp.txn_currency_code,decode(cache.PROJFUNC_COST_RATE_DATE,
                                                                                        NULL,tmp.PROJFUNC_COST_RATE_DATE,
                                                                                        FND_API.G_MISS_DATE, NULL,
                                                                                        cache.PROJFUNC_COST_RATE_DATE),
                                                        tmp.PROJFUNC_COST_RATE_DATE),
                                         NULL) PROJFUNC_COST_RATE_DATE
            ,DECODE(cache.txn_curr_code_override,
                                         NULL,decode(cache.txn_currency_code,
                                                        tmp.txn_currency_code,decode(cache.PROJFUNC_REV_RATE_TYPE,
                                                                                        NULL,tmp.PROJFUNC_REV_RATE_TYPE,
                                                                                        FND_API.G_MISS_CHAR, NULL,
                                                                                        cache.PROJFUNC_REV_RATE_TYPE),
                                                        tmp.PROJFUNC_REV_RATE_TYPE),
                                         NULL) PROJFUNC_REV_RATE_TYPE
            ,DECODE(cache.txn_curr_code_override,
                                         NULL,decode(cache.txn_currency_code,
                                                        tmp.txn_currency_code,decode(cache.PROJFUNC_REV_EXCHANGE_RATE,
                                                                                        NULL,tmp.PROJFUNC_REV_EXCHANGE_RATE,
                                                                                        FND_API.G_MISS_NUM, NULL,
                                                                                        cache.PROJFUNC_REV_EXCHANGE_RATE),
                                                        tmp.PROJFUNC_REV_EXCHANGE_RATE),
                                         NULL) PROJFUNC_REV_EXCHANGE_RATE
            ,DECODE(cache.txn_curr_code_override,
                                         NULL,decode(cache.txn_currency_code,
                                                        tmp.txn_currency_code,decode(cache.PROJFUNC_REV_RATE_DATE_TYPE,
                                                                                        NULL,tmp.PROJFUNC_REV_RATE_DATE_TYPE,
                                                                                        FND_API.G_MISS_CHAR, NULL,
                                                                                        cache.PROJFUNC_REV_RATE_DATE_TYPE),
                                                        tmp.PROJFUNC_REV_RATE_DATE_TYPE),
                                         NULL) PROJFUNC_REV_RATE_DATE_TYPE
            ,DECODE(cache.txn_curr_code_override,
                                         NULL,decode(cache.txn_currency_code,
                                                        tmp.txn_currency_code,decode(cache.PROJFUNC_REV_RATE_DATE,
                                                                                        NULL,tmp.PROJFUNC_REV_RATE_DATE,
                                                                                        FND_API.G_MISS_DATE, NULL,
                                                                                        cache.PROJFUNC_REV_RATE_DATE),
                                                        tmp.PROJFUNC_REV_RATE_DATE),
                                         NULL) PROJFUNC_REV_RATE_DATE
        FROM  pa_fp_rollup_tmp tmp
              ,pa_fp_spread_calc_tmp1 cache
        WHERE  tmp.budget_version_id = p_budget_verson_id
        AND    tmp.budget_version_id = cache.budget_version_id
        AND    tmp.resource_assignment_id = cache.resource_assignment_id
        AND    tmp.txn_currency_code = cache.txn_currency_code
        AND    tmp.start_date = cache.start_date
        ;
Line: 7591

        SELECT tmp.rowid
              /*Bug 4224464. Changed the decode below for dff's, change reason code,PM_PRODUCT_CODE,PM_BUDGET_LINE_REFERENCE
                and description columns to handle the the G_MISS_XXX values for these columns*/
         , decode(cache.CHANGE_REASON_CODE   ,null, bl.change_reason_code, FND_API.G_MISS_CHAR, null, cache.CHANGE_REASON_CODE)
         , decode(cache.DESCRIPTION          ,null, bl.DESCRIPTION, FND_API.G_MISS_CHAR, null, cache.DESCRIPTION)
         , decode(cache.ATTRIBUTE_CATEGORY   ,null, bl.ATTRIBUTE_CATEGORY, FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE_CATEGORY)
         , decode(cache.ATTRIBUTE1           ,null, bl.ATTRIBUTE1,  FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE1)
         , decode(cache.ATTRIBUTE2           ,null, bl.ATTRIBUTE2,  FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE2)
         , decode(cache.ATTRIBUTE3           ,null, bl.ATTRIBUTE3,  FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE3)
         , decode(cache.ATTRIBUTE4           ,null, bl.ATTRIBUTE4,  FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE4)
         , decode(cache.ATTRIBUTE5           ,null, bl.ATTRIBUTE5,  FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE5)
         , decode(cache.ATTRIBUTE6           ,null, bl.ATTRIBUTE6,  FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE6)
         , decode(cache.ATTRIBUTE7           ,null, bl.ATTRIBUTE7,  FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE7)
         , decode(cache.ATTRIBUTE8           ,null, bl.ATTRIBUTE8,  FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE8)
         , decode(cache.ATTRIBUTE9           ,null, bl.ATTRIBUTE9,  FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE9)
         , decode(cache.ATTRIBUTE10          ,null, bl.ATTRIBUTE10, FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE10)
         , decode(cache.ATTRIBUTE11          ,null, bl.ATTRIBUTE11, FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE11)
         , decode(cache.ATTRIBUTE12          ,null, bl.ATTRIBUTE12, FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE12)
         , decode(cache.ATTRIBUTE13          ,null, bl.ATTRIBUTE13, FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE13)
         , decode(cache.ATTRIBUTE14          ,null, bl.ATTRIBUTE14, FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE14)
         , decode(cache.ATTRIBUTE15          ,null, bl.ATTRIBUTE15, FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE15)
         , cache.RAW_COST_SOURCE
         , cache.BURDENED_COST_SOURCE
         , cache.QUANTITY_SOURCE
         , cache.REVENUE_SOURCE
         , decode(cache.PM_PRODUCT_CODE  ,null,bl.PM_PRODUCT_CODE, FND_API.G_MISS_CHAR, null, cache.PM_PRODUCT_CODE)
         , decode(cache.PM_BUDGET_LINE_REFERENCE ,null,bl.PM_BUDGET_LINE_REFERENCE, FND_API.G_MISS_CHAR, null, cache.PM_BUDGET_LINE_REFERENCE)
         , cache.CODE_COMBINATION_ID
         , cache.CCID_GEN_STATUS_CODE
         , cache.CCID_GEN_REJ_MESSAGE
         , cache.BORROWED_REVENUE
         , cache.TP_REVENUE_IN
         , cache.TP_REVENUE_OUT
         , cache.REVENUE_ADJ
         , cache.LENT_RESOURCE_COST
         , cache.TP_COST_IN
         , cache.TP_COST_OUT
         , cache.COST_ADJ
         , cache.UNASSIGNED_TIME_COST
         , cache.UTILIZATION_PERCENT
         , cache.UTILIZATION_HOURS
         , cache.UTILIZATION_ADJ
         , cache.CAPACITY
         , cache.HEAD_COUNT
         , cache.HEAD_COUNT_ADJ
         , cache.BUCKETING_PERIOD_CODE
         , cache.TXN_DISCOUNT_PERCENTAGE
         , cache.TRANSFER_PRICE_RATE
         , cache.BL_CREATED_BY
         , cache.BL_CREATION_DATE
        FROM  pa_fp_rollup_tmp tmp
              ,pa_fp_spread_calc_tmp1 cache
              ,pa_budget_lines bl
        WHERE  tmp.budget_version_id = p_budget_verson_id
    AND    tmp.budget_version_id = cache.budget_version_id
        AND    tmp.resource_assignment_id = cache.resource_assignment_id
    AND    tmp.txn_currency_code = cache.txn_currency_code
    AND    tmp.start_date = cache.start_date
    and    cache.budget_version_id = bl.budget_version_id(+)    --Bug 4224464. Added the join with pa_budget_lines
        AND    cache.resource_assignment_id = bl.resource_assignment_id(+)
    AND    cache.txn_currency_code = bl.txn_currency_code(+)
    AND    cache.start_date = bl.start_date(+);
Line: 7731

                l_rowid_tab.delete;
Line: 7732

                l_resource_assignment_id_tab.delete;
Line: 7733

                l_txn_currency_code_tab.delete;
Line: 7734

                l_start_date_tab.delete;
Line: 7735

                l_end_date_tab.delete;
Line: 7736

                l_period_name_tab.delete;
Line: 7737

                l_cost_rate_override_tab.delete;
Line: 7738

                l_burden_rate_override_tab.delete;
Line: 7739

                l_bill_rate_override_tab.delete;
Line: 7740

                l_PROJECT_COST_RATE_TYPE_tab.delete;
Line: 7741

                l_PROJECT_COST_EXG_RATE_tab.delete;
Line: 7742

                l_PROJECT_COST_DATE_TYPE_tab.delete;
Line: 7743

                l_PROJECT_COST_RATE_DATE_tab.delete;
Line: 7744

                l_PROJECT_REV_RATE_TYPE_tab.delete;
Line: 7745

                l_PROJECT_REV_EXG_RATE_tab.delete;
Line: 7746

                l_PROJECT_REV_DATE_TYPE_tab.delete;
Line: 7747

                l_PROJECT_REV_RATE_DATE_tab.delete;
Line: 7748

                l_PROJFUNC_COST_RATE_TYPE_tab.delete;
Line: 7749

                l_PROJFUNC_COST_EXG_RATE_tab.delete;
Line: 7750

                l_PROJFUNC_COST_DATE_TYPE_tab.delete;
Line: 7751

                l_PROJFUNC_COST_RATE_DATE_tab.delete;
Line: 7752

                l_PROJFUNC_REV_RATE_TYPE_tab.delete;
Line: 7753

                l_PROJFUNC_REV_EXG_RATE_tab.delete;
Line: 7754

                l_PROJFUNC_REV_DATE_TYPE_tab.delete;
Line: 7755

                l_PROJFUNC_REV_RATE_DATE_tab.delete;
Line: 7756

        l_CHANGE_REASON_CODE_tab.delete;
Line: 7757

        l_DESCRIPTION_tab.delete;
Line: 7758

        l_ATTRIBUTE_CATEGORY_tab.delete;
Line: 7759

        l_ATTRIBUTE1_tab.delete;
Line: 7760

        l_ATTRIBUTE2_tab.delete;
Line: 7761

        l_ATTRIBUTE3_tab.delete;
Line: 7762

        l_ATTRIBUTE4_tab.delete;
Line: 7763

        l_ATTRIBUTE5_tab.delete;
Line: 7764

        l_ATTRIBUTE6_tab.delete;
Line: 7765

        l_ATTRIBUTE7_tab.delete;
Line: 7766

        l_ATTRIBUTE8_tab.delete;
Line: 7767

        l_ATTRIBUTE9_tab.delete;
Line: 7768

        l_ATTRIBUTE10_tab.delete;
Line: 7769

        l_ATTRIBUTE11_tab.delete;
Line: 7770

        l_ATTRIBUTE12_tab.delete;
Line: 7771

        l_ATTRIBUTE13_tab.delete;
Line: 7772

        l_ATTRIBUTE14_tab.delete;
Line: 7773

        l_ATTRIBUTE15_tab.delete;
Line: 7774

        l_RAW_COST_SOURCE_tab.delete;
Line: 7775

        l_BURDENED_COST_SOURCE_tab.delete;
Line: 7776

        l_QUANTITY_SOURCE_tab.delete;
Line: 7777

        l_REVENUE_SOURCE_tab.delete;
Line: 7778

        l_PM_PRODUCT_CODE_tab.delete;
Line: 7779

        l_PM_BUDGET_LINE_REFERENCE_tab.delete;
Line: 7780

        l_CODE_COMBINATION_ID_tab.delete;
Line: 7781

        l_CCID_GEN_STATUS_CODE_tab.delete;
Line: 7782

        l_CCID_GEN_REJ_MESSAGE_tab.delete;
Line: 7783

        l_BORROWED_REVENUE_tab.delete;
Line: 7784

        l_TP_REVENUE_IN_tab.delete;
Line: 7785

        l_TP_REVENUE_OUT_tab.delete;
Line: 7786

        l_REVENUE_ADJ_tab.delete;
Line: 7787

        l_LENT_RESOURCE_COST_tab.delete;
Line: 7788

        l_TP_COST_IN_tab.delete;
Line: 7789

        l_TP_COST_OUT_tab.delete;
Line: 7790

        l_COST_ADJ_tab.delete;
Line: 7791

        l_UNASSIGNED_TIME_COST_tab.delete;
Line: 7792

        l_UTILIZATION_PERCENT_tab.delete;
Line: 7793

        l_UTILIZATION_HOURS_tab.delete;
Line: 7794

        l_UTILIZATION_ADJ_tab.delete;
Line: 7795

        l_CAPACITY_tab.delete;
Line: 7796

        l_HEAD_COUNT_tab.delete;
Line: 7797

        l_HEAD_COUNT_ADJ_tab.delete;
Line: 7798

        l_BUCKETING_PERIOD_CODE_tab.delete;
Line: 7799

        l_TXN_DISCOUNT_PERCENTAGE_tab.delete;
Line: 7800

        l_TRANSFER_PRICE_RATE_tab.delete;
Line: 7801

        l_BL_CREATED_BY_tab.delete;
Line: 7802

        l_BL_CREATION_DATE_tab.delete;
Line: 7848

                        UPDATE pa_fp_rollup_tmp tmp
                        SET tmp.rw_cost_rate_override = l_cost_rate_override_tab(i)
                           ,tmp.burden_cost_rate_override = l_burden_rate_override_tab(i)
                           ,tmp.bill_rate_override = l_bill_rate_override_tab(i)
                           ,tmp.PROJECT_COST_RATE_TYPE = l_PROJECT_COST_RATE_TYPE_tab(i)
                           ,tmp.PROJECT_COST_EXCHANGE_RATE = l_PROJECT_COST_EXG_RATE_tab(i)
                           ,tmp.PROJECT_COST_RATE_DATE_TYPE = l_PROJECT_COST_DATE_TYPE_tab(i)
                           ,tmp.PROJECT_COST_RATE_DATE   = l_PROJECT_COST_RATE_DATE_tab(i)
                           ,tmp.PROJECT_REV_RATE_TYPE    = l_PROJECT_REV_RATE_TYPE_tab(i)
                           ,tmp.PROJECT_REV_EXCHANGE_RATE  = l_PROJECT_REV_EXG_RATE_tab(i)
                           ,tmp.PROJECT_REV_RATE_DATE_TYPE = l_PROJECT_REV_DATE_TYPE_tab(i)
                           ,tmp.PROJECT_REV_RATE_DATE   = l_PROJECT_REV_RATE_DATE_tab(i)
                           ,tmp.PROJFUNC_COST_RATE_TYPE   = l_PROJFUNC_COST_RATE_TYPE_tab(i)
                           ,tmp.PROJFUNC_COST_EXCHANGE_RATE  = l_PROJFUNC_COST_EXG_RATE_tab(i)
                           ,tmp.PROJFUNC_COST_RATE_DATE_TYPE  = l_PROJFUNC_COST_DATE_TYPE_tab(i)
                           ,tmp.PROJFUNC_COST_RATE_DATE     = l_PROJFUNC_COST_RATE_DATE_tab(i)
                           ,tmp.PROJFUNC_REV_RATE_TYPE    = l_PROJFUNC_REV_RATE_TYPE_tab(i)
                           ,tmp.PROJFUNC_REV_EXCHANGE_RATE  = l_PROJFUNC_REV_EXG_RATE_tab(i)
                           ,tmp.PROJFUNC_REV_RATE_DATE_TYPE   = l_PROJFUNC_REV_DATE_TYPE_tab(i)
                           ,tmp.PROJFUNC_REV_RATE_DATE = l_PROJFUNC_REV_RATE_DATE_tab(i)
            WHERE tmp.rowid = l_rowid_tab(i);
Line: 7928

                        UPDATE pa_fp_rollup_tmp tmp
                        SET tmp.CHANGE_REASON_CODE = l_CHANGE_REASON_CODE_tab(i)
               ,tmp.DESCRIPTION = l_DESCRIPTION_tab(i)
               ,tmp.ATTRIBUTE_CATEGORY = l_ATTRIBUTE_CATEGORY_tab(i)
               ,tmp.ATTRIBUTE1 = l_ATTRIBUTE1_tab(i)
               ,tmp.ATTRIBUTE2 = l_ATTRIBUTE2_tab(i)
               ,tmp.ATTRIBUTE3 = l_ATTRIBUTE3_tab(i)
               ,tmp.ATTRIBUTE4 = l_ATTRIBUTE4_tab(i)
               ,tmp.ATTRIBUTE5 = l_ATTRIBUTE5_tab(i)
               ,tmp.ATTRIBUTE6 = l_ATTRIBUTE6_tab(i)
               ,tmp.ATTRIBUTE7 = l_ATTRIBUTE7_tab(i)
               ,tmp.ATTRIBUTE8 = l_ATTRIBUTE8_tab(i)
               ,tmp.ATTRIBUTE9 = l_ATTRIBUTE9_tab(i)
               ,tmp.ATTRIBUTE10 = l_ATTRIBUTE10_tab(i)
               ,tmp.ATTRIBUTE11 = l_ATTRIBUTE11_tab(i)
               ,tmp.ATTRIBUTE12 = l_ATTRIBUTE12_tab(i)
               ,tmp.ATTRIBUTE13 = l_ATTRIBUTE13_tab(i)
               ,tmp.ATTRIBUTE14 = l_ATTRIBUTE14_tab(i)
               ,tmp.ATTRIBUTE15 = l_ATTRIBUTE15_tab(i)
               ,tmp.RAW_COST_SOURCE = nvl(l_RAW_COST_SOURCE_tab(i),tmp.RAW_COST_SOURCE)
               ,tmp.BURDENED_COST_SOURCE = nvl(l_BURDENED_COST_SOURCE_tab(i),tmp.BURDENED_COST_SOURCE)
               ,tmp.QUANTITY_SOURCE = nvl(l_QUANTITY_SOURCE_tab(i),tmp.QUANTITY_SOURCE)
               ,tmp.REVENUE_SOURCE = nvl(l_REVENUE_SOURCE_tab(i),tmp.REVENUE_SOURCE)
               ,tmp.PM_PRODUCT_CODE = l_PM_PRODUCT_CODE_tab(i)
               ,tmp.PM_BUDGET_LINE_REFERENCE = l_PM_BUDGET_LINE_REFERENCE_tab(i)
               ,tmp.CODE_COMBINATION_ID = nvl(l_CODE_COMBINATION_ID_tab(i),tmp.CODE_COMBINATION_ID)
               ,tmp.CCID_GEN_STATUS_CODE = nvl(l_CCID_GEN_STATUS_CODE_tab(i),tmp.CCID_GEN_STATUS_CODE)
               ,tmp.CCID_GEN_REJ_MESSAGE = nvl(l_CCID_GEN_REJ_MESSAGE_tab(i),tmp.CCID_GEN_REJ_MESSAGE)
               ,tmp.BORROWED_REVENUE = nvl(l_BORROWED_REVENUE_tab(i),tmp.BORROWED_REVENUE)
               ,tmp.TP_REVENUE_IN = nvl(l_TP_REVENUE_IN_tab(i),tmp.TP_REVENUE_IN)
               ,tmp.TP_REVENUE_OUT = nvl(l_TP_REVENUE_OUT_tab(i),tmp.TP_REVENUE_OUT)
               ,tmp.REVENUE_ADJ  = nvl(l_REVENUE_ADJ_tab(i),tmp.REVENUE_ADJ)
               ,tmp.LENT_RESOURCE_COST = nvl(l_LENT_RESOURCE_COST_tab(i),tmp.LENT_RESOURCE_COST)
               ,tmp.TP_COST_IN   = nvl(l_TP_COST_IN_tab(i),tmp.TP_COST_IN)
               ,tmp.TP_COST_OUT = nvl(l_TP_COST_OUT_tab(i),tmp.TP_COST_OUT)
               ,tmp.COST_ADJ = nvl(l_COST_ADJ_tab(i),tmp.COST_ADJ)
               ,tmp.UNASSIGNED_TIME_COST = nvl(l_UNASSIGNED_TIME_COST_tab(i),tmp.UNASSIGNED_TIME_COST)
               ,tmp.UTILIZATION_PERCENT = nvl(l_UTILIZATION_PERCENT_tab(i),tmp.UTILIZATION_PERCENT)
               ,tmp.UTILIZATION_HOURS = nvl(l_UTILIZATION_HOURS_tab(i),tmp.UTILIZATION_HOURS)
               ,tmp.UTILIZATION_ADJ = nvl(l_UTILIZATION_ADJ_tab(i),tmp.UTILIZATION_ADJ)
               ,tmp.CAPACITY = nvl(l_CAPACITY_tab(i),tmp.CAPACITY)
               ,tmp.HEAD_COUNT = nvl(l_HEAD_COUNT_tab(i),tmp.HEAD_COUNT)
               ,tmp.HEAD_COUNT_ADJ =nvl(l_HEAD_COUNT_ADJ_tab(i),tmp.HEAD_COUNT_ADJ)
               ,tmp.BUCKETING_PERIOD_CODE = nvl(l_BUCKETING_PERIOD_CODE_tab(i),tmp.BUCKETING_PERIOD_CODE)
               ,tmp.TXN_DISCOUNT_PERCENTAGE = nvl(l_TXN_DISCOUNT_PERCENTAGE_tab(i),tmp.TXN_DISCOUNT_PERCENTAGE)
               ,tmp.TRANSFER_PRICE_RATE = nvl(l_TRANSFER_PRICE_RATE_tab(i),tmp.TRANSFER_PRICE_RATE)
               ,tmp.BL_CREATED_BY   = nvl(l_BL_CREATED_BY_tab(i),tmp.BL_CREATED_BY)
               ,tmp.BL_CREATION_DATE   = NVL(l_BL_CREATION_DATE_tab(i),tmp.BL_CREATION_DATE)
                        WHERE tmp.rowid = l_rowid_tab(i);
Line: 8003

 * delete one of the record and proceed, instead of throwing an error
 * Logic used: Instead of looping through the plsql table in amg mode, the number of rows may be 1000
 * then loop through the plsql table will not scale the performance.
 * so use the tmp table, First dump all the records into tmp table then chk duplicate rows exists, then
 * delete the record from the tmp table finally assign the values from tmp to plsql tables.so that
 * the plsql index need not be manintained.
 */
PROCEDURE Validate_duplicate_records (
                p_budget_version_id              IN  Number
                ,p_source_context                IN  VARCHAR2
        ,p_calling_module                IN  VARCHAR2
                ,x_return_status                 OUT NOCOPY VARCHAR2
        ) IS

    l_duplicate_record_exists  varchar2(10) := 'N';
Line: 8020

        SELECT tmp.resource_assignment_id
                ,tmp.txn_currency_code
            ,tmp.start_date
        FROM pa_fp_spread_calc_tmp tmp
    WHERE  tmp.budget_version_id = p_budget_version_id
        GROUP BY tmp.resource_assignment_id
                ,tmp.txn_currency_code
        ,tmp.start_date
        HAVING COUNT(*) > 1 ;
Line: 8046

            DELETE FROM pa_fp_spread_calc_tmp tmp1
            WHERE tmp1.resource_assignment_id = i.resource_assignment_id
            AND  tmp1.txn_currency_code = i.txn_currency_code
            AND tmp1.rowid NOT IN  (select min(rowid) from pa_fp_spread_calc_tmp tmp2
                            where tmp1.resource_assignment_id = tmp2.resource_assignment_id
                    and   tmp1.txn_currency_code = tmp2.txn_currency_code
                    group by tmp2.resource_assignment_id,tmp2.txn_currency_code
                    having count(*) > 1
                    )
            /* added this to make sure that even if code is executed multiple times this should delete the correct combo */
            /* this code is not required if not executed twice for the same combo*/
                        AND EXISTS  (select 'Y' from pa_fp_spread_calc_tmp tmp2
                                     where tmp1.resource_assignment_id = tmp2.resource_assignment_id
                                     and   tmp1.txn_currency_code = tmp2.txn_currency_code
                                     group by tmp2.resource_assignment_id,tmp2.txn_currency_code
                                     having count(*) > 1
                                 );
Line: 8065

                        DELETE FROM pa_fp_spread_calc_tmp tmp1
                        WHERE tmp1.resource_assignment_id = i.resource_assignment_id
                        AND  tmp1.txn_currency_code = i.txn_currency_code
            AND  tmp1.start_date = i.start_date
                        AND tmp1.rowid NOT IN  (select min(tmp2.rowid) from pa_fp_spread_calc_tmp tmp2
                                where tmp1.resource_assignment_id = tmp2.resource_assignment_id
                                        and   tmp1.txn_currency_code = tmp2.txn_currency_code
                    and   tmp1.start_date = tmp2.start_date
                                        group by tmp2.resource_assignment_id,tmp2.txn_currency_code,tmp2.start_date
                                        having count(*) > 1
                                        )
                       AND EXISTS  (select 'Y' from pa_fp_spread_calc_tmp tmp2
                                    where tmp1.resource_assignment_id = tmp2.resource_assignment_id
                                    and   tmp1.txn_currency_code = tmp2.txn_currency_code
                                    and   tmp1.start_date = tmp2.start_date
                                    group by tmp2.resource_assignment_id,tmp2.txn_currency_code,tmp2.start_date
                                    having count(*) > 1
                                    );
Line: 8096

/* Bug fix: 4184159 The following API will update the budget lines in bulk. This API uses oracle 9i feature of SQL%BULKEXCEPTION
 * during bulk update fails due to dup_val_on_index exception, the process the rejected rows.
 * Earlier the api was updating the budget line inside a loop for each row. this was causing the performance bottle neck
 * This API must be called at the end of calculate API, It copies the value from rollup tmp to budget lines.
 */
PROCEDURE BLK_update_budget_lines
    (p_budget_version_id              IN  NUMBER
    ,p_calling_module                  IN VARCHAR2 DEFAULT 'UPDATE_PLAN_TRANSACTION'-- Added for Bug#5395732
    ,x_return_status                 OUT NOCOPY VARCHAR2
        ,x_msg_count                     OUT NOCOPY NUMBER
        ,x_msg_data                      OUT NOCOPY VARCHAR2) IS

    l_debug_mode        VARCHAR2(30);
Line: 8223

        SELECT /*+ INDEX(B PA_BUDGET_LINES_U2) */ r.resource_assignment_id
          ,b.start_date
      ,b.end_date
      ,b.period_name
          ,r.budget_line_id
          ,r.txn_currency_code                                  txn_currency_code
          ,case when r.quantity = 0 and r.init_quantity = 0 then null else r.quantity end  quantity
          ,DECODE(r.projfunc_raw_cost,0,NULL,r.projfunc_raw_cost)           projfunc_raw_cost
          ,DECODE(r.projfunc_burdened_cost,0,NULL,r.projfunc_burdened_cost) projfunc_burdened_cost
          ,DECODE(r.projfunc_revenue,0,NULL,r.projfunc_revenue)             projfunc_revenue
          ,r.cost_rejection_code
          ,r.revenue_rejection_code
          ,r.burden_rejection_code
          ,r.pfc_cur_conv_rejection_code
          ,r.pc_cur_conv_rejection_code
          ,r.projfunc_currency_code
          ,r.projfunc_cost_rate_type
          ,r.projfunc_cost_exchange_rate
          ,r.projfunc_cost_rate_date_type
          ,r.projfunc_cost_rate_date
          ,r.projfunc_rev_rate_type
          ,r.projfunc_rev_exchange_rate
          ,r.projfunc_rev_rate_date_type
          ,r.projfunc_rev_rate_date
          ,r.project_currency_code
          ,r.project_cost_rate_type
          ,r.project_cost_exchange_rate
          ,r.project_cost_rate_date_type
          ,r.project_cost_rate_date
          ,DECODE(r.project_raw_cost,0,NULL,r.project_raw_cost)             project_raw_cost
          ,DECODE(r.project_burdened_cost,0,NULL,r.project_burdened_cost)   project_burdened_cost
          ,r.project_rev_rate_type
          ,r.project_rev_exchange_rate
          ,r.project_rev_rate_date_type
          ,r.project_rev_rate_date
          ,DECODE(r.project_revenue,0,NULL,r.project_revenue)               project_revenue
          ,case when r.txn_raw_cost = 0 and r.txn_init_raw_cost = 0 then null else r.txn_raw_cost end txn_raw_cost
          ,case when r.txn_burdened_cost = 0 and r.txn_init_burdened_cost = 0 then null else r.txn_burdened_cost end txn_burdened_cost
          ,case when r.txn_revenue = 0 and r.init_revenue = 0 then null else  r.txn_revenue end txn_revenue
          ,DECODE(r.init_quantity,0,NULL,r.init_quantity)                   init_quantity
          ,DECODE(r.txn_init_raw_cost,0,NULL,r.txn_init_raw_cost)           txn_init_raw_cost
          ,DECODE(r.txn_init_burdened_cost,0,NULL,r.txn_init_burdened_cost) txn_init_burdened_cost
          ,DECODE(r.txn_init_revenue,0,NULL,r.txn_init_revenue)             txn_init_revenue
          ,DECODE(b.init_raw_cost,0,NULL,b.init_raw_cost)                   init_raw_cost
          ,DECODE(b.init_burdened_cost,0,NULL,b.init_burdened_cost)         init_burdened_cost
          ,DECODE(b.init_revenue,0,NULL,b.init_revenue)                     init_revenue
          ,DECODE(b.project_init_raw_cost,0,NULL,b.project_init_raw_cost)   project_init_raw_cost
          ,DECODE(b.project_init_burdened_cost,0,NULL,b.project_init_burdened_cost) project_init_burdened_cost
          ,DECODE(b.project_init_revenue,0,NULL,b.project_init_revenue)     project_init_revenue
          ,r.bill_markup_percentage
          ,DECODE(r.bill_rate,0,NULL,r.bill_rate)                           bill_rate
          ,DECODE(r.cost_rate,0,NULL,r.cost_rate)                           cost_rate
          --,DECODE(r.rw_cost_rate_override,0,NULL,r.rw_cost_rate_override)   rw_cost_rate_override
          ,DECODE(r.rw_cost_rate_override,0,0,NULL,NULL,r.rw_cost_rate_override)   rw_cost_rate_override
          ,DECODE(r.burden_cost_rate,0,NULL,r.burden_cost_rate)             burden_cost_rate
          --,DECODE(r.bill_rate_override,0,NULL,r.bill_rate_override)         bill_rate_override
          ,DECODE(r.bill_rate_override,0,0,NULL,NULL,r.bill_rate_override)         bill_rate_override
          --,DECODE(r.burden_cost_rate_override,0,NULL,r.burden_cost_rate_override)   burden_cost_rate_override
          ,DECODE(r.burden_cost_rate_override,0,0,NULL,NULL,r.burden_cost_rate_override)   burden_cost_rate_override
          ,r.cost_ind_compiled_set_id
      ,g_budget_version_type  version_type
	,r.final_txn_curr_code final_txn_currency_code
        /* bug fix:5014538: Added nvl to retain the exisiting budget line attribs */
        ,nvl(r.CHANGE_REASON_CODE,b.CHANGE_REASON_CODE)                 CHANGE_REASON_CODE
          ,nvl(r.DESCRIPTION,b.DESCRIPTION)                             DESCRIPTION
          ,nvl(r.ATTRIBUTE_CATEGORY,b.ATTRIBUTE_CATEGORY)               ATTRIBUTE_CATEGORY
          ,nvl(r.ATTRIBUTE1,b.ATTRIBUTE1)                               ATTRIBUTE1
          ,nvl(r.ATTRIBUTE2,b.ATTRIBUTE2)                               ATTRIBUTE2
          ,nvl(r.ATTRIBUTE3,b.ATTRIBUTE3)                               ATTRIBUTE3
          ,nvl(r.ATTRIBUTE4,b.ATTRIBUTE4)                               ATTRIBUTE4
          ,nvl(r.ATTRIBUTE5,b.ATTRIBUTE5)                               ATTRIBUTE5
          ,nvl(r.ATTRIBUTE6,b.ATTRIBUTE6)                               ATTRIBUTE6
          ,nvl(r.ATTRIBUTE7,b.ATTRIBUTE7)                               ATTRIBUTE7
          ,nvl(r.ATTRIBUTE8,b.ATTRIBUTE8)                               ATTRIBUTE8
          ,nvl(r.ATTRIBUTE9,b.ATTRIBUTE9)                               ATTRIBUTE9
          ,nvl(r.ATTRIBUTE10,b.ATTRIBUTE10)                             ATTRIBUTE10
          ,nvl(r.ATTRIBUTE11,b.ATTRIBUTE11)                             ATTRIBUTE11
          ,nvl(r.ATTRIBUTE12,b.ATTRIBUTE12)                             ATTRIBUTE12
          ,nvl(r.ATTRIBUTE13,b.ATTRIBUTE13)                             ATTRIBUTE13
          ,nvl(r.ATTRIBUTE14,b.ATTRIBUTE14)                             ATTRIBUTE14
          ,nvl(r.ATTRIBUTE15,b.ATTRIBUTE15)                             ATTRIBUTE15
          ,r.RAW_COST_SOURCE
          ,r.BURDENED_COST_SOURCE
          ,r.QUANTITY_SOURCE
          ,r.REVENUE_SOURCE
	  ,nvl(r.PM_PRODUCT_CODE,b.PM_PRODUCT_CODE)                     PM_PRODUCT_CODE
          ,nvl(r.PM_BUDGET_LINE_REFERENCE,b.PM_BUDGET_LINE_REFERENCE)   PM_BUDGET_LINE_REFERENCE
          ,nvl(r.CODE_COMBINATION_ID,b.CODE_COMBINATION_ID)             CODE_COMBINATION_ID
          ,nvl(r.CCID_GEN_STATUS_CODE,b.CCID_GEN_STATUS_CODE)           CCID_GEN_STATUS_CODE
          ,nvl(r.CCID_GEN_REJ_MESSAGE,b.CCID_GEN_REJ_MESSAGE)           CCID_GEN_REJ_MESSAGE
          ,nvl(r.BORROWED_REVENUE,b.BORROWED_REVENUE)                   BORROWED_REVENUE
          ,nvl(r.TP_REVENUE_IN,b.TP_REVENUE_IN)                         TP_REVENUE_IN
          ,nvl(r.TP_REVENUE_OUT,b.TP_REVENUE_OUT)                       TP_REVENUE_OUT
          ,nvl(r.REVENUE_ADJ,b.REVENUE_ADJ)                             REVENUE_ADJ
          ,nvl(r.LENT_RESOURCE_COST,b.LENT_RESOURCE_COST)               LENT_RESOURCE_COST
          ,nvl(r.TP_COST_IN,b.TP_COST_IN)                               TP_COST_IN
          ,nvl(r.TP_COST_OUT,b.TP_COST_OUT)                             TP_COST_OUT
          ,nvl(r.COST_ADJ,b.COST_ADJ)                                   COST_ADJ
          ,nvl(r.UNASSIGNED_TIME_COST,b.UNASSIGNED_TIME_COST)           UNASSIGNED_TIME_COST
          ,nvl(r.UTILIZATION_PERCENT,b.UTILIZATION_PERCENT)             UTILIZATION_PERCENT
          ,nvl(r.UTILIZATION_HOURS,b.UTILIZATION_HOURS)                 UTILIZATION_HOURS
          ,nvl(r.UTILIZATION_ADJ,b.UTILIZATION_ADJ)                     UTILIZATION_ADJ
          ,nvl(r.CAPACITY,b.CAPACITY)                                   CAPACITY
          ,nvl(r.HEAD_COUNT,b.HEAD_COUNT)                               HEAD_COUNT
          ,nvl(r.HEAD_COUNT_ADJ,b.HEAD_COUNT_ADJ)                       HEAD_COUNT_ADJ
          ,nvl(r.BUCKETING_PERIOD_CODE,b.BUCKETING_PERIOD_CODE)         BUCKETING_PERIOD_CODE
          ,nvl(r.TXN_DISCOUNT_PERCENTAGE,b.TXN_DISCOUNT_PERCENTAGE)     TXN_DISCOUNT_PERCENTAGE
          ,nvl(r.TRANSFER_PRICE_RATE,b.TRANSFER_PRICE_RATE)             TRANSFER_PRICE_RATE
          ,r.BL_CREATED_BY
          ,r.BL_CREATION_DATE
          ,NVL(ra.rate_based_flag,'N')
	FROM pa_fp_rollup_tmp r
           ,pa_budget_lines  b
           ,pa_resource_assignments ra
        WHERE r.budget_line_id = b.budget_line_id
        AND  b.budget_version_id = p_budget_version_id
        AND  b.budget_version_id = r.budget_version_id  --Bug 7520706
        AND  ra.budget_version_id = r.budget_version_id  --Bug 7520706
        AND r.resource_assignment_id = ra.resource_assignment_id
        ORDER by r.resource_assignment_id,r.start_date,decode(b.txn_currency_code,r.txn_currency_code,0,1)
    ;
Line: 8346

    /* This cursor is used only for before and after updated the budget line values */
    CURSOR cur_blAmts IS
    SELECT bl.budget_line_id
         ,bl.txn_raw_cost
         ,bl.txn_burdened_cost
         ,bl.txn_revenue
         ,bl.project_raw_cost
         ,bl.project_burdened_cost
         ,bl.project_revenue
         ,bl.raw_cost      projfunc_raw_cost
         ,bl.burdened_cost projfunc_burdened_cost
         ,bl.revenue       projfunc_revenue
         ,bl.quantity
     ,bl.start_date
     ,bl.end_date
     ,bl.period_name
     ,bl.resource_assignment_id
     ,bl.txn_currency_code
     ,bl.project_currency_code
     ,bl.projfunc_currency_code
        FROM pa_budget_lines bl
        ,pa_fp_rollup_tmp r
    WHERE  bl.budget_version_id = p_budget_version_id
    AND  bl.budget_line_id = r.budget_line_id
    AND  NVL(r.processed_flag,'Y') <> 'N';
Line: 8381

        SELECT bl.budget_line_id
         ,bl.txn_raw_cost
         ,bl.txn_burdened_cost
         ,bl.txn_revenue
         ,bl.project_raw_cost
         ,bl.project_burdened_cost
         ,bl.project_revenue
         ,bl.raw_cost      projfunc_raw_cost
         ,bl.burdened_cost projfunc_burdened_cost
         ,bl.revenue       projfunc_revenue
         ,bl.quantity
         ,bl.start_date
         ,bl.end_date
         ,bl.period_name
         ,bl.resource_assignment_id
         ,bl.txn_currency_code
         ,bl.project_currency_code
         ,bl.projfunc_currency_code
        FROM pa_budget_lines bl
        ,pa_fp_spread_calc_tmp2 tmp2
        WHERE  bl.budget_version_id = p_budget_version_id
    AND  tmp2.budget_version_id = bl.budget_version_id
    AND  tmp2.resource_assignment_id = bl.resource_assignment_id
    AND  tmp2.txn_currency_code = bl.txn_currency_code
    AND  tmp2.start_date = bl.start_date;
Line: 8436

    SELECT tmp1.budget_line_id
          ,tmp1.resource_assignment_id
          ,tmp1.txn_currency_code
          ,tmp1.start_date
          ,tmp1.end_date
          ,tmp1.quantity
          ,tmp1.cost_rate
          ,tmp1.cost_rate_override
          ,tmp1.burden_cost_rate
          ,tmp1.burden_cost_rate_override
          ,tmp1.bill_rate
          ,tmp1.bill_rate_override
          ,tmp1.cost_ind_compiled_set_id
          ,tmp1.bill_markup_percentage
          ,tmp1.cost_rejection_code
          ,tmp1.revenue_rejection_code
          ,tmp1.burden_rejection_code
          ,tmp1.pfc_cur_conv_rejection_code
          ,tmp1.pc_cur_conv_rejection_code
          ,tmp1.system_reference_num1  Existing_budget_line_id
    FROM pa_fp_spread_calc_tmp1 tmp1
    WHERE tmp1.budget_version_id = p_budget_version_id;
Line: 8461

    SELECT tmp1.budget_line_id
    FROM pa_fp_spread_calc_tmp1 tmp1
        WHERE tmp1.budget_version_id = p_budget_version_id;
Line: 8467

        SELECT tmp2.budget_line_id  existing_budget_line_id
     ,tmp2.cost_rate        existing_cost_rate
     ,tmp2.cost_rate_override   existing_cost_rate_ovride
     ,tmp2.burden_cost_rate     existing_burden_rate
     ,tmp2.burden_cost_rate_override existing_burden_rate_ovride
     ,tmp2.bill_rate        existing_bill_rate
     ,tmp2.bill_rate_override   existing_bill_rate_ovride
     ,tmp2.bill_markup_percentage   existing_markup_percentage
     ,tmp2.system_reference_num1    existing_compile_set_id
        FROM pa_fp_spread_calc_tmp2 tmp2
        WHERE  tmp2.budget_version_id = p_budget_version_id
        AND  tmp2.budget_line_id = p_budget_line_id;
Line: 8482

    l_last_updated_by               NUMBER := FND_GLOBAL.user_id;
Line: 8557

        l_err_error_code_tab.delete;
Line: 8558

            l_err_budget_line_id_tab.delete;
Line: 8559

            l_err_raId_tab.delete;
Line: 8560

            l_err_txn_cur_tab.delete;
Line: 8561

            l_err_sdate_tab.delete;
Line: 8562

            l_err_quantity_tab.delete;
Line: 8563

            l_err_cost_rate_tab.delete;
Line: 8564

            l_err_cost_rate_ovr_tab.delete;
Line: 8565

            l_err_burden_rate_tab.delete;
Line: 8566

            l_err_burden_rate_ovr_tab.delete;
Line: 8567

            l_err_compiled_set_id_tab.delete;
Line: 8568

            l_err_bill_rate_tab.delete;
Line: 8569

            l_err_bill_rate_ovr_tab.delete;
Line: 8570

            l_err_markup_percent_tab.delete;
Line: 8571

            l_err_cost_rejection_tab.delete;
Line: 8572

            l_err_revenue_rejection_tab.delete;
Line: 8573

            l_err_burden_rejection_tab.delete;
Line: 8574

            l_err_pfc_cur_rejection_tab.delete;
Line: 8575

            l_err_pc_cur_rejection_tab.delete;
Line: 8577

        /* Initialize these plsql tables for budget Lies which needs to updated in bulk after exception
        * records */
        l_tmp2_budget_line_id_tab.delete;
Line: 8580

                l_tmp2_raId_tab.delete;
Line: 8581

                l_tmp2_sdate_tab.delete;
Line: 8582

                l_tmp2_txn_curr_code_tab.delete;
Line: 8583

                l_tmp2_quantity_tab.delete;
Line: 8584

                l_tmp2_cost_rejection_tab.delete;
Line: 8585

                l_tmp2_revenue_rejection_tab.delete;
Line: 8586

                l_tmp2_burden_rejection_tab.delete;
Line: 8587

                l_tmp2_pfc_cur_rejection_tab.delete;
Line: 8588

                l_tmp2_pc_cur_rejection_tab.delete;
Line: 8589

                l_tmp2_markup_percent_tab.delete;
Line: 8590

                l_tmp2_bill_rate_tab.delete;
Line: 8591

                l_tmp2_cost_rate_tab.delete;
Line: 8592

                l_tmp2_burden_rate_tab.delete;
Line: 8593

                l_tmp2_bill_rate_ovr_tab.delete;
Line: 8594

                l_tmp2_cost_rate_ovr_tab.delete;
Line: 8595

                l_tmp2_burden_rate_ovr_tab.delete;
Line: 8596

                l_tmp2_compile_set_id_tab.delete;
Line: 8597

		l_tmp2_rate_based_flag_tab.delete;
Line: 8600

            l_bl_raId_tab.delete;
Line: 8601

            l_bl_sDate_tab.delete;
Line: 8602

        l_bl_edate_tab.delete;
Line: 8603

        l_bl_period_name_tab.delete;
Line: 8604

            l_bl_budget_line_id_tab.delete;
Line: 8605

            l_bl_txn_curcode_tab.delete;
Line: 8606

            l_bl_quantity_tab.delete;
Line: 8607

            l_bl_pjfc_raw_cost_tab.delete;
Line: 8608

        l_bl_pjfc_burden_cost_tab.delete;
Line: 8609

        l_bl_pjfc_revenue_tab.delete;
Line: 8610

        l_bl_cost_rejection_tab.delete;
Line: 8611

        l_bl_rev_rejection_tab.delete;
Line: 8612

        l_bl_burden_rejection_tab.delete;
Line: 8613

        l_bl_pfc_cur_rejection_tab.delete;
Line: 8614

        l_bl_pc_cur_rejection_tab.delete;
Line: 8615

        l_bl_pfc_curcode_tab.delete;
Line: 8616

            l_bl_pfc_cost_rate_type_tab.delete;
Line: 8617

            l_bl_pfc_cost_exchng_rate_tab.delete;
Line: 8618

            l_bl_pfc_cost_date_type_tab.delete;
Line: 8619

            l_bl_pfc_cost_date_tab.delete;
Line: 8620

            l_bl_pfc_rev_rate_type_tab.delete;
Line: 8621

            l_bl_pfc_rev_exchange_rate_tab.delete;
Line: 8622

            l_bl_pfc_rev_date_type_tab.delete;
Line: 8623

            l_bl_pfc_rev_date_tab.delete;
Line: 8624

            l_bl_pc_cur_code_tab.delete;
Line: 8625

            l_bl_pc_cost_rate_type_tab.delete;
Line: 8626

            l_bl_pc_cost_exchange_rate_tab.delete;
Line: 8627

            l_bl_pc_cost_date_type_tab.delete;
Line: 8628

            l_bl_pc_cost_date_tab.delete;
Line: 8629

            l_bl_project_raw_cost_tab.delete;
Line: 8630

            l_bl_project_burdened_cost_tab.delete;
Line: 8631

            l_bl_pc_rev_rate_type_tab.delete;
Line: 8632

            l_bl_pc_rev_exchange_rate_tab.delete;
Line: 8633

            l_bl_pc_rev_date_type_tab.delete;
Line: 8634

            l_bl_pc_rev_date_tab.delete;
Line: 8635

            l_bl_project_revenue_tab.delete;
Line: 8636

            l_bl_txn_raw_cost_tab.delete;
Line: 8637

            l_bl_txn_burdened_cost_tab.delete;
Line: 8638

            l_bl_txn_revenue_tab.delete;
Line: 8639

            l_bl_init_quantity_tab.delete;
Line: 8640

            l_bl_txn_init_raw_cost_tab.delete;
Line: 8641

            l_bl_txn_init_burden_cost_tab.delete;
Line: 8642

            l_bl_txn_init_revenue_tab.delete;
Line: 8643

            l_bl_pfc_init_raw_cost_tab.delete;
Line: 8644

            l_bl_pfc_init_burden_cost_tab.delete;
Line: 8645

            l_bl_pfc_init_revenue_tab.delete;
Line: 8646

            l_bl_pc_init_raw_cost_tab.delete;
Line: 8647

            l_bl_pc_init_burden_cost_tab.delete;
Line: 8648

            l_bl_pc_init_revenue_tab.delete;
Line: 8649

            l_bl_markup_percentage_tab.delete;
Line: 8650

            l_bl_bill_rate_tab.delete;
Line: 8651

            l_bl_cost_rate_tab.delete;
Line: 8652

            l_bl_cost_rate_override_tab.delete;
Line: 8653

            l_bl_burden_cost_rate_tab.delete;
Line: 8654

            l_bl_bill_rate_override_tab.delete;
Line: 8655

            l_bl_burden_rate_override_tab.delete;
Line: 8656

            l_bl_compiled_set_id_tab.delete;
Line: 8657

        l_bl_version_type_tab.delete;
Line: 8658

        l_bl_final_txn_cur_code_tab.delete;
Line: 8659

        l_bl_CHANGE_REASON_CODE_tab.delete;
Line: 8660

            l_bl_DESCRIPTION_tab.delete;
Line: 8661

            l_bl_ATTRIBUTE_CATEGORY_tab.delete;
Line: 8662

            l_bl_ATTRIBUTE1_tab.delete;
Line: 8663

            l_bl_ATTRIBUTE2_tab.delete;
Line: 8664

            l_bl_ATTRIBUTE3_tab.delete;
Line: 8665

            l_bl_ATTRIBUTE4_tab.delete;
Line: 8666

            l_bl_ATTRIBUTE5_tab.delete;
Line: 8667

            l_bl_ATTRIBUTE6_tab.delete;
Line: 8668

            l_bl_ATTRIBUTE7_tab.delete;
Line: 8669

            l_bl_ATTRIBUTE8_tab.delete;
Line: 8670

            l_bl_ATTRIBUTE9_tab.delete;
Line: 8671

            l_bl_ATTRIBUTE10_tab.delete;
Line: 8672

            l_bl_ATTRIBUTE11_tab.delete;
Line: 8673

            l_bl_ATTRIBUTE12_tab.delete;
Line: 8674

            l_bl_ATTRIBUTE13_tab.delete;
Line: 8675

            l_bl_ATTRIBUTE14_tab.delete;
Line: 8676

            l_bl_ATTRIBUTE15_tab.delete;
Line: 8677

            l_bl_RAW_COST_SOURCE_tab.delete;
Line: 8678

            l_bl_BURDENED_COST_SOURCE_tab.delete;
Line: 8679

            l_bl_QUANTITY_SOURCE_tab.delete;
Line: 8680

            l_bl_REVENUE_SOURCE_tab.delete;
Line: 8681

            l_bl_PM_PRODUCT_CODE_tab.delete;
Line: 8682

            l_bl_PM_LINE_REFERENCE_tab.delete;
Line: 8683

            l_bl_CODE_COMBINATION_ID_tab.delete;
Line: 8684

            l_bl_CCID_GEN_STATUS_CODE_tab.delete;
Line: 8685

            l_bl_CCID_GEN_REJ_MESSAGE_tab.delete;
Line: 8686

            l_bl_BORROWED_REVENUE_tab.delete;
Line: 8687

            l_bl_TP_REVENUE_IN_tab.delete;
Line: 8688

            l_bl_TP_REVENUE_OUT_tab.delete;
Line: 8689

            l_bl_REVENUE_ADJ_tab.delete;
Line: 8690

            l_bl_LENT_RESOURCE_COST_tab.delete;
Line: 8691

            l_bl_TP_COST_IN_tab.delete;
Line: 8692

            l_bl_TP_COST_OUT_tab.delete;
Line: 8693

            l_bl_COST_ADJ_tab.delete;
Line: 8694

            l_bl_UNASSIGNED_TIME_COST_tab.delete;
Line: 8695

            l_bl_UTILIZATION_PERCENT_tab.delete;
Line: 8696

            l_bl_UTILIZATION_HOURS_tab.delete;
Line: 8697

            l_bl_UTILIZATION_ADJ_tab.delete;
Line: 8698

            l_bl_CAPACITY_tab.delete;
Line: 8699

            l_bl_HEAD_COUNT_tab.delete;
Line: 8700

            l_bl_HEAD_COUNT_ADJ_tab.delete;
Line: 8701

            l_bl_BUCKETING_PERIOD_CODE_tab.delete;
Line: 8702

            l_bl_TXN_DISCOUNT_PERCENT_tab.delete;
Line: 8703

            l_bl_TRANSFER_PRICE_RATE_tab.delete;
Line: 8704

            l_bl_BL_CREATED_BY_tab.delete;
Line: 8705

            l_bl_BL_CREATION_DATE_tab.delete;
Line: 8706

	    l_rate_base_flag_tab.delete;
Line: 8713

        SELECT tmp2.budget_line_id
            ,tmp2.resource_assignment_id
            ,tmp2.start_date
            ,tmp2.txn_currency_code
            ,tmp2.quantity
            ,tmp2.system_reference_var1   --tmp2.cost_rejection_code
            ,tmp2.system_reference_var2   --tmp2.revenue_rejection_code
            ,tmp2.system_reference_var3   --tmp2.burden_rejection_code
            ,tmp2.system_reference_var4   --tmp2.pfc_cur_conv_rejection_code
            ,tmp2.system_reference_var5   --tmp2.pc_cur_conv_rejection_code
            ,tmp2.bill_markup_percentage
            ,tmp2.bill_rate
            ,tmp2.cost_rate
            ,tmp2.burden_cost_rate
                    ,tmp2.bill_rate_override
                    ,tmp2.cost_rate_override
                    ,tmp2.burden_cost_rate_override
                    ,tmp2.system_reference_num1  --tmp2.compile_set_id
		,NVL(ra.rate_based_flag,'N') /* bug fix: 4900436 */
        BULK COLLECT INTO
            l_tmp2_budget_line_id_tab
            ,l_tmp2_raId_tab
            ,l_tmp2_sdate_tab
            ,l_tmp2_txn_curr_code_tab
                    ,l_tmp2_quantity_tab
                    ,l_tmp2_cost_rejection_tab
                    ,l_tmp2_revenue_rejection_tab
                    ,l_tmp2_burden_rejection_tab
                    ,l_tmp2_pfc_cur_rejection_tab
                    ,l_tmp2_pc_cur_rejection_tab
                    ,l_tmp2_markup_percent_tab
                    ,l_tmp2_bill_rate_tab
                    ,l_tmp2_cost_rate_tab
                    ,l_tmp2_burden_rate_tab
                    ,l_tmp2_bill_rate_ovr_tab
                    ,l_tmp2_cost_rate_ovr_tab
                    ,l_tmp2_burden_rate_ovr_tab
                    ,l_tmp2_compile_set_id_tab
		    ,l_tmp2_rate_based_flag_tab /* bug fix: 4900436 */
	FROM pa_fp_spread_calc_tmp2 tmp2
            ,pa_resource_assignments ra
        WHERE tmp2.budget_version_id = p_budget_version_id
        AND ra.resource_assignment_id = tmp2.resource_assignment_id;
Line: 8759

    /* This API will inserts the bulk exceptions records into tmp1 table
    * later this tmp1 table will be used for populating tmp2 table with budget line
    * details in bulk
    */
    PROCEDURE Populate_blkExcpRecs
                        (p_budget_version_id            IN Number
                        ,p_err_error_code_tab           IN pa_plsql_datatypes.char30TabTyp
                        ,p_err_budget_line_id_tab       IN pa_plsql_datatypes.NumTabTyp
                        ,p_err_raId_tab                 IN pa_plsql_datatypes.NumTabTyp
                        ,p_err_txn_cur_tab              IN pa_plsql_datatypes.char30TabTyp
                        ,p_err_sdate_tab                IN pa_plsql_datatypes.DateTabTyp
                        ,p_err_quantity_tab             IN pa_plsql_datatypes.NumTabTyp
                        ,p_err_cost_rate_tab            IN pa_plsql_datatypes.NumTabTyp
                        ,p_err_cost_rate_ovr_tab        IN pa_plsql_datatypes.NumTabTyp
                        ,p_err_burden_rate_tab          IN pa_plsql_datatypes.NumTabTyp
                        ,p_err_burden_rate_ovr_tab      IN pa_plsql_datatypes.NumTabTyp
                        ,p_err_compiled_set_id_tab      IN pa_plsql_datatypes.NumTabTyp
                        ,p_err_bill_rate_tab            IN pa_plsql_datatypes.NumTabTyp
                        ,p_err_bill_rate_ovr_tab        IN pa_plsql_datatypes.NumTabTyp
                        ,p_err_markup_percent_tab       IN pa_plsql_datatypes.NumTabTyp
                        ,p_err_cost_rejection_tab       IN pa_plsql_datatypes.char30TabTyp
                        ,p_err_revenue_rejection_tab    IN pa_plsql_datatypes.char30TabTyp
                        ,p_err_burden_rejection_tab     IN pa_plsql_datatypes.char30TabTyp
                        ,p_err_pfc_cur_rejection_tab    IN pa_plsql_datatypes.char30TabTyp
                        ,p_err_pc_cur_rejection_tab     IN pa_plsql_datatypes.char30TabTyp
                        ,x_return_status                OUT NOCOPY VARCHAR2
                        ) IS
    BEGIN
        x_return_status := 'S';
Line: 8789

        DELETE FROM PA_FP_SPREAD_CALC_TMP1;
Line: 8791

            INSERT INTO PA_FP_SPREAD_CALC_TMP1 tmp
        (tmp.budget_line_id
         ,tmp.budget_version_id
                 ,tmp.resource_assignment_id
                 ,tmp.txn_currency_code
                 ,tmp.start_date
                 ,tmp.quantity
                 ,tmp.cost_rate
                 ,tmp.cost_rate_override
                 ,tmp.burden_cost_rate
                 ,tmp.burden_cost_rate_override
                 ,tmp.cost_ind_compiled_set_id
                 ,tmp.bill_rate
                 ,tmp.bill_rate_override
                 ,tmp.bill_markup_percentage
                 ,tmp.cost_rejection_code
                 ,tmp.revenue_rejection_code
                 ,tmp.burden_rejection_code
                 ,tmp.pfc_cur_conv_rejection_code
                 ,tmp.pc_cur_conv_rejection_code
        )
            SELECT p_err_budget_line_id_tab(i)
         ,p_budget_version_id
                 ,p_err_raId_tab(i)
                 ,p_err_txn_cur_tab(i)
                 ,p_err_sdate_tab(i)
                 ,p_err_quantity_tab(i)
                 ,p_err_cost_rate_tab(i)
                 ,p_err_cost_rate_ovr_tab(i)
                 ,p_err_burden_rate_tab(i)
                 ,p_err_burden_rate_ovr_tab(i)
                 ,p_err_compiled_set_id_tab(i)
                 ,p_err_bill_rate_tab(i)
                 ,p_err_bill_rate_ovr_tab(i)
                 ,p_err_markup_percent_tab(i)
                 ,p_err_cost_rejection_tab(i)
                 ,p_err_revenue_rejection_tab(i)
                 ,p_err_burden_rejection_tab(i)
                 ,p_err_pfc_cur_rejection_tab(i)
                 ,p_err_pc_cur_rejection_tab(i)
        FROM DUAL
        WHERE p_err_error_code_tab(i) = 1 ;
Line: 8833

         print_msg('Number of rows inserted ['||sql%rowcount||']');
Line: 8848

    * into tmp2 table. Later this table will be used for bulk update of budget lines
    * and rollup tmp tables
    */
    PROCEDURE Populate_ExistingBlRecs
                        (p_budget_version_id            IN Number
                        ,x_return_status                OUT NOCOPY Varchar2
                        ) IS
    BEGIN
            x_return_status := 'S';
Line: 8858

            DELETE FROM PA_FP_SPREAD_CALC_TMP2;
Line: 8859

                INSERT INTO PA_FP_SPREAD_CALC_TMP2 tmp
                (tmp.budget_line_id
                 ,tmp.budget_version_id
                 ,tmp.resource_assignment_id
                 ,tmp.txn_currency_code
                 ,tmp.start_date
                 ,tmp.quantity
                 ,tmp.cost_rate
                 ,tmp.cost_rate_override
                 ,tmp.burden_cost_rate
                 ,tmp.burden_cost_rate_override
                 ,tmp.system_reference_num1  --tmp.compiled_set_id
                 ,tmp.bill_rate
                 ,tmp.bill_rate_override
                 ,tmp.bill_markup_percentage
                 ,tmp.system_reference_var1  --tmp.cost_rejection_code
                 ,tmp.system_reference_var2  --tmp.revenue_rejection_code
                 ,tmp.system_reference_var3  --tmp.burden_rejection_code
                 ,tmp.system_reference_var4  --tmp.pfc_cur_conv_rejection_code
                 ,tmp.system_reference_var5  --tmp.pc_cur_conv_rejection_code
             ,tmp.project_currency_code
             ,tmp.projfunc_currency_code
                )
            SELECT bl.budget_line_id
                 ,bl.budget_version_id
                 ,bl.resource_assignment_id
                 ,bl.txn_currency_code
                 ,bl.start_date
                 ,bl.quantity
                 ,bl.txn_standard_cost_rate
                 ,bl.txn_cost_rate_override
                 ,bl.burden_cost_rate
                 ,bl.burden_cost_rate_override
                 ,bl.cost_ind_compiled_set_id
                 ,bl.txn_standard_bill_rate
                 ,bl.txn_bill_rate_override
                 ,bl.txn_markup_percent
                 ,bl.cost_rejection_code
                 ,bl.revenue_rejection_code
                 ,bl.burden_rejection_code
                 ,bl.pfc_cur_conv_rejection_code
                 ,bl.pc_cur_conv_rejection_code
             ,bl.project_currency_code
             ,bl.projfunc_currency_code
                FROM pa_budget_lines bl
                WHERE bl.budget_version_id = p_budget_version_id
            AND EXISTS (select  null
            From pa_fp_spread_calc_tmp1 tmp1
            where tmp1.budget_version_id = p_budget_version_id
            and  tmp1.resource_assignment_id = bl.resource_assignment_id
            and  tmp1.txn_currency_code = bl.txn_currency_code
            and  tmp1.start_date = bl.start_date
            );
Line: 8912

        print_msg('Number of lines inserted['||sql%Rowcount||']');
Line: 8916

        UPDATE pa_fp_spread_calc_tmp1 tmp1
        SET tmp1.system_reference_num1 = (select tmp2.budget_line_id
                      from pa_fp_spread_calc_tmp2 tmp2
                      where tmp2.budget_version_id = p_budget_version_id
                      and tmp2.resource_assignment_id = tmp1.resource_assignment_id
                      and  tmp2.txn_currency_code = tmp1.txn_currency_code
                      and  tmp2.start_date = tmp1.start_date
                     )
        WHERE tmp1.budget_version_id = p_budget_version_id;
Line: 8925

        print_msg('Number of lines updated['||sql%Rowcount||']');
Line: 8944

            pa_debug.init_err_stack('PA_FP_CALC_PLAN_PKG.BLK_update_budget_lines');
Line: 8947

        print_msg('Entered PA_FP_CALC_PLAN_PKG.BLK_update_budget_lines');
Line: 9068

            /* Call the update reporting line by passing -ve amounts of the existsing budgetline
             * before update and +ve amounts of budget line after update. so that the delta passing to the reporting
             * will be always in synch with the budget lines
                     */
                IF NVL(g_rollup_required_flag,'N') = 'Y'  THEN
            FOR blRec IN cur_blAmts LOOP
              IF blRec.budget_line_id is NOT NULL Then
                    --print_msg('Getting Budget line Amts for budget_line_id => '||to_char(blrec.budget_line_id));
Line: 9080

                        ,p_activity_code                => 'UPDATE'
                        ,p_budget_version_id            => p_budget_version_id
                        ,p_budget_line_id               => blRec.budget_line_id
                        ,p_resource_assignment_id       => blRec.resource_assignment_id
                        ,p_start_date                   => blRec.start_date
                        ,p_end_date                     => blRec.end_date
                        ,p_period_name                  => blRec.period_name
                        ,p_txn_currency_code            => blRec.txn_currency_code
                        ,p_quantity                     => blRec.quantity * -1
                        ,p_txn_raw_cost                 => blRec.txn_raw_cost * -1
                        ,p_txn_burdened_cost            => blRec.txn_burdened_cost * -1
                        ,p_txn_revenue                  => blRec.txn_revenue * -1
                        ,p_project_currency_code        => blRec.project_currency_code
                        ,p_project_raw_cost             => blRec.project_raw_cost * -1
                        ,p_project_burdened_cost        => blRec.project_burdened_cost * -1
                        ,p_project_revenue              => blRec.project_revenue * -1
                        ,p_projfunc_currency_code       => blRec.projfunc_currency_code
                        ,p_projfunc_raw_cost            => blRec.projfunc_raw_cost * -1
                        ,p_projfunc_burdened_cost       => blRec.projfunc_burdened_cost * -1
                        ,p_projfunc_revenue             => blRec.projfunc_revenue * -1
			,p_rep_line_mode               => 'REVERSAL'
                	,x_msg_data                     => l_rep_msg_data
                        ,x_return_status                => l_rep_return_status
                        );
Line: 9114

            /* update budget line with the new currency and amounts If there budget line is already with
        * the same currency the update will fail with duplicate value on index.
        * in such case update the existing budget line and overrwrite all the amounts
        * with the new bugdetlines
        */
        --print_msg('Bulk updating budget lines');
Line: 9120

        /* Now Bulk Update the budget Lines */
        FORALL i IN l_bl_budget_line_id_tab.FIRST .. l_bl_budget_line_id_tab.LAST  SAVE EXCEPTIONS
            UPDATE pa_budget_lines bl
        SET bl.txn_currency_code             = l_bl_txn_curcode_tab(i)
                 ,bl.quantity                        = l_bl_quantity_tab(i)
		 /* Bug fix:4900436 */
                 ,bl.display_quantity                = decode(g_wp_version_flag,'Y',l_bl_quantity_tab(i)
                                                         ,Decode(l_rate_base_flag_tab(i),'N',NULL,l_bl_quantity_tab(i)))
                 /* End of bug fix:4900436 */
                 ,bl.raw_cost                        = l_bl_pjfc_raw_cost_tab(i)
                 ,bl.burdened_cost                   = l_bl_pjfc_burden_cost_tab(i)
                 ,bl.revenue                         = l_bl_pjfc_revenue_tab(i)
                 ,bl.cost_rejection_code             = l_bl_cost_rejection_tab(i)
                 ,bl.revenue_rejection_code          = l_bl_rev_rejection_tab(i)
                 ,bl.burden_rejection_code           = l_bl_burden_rejection_tab(i)
                 ,bl.pfc_cur_conv_rejection_code     = l_bl_pfc_cur_rejection_tab(i)
                 ,bl.pc_cur_conv_rejection_code      = l_bl_pc_cur_rejection_tab(i)
                 ,bl.projfunc_currency_code          = l_bl_pfc_curcode_tab(i)
                 ,bl.projfunc_cost_rate_type         = l_bl_pfc_cost_rate_type_tab(i)
                 ,bl.projfunc_cost_exchange_rate     = l_bl_pfc_cost_exchng_rate_tab(i)
                 ,bl.projfunc_cost_rate_date_type    = l_bl_pfc_cost_date_type_tab(i)
                 ,bl.projfunc_cost_rate_date         = l_bl_pfc_cost_date_tab(i)
                 ,bl.projfunc_rev_rate_type          = l_bl_pfc_rev_rate_type_tab(i)
                 ,bl.projfunc_rev_exchange_rate      = l_bl_pfc_rev_exchange_rate_tab(i)
                 ,bl.projfunc_rev_rate_date_type     = l_bl_pfc_rev_date_type_tab(i)
                 ,bl.projfunc_rev_rate_date          = l_bl_pfc_rev_date_tab(i)
                 ,bl.project_currency_code           = l_bl_pc_cur_code_tab(i)
                 ,bl.project_cost_rate_type          = l_bl_pc_cost_rate_type_tab(i)
                 ,bl.project_cost_exchange_rate      = l_bl_pc_cost_exchange_rate_tab(i)
                 ,bl.project_cost_rate_date_type     = l_bl_pc_cost_date_type_tab(i)
                 ,bl.project_cost_rate_date          = l_bl_pc_cost_date_tab(i)
                 ,bl.project_raw_cost                = l_bl_project_raw_cost_tab(i)
                 ,bl.project_burdened_cost           = l_bl_project_burdened_cost_tab(i)
                 ,bl.project_rev_rate_type           = l_bl_pc_rev_rate_type_tab(i)
                 ,bl.project_rev_exchange_rate       = l_bl_pc_rev_exchange_rate_tab(i)
                 ,bl.project_rev_rate_date_type      = l_bl_pc_rev_date_type_tab(i)
                 ,bl.project_rev_rate_date           = l_bl_pc_rev_date_tab(i)
                 ,bl.project_revenue                 = l_bl_project_revenue_tab(i)
                 ,bl.txn_raw_cost                    = l_bl_txn_raw_cost_tab(i)
                 ,bl.txn_burdened_cost               = l_bl_txn_burdened_cost_tab(i)
                 ,bl.txn_revenue                     = l_bl_txn_revenue_tab(i)
                 ,bl.txn_markup_percent              = l_bl_markup_percentage_tab(i)
                 ,bl.txn_standard_bill_rate          = l_bl_bill_rate_tab(i)
                 ,bl.txn_standard_cost_rate          = l_bl_cost_rate_tab(i)
                 ,bl.txn_cost_rate_override          = l_bl_cost_rate_override_tab(i)
                 ,bl.burden_cost_rate                = l_bl_burden_cost_rate_tab(i)
                 ,bl.txn_bill_rate_override          = l_bl_bill_rate_override_tab(i)
                 ,bl.burden_cost_rate_override       = l_bl_burden_rate_override_tab(i)
                 ,bl.cost_ind_compiled_set_id        = l_bl_compiled_set_id_tab(i)
                 ,bl.last_update_date                = l_sysdate           ---sysdate
                 ,bl.last_updated_by                 = l_last_updated_by   ---fnd_global.user_id
                 ,bl.last_update_login               = l_last_login_id     ---fnd_global.login_id
                 ,bl.CHANGE_REASON_CODE = l_bl_CHANGE_REASON_CODE_tab(i)     /*Bug4224464 Removed the nvl checks from dff's
                  ,change reason code, PM_PRODUCT_CODE, PM_BUDGET_LINE_REFERENCE, and description columns. The cursor
                  definitions in copy_blattributes have been modified to handle the G_MISS_XXX values for these columns.*/
                 ,bl.DESCRIPTION = l_bl_DESCRIPTION_tab(i)
                 ,bl.ATTRIBUTE_CATEGORY = l_bl_ATTRIBUTE_CATEGORY_tab(i)
                 ,bl.ATTRIBUTE1 = l_bl_ATTRIBUTE1_tab(i)
                 ,bl.ATTRIBUTE2 = l_bl_ATTRIBUTE2_tab(i)
                 ,bl.ATTRIBUTE3 = l_bl_ATTRIBUTE3_tab(i)
                 ,bl.ATTRIBUTE4 = l_bl_ATTRIBUTE4_tab(i)
                 ,bl.ATTRIBUTE5 = l_bl_ATTRIBUTE5_tab(i)
                 ,bl.ATTRIBUTE6 = l_bl_ATTRIBUTE6_tab(i)
                 ,bl.ATTRIBUTE7 = l_bl_ATTRIBUTE7_tab(i)
                 ,bl.ATTRIBUTE8 = l_bl_ATTRIBUTE8_tab(i)
                 ,bl.ATTRIBUTE9 = l_bl_ATTRIBUTE9_tab(i)
                 ,bl.ATTRIBUTE10 = l_bl_ATTRIBUTE10_tab(i)
                 ,bl.ATTRIBUTE11 = l_bl_ATTRIBUTE11_tab(i)
                 ,bl.ATTRIBUTE12 = l_bl_ATTRIBUTE12_tab(i)
                 ,bl.ATTRIBUTE13 = l_bl_ATTRIBUTE13_tab(i)
                 ,bl.ATTRIBUTE14 = l_bl_ATTRIBUTE14_tab(i)
                 ,bl.ATTRIBUTE15 = l_bl_ATTRIBUTE15_tab(i)
                 ,bl.RAW_COST_SOURCE = nvl(l_bl_RAW_COST_SOURCE_tab(i),bl.RAW_COST_SOURCE)
                 ,bl.BURDENED_COST_SOURCE = nvl(l_bl_BURDENED_COST_SOURCE_tab(i),bl.BURDENED_COST_SOURCE)
                 ,bl.QUANTITY_SOURCE = nvl(l_bl_QUANTITY_SOURCE_tab(i),bl.QUANTITY_SOURCE)
                 ,bl.REVENUE_SOURCE = nvl(l_bl_REVENUE_SOURCE_tab(i),bl.REVENUE_SOURCE)
                 ,bl.PM_PRODUCT_CODE = l_bl_PM_PRODUCT_CODE_tab(i)
                 ,bl.PM_BUDGET_LINE_REFERENCE = l_bl_PM_LINE_REFERENCE_tab(i)
                 ,bl.CODE_COMBINATION_ID = nvl(l_bl_CODE_COMBINATION_ID_tab(i),bl.CODE_COMBINATION_ID)
                 ,bl.CCID_GEN_STATUS_CODE = nvl(l_bl_CCID_GEN_STATUS_CODE_tab(i),bl.CCID_GEN_STATUS_CODE)
                 ,bl.CCID_GEN_REJ_MESSAGE = nvl(l_bl_CCID_GEN_REJ_MESSAGE_tab(i),bl.CCID_GEN_REJ_MESSAGE)
                 ,bl.BORROWED_REVENUE = nvl(l_bl_BORROWED_REVENUE_tab(i),bl.BORROWED_REVENUE)
                 ,bl.TP_REVENUE_IN = nvl(l_bl_TP_REVENUE_IN_tab(i),bl.TP_REVENUE_IN)
                 ,bl.TP_REVENUE_OUT = nvl(l_bl_TP_REVENUE_OUT_tab(i),bl.TP_REVENUE_OUT)
                 ,bl.REVENUE_ADJ  = nvl(l_bl_REVENUE_ADJ_tab(i),bl.REVENUE_ADJ)
                 ,bl.LENT_RESOURCE_COST = nvl(l_bl_LENT_RESOURCE_COST_tab(i),bl.LENT_RESOURCE_COST)
                 ,bl.TP_COST_IN   = nvl(l_bl_TP_COST_IN_tab(i),bl.TP_COST_IN)
                 ,bl.TP_COST_OUT = nvl(l_bl_TP_COST_OUT_tab(i),bl.TP_COST_OUT)
                 ,bl.COST_ADJ = nvl(l_bl_COST_ADJ_tab(i),bl.COST_ADJ)
                 ,bl.UNASSIGNED_TIME_COST = nvl(l_bl_UNASSIGNED_TIME_COST_tab(i),bl.UNASSIGNED_TIME_COST)
                 ,bl.UTILIZATION_PERCENT = nvl(l_bl_UTILIZATION_PERCENT_tab(i),bl.UTILIZATION_PERCENT)
                 ,bl.UTILIZATION_HOURS = nvl(l_bl_UTILIZATION_HOURS_tab(i),bl.UTILIZATION_HOURS)
                 ,bl.UTILIZATION_ADJ = nvl(l_bl_UTILIZATION_ADJ_tab(i),bl.UTILIZATION_ADJ)
                 ,bl.CAPACITY = nvl(l_bl_CAPACITY_tab(i),bl.CAPACITY)
                 ,bl.HEAD_COUNT = nvl(l_bl_HEAD_COUNT_tab(i),bl.HEAD_COUNT)
                 ,bl.HEAD_COUNT_ADJ =nvl(l_bl_HEAD_COUNT_ADJ_tab(i),bl.HEAD_COUNT_ADJ)
                 ,bl.BUCKETING_PERIOD_CODE = nvl(l_bl_BUCKETING_PERIOD_CODE_tab(i),bl.BUCKETING_PERIOD_CODE)
                 ,bl.TXN_DISCOUNT_PERCENTAGE = nvl(l_bl_TXN_DISCOUNT_PERCENT_tab(i),bl.TXN_DISCOUNT_PERCENTAGE)
                 ,bl.TRANSFER_PRICE_RATE = nvl(l_bl_TRANSFER_PRICE_RATE_tab(i),bl.TRANSFER_PRICE_RATE)
                 ,bl.CREATED_BY   = nvl(l_bl_BL_CREATED_BY_tab(i),bl.CREATED_BY)
                 ,bl.CREATION_DATE   = nvl(l_bl_BL_CREATION_DATE_tab(i),bl.CREATION_DATE)
            WHERE bl.budget_line_id  = l_bl_budget_line_id_tab(i);
Line: 9272

        /* now pass the +ve values for the updated budget lines based on the processed flag from the tmp table */
                IF NVL(g_rollup_required_flag,'N') = 'Y'  THEN
                  FOR blRec IN cur_blAmts LOOP
                   IF blRec.budget_line_id is NOT NULL Then
                       --print_msg('Getting Budget line Amts for budget_line_id => '||to_char(blrec.budget_line_id));
Line: 9281

                       ,p_activity_code                => 'UPDATE'
                       ,p_budget_version_id            => p_budget_version_id
                       ,p_budget_line_id               => blRec.budget_line_id
                       ,p_resource_assignment_id       => blRec.resource_assignment_id
                       ,p_start_date                   => blRec.start_date
                       ,p_end_date                     => blRec.end_date
                       ,p_period_name                  => blRec.period_name
                       ,p_txn_currency_code            => blRec.txn_currency_code
                       ,p_quantity                     => blRec.quantity
                       ,p_txn_raw_cost                 => blRec.txn_raw_cost
                       ,p_txn_burdened_cost            => blRec.txn_burdened_cost
                       ,p_txn_revenue                  => blRec.txn_revenue
                       ,p_project_currency_code        => blRec.project_currency_code
                       ,p_project_raw_cost             => blRec.project_raw_cost
                       ,p_project_burdened_cost        => blRec.project_burdened_cost
                       ,p_project_revenue              => blRec.project_revenue
                       ,p_projfunc_currency_code       => blRec.projfunc_currency_code
                       ,p_projfunc_raw_cost            => blRec.projfunc_raw_cost
                       ,p_projfunc_burdened_cost       => blRec.projfunc_burdened_cost
                       ,p_projfunc_revenue             => blRec.projfunc_revenue
		       ,p_rep_line_mode               => 'POSITIVE_ENTRY'
                       ,x_msg_data                     => l_rep_msg_data
                       ,x_return_status                => l_rep_return_status
                       );
Line: 9379

        /*We should pass the +ve values for the updated rows. having returning clause in the bulk update returns the
                 * rejected records with the updated values, so the returning clause cannot be used. In order to pass the correct bl values
                 * update the rollup tmp processed flag with N for the rejected records */
        FORALL i IN l_err_error_code_tab.FIRST .. l_err_error_code_tab.LAST
        UPDATE PA_FP_ROLLUP_TMP tmp
        SET tmp.processed_flag = 'N'
        WHERE tmp.budget_line_id = l_err_budget_line_id_tab(i);
Line: 9386

                /* now pass the +ve values for the updated budget lines based on the processed flag from the tmp table */
                IF NVL(g_rollup_required_flag,'N') = 'Y'  THEN
                  FOR blRec IN cur_blAmts LOOP
                   IF blRec.budget_line_id is NOT NULL Then
                       --print_msg('Getting Budget line Amts for budget_line_id => '||to_char(blrec.budget_line_id));
Line: 9395

                       ,p_activity_code                => 'UPDATE'
                       ,p_budget_version_id            => p_budget_version_id
                       ,p_budget_line_id               => blRec.budget_line_id
                       ,p_resource_assignment_id       => blRec.resource_assignment_id
                       ,p_start_date                   => blRec.start_date
                       ,p_end_date                     => blRec.end_date
                       ,p_period_name                  => blRec.period_name
                       ,p_txn_currency_code            => blRec.txn_currency_code
                       ,p_quantity                     => blRec.quantity
                       ,p_txn_raw_cost                 => blRec.txn_raw_cost
                       ,p_txn_burdened_cost            => blRec.txn_burdened_cost
                       ,p_txn_revenue                  => blRec.txn_revenue
                       ,p_project_currency_code        => blRec.project_currency_code
                       ,p_project_raw_cost             => blRec.project_raw_cost
                       ,p_project_burdened_cost        => blRec.project_burdened_cost
                       ,p_project_revenue              => blRec.project_revenue
                       ,p_projfunc_currency_code       => blRec.projfunc_currency_code
                       ,p_projfunc_raw_cost            => blRec.projfunc_raw_cost
                       ,p_projfunc_burdened_cost       => blRec.projfunc_burdened_cost
                       ,p_projfunc_revenue             => blRec.projfunc_revenue
		       	,p_rep_line_mode               => 'REVERSAL'  -- special case passing reversal of reversal entries
                       ,x_msg_data                     => l_rep_msg_data
                       ,x_return_status                => l_rep_return_status
                       );
Line: 9428

                /* Note If there is any dup val on index exception then control comes here. so partly updated budget lines
                * must be passed to rollup api with +ve values */
        /* Now populate tmp1 table with bulk exception records */
        --print_msg('Calling Populate_blkExcpRecs ');
Line: 9472

                                ,p_activity_code                => 'UPDATE'
                                ,p_budget_version_id            => p_budget_version_id
                                ,p_budget_line_id               => blRec.budget_line_id
                                ,p_resource_assignment_id       => blRec.resource_assignment_id
                                ,p_start_date                   => blRec.start_date
                                ,p_end_date                     => blRec.end_date
                                ,p_period_name                  => blRec.period_name
                                ,p_txn_currency_code            => blRec.txn_currency_code
                                ,p_quantity                     => blRec.quantity * -1
                                ,p_txn_raw_cost                 => blRec.txn_raw_cost * -1
                                ,p_txn_burdened_cost            => blRec.txn_burdened_cost * -1
                                ,p_txn_revenue                  => blRec.txn_revenue * -1
                                ,p_project_currency_code        => blRec.project_currency_code
                                ,p_project_raw_cost             => blRec.project_raw_cost * -1
                                ,p_project_burdened_cost        => blRec.project_burdened_cost * -1
                                ,p_project_revenue              => blRec.project_revenue * -1
                                ,p_projfunc_currency_code       => blRec.projfunc_currency_code
                                ,p_projfunc_raw_cost            => blRec.projfunc_raw_cost * -1
                                ,p_projfunc_burdened_cost       => blRec.projfunc_burdened_cost * -1
                                ,p_projfunc_revenue             => blRec.projfunc_revenue * -1
				,p_rep_line_mode               => 'REVERSAL'
                                ,x_msg_data                     => l_rep_msg_data
                                ,x_return_status                => l_rep_return_status
                                );
Line: 9506

           /* Now process the exception records. update the tmp2 with the final quantity , rates and rejections
                * and then finally in one bulk update the budget lines */
           FOR newRec IN cur_errorBdgtLines LOOP

        print_msg('Updating the budgetline with Existsing bl['||newRec.Existing_budget_line_id||']');
Line: 9566

            UPDATE pa_fp_spread_calc_tmp2 tmp2
        SET tmp2.txn_currency_code              = newRec.txn_currency_code
                 ,tmp2.quantity                         = nvl(tmp2.quantity,0) + newRec.quantity
                 ,tmp2.system_reference_var1        = newRec.cost_rejection_code
                 ,tmp2.system_reference_var2        = newRec.revenue_rejection_code
                 ,tmp2.system_reference_var3        = newRec.burden_rejection_code
                 ,tmp2.system_reference_var4        = newRec.pfc_cur_conv_rejection_code
                 ,tmp2.system_reference_var5        = newRec.pc_cur_conv_rejection_code
                 ,tmp2.bill_markup_percentage           = l_bl_upd_markup_percentage
                 ,tmp2.bill_rate                = l_bl_upd_bill_rate
                 ,tmp2.cost_rate                = l_bl_upd_cost_rate
                 ,tmp2.burden_cost_rate                 = l_bl_upd_burden_rate
                 ,tmp2.bill_rate_override           = l_bl_upd_bill_rate_ovride
                 ,tmp2.cost_rate_override           = l_bl_upd_cost_rate_ovride
                 ,tmp2.burden_cost_rate_override        = l_bl_upd_burden_rate_ovride
                 ,tmp2.system_reference_num1            = l_bl_upd_compile_set_id
            WHERE tmp2.budget_line_id  = ExBlRec.Existing_budget_line_id;
Line: 9587

         /* Now update the budgetLines in bulk from tmp2 table */
         Populate_tmp2Plsql_tab;
Line: 9592

        UPDATE pa_budget_lines bl
                SET bl.txn_currency_code             = l_tmp2_txn_curr_code_tab(i)
                 ,bl.quantity                        = l_tmp2_quantity_tab(i)
		 /* Bug fix:4900436 */
                 ,bl.display_quantity                = decode(g_wp_version_flag,'Y',l_tmp2_quantity_tab(i)
                                                         ,decode(NVL(l_tmp2_rate_based_flag_tab(i),'N'),'N',NULL
							   	,l_tmp2_quantity_tab(i)))
                 /* Bug fix:4900436 */
                 ,bl.cost_rejection_code             = l_tmp2_cost_rejection_tab(i)
                 ,bl.revenue_rejection_code          = l_tmp2_revenue_rejection_tab(i)
                 ,bl.burden_rejection_code           = l_tmp2_burden_rejection_tab(i)
                 ,bl.pfc_cur_conv_rejection_code     = l_tmp2_pfc_cur_rejection_tab(i)
                 ,bl.pc_cur_conv_rejection_code      = l_tmp2_pc_cur_rejection_tab(i)
                 ,bl.txn_markup_percent              = l_tmp2_markup_percent_tab(i)
                 ,bl.txn_standard_bill_rate          = l_tmp2_bill_rate_tab(i)
                 ,bl.txn_standard_cost_rate          = l_tmp2_cost_rate_tab(i)
                 ,bl.burden_cost_rate                = l_tmp2_burden_rate_tab(i)
                 ,bl.txn_bill_rate_override          = l_tmp2_bill_rate_ovr_tab(i)
                 ,bl.txn_cost_rate_override          = l_tmp2_cost_rate_ovr_tab(i)
                 ,bl.burden_cost_rate_override       = l_tmp2_burden_rate_ovr_tab(i)
                 ,bl.cost_ind_compiled_set_id        = l_tmp2_compile_set_id_tab(i)
                 ,bl.last_update_date                = l_sysdate
                 ,bl.last_updated_by                 = l_last_updated_by
                 ,bl.last_update_login               = l_last_login_id
                WHERE bl.budget_line_id  = l_tmp2_budget_line_id_tab(i);
Line: 9620

                UPDATE pa_budget_lines bl
                SET bl.txn_raw_cost = decode((nvl(bl.txn_init_raw_cost,0) + pa_currency.round_trans_currency_amt1(
                                        (nvl(bl.quantity,0) - nvl(bl.init_quantity,0)) *
                                        (nvl(bl.txn_cost_rate_override,nvl(txn_standard_cost_rate,0))),bl.txn_currency_code)),0,NULL,
                    (nvl(bl.txn_init_raw_cost,0) + pa_currency.round_trans_currency_amt1(
                    (nvl(bl.quantity,0) - nvl(bl.init_quantity,0)) *
                    (nvl(bl.txn_cost_rate_override,nvl(txn_standard_cost_rate,0))),bl.txn_currency_code)))
           ,bl.txn_burdened_cost = decode((nvl(bl.txn_init_burdened_cost,0) + pa_currency.round_trans_currency_amt1(
                                        (nvl(bl.quantity,0) - nvl(bl.init_quantity,0)) *
                                        (nvl(bl.burden_cost_rate_override,nvl(burden_cost_rate,0))),bl.txn_currency_code)),0,NULL,
                                        (nvl(bl.txn_init_burdened_cost,0) + pa_currency.round_trans_currency_amt1(
                                        (nvl(bl.quantity,0) - nvl(bl.init_quantity,0)) *
                                        (nvl(bl.burden_cost_rate_override,nvl(burden_cost_rate,0))),bl.txn_currency_code)))
           ,bl.txn_revenue = decode((nvl(bl.txn_init_raw_cost,0) + pa_currency.round_trans_currency_amt1(
                                        (nvl(bl.quantity,0) - nvl(bl.init_quantity,0)) *
                                        (nvl(bl.txn_bill_rate_override,nvl(txn_standard_bill_rate,0))),bl.txn_currency_code)),0,NULL,
                                        (nvl(bl.txn_init_raw_cost,0) + pa_currency.round_trans_currency_amt1(
                                        (nvl(bl.quantity,0) - nvl(bl.init_quantity,0)) *
                                        (nvl(bl.txn_bill_rate_override,nvl(txn_standard_bill_rate,0))),bl.txn_currency_code)))
                WHERE bl.budget_line_id  = l_tmp2_budget_line_id_tab(i);
Line: 9658

           /* Now delete the exception records from budget lines */
        InitPlsqlTabs;
Line: 9660

        l_del_budget_line_id_tab.delete;
Line: 9668

            UPDATE pa_fp_rollup_tmp tmp
            SET tmp.delete_flag = 'Y'
        WHERE tmp.budget_line_id = l_del_budget_line_id_tab(i);
Line: 9673

        /* Now delete the duplval budget lines */
            FORALL i IN l_del_budget_line_id_tab.FIRST .. l_del_budget_line_id_tab.LAST
                DELETE FROM pa_budget_lines bl
                WHERE bl.budget_line_id = l_del_budget_line_id_tab(i);
Line: 9681

	/* update rollup data with existing budget lines data */
        FORALL exBlId IN l_tmp2_budget_line_id_tab.FIRST .. l_tmp2_budget_line_id_tab.LAST
        UPDATE pa_fp_rollup_tmp tmp
        SET ( tmp.quantity
             ,tmp.txn_raw_cost
             ,tmp.txn_burdened_cost
             ,tmp.txn_revenue
             ,tmp.project_raw_cost
             ,tmp.project_burdened_cost
             ,tmp.project_revenue
             ,tmp.projfunc_raw_cost
             ,tmp.projfunc_burdened_cost
             ,tmp.projfunc_revenue
             ,tmp.project_cost_rate_type
             ,tmp.project_cost_exchange_rate
             ,tmp.project_cost_rate_date_type
             ,tmp.project_cost_rate_date
             ,tmp.project_rev_rate_type
             ,tmp.project_rev_exchange_rate
             ,tmp.project_rev_rate_date_type
             ,tmp.project_rev_rate_date
             ,tmp.projfunc_cost_rate_type
             ,tmp.projfunc_cost_exchange_rate
             ,tmp.projfunc_cost_rate_date_type
             ,tmp.projfunc_cost_rate_date
             ,tmp.projfunc_rev_rate_type
             ,tmp.projfunc_rev_exchange_rate
             ,tmp.projfunc_rev_rate_date_type
             ,tmp.projfunc_rev_rate_date
           ) =
          (SELECT bl.quantity
              ,bl.txn_raw_cost
              ,bl.txn_burdened_cost
              ,bl.txn_revenue
              ,bl.project_raw_cost
              ,bl.project_burdened_cost
              ,bl.project_revenue
              ,bl.raw_cost
              ,bl.burdened_cost
              ,bl.revenue
              ,bl.project_cost_rate_type
              ,bl.project_cost_exchange_rate
              ,bl.project_cost_rate_date_type
              ,bl.project_cost_rate_date
              ,bl.project_rev_rate_type
              ,bl.project_rev_exchange_rate
              ,bl.project_rev_rate_date_type
              ,bl.project_rev_rate_date
              ,bl.projfunc_cost_rate_type
              ,bl.projfunc_cost_exchange_rate
              ,bl.projfunc_cost_rate_date_type
              ,bl.projfunc_cost_rate_date
              ,bl.projfunc_rev_rate_type
              ,bl.projfunc_rev_exchange_rate
              ,bl.projfunc_rev_rate_date_type
              ,bl.projfunc_rev_rate_date
          FROM pa_budget_lines bl
          WHERE bl.budget_line_id = tmp.budget_line_id
          )
        WHERE tmp.budget_line_id = l_tmp2_budget_line_id_tab(exBlId);
Line: 9744

        INSERT INTO  pa_fp_rollup_tmp tmp
            ( tmp.budget_line_id
	     ,tmp.budget_version_id
	     ,tmp.resource_assignment_id
	     ,tmp.txn_currency_code
	     ,tmp.start_date
	     ,tmp.end_date
	     ,tmp.period_name
	     ,tmp.quantity
             ,tmp.txn_raw_cost
             ,tmp.txn_burdened_cost
             ,tmp.txn_revenue
             ,tmp.project_raw_cost
             ,tmp.project_burdened_cost
             ,tmp.project_revenue
             ,tmp.projfunc_raw_cost
             ,tmp.projfunc_burdened_cost
             ,tmp.projfunc_revenue
             ,tmp.project_cost_rate_type
             ,tmp.project_cost_exchange_rate
             ,tmp.project_cost_rate_date_type
             ,tmp.project_cost_rate_date
             ,tmp.project_rev_rate_type
             ,tmp.project_rev_exchange_rate
             ,tmp.project_rev_rate_date_type
             ,tmp.project_rev_rate_date
             ,tmp.projfunc_cost_rate_type
             ,tmp.projfunc_cost_exchange_rate
             ,tmp.projfunc_cost_rate_date_type
             ,tmp.projfunc_cost_rate_date
             ,tmp.projfunc_rev_rate_type
             ,tmp.projfunc_rev_exchange_rate
             ,tmp.projfunc_rev_rate_date_type
             ,tmp.projfunc_rev_rate_date
           )
	SELECT bl.budget_line_id
	     ,bl.budget_version_id
             ,bl.resource_assignment_id
             ,bl.txn_currency_code
             ,bl.start_date
             ,bl.end_date
             ,bl.period_name
	     ,bl.quantity
             ,bl.txn_raw_cost
             ,bl.txn_burdened_cost
             ,bl.txn_revenue
             ,bl.project_raw_cost
             ,bl.project_burdened_cost
             ,bl.project_revenue
             ,bl.raw_cost
             ,bl.burdened_cost
             ,bl.revenue
             ,bl.project_cost_rate_type
             ,bl.project_cost_exchange_rate
             ,bl.project_cost_rate_date_type
             ,bl.project_cost_rate_date
             ,bl.project_rev_rate_type
             ,bl.project_rev_exchange_rate
             ,bl.project_rev_rate_date_type
             ,bl.project_rev_rate_date
             ,bl.projfunc_cost_rate_type
             ,bl.projfunc_cost_exchange_rate
             ,bl.projfunc_cost_rate_date_type
             ,bl.projfunc_cost_rate_date
             ,bl.projfunc_rev_rate_type
             ,bl.projfunc_rev_exchange_rate
             ,bl.projfunc_rev_rate_date_type
             ,bl.projfunc_rev_rate_date
          FROM pa_budget_lines bl
          WHERE bl.budget_line_id = l_tmp2_budget_line_id_tab(exBlId)
	  AND NOT EXISTS ( SELECT NULL
			   FROM PA_FP_ROLLUP_TMP tmp1
			   WHERE tmp1.budget_line_id = l_tmp2_budget_line_id_tab(exBlId)
			);
Line: 9821

        /* Now pass the +ve values for the updated existing budget Lines */
        IF NVL(g_rollup_required_flag,'N') = 'Y'  THEN
                     FOR blRec IN cur_ExistingblAmts LOOP
                          IF blRec.budget_line_id is NOT NULL Then
                                l_stage := 4028;
Line: 9829

                                ,p_activity_code                => 'UPDATE'
                                ,p_budget_version_id            => p_budget_version_id
                                ,p_budget_line_id               => blRec.budget_line_id
                                ,p_resource_assignment_id       => blRec.resource_assignment_id
                                ,p_start_date                   => blRec.start_date
                                ,p_end_date                     => blRec.end_date
                                ,p_period_name                  => blRec.period_name
                                ,p_txn_currency_code            => blRec.txn_currency_code
                                ,p_quantity                     => blRec.quantity
                                ,p_txn_raw_cost                 => blRec.txn_raw_cost
                                ,p_txn_burdened_cost            => blRec.txn_burdened_cost
                                ,p_txn_revenue                  => blRec.txn_revenue
                                ,p_project_currency_code        => blRec.project_currency_code
                                ,p_project_raw_cost             => blRec.project_raw_cost
                                ,p_project_burdened_cost        => blRec.project_burdened_cost
                                ,p_project_revenue              => blRec.project_revenue
                                ,p_projfunc_currency_code       => blRec.projfunc_currency_code
                                ,p_projfunc_raw_cost            => blRec.projfunc_raw_cost
                                ,p_projfunc_burdened_cost       => blRec.projfunc_burdened_cost
                                ,p_projfunc_revenue             => blRec.projfunc_revenue
				,p_rep_line_mode                => 'POSITIVE_ENTRY'
                                ,x_msg_data                     => l_rep_msg_data
                                ,x_return_status                => l_rep_return_status
                                );
Line: 9869

        print_msg('Leaving BLK_update_budget_lines:x_return_status : '||x_return_status);
Line: 9880

                ,p_procedure_name => 'BLK_update_budget_lines' );
Line: 9889

END BLK_update_budget_lines;
Line: 9892

/*Bug 4224464.This procedure update_dffcols would be called to insert into pa_fp_rollup_tmp
 * all those budget lines which are not already present in pa_fp_rollup_tmp.
 * These lines would be the ones with no changes to qty/amnt and rate columns.
 * The lines with changes to qty/amnt and rate columns would not be processed by this API
 * as earlier call to copy_blattributes would have handled theselines  Also using the
 * same signature for this API as used for copy_blattributes above.
 */
PROCEDURE update_dffcols(
                 p_budget_verson_id               IN  Number
                ,p_source_context                 IN  Varchar2
                ,p_calling_module                 IN  Varchar2
                ,p_apply_progress_flag            IN Varchar2
                ,x_return_status                  OUT NOCOPY varchar2
                ,x_msg_count                      OUT NOCOPY NUMBER
                ,x_msg_data                       OUT NOCOPY varchar2
                 ) IS

        /* This cursor picks budget line attributes which needs to be retained and updated even if there was no change detected by
           core calculate api flow -- that is, no qty/amt/rate changed */
        CURSOR blAttribDetails IS
        SELECT /*+ INDEX(BL PA_BUDGET_LINES_U1) */ cache.resource_assignment_id
              ,cache.start_date
              ,cache.period_name
              ,cache.end_Date
              ,cache.budget_version_id
              ,bl.budget_line_id
              ,bl.quantity
              ,bl.txn_raw_cost
              ,bl.txn_burdened_cost
              ,bl.txn_revenue
              ,bl.init_quantity
              ,bl.txn_init_raw_cost
              ,bl.txn_init_burdened_cost
              ,bl.txn_init_revenue
              ,bl.txn_cost_rate_override
              ,bl.burden_cost_rate_override
              ,bl.txn_bill_rate_override
              ,bl.raw_cost
              ,bl.burdened_cost
              ,bl.revenue
              ,bl.cost_rejection_code
              ,bl.revenue_rejection_code
              ,bl.burden_rejection_code
              ,bl.project_raw_cost
              ,bl.project_burdened_cost
              ,bl.project_revenue
              ,bl.txn_markup_percent
              ,bl.txn_standard_bill_rate
              ,bl.txn_standard_cost_rate
              ,bl.burden_cost_rate
              ,bl.cost_ind_compiled_set_id
              ,bl.init_raw_cost
              ,bl.init_burdened_cost
              ,bl.init_revenue
              ,bl.project_init_raw_cost
              ,bl.project_init_burdened_cost
              ,bl.project_init_revenue
              ,cache.txn_currency_code
              ,cache.projfunc_currency_code
              ,cache.PROJECT_CURRENCY_CODE
              ,decode(cache.PROJECT_COST_RATE_TYPE,      null, bl.PROJECT_COST_RATE_TYPE, FND_API.G_MISS_CHAR, null, cache.PROJECT_COST_RATE_TYPE)
              ,decode(cache.PROJECT_COST_EXCHANGE_RATE,  null, bl.project_cost_exchange_rate, FND_API.G_MISS_NUM, null, cache.PROJECT_COST_EXCHANGE_RATE)
              ,decode(cache.PROJECT_COST_RATE_DATE_TYPE, null, bl.project_cost_rate_date_type, FND_API.G_MISS_CHAR, null, cache.PROJECT_COST_RATE_DATE_TYPE)
              ,decode(cache.PROJECT_COST_RATE_DATE,      null, bl.project_cost_rate_date, FND_API.G_MISS_DATE, null, cache.PROJECT_COST_RATE_DATE)
              ,decode(cache.PROJECT_REV_RATE_TYPE,       null, bl.project_rev_rate_type, FND_API.G_MISS_CHAR, null, cache.PROJECT_REV_RATE_TYPE)
              ,decode(cache.PROJECT_REV_EXCHANGE_RATE,   null, bl.project_rev_exchange_rate, FND_API.G_MISS_NUM, null, cache.PROJECT_REV_EXCHANGE_RATE)
              ,decode(cache.PROJECT_REV_RATE_DATE_TYPE,  null, bl.project_rev_rate_date_type, FND_API.G_MISS_CHAR, null, cache.PROJECT_REV_RATE_DATE_TYPE)
              ,decode(cache.PROJECT_REV_RATE_DATE,       null, bl.project_rev_rate_date, FND_API.G_MISS_DATE, null, cache.PROJECT_REV_RATE_DATE)
              ,decode(cache.PROJFUNC_COST_RATE_TYPE,     null, bl.projfunc_cost_rate_type, FND_API.G_MISS_CHAR, null, cache.PROJFUNC_COST_RATE_TYPE)
              ,decode(cache.PROJFUNC_COST_EXCHANGE_RATE, null, bl.projfunc_cost_exchange_rate, FND_API.G_MISS_NUM, null, cache.PROJFUNC_COST_EXCHANGE_RATE)
              ,decode(cache.PROJFUNC_COST_RATE_DATE_TYPE,null, bl.projfunc_cost_rate_date_type, FND_API.G_MISS_CHAR, null, cache.PROJFUNC_COST_RATE_DATE_TYPE)
              ,decode(cache.PROJFUNC_COST_RATE_DATE,     null, bl.projfunc_cost_rate_date, FND_API.G_MISS_DATE, null, cache.PROJFUNC_COST_RATE_DATE)
              ,decode(cache.PROJFUNC_REV_RATE_TYPE,      null, bl.projfunc_rev_rate_type, FND_API.G_MISS_CHAR, null, cache.PROJFUNC_REV_RATE_TYPE)
              ,decode(cache.PROJFUNC_REV_EXCHANGE_RATE,  null, bl.projfunc_rev_exchange_rate, FND_API.G_MISS_NUM, null, cache.PROJFUNC_REV_EXCHANGE_RATE)
              ,decode(cache.PROJFUNC_REV_RATE_DATE_TYPE, null, bl.projfunc_rev_rate_date_type, FND_API.G_MISS_CHAR, null, cache.PROJFUNC_REV_RATE_DATE_TYPE)
              ,decode(cache.PROJFUNC_REV_RATE_DATE,      null, bl.projfunc_rev_rate_date, FND_API.G_MISS_DATE, null, cache.PROJFUNC_REV_RATE_DATE)
              ,decode(cache.CHANGE_REASON_CODE,          null, bl.change_reason_code, FND_API.G_MISS_CHAR, null, cache.CHANGE_REASON_CODE)
              ,decode(cache.DESCRIPTION          ,null, bl.DESCRIPTION, FND_API.G_MISS_CHAR, null, cache.DESCRIPTION)
              ,decode(cache.ATTRIBUTE_CATEGORY   ,null, bl.ATTRIBUTE_CATEGORY, FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE_CATEGORY)
              ,decode(cache.ATTRIBUTE1           ,null, bl.ATTRIBUTE1,  FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE1)
              ,decode(cache.ATTRIBUTE2           ,null, bl.ATTRIBUTE2,  FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE2)
              ,decode(cache.ATTRIBUTE3           ,null, bl.ATTRIBUTE3,  FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE3)
              ,decode(cache.ATTRIBUTE4           ,null, bl.ATTRIBUTE4,  FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE4)
              ,decode(cache.ATTRIBUTE5           ,null, bl.ATTRIBUTE5,  FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE5)
              ,decode(cache.ATTRIBUTE6           ,null, bl.ATTRIBUTE6,  FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE6)
              ,decode(cache.ATTRIBUTE7           ,null, bl.ATTRIBUTE7,  FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE7)
              ,decode(cache.ATTRIBUTE8           ,null, bl.ATTRIBUTE8,  FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE8)
              ,decode(cache.ATTRIBUTE9           ,null, bl.ATTRIBUTE9,  FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE9)
              ,decode(cache.ATTRIBUTE10          ,null, bl.ATTRIBUTE10, FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE10)
              ,decode(cache.ATTRIBUTE11          ,null, bl.ATTRIBUTE11, FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE11)
              ,decode(cache.ATTRIBUTE12          ,null, bl.ATTRIBUTE12, FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE12)
              ,decode(cache.ATTRIBUTE13          ,null, bl.ATTRIBUTE13, FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE13)
              ,decode(cache.ATTRIBUTE14          ,null, bl.ATTRIBUTE14, FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE14)
              ,decode(cache.ATTRIBUTE15          ,null, bl.ATTRIBUTE15, FND_API.G_MISS_CHAR, null, cache.ATTRIBUTE15)
              ,cache.RAW_COST_SOURCE
              ,cache.BURDENED_COST_SOURCE
              ,cache.QUANTITY_SOURCE
              ,cache.REVENUE_SOURCE
              , decode(cache.PM_PRODUCT_CODE  ,null,bl.PM_PRODUCT_CODE, FND_API.G_MISS_CHAR, null, cache.PM_PRODUCT_CODE)
              , decode(cache.PM_BUDGET_LINE_REFERENCE ,null,bl.PM_BUDGET_LINE_REFERENCE, FND_API.G_MISS_CHAR, null, cache.PM_BUDGET_LINE_REFERENCE)
              , cache.CODE_COMBINATION_ID
              , cache.CCID_GEN_STATUS_CODE
              , cache.CCID_GEN_REJ_MESSAGE
              , cache.BORROWED_REVENUE
              , cache.TP_REVENUE_IN
              , cache.TP_REVENUE_OUT
              , cache.REVENUE_ADJ
              , cache.LENT_RESOURCE_COST
              , cache.TP_COST_IN
              , cache.TP_COST_OUT
              , cache.COST_ADJ
              , cache.UNASSIGNED_TIME_COST
              , cache.UTILIZATION_PERCENT
              , cache.UTILIZATION_HOURS
              , cache.UTILIZATION_ADJ
              , cache.CAPACITY
              , cache.HEAD_COUNT
              , cache.HEAD_COUNT_ADJ
              , cache.BUCKETING_PERIOD_CODE
              , cache.TXN_DISCOUNT_PERCENTAGE
              , cache.TRANSFER_PRICE_RATE
              , cache.BL_CREATED_BY
              , cache.BL_CREATION_DATE
              FROM   pa_fp_spread_calc_tmp1 cache, pa_budget_lines bl
              WHERE  cache.budget_version_id = p_budget_verson_id
              AND    cache.budget_version_id = bl.budget_version_id
              AND    cache.resource_assignment_id = bl.resource_assignment_id
              AND    cache.txn_currency_code = bl.txn_currency_code
              AND    cache.start_date = bl.start_date
            /*If a new budget line (not exists in pa_budget_lines) is attempted to be created with all amts/qty/rate as null but
             * with dffs/mc/change reason, from amg flow, that budget line would not be selected due to the join with pa_budget_lines.
             * This is only intended as budget lines with null amts/qty are not maintained in pa_budget_lines any more.
             */
              AND    NOT EXISTS (SELECT 'X' FROM pa_fp_rollup_tmp  tmp WHERE tmp.budget_version_id = cache.budget_version_id
              AND    tmp.resource_assignment_id = cache.resource_assignment_id
              AND    tmp.txn_currency_code = cache.txn_currency_code
              AND    tmp.start_date = cache.start_date);
Line: 10137

                        l_resource_assignment_id_tab.delete;
Line: 10138

            l_start_date_tab.delete;
Line: 10139

            l_period_name_tab.delete;
Line: 10140

            l_end_date_tab.delete;
Line: 10141

            l_budget_line_id_tab.delete;
Line: 10142

            l_quantity_tab.delete;
Line: 10143

                    l_txn_raw_cost_tab.delete;
Line: 10144

                        l_txn_burdened_cost_tab.delete;
Line: 10145

                    l_txn_revenue_tab.delete;
Line: 10146

                    l_init_quantity_tab.delete;
Line: 10147

                    l_txn_init_raw_cost_tab.delete;
Line: 10148

                    l_txn_init_burdened_cost_tab.delete;
Line: 10149

                    l_txn_init_revenue_tab.delete;
Line: 10150

                    l_cost_rate_override_tab.delete;
Line: 10151

            l_burden_rate_override_tab.delete;
Line: 10152

            l_bill_rate_override_tab.delete;
Line: 10153

            l_pjfc_raw_cost_tab.delete;
Line: 10154

            l_pjfc_burden_cost_tab.delete;
Line: 10155

            l_pjfc_revenue_tab.delete;
Line: 10156

            l_cost_rejection_tab.delete;
Line: 10157

            l_rev_rejection_tab.delete;
Line: 10158

            l_burden_rejection_tab.delete;
Line: 10159

            l_project_raw_cost_tab.delete;
Line: 10160

            l_project_burdened_cost_tab.delete;
Line: 10161

            l_project_revenue_tab.delete;
Line: 10162

            l_markup_percentage_tab.delete;
Line: 10163

            l_bill_rate_tab.delete;
Line: 10164

            l_cost_rate_tab.delete;
Line: 10165

            l_burden_cost_rate_tab.delete;
Line: 10166

            l_compiled_set_id_tab.delete;
Line: 10167

            l_init_raw_cost_tab.delete;
Line: 10168

            l_init_burdened_cost_tab.delete;
Line: 10169

            l_init_revenue_tab.delete;
Line: 10170

            l_project_init_raw_cost_tab.delete;
Line: 10171

            l_prjct_init_burdened_cost_tab.delete;
Line: 10172

            l_project_init_revenue_tab.delete;
Line: 10173

            l_txn_currency_code_tab.delete;
Line: 10174

            l_projfunc_currency_code_tab.delete;
Line: 10175

            l_PROJECT_CURRENCY_CODE_tab.delete;
Line: 10176

            l_PROJECT_COST_RATE_TYPE_tab.delete;
Line: 10177

            l_PROJECT_COST_EXG_RATE_tab.delete;
Line: 10178

            l_PROJECT_COST_DATE_TYPE_tab.delete;
Line: 10179

            l_PROJECT_COST_RATE_DATE_tab.delete;
Line: 10180

            l_PROJECT_REV_RATE_TYPE_tab.delete;
Line: 10181

            l_PROJECT_REV_EXG_RATE_tab.delete;
Line: 10182

            l_PROJECT_REV_DATE_TYPE_tab.delete;
Line: 10183

            l_PROJECT_REV_RATE_DATE_tab.delete;
Line: 10184

            l_PROJFUNC_COST_RATE_TYPE_tab.delete;
Line: 10185

            l_PROJFUNC_COST_EXG_RATE_tab.delete;
Line: 10186

            l_PROJFUNC_COST_DATE_TYPE_tab.delete;
Line: 10187

            l_PROJFUNC_COST_RATE_DATE_tab.delete;
Line: 10188

            l_PROJFUNC_REV_RATE_TYPE_tab.delete;
Line: 10189

            l_PROJFUNC_REV_EXG_RATE_tab.delete;
Line: 10190

            l_PROJFUNC_REV_DATE_TYPE_tab.delete;
Line: 10191

            l_PROJFUNC_REV_RATE_DATE_tab.delete;
Line: 10192

            l_CHANGE_REASON_CODE_tab.delete;
Line: 10193

            l_DESCRIPTION_tab.delete;
Line: 10194

            l_ATTRIBUTE_CATEGORY_tab.delete;
Line: 10195

            l_ATTRIBUTE1_tab.delete;
Line: 10196

            l_ATTRIBUTE2_tab.delete;
Line: 10197

            l_ATTRIBUTE3_tab.delete;
Line: 10198

            l_ATTRIBUTE4_tab.delete;
Line: 10199

            l_ATTRIBUTE5_tab.delete;
Line: 10200

            l_ATTRIBUTE6_tab.delete;
Line: 10201

            l_ATTRIBUTE7_tab.delete;
Line: 10202

            l_ATTRIBUTE8_tab.delete;
Line: 10203

            l_ATTRIBUTE9_tab.delete;
Line: 10204

            l_ATTRIBUTE10_tab.delete;
Line: 10205

            l_ATTRIBUTE11_tab.delete;
Line: 10206

            l_ATTRIBUTE12_tab.delete;
Line: 10207

            l_ATTRIBUTE13_tab.delete;
Line: 10208

            l_ATTRIBUTE14_tab.delete;
Line: 10209

            l_ATTRIBUTE15_tab.delete;
Line: 10210

            l_RAW_COST_SOURCE_tab.delete;
Line: 10211

            l_BURDENED_COST_SOURCE_tab.delete;
Line: 10212

            l_QUANTITY_SOURCE_tab.delete;
Line: 10213

            l_REVENUE_SOURCE_tab.delete;
Line: 10214

            l_PM_PRODUCT_CODE_tab.delete;
Line: 10215

            l_PM_BUDGET_LINE_REFERENCE_tab.delete;
Line: 10216

            l_CODE_COMBINATION_ID_tab.delete;
Line: 10217

            l_CCID_GEN_STATUS_CODE_tab.delete;
Line: 10218

            l_CCID_GEN_REJ_MESSAGE_tab.delete;
Line: 10219

            l_BORROWED_REVENUE_tab.delete;
Line: 10220

            l_TP_REVENUE_IN_tab.delete;
Line: 10221

            l_TP_REVENUE_OUT_tab.delete;
Line: 10222

            l_REVENUE_ADJ_tab.delete;
Line: 10223

            l_LENT_RESOURCE_COST_tab.delete;
Line: 10224

            l_TP_COST_IN_tab.delete;
Line: 10225

            l_TP_COST_OUT_tab.delete;
Line: 10226

            l_COST_ADJ_tab.delete;
Line: 10227

            l_UNASSIGNED_TIME_COST_tab.delete;
Line: 10228

            l_UTILIZATION_PERCENT_tab.delete;
Line: 10229

            l_UTILIZATION_HOURS_tab.delete;
Line: 10230

            l_UTILIZATION_ADJ_tab.delete;
Line: 10231

            l_CAPACITY_tab.delete;
Line: 10232

            l_HEAD_COUNT_tab.delete;
Line: 10233

            l_HEAD_COUNT_ADJ_tab.delete;
Line: 10234

            l_BUCKETING_PERIOD_CODE_tab.delete;
Line: 10235

            l_TXN_DISCOUNT_PERCENTAGE_tab.delete;
Line: 10236

            l_TRANSFER_PRICE_RATE_tab.delete;
Line: 10237

            l_BL_CREATED_BY_tab.delete;
Line: 10238

            l_BL_CREATION_DATE_tab.delete;
Line: 10239

            l_budget_version_id_tab.delete;
Line: 10247

                pa_debug.init_err_stack('PA_FP_CALC_UTILS.update_dffcols');
Line: 10364

                        INSERT INTO pa_fp_rollup_tmp tmp
            (
             budget_version_id
            ,resource_assignment_id
            ,start_date
            ,period_name
            ,end_date
            ,budget_line_id
            ,quantity
            ,txn_raw_cost
            ,txn_burdened_cost
            ,txn_revenue
            ,init_quantity
            ,txn_init_raw_cost
            ,txn_init_burdened_cost
            ,txn_init_revenue
            ,rw_cost_rate_override
            ,burden_cost_rate_override
            ,bill_rate_override
            ,projfunc_raw_cost
            ,projfunc_burdened_cost
            ,projfunc_revenue
            ,cost_rejection_code
            ,revenue_rejection_code
            ,burden_rejection_code
            ,project_raw_cost
            ,project_burdened_cost
            ,project_revenue
            ,bill_markup_percentage
            ,bill_rate
            ,cost_rate
            ,burden_cost_rate
            ,cost_ind_compiled_set_id
            ,init_raw_cost
            ,init_burdened_cost
            ,init_revenue
            ,project_init_raw_cost
            ,project_init_burdened_cost
            ,project_init_revenue
            ,txn_currency_code
            ,projfunc_currency_code
            ,project_currency_code
            ,project_cost_rate_type
            ,project_cost_exchange_rate
            ,project_cost_rate_date_type
            ,project_cost_rate_date
            ,project_rev_rate_type
            ,project_rev_exchange_rate
            ,project_rev_rate_date_type
            ,project_rev_rate_date
            ,projfunc_cost_rate_type
            ,projfunc_cost_exchange_rate
            ,projfunc_cost_rate_date_type
            ,projfunc_cost_rate_date
            ,projfunc_rev_rate_type
            ,projfunc_rev_exchange_rate
            ,projfunc_rev_rate_date_type
            ,projfunc_rev_rate_date
            ,CHANGE_REASON_CODE
            ,DESCRIPTION
            ,ATTRIBUTE_CATEGORY
            ,ATTRIBUTE1
            ,ATTRIBUTE2
            ,ATTRIBUTE3
            ,ATTRIBUTE4
            ,ATTRIBUTE5
            ,ATTRIBUTE6
            ,ATTRIBUTE7
            ,ATTRIBUTE8
            ,ATTRIBUTE9
            ,ATTRIBUTE10
            ,ATTRIBUTE11
            ,ATTRIBUTE12
            ,ATTRIBUTE13
            ,ATTRIBUTE14
            ,ATTRIBUTE15
            ,RAW_COST_SOURCE
            ,BURDENED_COST_SOURCE
            ,QUANTITY_SOURCE
            ,REVENUE_SOURCE
            ,PM_PRODUCT_CODE
            ,PM_BUDGET_LINE_REFERENCE
            ,CODE_COMBINATION_ID
            ,CCID_GEN_STATUS_CODE
            ,CCID_GEN_REJ_MESSAGE
            ,BORROWED_REVENUE
            ,TP_REVENUE_IN
            ,TP_REVENUE_OUT
            ,REVENUE_ADJ
            ,LENT_RESOURCE_COST
            ,TP_COST_IN
            ,TP_COST_OUT
            ,COST_ADJ
            ,UNASSIGNED_TIME_COST
            ,UTILIZATION_PERCENT
            ,UTILIZATION_HOURS
            ,UTILIZATION_ADJ
            ,CAPACITY
            ,HEAD_COUNT
            ,HEAD_COUNT_ADJ
            ,BUCKETING_PERIOD_CODE
            ,TXN_DISCOUNT_PERCENTAGE
            ,TRANSFER_PRICE_RATE
            ,BL_CREATED_BY
            ,BL_CREATION_DATE
            )
            VALUES
            (
             l_budget_version_id_tab(i)
            ,l_resource_assignment_id_tab(i)
            ,l_start_date_tab(i)
            ,l_period_name_tab(i)
            ,l_end_date_tab(i)
            ,l_budget_line_id_tab(i)
            ,l_quantity_tab(i)
            ,l_txn_raw_cost_tab(i)
            ,l_txn_burdened_cost_tab(i)
            ,l_txn_revenue_tab(i)
            ,l_init_quantity_tab(i)
            ,l_txn_init_raw_cost_tab(i)
            ,l_txn_init_burdened_cost_tab(i)
            ,l_txn_init_revenue_tab(i)
            ,l_cost_rate_override_tab(i)
            ,l_burden_rate_override_tab(i)
            ,l_bill_rate_override_tab(i)
            ,l_pjfc_raw_cost_tab(i)
            ,l_pjfc_burden_cost_tab(i)
            ,l_pjfc_revenue_tab(i)
            ,l_cost_rejection_tab(i)
            ,l_rev_rejection_tab(i)
            ,l_burden_rejection_tab(i)
            ,l_project_raw_cost_tab(i)
            ,l_project_burdened_cost_tab(i)
            ,l_project_revenue_tab(i)
            ,l_markup_percentage_tab(i)
            ,l_bill_rate_tab(i)
            ,l_cost_rate_tab(i)
            ,l_burden_cost_rate_tab(i)
            ,l_compiled_set_id_tab(i)
            ,l_init_raw_cost_tab(i)
            ,l_init_burdened_cost_tab(i)
            ,l_init_revenue_tab(i)
            ,l_project_init_raw_cost_tab(i)
            ,l_prjct_init_burdened_cost_tab(i)
            ,l_project_init_revenue_tab(i)
            ,l_txn_currency_code_tab(i)
            ,l_projfunc_currency_code_tab(i)
            ,l_PROJECT_CURRENCY_CODE_tab(i)
            ,l_PROJECT_COST_RATE_TYPE_tab(i)
            ,l_PROJECT_COST_EXG_RATE_tab(i)
            ,l_PROJECT_COST_DATE_TYPE_tab(i)
            ,l_PROJECT_COST_RATE_DATE_tab(i)
            ,l_PROJECT_REV_RATE_TYPE_tab(i)
            ,l_PROJECT_REV_EXG_RATE_tab(i)
            ,l_PROJECT_REV_DATE_TYPE_tab(i)
            ,l_PROJECT_REV_RATE_DATE_tab(i)
            ,l_PROJFUNC_COST_RATE_TYPE_tab(i)
            ,l_PROJFUNC_COST_EXG_RATE_tab(i)
            ,l_PROJFUNC_COST_DATE_TYPE_tab(i)
            ,l_PROJFUNC_COST_RATE_DATE_tab(i)
            ,l_PROJFUNC_REV_RATE_TYPE_tab(i)
            ,l_PROJFUNC_REV_EXG_RATE_tab(i)
            ,l_PROJFUNC_REV_DATE_TYPE_tab(i)
            ,l_PROJFUNC_REV_RATE_DATE_tab(i)
            ,l_CHANGE_REASON_CODE_tab(i)
            ,l_DESCRIPTION_tab(i)
            ,l_ATTRIBUTE_CATEGORY_tab(i)
            ,l_ATTRIBUTE1_tab(i)
            ,l_ATTRIBUTE2_tab(i)
            ,l_ATTRIBUTE3_tab(i)
            ,l_ATTRIBUTE4_tab(i)
            ,l_ATTRIBUTE5_tab(i)
            ,l_ATTRIBUTE6_tab(i)
            ,l_ATTRIBUTE7_tab(i)
            ,l_ATTRIBUTE8_tab(i)
            ,l_ATTRIBUTE9_tab(i)
            ,l_ATTRIBUTE10_tab(i)
            ,l_ATTRIBUTE11_tab(i)
            ,l_ATTRIBUTE12_tab(i)
            ,l_ATTRIBUTE13_tab(i)
            ,l_ATTRIBUTE14_tab(i)
            ,l_ATTRIBUTE15_tab(i)
            ,l_RAW_COST_SOURCE_tab(i)
            ,l_BURDENED_COST_SOURCE_tab(i)
            ,l_QUANTITY_SOURCE_tab(i)
            ,l_REVENUE_SOURCE_tab(i)
            ,l_PM_PRODUCT_CODE_tab(i)
            ,l_PM_BUDGET_LINE_REFERENCE_tab(i)
            ,l_CODE_COMBINATION_ID_tab(i)
            ,l_CCID_GEN_STATUS_CODE_tab(i)
            ,l_CCID_GEN_REJ_MESSAGE_tab(i)
            ,l_BORROWED_REVENUE_tab(i)
            ,l_TP_REVENUE_IN_tab(i)
            ,l_TP_REVENUE_OUT_tab(i)
            ,l_REVENUE_ADJ_tab(i)
            ,l_LENT_RESOURCE_COST_tab(i)
            ,l_TP_COST_IN_tab(i)
            ,l_TP_COST_OUT_tab(i)
            ,l_COST_ADJ_tab(i)
            ,l_UNASSIGNED_TIME_COST_tab(i)
            ,l_UTILIZATION_PERCENT_tab(i)
            ,l_UTILIZATION_HOURS_tab(i)
            ,l_UTILIZATION_ADJ_tab(i)
            ,l_CAPACITY_tab(i)
            ,l_HEAD_COUNT_tab(i)
            ,l_HEAD_COUNT_ADJ_tab(i)
            ,l_BUCKETING_PERIOD_CODE_tab(i)
            ,l_TXN_DISCOUNT_PERCENTAGE_tab(i)
            ,l_TRANSFER_PRICE_RATE_tab(i)
            ,l_BL_CREATED_BY_tab(i)
            ,l_BL_CREATION_DATE_tab(i) );
Line: 10593

                 ,p_procedure_name => 'update_dffcols');
Line: 10599

END update_dffcols;
Line: 10601

/*Bug:4272944: Added new procedure to insert zero qty budget lines from pa_fp_spread_calc_tmp1 to
*pa_budget_lines. This fix is done specific to Funding of Autobase line is failing.
*donot populate or use pa_fp_spread_calc_tmp1 table for any other purpose.
*Note: Calling API may populate this table only for AMG/MSP/Autobaseline purpose.
*/
PROCEDURE InsertFunding_ReqdLines
	( p_budget_verson_id               IN  Number
         ,p_source_context                 IN  Varchar2
         ,p_calling_module                 IN  Varchar2
         ,p_apply_progress_flag            IN  Varchar2
	 ,p_approved_rev_flag              IN  Varchar2
	 ,p_autoBaseLine_flag              IN  Varchar2
         ,x_return_status                  OUT NOCOPY varchar2
         ) IS

	CURSOR cur_tmp1Recs IS
	SELECT tmp.resource_assignment_id
		,tmp.txn_currency_code
		,tmp.start_date
		,tmp.end_date
		,tmp.period_name
		,pa_budget_lines_s.nextval
	FROM  pa_fp_spread_calc_tmp1 tmp
	WHERE tmp.budget_version_id = p_budget_verson_id;
Line: 10650

            l_resource_assignment_id_tab.delete;
Line: 10651

	    l_txn_cur_code_tab.delete;
Line: 10652

            l_start_date_tab.delete;
Line: 10653

            l_end_date_tab.delete;
Line: 10654

            l_period_name_tab.delete;
Line: 10655

	    l_budget_line_id_tab.delete;
Line: 10656

	    l_err_error_code_tab.delete;
Line: 10657

            l_err_budget_line_id_tab.delete;
Line: 10658

            l_err_raId_tab.delete;
Line: 10659

            l_err_txn_cur_tab.delete;
Line: 10660

            l_err_sdate_tab.delete;
Line: 10661

            l_err_edate_tab.delete;
Line: 10677

		--print_msg('Number of lines present in calc_tmp1 table inserted by calling api ['||l_budget_line_id_tab.COUNT||']');
Line: 10682

			INSERT INTO PA_BUDGET_LINES bl
            		(bl.BUDGET_LINE_ID
			,bl.RESOURCE_ASSIGNMENT_ID --resource_assignment_id
                         ,bl.BUDGET_VERSION_ID     --budget_version_id
                         ,bl.TXN_CURRENCY_CODE     --txn_currency_code
                         ,bl.QUANTITY              --total_qty
                         ,bl.TXN_RAW_COST          --total_raw_cost
                         ,bl.TXN_BURDENED_COST     --total_burdened_cost
                         ,bl.TXN_REVENUE           --total_revenue
                         ,bl.TXN_STANDARD_COST_RATE             --raw_cost_rate
                         ,bl.TXN_COST_RATE_OVERRIDE    --rw_cost_rate_override
                         ,bl.BURDEN_COST_RATE      --b_cost_rate
                         ,bl.BURDEN_COST_RATE_OVERRIDE --b_cost_rate_override
                         ,bl.TXN_STANDARD_BILL_RATE             --bill_rate
                         ,bl.TXN_BILL_RATE_OVERRIDE    --bill_rate_override
                         ,bl.START_DATE            --line_start_date
                         ,bl.END_DATE              --line_end_date
            		 ,bl.PERIOD_NAME
            		 ,bl.PROJECT_CURRENCY_CODE
            		 ,bl.PROJFUNC_CURRENCY_CODE
            		 ,bl.PROJECT_COST_RATE_TYPE
            		 ,bl.PROJECT_COST_EXCHANGE_RATE
            		 ,bl.PROJECT_COST_RATE_DATE_TYPE
            		 ,bl.PROJECT_COST_RATE_DATE
            		 ,bl.PROJECT_REV_RATE_TYPE
            		 ,bl.PROJECT_REV_EXCHANGE_RATE
            		 ,bl.PROJECT_REV_RATE_DATE_TYPE
            		 ,bl.PROJECT_REV_RATE_DATE
            		 ,bl.PROJFUNC_COST_RATE_TYPE
            		 ,bl.PROJFUNC_COST_EXCHANGE_RATE
            		 ,bl.PROJFUNC_COST_RATE_DATE_TYPE
            		 ,bl.PROJFUNC_COST_RATE_DATE
            		 ,bl.PROJFUNC_REV_RATE_TYPE
            		 ,bl.PROJFUNC_REV_EXCHANGE_RATE
            		 ,bl.PROJFUNC_REV_RATE_DATE_TYPE
            		 ,bl.PROJFUNC_REV_RATE_DATE
            		 ,bl.CHANGE_REASON_CODE
            		 ,bl.DESCRIPTION
            		 ,bl.ATTRIBUTE_CATEGORY
            		 ,bl.ATTRIBUTE1
            		 ,bl.ATTRIBUTE2
            		,bl.ATTRIBUTE3
            		,bl.ATTRIBUTE4
            		,bl.ATTRIBUTE5
            		,bl.ATTRIBUTE6
            		,bl.ATTRIBUTE7
            		,bl.ATTRIBUTE8
            		,bl.ATTRIBUTE9
            		,bl.ATTRIBUTE10
            		,bl.ATTRIBUTE11
            		,bl.ATTRIBUTE12
            		,bl.ATTRIBUTE13
            		,bl.ATTRIBUTE14
            		,bl.ATTRIBUTE15
            		,bl.RAW_COST_SOURCE
            		,bl.BURDENED_COST_SOURCE
            		,bl.QUANTITY_SOURCE
            		,bl.REVENUE_SOURCE
            		,bl.PM_PRODUCT_CODE
            		,bl.PM_BUDGET_LINE_REFERENCE
            		,bl.CODE_COMBINATION_ID
            		,bl.CCID_GEN_STATUS_CODE
            		,bl.CCID_GEN_REJ_MESSAGE
            		,bl.BORROWED_REVENUE
            		,bl.TP_REVENUE_IN
            		,bl.TP_REVENUE_OUT
            		,bl.REVENUE_ADJ
            		,bl.LENT_RESOURCE_COST
            		,bl.TP_COST_IN
            		,bl.TP_COST_OUT
            		,bl.COST_ADJ
            		,bl.UNASSIGNED_TIME_COST
            		,bl.UTILIZATION_PERCENT
			,bl.UTILIZATION_HOURS
            		,bl.UTILIZATION_ADJ
            		,bl.CAPACITY
            		,bl.HEAD_COUNT
            		,bl.HEAD_COUNT_ADJ
            		,bl.BUCKETING_PERIOD_CODE
            		,bl.TXN_DISCOUNT_PERCENTAGE
            		,bl.TRANSFER_PRICE_RATE
            		,bl.CREATED_BY
            		,bl.CREATION_DATE
			,bl.LAST_UPDATED_BY
			,bl.LAST_UPDATE_LOGIN
			,bl.LAST_UPDATE_DATE
				)
            		SELECT /*+ INDEX(TMP PA_FP_SPREAD_CALC_TMP1_N1) */ l_budget_line_id_tab(i)
			 ,tmp.RESOURCE_ASSIGNMENT_ID --resource_assignment_id
                         ,tmp.BUDGET_VERSION_ID     --budget_version_id
                         ,tmp.TXN_CURRENCY_CODE     --txn_currency_code
                         ,tmp.QUANTITY              --total_qty
                         ,tmp.TXN_RAW_COST          --total_raw_cost
                         ,tmp.TXN_BURDENED_COST     --total_burdened_cost
                         ,tmp.TXN_REVENUE           --total_revenue
                         ,tmp.COST_RATE             --raw_cost_rate
                         ,tmp.COST_RATE_OVERRIDE    --rw_cost_rate_override
                         ,tmp.BURDEN_COST_RATE      --b_cost_rate
                         ,tmp.BURDEN_COST_RATE_OVERRIDE --b_cost_rate_override
                         ,tmp.BILL_RATE             --bill_rate
                         ,tmp.BILL_RATE_OVERRIDE    --bill_rate_override
                         ,tmp.START_DATE            --line_start_date
                         ,tmp.END_DATE              --line_end_date
             		,tmp.PERIOD_NAME
            		,tmp.PROJECT_CURRENCY_CODE
            		,tmp.PROJFUNC_CURRENCY_CODE
            		,tmp.PROJECT_COST_RATE_TYPE
            		,tmp.PROJECT_COST_EXCHANGE_RATE
            		,tmp.PROJECT_COST_RATE_DATE_TYPE
            		,tmp.PROJECT_COST_RATE_DATE
            		,tmp.PROJECT_REV_RATE_TYPE
            		,tmp.PROJECT_REV_EXCHANGE_RATE
            		,tmp.PROJECT_REV_RATE_DATE_TYPE
            		,tmp.PROJECT_REV_RATE_DATE
            		,tmp.PROJFUNC_COST_RATE_TYPE
            		,tmp.PROJFUNC_COST_EXCHANGE_RATE
            		,tmp.PROJFUNC_COST_RATE_DATE_TYPE
            		,tmp.PROJFUNC_COST_RATE_DATE
            		,tmp.PROJFUNC_REV_RATE_TYPE
            		,tmp.PROJFUNC_REV_EXCHANGE_RATE
            		,tmp.PROJFUNC_REV_RATE_DATE_TYPE
            		,tmp.PROJFUNC_REV_RATE_DATE
            		,tmp.CHANGE_REASON_CODE
            		,tmp.DESCRIPTION
            		,tmp.ATTRIBUTE_CATEGORY
            		,tmp.ATTRIBUTE1
            		,tmp.ATTRIBUTE2
            		,tmp.ATTRIBUTE3
            		,tmp.ATTRIBUTE4
            		,tmp.ATTRIBUTE5
            		,tmp.ATTRIBUTE6
            		,tmp.ATTRIBUTE7
            		,tmp.ATTRIBUTE8
            		,tmp.ATTRIBUTE9
            		,tmp.ATTRIBUTE10
            		,tmp.ATTRIBUTE11
            		,tmp.ATTRIBUTE12
            		,tmp.ATTRIBUTE13
            		,tmp.ATTRIBUTE14
            		,tmp.ATTRIBUTE15
            		,NVL(tmp.RAW_COST_SOURCE,l_bl_source)
            		,NVL(tmp.BURDENED_COST_SOURCE,l_bl_source)
            		,NVL(tmp.QUANTITY_SOURCE,l_bl_source)
            		,NVL(tmp.REVENUE_SOURCE,l_bl_source)
            		,tmp.PM_PRODUCT_CODE
            		,tmp.PM_BUDGET_LINE_REFERENCE
            		,tmp.CODE_COMBINATION_ID
            		,tmp.CCID_GEN_STATUS_CODE
            		,tmp.CCID_GEN_REJ_MESSAGE
            		,tmp.BORROWED_REVENUE
            		,tmp.TP_REVENUE_IN
            		,tmp.TP_REVENUE_OUT
            		,tmp.REVENUE_ADJ
            		,tmp.LENT_RESOURCE_COST
            		,tmp.TP_COST_IN
            		,tmp.TP_COST_OUT
            		,tmp.COST_ADJ
            		,tmp.UNASSIGNED_TIME_COST
            		,tmp.UTILIZATION_PERCENT
            		,tmp.UTILIZATION_HOURS
            		,tmp.UTILIZATION_ADJ
            		,tmp.CAPACITY
            		,tmp.HEAD_COUNT
            		,tmp.HEAD_COUNT_ADJ
            		,tmp.BUCKETING_PERIOD_CODE
            		,tmp.TXN_DISCOUNT_PERCENTAGE
            		,tmp.TRANSFER_PRICE_RATE
            		,tmp.BL_CREATED_BY
            		,tmp.BL_CREATION_DATE
			,tmp.BL_CREATED_BY  --last updated by
			,tmp.BL_CREATED_BY  -- lastupdate login
			,trunc(sysdate)    -- last update dated
        		FROM PA_FP_SPREAD_CALC_TMP1 tmp
        		WHERE  tmp.resource_assignment_id = l_resource_assignment_id_tab(i)
        		AND   tmp.txn_currency_code =	l_txn_cur_code_tab(i)
			AND   tmp.start_date = 	l_start_date_tab(i);
Line: 10902

	print_msg('Return Status of InsertFunding_ReqdLines api ['||x_return_status||']');
Line: 10908

                print_msg('Error occured in InsertFunding_ReqdLines['|| SQLCODE||SQLERRM);
Line: 10911

                 ,p_procedure_name => 'InsertFunding_ReqdLines');
Line: 10914

END InsertFunding_ReqdLines;