3127: ) IS
3128:
3129:
3130: -----------------------------------------------------------------------------------------------------
3131: -- This CURSOR selects AND sums up all the balances for a particular resource FROM pa_bc_balances table
3132: -- between the start date AND end date RESOURCE CURSOR
3133: -----------------------------------------------------------------------------------------------------
3134: CURSOR res_level_bal (l_rlmi number) is
3135: SELECT nvl(sum(BUDGET_PERIOD_TO_DATE * decode(balance_type,'BGT',1,0)) ,0),
3142: 'CC_C_CO',1,
3143: 'CC_P_PAY',1,
3144: 'CC_P_CO',1,
3145: 0)),0)
3146: FROM pa_bc_balances pb
3147: WHERE pb.project_id = p_record.project_id
3148: /* Bug fix: 3450756 Start */
3149: ---AND pb.task_id = p_record.bud_task_id
3150: AND ( (pb.task_id = p_record.bud_task_id and pb.balance_type in ('BGT'))
3242: );
3243:
3244:
3245: --------------------------------------------------------------------------------------
3246: -- This CURSOR select the sum of amount from pa bc balances for the given parent
3247: -- resource id between the start and end date - RESOURCE GROUP CURSOR
3248: --------------------------------------------------------------------------------------
3249: CURSOR res_grp_level_bal (l_parent_member_id number,l_bud_rlmi number) is
3250: SELECT nvl(sum(BUDGET_PERIOD_TO_DATE *decode(balance_type,'BGT',1,0)) ,0),
3257: 'CC_C_CO',1,
3258: 'CC_P_PAY',1,
3259: 'CC_P_CO',1,
3260: 0)),0)
3261: FROM pa_bc_balances pb
3262: WHERE pb.project_id = p_record.project_id
3263: /* Bug fix: 3450756 Start */
3264: ---AND pb.task_id = p_record.bud_task_id
3265: AND ( (pb.task_id = p_record.bud_task_id and pb.balance_type in ('BGT'))
3318: 'CC_C_CO',1,
3319: 'CC_P_PAY',1,
3320: 'CC_P_CO',1,
3321: 0)),0)
3322: FROM pa_bc_balances pb
3323: WHERE pb.project_id = p_record.project_id
3324: /* Bug fix: 3450756 Start */
3325: ---AND pb.task_id = p_record.bud_task_id
3326: AND ( (pb.task_id = p_record.bud_task_id and pb.balance_type in ('BGT'))
3414: )
3415: );
3416:
3417: -----------------------------------------------------------------------------------------------------
3418: -- This CURSOR selects AND sums up all the balances for a particular task FROM pa_bc_balances table
3419: -- between the start date AND end date and this CURSOR is opened when funds checking rolls up to
3420: -- task level FROM resource level
3421: -----------------------------------------------------------------------------------------------------
3422: CURSOR task_level_bal (l_task_id number)is
3430: 'CC_C_CO',1,
3431: 'CC_P_PAY',1,
3432: 'CC_P_CO',1,
3433: 0)),0)
3434: FROM pa_bc_balances pb
3435: WHERE pb.project_id = p_record.project_id
3436: AND pb.budget_version_id = p_record.budget_version_id
3437: /* Bug fix: 3450756 Start */
3438: --- AND ( ( pb.task_id = l_task_id AND pb.balance_type='BGT')
3513: );
3514:
3515:
3516: -----------------------------------------------------------------------------------------------------
3517: -- This CURSOR selects AND sums up all the balances for a particular top task FROM pa_bc_balances table
3518: -- between the start date AND end date
3519: -----------------------------------------------------------------------------------------------------
3520: CURSOR top_task_level_bal (l_bud_task_id number,l_top_task_id number) is
3521: SELECT nvl(sum(BUDGET_PERIOD_TO_DATE *decode(balance_type,'BGT',1,0)) ,0),
3528: 'CC_C_CO',1,
3529: 'CC_P_PAY',1,
3530: 'CC_P_CO',1,
3531: 0)),0)
3532: FROM pa_bc_balances pb
3533: WHERE pb.project_id = p_record.project_id
3534: AND ((pb.task_id = l_bud_task_id AND pb.balance_type='BGT' AND pb.task_id = l_top_task_id)
3535: OR (pb.top_task_id = l_top_task_id AND pb.balance_type not in ('REV','BGT'))
3536: )
3543: decode(p_record.time_phased_type_code,'N', pb.end_date, trunc(p_end_date));
3544:
3545:
3546: -----------------------------------------------------------------------------------------------------
3547: -- This CURSOR selects AND sums up all the balances for a particular task FROM pa_bc_balances table
3548: -- between the start date AND end date and rollup TASKROLLUP CURSOR
3549: -----------------------------------------------------------------------------------------------------
3550: CURSOR task_rollup_bal (l_top_task_id number) is
3551: SELECT nvl(sum(BUDGET_PERIOD_TO_DATE *decode(balance_type,'BGT',1,0)) ,0),
3558: 'CC_C_CO',1,
3559: 'CC_P_PAY',1,
3560: 'CC_P_CO',1,
3561: 0)),0)
3562: FROM pa_bc_balances pb
3563: WHERE pb.project_id = p_record.project_id
3564: AND ((pb.top_task_id = l_top_task_id and pb.balance_type not in ('REV','BGT'))
3565: OR (pb.top_task_id = l_top_task_id AND pb.balance_type='BGT'))
3566: AND pb.budget_version_id = p_record.budget_version_id
3612: and substr(nvl(pbc.result_code,'P'),1,1)= 'P'
3613: )
3614: );
3615: -----------------------------------------------------------------------------------------------------
3616: --This CURSOR selects AND sums up all the balances for a particular project FROM pa_bc_balances table
3617: --between the start date AND end date and this CURSOR is opened when funds checking rolles up to
3618: --the project level FROM task level
3619: -----------------------------------------------------------------------------------------------------
3620: CURSOR project_level_bal is
3628: 'CC_C_CO',1,
3629: 'CC_P_PAY',1,
3630: 'CC_P_CO',1,
3631: 0)),0)
3632: FROM pa_bc_balances pb
3633: WHERE pb.project_id = p_record.project_id
3634: AND pb.budget_version_id = p_record.budget_version_id
3635: AND pb.start_date between
3636: decode(p_record.time_phased_type_code,'N', pb.start_date, trunc(p_start_date)) AND
6421: ---------------------------------------------------------------------------------------
6422: -- api to calulate budgeted resource list id in packet for a budget version,
6423: -- entry level code and budget entry method and update pa_bc_packets for the
6424: -- set of records having the same combinations.The bud_res_list_id is required
6425: -- to get the resource group level balances from the pa_bc_balances
6426: ---------------------------------------------------------------------------------------
6427: FUNCTION bud_res_list_id_update
6428: ( p_project_id IN NUMBER,
6429: p_budget_version_id IN NUMBER,
6435:
6436: ----------------------------------------------------------------------------
6437: -- find the correct resource list id for funds checking.
6438: -- if no budget at the resource level then check the budget at the parent
6439: ---level and get the resource list id from pa_bc_balances
6440: ---------------------------------------------------------------------------
6441: CURSOR cur_bud_res_list_id IS
6442: SELECT pr.resource_list_id,
6443: pr.parent_member_id
6449: CURSOR cur_res_member(v_project_id NUMBER,
6450: v_bdgt_version_id NUMBER,
6451: v_res_list_mem_id NUMBER) IS
6452: SELECT resource_list_member_id
6453: FROM pa_bc_balances
6454: WHERE budget_version_id = v_bdgt_version_id
6455: AND project_id = v_project_id
6456: AND resource_list_member_id = v_res_list_mem_id
6457: AND balance_type = 'BGT';
6462: CURSOR cur_parent_res_member(v_project_id NUMBER,
6463: v_bdgt_version_id NUMBER,
6464: v_parent_res_list_mem_id NUMBER) IS
6465: SELECT resource_list_member_id
6466: FROM pa_bc_balances
6467: WHERE budget_version_id = v_bdgt_version_id
6468: ANd project_id = v_project_id
6469: AND resource_list_member_id = v_parent_res_list_mem_id
6470: AND balance_type = 'BGT';
6514: BEGIN
6515:
6516: SELECT pb.resource_list_member_id
6517: INTO l_bud_res_list_member_id
6518: FROM pa_bc_balances pb
6519: WHERE pb.budget_version_id = p_budget_version_id
6520: AND pb.project_id = p_project_id
6521: AND balance_type = 'BGT'
6522: AND ROWNUM = 1;
6577: CURSOR cur_low_task_id( l_project_id NUMBER,
6578: l_task_id NUMBER,
6579: l_bdgt_version_id NUMBER) IS
6580: SELECT task_id
6581: FROM pa_bc_balances
6582: WHERE budget_version_id = l_bdgt_version_id
6583: AND project_id = l_project_id
6584: AND task_id = l_task_id
6585: AND balance_type = 'BGT';
6588: CURSOR cur_top_task_id( l_project_id NUMBER,
6589: l_task_id NUMBER,
6590: l_bdgt_version_id NUMBER) IS
6591: SELECT task_id
6592: FROM pa_bc_balances
6593: WHERE budget_version_id = l_bdgt_version_id
6594: AND project_id = l_project_id
6595: AND balance_type = 'BGT'
6596: AND task_id = (SELECT top_task_id
6628: Elsif p_entry_level_code = 'M' then
6629:
6630: ---------------------------------------------------------------------------------
6631: -- if the budget entry level = 'M' update by record.first select the budget task id
6632: -- (LOW TASK)based on the project,task,budget version from pa_bc_balances if not found then
6633: -- select the budget task id(TOP TASK) based on the project,task,budget version from
6634: -- pa_bc_balacnes for the toptask in pa_tasks
6635: -------------------------------------------------------------------------------------
6636: OPEN cur_low_task_id( p_project_id,
7496: -- fail due to a resource mapping error.
7497: -------------------------------------------------------------------------------------
7498: CURSOR get_non_cat_rlmi(v_bdgt_ver_id NUMBER) IS
7499: SELECT resource_list_member_id
7500: FROM pa_bc_balances gb
7501: WHERE gb.budget_version_id = v_bdgt_ver_id
7502: AND balance_type = 'BGT'
7503: AND ROWNUM = 1;
7504: