152: return -999;
153:
154: END;
155:
156: PROCEDURE UPDATE_TASK_PROG_REQ_DATE(p_commit in varchar2 := FND_API.G_TRUE,
157: p_object_id in number,
158: p_object_type in varchar2,
159: x_return_status out NOCOPY varchar2, --File.Sql.39 bug 4440895
160: x_msg_count out NOCOPY number, --File.Sql.39 bug 4440895
183: l_object_page_layout_id number;
184: x_next_reporting_date date;
185: x_report_end_date date;
186: BEGIN
187: x_return_status := FND_API.G_RET_STS_SUCCESS;
188:
189: OPEN get_setup_info;
190: FETCH get_setup_info INTO l_object_id, l_object_type, l_report_cycle_id,l_next_reporting_date, l_record_version_number, l_initial_progress_status, l_final_progress_status, l_rollup_progress_status, l_object_page_layout_id;
191: CLOSE get_setup_info;
228: x_msg_data => x_msg_data
229: );
230: END IF;
231:
232: IF (p_commit = FND_API.G_TRUE AND x_return_status = FND_API.g_ret_sts_success )THEN
233: COMMIT;
234: END IF;
235: -- Introduced Exception Block : 4537865
236: EXCEPTION
234: END IF;
235: -- Introduced Exception Block : 4537865
236: EXCEPTION
237: WHEN OTHERS THEN
238: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
239: x_msg_count := 1;
240: x_msg_data := SUBSTRB(SQLERRM,1,240);
241:
242: FND_MSG_PUB.add_exc_msg( p_pkg_name=> 'PA_PROGRESS_UTILS'
246: RAISE;
247: END UPDATE_TASK_PROG_REQ_DATE;
248:
249: PROCEDURE adjust_reminder_date(
250: p_commit in varchar2 := FND_API.G_TRUE
251: ,p_project_id IN NUMBER
252: ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
253: ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
254: ,x_msg_data OUT NOCOPY VARCHAR2) --File.Sql.39 bug 4440895
286: SET next_reporting_date = l_reporting_date
287: WHERE object_id = p_project_id
288: AND object_type = 'PA_PROJECTS'
289: AND page_type_code = 'TPR';
290: IF (p_commit = FND_API.G_TRUE AND x_return_status = FND_API.g_ret_sts_success )THEN
291: COMMIT;
292: end if;
293: End If;
294:
295: EXCEPTION
296: When OTHERS then
297:
298: -- 4537865
299: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
300: x_msg_count := 1 ;
301: x_msg_data := SUBSTRB(SQLERRM,1,240);
302: Fnd_Msg_Pub.add_exc_msg
303: ( p_pkg_name => 'PA_PROGRESS_UTILS'
1750:
1751: l_proj_element_id NUMBER;
1752:
1753: BEGIN
1754: x_return_status := FND_API.G_RET_STS_SUCCESS;
1755:
1756: IF p_structure_version_id IS NULL
1757: THEN
1758: IF p_object_type = 'PA_TASKS'
1785: ;
1786: END IF;
1787:
1788: EXCEPTION
1789: WHEN FND_API.G_EXC_ERROR THEN
1790: x_return_status := FND_API.G_RET_STS_ERROR;
1791: WHEN OTHERS THEN
1792: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1793: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_PROGRESS_UTILS',
1786: END IF;
1787:
1788: EXCEPTION
1789: WHEN FND_API.G_EXC_ERROR THEN
1790: x_return_status := FND_API.G_RET_STS_ERROR;
1791: WHEN OTHERS THEN
1792: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1793: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_PROGRESS_UTILS',
1794: p_procedure_name => 'clear_prog_outdated_flag',
1788: EXCEPTION
1789: WHEN FND_API.G_EXC_ERROR THEN
1790: x_return_status := FND_API.G_RET_STS_ERROR;
1791: WHEN OTHERS THEN
1792: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1793: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_PROGRESS_UTILS',
1794: p_procedure_name => 'clear_prog_outdated_flag',
1795: p_error_text => SUBSTRB(SQLERRM,1,120));
1796: x_msg_count := FND_MSG_PUB.count_msg;
2928: -- Bug 4372462 : Rewritten this API again...
2929:
2930: PROCEDURE convert_currency_amounts(
2931: p_api_version IN NUMBER :=1.0
2932: ,p_init_msg_list IN VARCHAR2 :=FND_API.G_TRUE
2933: ,p_commit IN VARCHAR2 :=FND_API.G_FALSE
2934: ,p_validate_only IN VARCHAR2 :=FND_API.G_TRUE
2935: ,p_validation_level IN NUMBER :=FND_API.G_VALID_LEVEL_FULL
2936: ,p_calling_module IN VARCHAR2 :='SELF_SERVICE'
2929:
2930: PROCEDURE convert_currency_amounts(
2931: p_api_version IN NUMBER :=1.0
2932: ,p_init_msg_list IN VARCHAR2 :=FND_API.G_TRUE
2933: ,p_commit IN VARCHAR2 :=FND_API.G_FALSE
2934: ,p_validate_only IN VARCHAR2 :=FND_API.G_TRUE
2935: ,p_validation_level IN NUMBER :=FND_API.G_VALID_LEVEL_FULL
2936: ,p_calling_module IN VARCHAR2 :='SELF_SERVICE'
2937: ,p_debug_mode IN VARCHAR2 :='N'
2930: PROCEDURE convert_currency_amounts(
2931: p_api_version IN NUMBER :=1.0
2932: ,p_init_msg_list IN VARCHAR2 :=FND_API.G_TRUE
2933: ,p_commit IN VARCHAR2 :=FND_API.G_FALSE
2934: ,p_validate_only IN VARCHAR2 :=FND_API.G_TRUE
2935: ,p_validation_level IN NUMBER :=FND_API.G_VALID_LEVEL_FULL
2936: ,p_calling_module IN VARCHAR2 :='SELF_SERVICE'
2937: ,p_debug_mode IN VARCHAR2 :='N'
2938: ,p_max_msg_count IN NUMBER :=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
2931: p_api_version IN NUMBER :=1.0
2932: ,p_init_msg_list IN VARCHAR2 :=FND_API.G_TRUE
2933: ,p_commit IN VARCHAR2 :=FND_API.G_FALSE
2934: ,p_validate_only IN VARCHAR2 :=FND_API.G_TRUE
2935: ,p_validation_level IN NUMBER :=FND_API.G_VALID_LEVEL_FULL
2936: ,p_calling_module IN VARCHAR2 :='SELF_SERVICE'
2937: ,p_debug_mode IN VARCHAR2 :='N'
2938: ,p_max_msg_count IN NUMBER :=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
2939: ,p_project_id IN NUMBER
3104:
3105:
3106: BEGIN
3107:
3108: x_return_status := FND_API.G_RET_STS_SUCCESS;
3109: g1_debug_mode := NVL(FND_PROFILE.value_specific('PA_DEBUG_MODE',l_user_id,l_login_id,275,null,null), 'N');
3110:
3111: IF g1_debug_mode = 'Y' THEN
3112: pa_debug.write(x_Module=>'PA_PROGRESS_UTILS.CONVERT_CURRENCY_AMOUNTS', x_Msg => 'Starts', x_Log_Level=> 3);
3193: IF p_budget_version_id IS NULL OR p_res_assignment_id IS NULL THEN
3194: PA_UTILS.ADD_MESSAGE( p_app_short_name => 'PA'
3195: ,p_msg_name => 'PA_INV_PARAM_PASSED');
3196: x_msg_data := 'PA_INV_PARAM_PASSED';
3197: x_return_status := FND_API.G_RET_STS_ERROR;
3198: RAISE FND_API.G_EXC_ERROR;
3199: END IF;
3200:
3201: OPEN bgt_line_rates(p_budget_version_id, p_res_assignment_id, p_txn_curr_code, p_as_of_date);
3194: PA_UTILS.ADD_MESSAGE( p_app_short_name => 'PA'
3195: ,p_msg_name => 'PA_INV_PARAM_PASSED');
3196: x_msg_data := 'PA_INV_PARAM_PASSED';
3197: x_return_status := FND_API.G_RET_STS_ERROR;
3198: RAISE FND_API.G_EXC_ERROR;
3199: END IF;
3200:
3201: OPEN bgt_line_rates(p_budget_version_id, p_res_assignment_id, p_txn_curr_code, p_as_of_date);
3202: FETCH bgt_line_rates INTO l_bgt_line_rates;
3248: IF l_project_cost_exchange_rate IS NULL THEN
3249: PA_UTILS.ADD_MESSAGE( p_app_short_name => 'PA'
3250: ,p_msg_name => 'PA_FP_USER_EXCH_RATE_REQ');
3251: x_msg_data := 'PA_FP_USER_EXCH_RATE_REQ';
3252: x_return_status := FND_API.G_RET_STS_ERROR;
3253: RAISE FND_API.G_EXC_ERROR;
3254: END IF;
3255: ELSE
3256: P_project_curr_code := l_project_curr_code;
3249: PA_UTILS.ADD_MESSAGE( p_app_short_name => 'PA'
3250: ,p_msg_name => 'PA_FP_USER_EXCH_RATE_REQ');
3251: x_msg_data := 'PA_FP_USER_EXCH_RATE_REQ';
3252: x_return_status := FND_API.G_RET_STS_ERROR;
3253: RAISE FND_API.G_EXC_ERROR;
3254: END IF;
3255: ELSE
3256: P_project_curr_code := l_project_curr_code;
3257: P_project_rate_type := nvl(l_bgt_line_rates.project_cost_rate_Type,l_proj_all.project_cost_rate_type);
3297: IF l_projfunc_cost_exchange_rate IS NULL THEN
3298: PA_UTILS.ADD_MESSAGE( p_app_short_name => 'PA'
3299: ,p_msg_name => 'PA_FP_USER_EXCH_RATE_REQ');
3300: x_msg_data := 'PA_FP_USER_EXCH_RATE_REQ';
3301: x_return_status := FND_API.G_RET_STS_ERROR;
3302: RAISE FND_API.G_EXC_ERROR;
3303: END IF;
3304: ELSE
3305: P_projfunc_curr_code := l_projfunc_curr_code;
3298: PA_UTILS.ADD_MESSAGE( p_app_short_name => 'PA'
3299: ,p_msg_name => 'PA_FP_USER_EXCH_RATE_REQ');
3300: x_msg_data := 'PA_FP_USER_EXCH_RATE_REQ';
3301: x_return_status := FND_API.G_RET_STS_ERROR;
3302: RAISE FND_API.G_EXC_ERROR;
3303: END IF;
3304: ELSE
3305: P_projfunc_curr_code := l_projfunc_curr_code;
3306: P_projfunc_cost_rate_type := nvl(l_bgt_line_rates.projfunc_cost_rate_type,l_proj_all.projfunc_cost_rate_type);
3348: IF l_project_cost_exchange_rate IS NULL THEN
3349: PA_UTILS.ADD_MESSAGE( p_app_short_name => 'PA'
3350: ,p_msg_name => 'PA_FP_USER_EXCH_RATE_REQ');
3351: x_msg_data := 'PA_FP_USER_EXCH_RATE_REQ';
3352: x_return_status := FND_API.G_RET_STS_ERROR;
3353: RAISE FND_API.G_EXC_ERROR;
3354: END IF;
3355: ELSE
3356: P_project_curr_code := l_project_curr_code;
3349: PA_UTILS.ADD_MESSAGE( p_app_short_name => 'PA'
3350: ,p_msg_name => 'PA_FP_USER_EXCH_RATE_REQ');
3351: x_msg_data := 'PA_FP_USER_EXCH_RATE_REQ';
3352: x_return_status := FND_API.G_RET_STS_ERROR;
3353: RAISE FND_API.G_EXC_ERROR;
3354: END IF;
3355: ELSE
3356: P_project_curr_code := l_project_curr_code;
3357: P_project_rate_type := l_proj_all.project_cost_rate_type;
3391: IF l_projfunc_cost_exchange_rate IS NULL THEN
3392: PA_UTILS.ADD_MESSAGE( p_app_short_name => 'PA'
3393: ,p_msg_name => 'PA_FP_USER_EXCH_RATE_REQ');
3394: x_msg_data := 'PA_FP_USER_EXCH_RATE_REQ';
3395: x_return_status := FND_API.G_RET_STS_ERROR;
3396: RAISE FND_API.G_EXC_ERROR;
3397: END IF;
3398: ELSE
3399: P_projfunc_curr_code := l_projfunc_curr_code;
3392: PA_UTILS.ADD_MESSAGE( p_app_short_name => 'PA'
3393: ,p_msg_name => 'PA_FP_USER_EXCH_RATE_REQ');
3394: x_msg_data := 'PA_FP_USER_EXCH_RATE_REQ';
3395: x_return_status := FND_API.G_RET_STS_ERROR;
3396: RAISE FND_API.G_EXC_ERROR;
3397: END IF;
3398: ELSE
3399: P_projfunc_curr_code := l_projfunc_curr_code;
3400: P_projfunc_cost_rate_type := l_proj_all.projfunc_cost_rate_type;
3498: WHEN OTHERS THEN
3499: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_PROGRESS_UTILS',
3500: p_procedure_name => 'CONVERT_CURRENCY_AMOUNTS',
3501: p_error_text => SUBSTRB('pa_multi_currency_txn.get_currency_amounts:'||SQLERRM,1,120));
3502: RAISE FND_API.G_EXC_ERROR;
3503:
3504: END;
3505: --bug 3828542 start
3506: IF ( l_status IS NOT NULL ) THEN
3510: l_return_status := 'E';
3511: END IF;
3512: --bug 3828542 end
3513:
3514: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3515: x_return_status := 'E';
3516: RAISE FND_API.G_EXC_ERROR;
3517: END IF;
3518:
3512: --bug 3828542 end
3513:
3514: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3515: x_return_status := 'E';
3516: RAISE FND_API.G_EXC_ERROR;
3517: END IF;
3518:
3519:
3520: IF l_pc_conv = 'N' THEN
3546:
3547: END IF;
3548:
3549: EXCEPTION
3550: when FND_API.G_EXC_ERROR then
3551: x_return_status := FND_API.G_RET_STS_ERROR;
3552:
3553: -- 4537865 : Start
3554: ---- p_project_curr_code := NULL ; 5081809
3547: END IF;
3548:
3549: EXCEPTION
3550: when FND_API.G_EXC_ERROR then
3551: x_return_status := FND_API.G_RET_STS_ERROR;
3552:
3553: -- 4537865 : Start
3554: ---- p_project_curr_code := NULL ; 5081809
3555: P_project_rate_type := NULL ;
3562: P_projfunc_cost_exch_rate := NULL ;
3563: P_projfunc_raw_cost := NULL ;
3564: -- 4537865 : End
3565:
3566: when FND_API.G_EXC_UNEXPECTED_ERROR then
3567: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3568: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_PROGRESS_UTILS',
3569: p_procedure_name => 'convert_currency_amounts',
3570: p_error_text => SUBSTRB(SQLERRM,1,120));
3563: P_projfunc_raw_cost := NULL ;
3564: -- 4537865 : End
3565:
3566: when FND_API.G_EXC_UNEXPECTED_ERROR then
3567: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3568: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_PROGRESS_UTILS',
3569: p_procedure_name => 'convert_currency_amounts',
3570: p_error_text => SUBSTRB(SQLERRM,1,120));
3571: -- 4537865 : Start
3581: P_projfunc_raw_cost := NULL ;
3582: -- 4537865 : End
3583:
3584: when OTHERS then
3585: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3586: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_PROGRESS_UTILS',
3587: p_procedure_name => 'convert_currency_amounts',
3588: p_error_text => SUBSTRB(SQLERRM,1,120));
3589:
3620: WHEN OTHERS THEN
3621: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_PROGRESS_UTILS',
3622: p_procedure_name => 'get_time_phase_period',
3623: p_error_text => SUBSTRB('PA_FIN_PLAN_UTILS.Get_wp_bv_time_phase:'||SQLERRM,1,120));
3624: RAISE FND_API.G_EXC_ERROR;
3625: END;
3626:
3627: RETURN(l_time_phase_code);
3628: END get_time_phase_period;
5106: CLOSE C_GET_PUBLISHED_AMOUNT;
5107: END IF;
5108: EXCEPTION
5109: WHEN OTHERS THEN
5110: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
5111: x_msg_count := 1;
5112: x_msg_data := SUBSTRB(SQLERRM,1,120);
5113:
5114: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_PROGRESS_UTILS',
6098: AND Structure_type = p_structure_type;
6099:
6100:
6101: BEGIN
6102: x_return_status := FND_API.G_RET_STS_SUCCESS ;
6103: X_base_percent_complete := null; --bug 3879461
6104:
6105: IF ( p_structure_version_id IS NULL AND p_structure_status IS NULL ) OR
6106: ( p_structure_status = 'PUBLISHED')
6156:
6157: -- Progress Management Changes. Bug # 3420093.
6158:
6159: EXCEPTION WHEN OTHERS THEN
6160: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6161: x_Msg_Count := 0;
6162: x_Msg_Data := '';
6163: fnd_msg_pub.add_exc_msg( p_pkg_name => 'PA_PROGRESS_UTILS'
6164: ,p_procedure_name => 'REDEFAULT_BASE_PC'
6162: x_Msg_Data := '';
6163: fnd_msg_pub.add_exc_msg( p_pkg_name => 'PA_PROGRESS_UTILS'
6164: ,p_procedure_name => 'REDEFAULT_BASE_PC'
6165: ,p_error_text => SUBSTRB(SQLERRM,1,120));
6166: RAISE FND_API.G_EXC_ERROR;
6167: END REDEFAULT_BASE_PC;
6168:
6169: Procedure RECALCULATE_PROG_STATS (
6170: p_project_id IN NUMBER
6242: --bug 4308359, end
6243:
6244:
6245: BEGIN
6246: x_return_status := FND_API.G_RET_STS_SUCCESS ;
6247:
6248: Select TASK_WEIGHT_BASIS_CODE
6249: INTO l_TASK_WEIGHT_BASIS_CODE
6250: From pa_proj_progress_attr
6424:
6425: -- Progress Management Changes. Bug # 3420093.
6426:
6427: EXCEPTION WHEN OTHERS THEN
6428: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6429: x_Msg_Count := 1; -- 4537865 Corrected as '1' .Earlier it was defined as '0'
6430: x_Msg_Data := SUBSTRB(SQLERRM,1,120) ; -- 4537865 : Corrected as err message stack .Earlier it was ''
6431: fnd_msg_pub.add_exc_msg( p_pkg_name => 'PA_PROGRESS_UTILS'
6432: ,p_procedure_name => 'RECALCULATE_PROG_STATS'
6440: x_Sch_At_Completion := NULL ;
6441: x_Complete_Performance_Index := 0 ;
6442: -- 4537865
6443:
6444: RAISE FND_API.G_EXC_ERROR;
6445: END RECALCULATE_PROG_STATS;
6446:
6447: -- Bug 3879461 : This function is not used
6448: Procedure DEF_DATES_FROM_RESOURCES (
6469: AND As_Of_Date = p_As_Of_Date
6470: AND Structure_type = p_structure_type;
6471:
6472: BEGIN
6473: x_return_status := FND_API.G_RET_STS_SUCCESS ;
6474:
6475: Open CUR_Est_Sch_Dates;
6476: FETCH CUR_Est_Sch_Dates Into
6477: x_Estimated_Start_Date, x_Estimated_Finish_Date, x_Actual_Start_Date, x_Actual_Finish_Date;
6477: x_Estimated_Start_Date, x_Estimated_Finish_Date, x_Actual_Start_Date, x_Actual_Finish_Date;
6478: Close CUR_Est_Sch_Dates;
6479:
6480: EXCEPTION WHEN OTHERS THEN
6481: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6482: x_Msg_Count := 1; -- 4537865 Changed from 0 to 1.
6483: x_Msg_Data := SUBSTRB(SQLERRM,1,120); -- 4537865 Changed from '' to SUBSTRB(SQLERRM,1,120)
6484:
6485: -- 4537865
6491:
6492: fnd_msg_pub.add_exc_msg( p_pkg_name => 'PA_PROGRESS_UTILS'
6493: ,p_procedure_name => 'DEF_DATES_FROM_RESOURCES'
6494: ,p_error_text => x_msg_data);
6495: RAISE FND_API.G_EXC_ERROR;
6496: END DEF_DATES_FROM_RESOURCES;
6497:
6498: --- End of addding new APIs
6499:
7193:
7194: BEGIN
7195: savepoint get_actuals_for_task;
7196:
7197: l_return_status := FND_API.G_RET_STS_SUCCESS;
7198:
7199:
7200: /* Begin commenting the following code as we are now accepting workplan task id's in the API.
7201:
7321: x_return_status := l_return_status;
7322: x_msg_count := l_msg_count;
7323: x_msg_data := l_msg_data;
7324:
7325: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7326: PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
7327: p_msg_name => l_msg_data);
7328: x_msg_data := l_msg_data;
7329: x_return_status := 'E';
7327: p_msg_name => l_msg_data);
7328: x_msg_data := l_msg_data;
7329: x_return_status := 'E';
7330: x_msg_count := l_msg_count;
7331: RAISE FND_API.G_EXC_ERROR;
7332: END IF;
7333:
7334: EXCEPTION
7335:
7332: END IF;
7333:
7334: EXCEPTION
7335:
7336: when FND_API.G_EXC_ERROR then
7337: rollback to get_actuals_for_task;
7338: x_return_status := FND_API.G_RET_STS_ERROR;
7339:
7340: when FND_API.G_EXC_UNEXPECTED_ERROR then
7334: EXCEPTION
7335:
7336: when FND_API.G_EXC_ERROR then
7337: rollback to get_actuals_for_task;
7338: x_return_status := FND_API.G_RET_STS_ERROR;
7339:
7340: when FND_API.G_EXC_UNEXPECTED_ERROR then
7341: rollback to get_actuals_for_task;
7342: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7336: when FND_API.G_EXC_ERROR then
7337: rollback to get_actuals_for_task;
7338: x_return_status := FND_API.G_RET_STS_ERROR;
7339:
7340: when FND_API.G_EXC_UNEXPECTED_ERROR then
7341: rollback to get_actuals_for_task;
7342: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7343: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_PROGRESS_UTILS',
7344: p_procedure_name => 'get_actuals_for_task',
7338: x_return_status := FND_API.G_RET_STS_ERROR;
7339:
7340: when FND_API.G_EXC_UNEXPECTED_ERROR then
7341: rollback to get_actuals_for_task;
7342: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7343: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_PROGRESS_UTILS',
7344: p_procedure_name => 'get_actuals_for_task',
7345: p_error_text => SUBSTRB(SQLERRM,1,120));
7346: when OTHERS then
7344: p_procedure_name => 'get_actuals_for_task',
7345: p_error_text => SUBSTRB(SQLERRM,1,120));
7346: when OTHERS then
7347: rollback to get_actuals_fortask;
7348: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7349: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_PROGRESS_UTILS',
7350: p_procedure_name => 'get_actuals_for_task',
7351: p_error_text => SUBSTRB(SQLERRM,1,120));
7352: raise;
7608: EXCEPTION
7609: WHEN NO_DATA_FOUND THEN
7610: null;
7611: WHEN OTHERS THEN
7612: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7613: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_PROGRESS_UTILS',
7614: p_procedure_name => 'get_last_etc_all',
7615: p_error_text => SUBSTRB(SQLERRM,1,120));
7616: raise;
7695: EXCEPTION
7696: WHEN NO_DATA_FOUND THEN
7697: null;
7698: WHEN OTHERS THEN
7699: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7700: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_PROGRESS_UTILS',
7701: p_procedure_name => 'get_last_etc_all',
7702: p_error_text => SUBSTRB(SQLERRM,1,120));
7703:
8269: --maansari6/14 bug 3686920
8270: ,p_structure_version_id IN NUMBER default null
8271: ,p_currency_code IN VARCHAR2 default null
8272: --maansari6/14 bug 3686920
8273: ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
8274: ,p_calling_mode IN VARCHAR2 := 'ACTUAL_RATES' -- Bug 3627315
8275: --,P_dummy_override_raw_cost IN NUMBER Bug 3632946
8276: --,P_override_txn_currency_code IN VARCHAR2 Bug 3632946
8277: ,x_resource_curr_code OUT NOCOPY VARCHAR2
8543:
8544:
8545: Begin
8546:
8547: l_return_status := FND_API.G_RET_STS_SUCCESS ;
8548: -- FPM Dev CR 8 : Added debug messages
8549: g1_debug_mode := NVL(FND_PROFILE.value('PA_DEBUG_MODE'), 'N');
8550:
8551: IF FND_API.TO_BOOLEAN(NVL(p_init_msg_list,FND_API.G_FALSE)) THEN -- Added for required prarameter validation
8547: l_return_status := FND_API.G_RET_STS_SUCCESS ;
8548: -- FPM Dev CR 8 : Added debug messages
8549: g1_debug_mode := NVL(FND_PROFILE.value('PA_DEBUG_MODE'), 'N');
8550:
8551: IF FND_API.TO_BOOLEAN(NVL(p_init_msg_list,FND_API.G_FALSE)) THEN -- Added for required prarameter validation
8552: FND_MSG_PUB.initialize;
8553: END IF;
8554:
8555:
8672: fnd_msg_pub.add_exc_msg(p_pkg_name => 'pa_progress_utils',
8673: p_procedure_name => 'Get_Res_Rate_Burden_Multiplier',
8674: p_error_text => SUBSTRB('pa_planning_resource_utils.get_resource_defaults:'||SQLERRM,1,120));
8675: pa_debug.write(x_Module=>'PA_PROGRESS_UTILS.Get_Res_Rate_Burden_Multiplier', x_Msg => 'p_error_text='||SUBSTRB('pa_planning_resource_utils.get_resource_defaults:'||SQLERRM,1,120), x_Log_Level=> 3);
8676: raise fnd_api.g_exc_error;
8677: END;
8678:
8679: -- IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN --------------------------------{
8680: FOR i IN l_res_list_memb_id_tbl.FIRST .. l_res_list_memb_id_tbl.LAST LOOP
8675: pa_debug.write(x_Module=>'PA_PROGRESS_UTILS.Get_Res_Rate_Burden_Multiplier', x_Msg => 'p_error_text='||SUBSTRB('pa_planning_resource_utils.get_resource_defaults:'||SQLERRM,1,120), x_Log_Level=> 3);
8676: raise fnd_api.g_exc_error;
8677: END;
8678:
8679: -- IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN --------------------------------{
8680: FOR i IN l_res_list_memb_id_tbl.FIRST .. l_res_list_memb_id_tbl.LAST LOOP
8681:
8682: -- Bug 3965584 : Values will be taken only if they are not presnt already
8683: IF l_person_id IS NULL THEN
8945: fnd_msg_pub.add_exc_msg(p_pkg_name => 'pa_progress_utils',
8946: p_procedure_name => 'Get_Res_Rate_Burden_Multiplier',
8947: p_error_text => SUBSTRB('Pa_Fp_wp_gen_amt_utils.get_wp_version_id:'||SQLERRM,1,120));
8948: pa_debug.write(x_Module=>'Pa_Fp_wp_gen_amt_utils.get_wp_version_id', x_Msg => 'p_error_text='||SUBSTRB('PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS:'||SQLERRM,1,120), x_Log_Level=> 3);
8949: raise fnd_api.g_exc_error;
8950: END;
8951:
8952: -- Bug 3691289 , rates from pa_proj_fp_options shd be selected always as we need them further even in actual rate mode
8953: -- IF p_calling_mode = 'PLAN_RATES'
9044: fnd_msg_pub.add_exc_msg(p_pkg_name => 'pa_progress_utils',
9045: p_procedure_name => 'Get_Res_Rate_Burden_Multiplier',
9046: p_error_text => SUBSTRB('PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS:'||SQLERRM,1,120));
9047: pa_debug.write(x_Module=>'PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS', x_Msg => 'p_error_text='||SUBSTRB('PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS:'||SQLERRM,1,120), x_Log_Level=> 3);
9048: raise fnd_api.g_exc_error;
9049: END;
9050:
9051: IF l_return_status <> 'S' AND l_msg_data IS NOT NULL THEN
9052: PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
9053: p_msg_name => l_msg_data);
9054: x_msg_data := l_msg_data;
9055: x_return_status := 'E';
9056: x_msg_count := fnd_msg_pub.count_msg;
9057: RAISE FND_API.G_EXC_ERROR;
9058: END IF;
9059:
9060:
9061: -- END IF; --<< p_calling_modfe = 'PLAN_RATES'
9279: ,x_msg_count => l_msg_count
9280: ,x_msg_data => l_msg_data
9281: );
9282: --added for Bug 4537865
9283: IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
9284: l_raw_cost := l_new_raw_cost;
9285: END IF;
9286: --added for Bug 4537865
9287: IF g1_debug_mode = 'Y' THEN
9310: fnd_msg_pub.add_exc_msg(p_pkg_name => 'pa_progress_utils',
9311: p_procedure_name => 'Get_Res_Rate_Burden_Multiplier',
9312: p_error_text => SUBSTRB('PA_PLAN_REVENUE.Get_plan_res_class_rates:'||SQLERRM,1,120));
9313: pa_debug.write(x_Module=>'PA_PLAN_REVENUE.Get_plan_res_class_rates', x_Msg => 'p_error_text='||SUBSTRB('PA_PLAN_REVENUE.Get_plan_res_class_rates:'||SQLERRM,1,120), x_Log_Level=> 3);
9314: raise fnd_api.g_exc_error;
9315: END;
9316: END IF; --< l_return_status <> 'S'>
9317: --bug 3733606
9318:
9345: p_msg_name => l_raw_cost_rejection_code);
9346: x_msg_data := l_raw_cost_rejection_code;
9347: x_return_status := 'E';
9348: x_msg_count := fnd_msg_pub.count_msg;
9349: RAISE FND_API.G_EXC_ERROR;
9350: END IF;
9351:
9352: IF l_burden_cost_rejection_code IS NOT NULL AND l_burden_override_rate IS NULL --bug 3821299 do not throw error if there is override.
9353: THEN
9355: p_msg_name => l_burden_cost_rejection_code);
9356: x_msg_data := l_burden_cost_rejection_code;
9357: x_return_status := 'E';
9358: x_msg_count := fnd_msg_pub.count_msg;
9359: RAISE FND_API.G_EXC_ERROR;
9360: END IF;
9361:
9362: ELSE -- l_rate_based_flag = 'N' bug# 3801523
9363: IF g1_debug_mode = 'Y' THEN
9426: p_msg_name => l_msg_data);
9427: x_msg_data := l_msg_data;
9428: x_return_status := 'E';
9429: x_msg_count := fnd_msg_pub.count_msg;
9430: RAISE FND_API.G_EXC_ERROR;
9431: END IF;
9432: --maansari6/5
9433: -- END LOOP; Bug 3965584 : Reduced the scope of FOR LOOP
9434: -- END IF; ---------------------------------------------------------------------------}
9436: x_msg_count := fnd_msg_pub.count_msg; -- FPM Dev CR 8
9437:
9438: EXCEPTION
9439: -- FPM Dev CR 5
9440: WHEN FND_API.G_EXC_ERROR THEN
9441: x_return_status := FND_API.G_RET_STS_ERROR;
9442: x_msg_count := FND_MSG_PUB.Count_Msg;
9443: If x_msg_count = 1 THEN
9444: pa_interface_utils_pub.get_messages
9437:
9438: EXCEPTION
9439: -- FPM Dev CR 5
9440: WHEN FND_API.G_EXC_ERROR THEN
9441: x_return_status := FND_API.G_RET_STS_ERROR;
9442: x_msg_count := FND_MSG_PUB.Count_Msg;
9443: If x_msg_count = 1 THEN
9444: pa_interface_utils_pub.get_messages
9445: (p_encoded => FND_API.G_TRUE,
9441: x_return_status := FND_API.G_RET_STS_ERROR;
9442: x_msg_count := FND_MSG_PUB.Count_Msg;
9443: If x_msg_count = 1 THEN
9444: pa_interface_utils_pub.get_messages
9445: (p_encoded => FND_API.G_TRUE,
9446: p_msg_index => 1,
9447: p_msg_count => x_msg_count,
9448: p_msg_data => x_msg_data,
9449: -- p_data => x_msg_data, * commented for Bug: 4537865
9462:
9463: WHEN l_insufficient_paramters THEN
9464: PA_UTILS.add_message('PA','PA_PROG_INSUFFICIENT_PARA',
9465: 'RES_NAME', l_resource_alias);
9466: x_return_status := FND_API.G_RET_STS_ERROR;
9467: x_msg_data := 'PA_PROG_INSUFFICIENT_PARA';
9468: x_msg_count := FND_MSG_PUB.Count_Msg;
9469: If x_msg_count = 1 THEN
9470: pa_interface_utils_pub.get_messages
9467: x_msg_data := 'PA_PROG_INSUFFICIENT_PARA';
9468: x_msg_count := FND_MSG_PUB.Count_Msg;
9469: If x_msg_count = 1 THEN
9470: pa_interface_utils_pub.get_messages
9471: (p_encoded => FND_API.G_TRUE,
9472: p_msg_index => 1,
9473: p_msg_count => x_msg_count,
9474: p_msg_data => x_msg_data,
9475: -- p_data => x_msg_data, * commented for Bug: 4537865
9486: x_resource_burden_rate := NULL ;
9487: X_burden_multiplier := NULL ;
9488:
9489: WHEN OTHERS THEN
9490: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
9491: x_msg_count := 1;
9492: x_msg_data := SUBSTR(SQLERRM,1,120);
9493: FND_MSG_PUB.add_exc_msg( p_pkg_name => 'PA_PROGRESS_UTILS',
9494: p_procedure_name => 'Get_Res_Rate_Burden_Multiplier');
9493: FND_MSG_PUB.add_exc_msg( p_pkg_name => 'PA_PROGRESS_UTILS',
9494: p_procedure_name => 'Get_Res_Rate_Burden_Multiplier');
9495: If x_msg_count = 1 THEN
9496: pa_interface_utils_pub.get_messages
9497: (p_encoded => FND_API.G_TRUE,
9498: p_msg_index => 1,
9499: p_msg_count => x_msg_count,
9500: p_msg_data => x_msg_data,
9501: -- p_data => x_msg_data, * commented for Bug: 4537865
9740: pa_debug.write(x_Module=>'PA_PROGRESS_UTILS.convert_effort_to_cost', x_Msg => 'p_rate_based_flag='||p_rate_based_flag, x_Log_Level=> 3);
9741: pa_debug.write(x_Module=>'PA_PROGRESS_UTILS.convert_effort_to_cost', x_Msg => 'p_act_rawcost_tc='||p_act_rawcost_tc, x_Log_Level=> 3);
9742: END IF;
9743:
9744: x_return_status := fnd_api.g_ret_sts_success ; -- 4537865
9745:
9746: If (p_rate_based_flag = 'N') then
9747: -- If (p_rate_based_flag = 'N') the Rawcost values are inputs.
9748: l_etc_rawcost_tc := nvl(x_etc_rawcost_tc,0);
9778: ,x_return_status => l_return_status
9779: ,x_msg_count => l_msg_count
9780: ,x_msg_data => l_msg_data);
9781:
9782: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9783: x_return_status := 'E';
9784: RAISE FND_API.G_EXC_ERROR;
9785: END IF;
9786:
9780: ,x_msg_data => l_msg_data);
9781:
9782: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9783: x_return_status := 'E';
9784: RAISE FND_API.G_EXC_ERROR;
9785: END IF;
9786:
9787: l_etc_rawcost_tc := (nvl(p_etc_effort,0) * nvl(l_plan_res_raw_rate,0));
9788:
9814: ,x_return_status => l_return_status
9815: ,x_msg_count => l_msg_count
9816: ,x_msg_data => l_msg_data);
9817:
9818: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9819: x_return_status := 'E';
9820: RAISE FND_API.G_EXC_ERROR;
9821: END IF;
9822:
9816: ,x_msg_data => l_msg_data);
9817:
9818: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9819: x_return_status := 'E';
9820: RAISE FND_API.G_EXC_ERROR;
9821: END IF;
9822:
9823: IF g1_debug_mode = 'Y' THEN
9824: pa_debug.write(x_Module=>'PA_PROGRESS_UTILS.convert_effort_to_cost', x_Msg => '2. l_plan_res_raw_rate='||l_plan_res_raw_rate, x_Log_Level=> 3);
9882: x_prcnt_spent_rawcost_tc := nvl(l_prcnt_spent_rawcost_tc,0);
9883: x_eac_rawcost_tc := nvl(l_eac_rawcost_tc,0);
9884:
9885: EXCEPTION
9886: WHEN FND_API.G_EXC_ERROR THEN
9887: x_return_status := FND_API.G_RET_STS_ERROR;
9888: x_msg_count := Fnd_Msg_Pub.count_msg;
9889:
9890: -- 4537865
9883: x_eac_rawcost_tc := nvl(l_eac_rawcost_tc,0);
9884:
9885: EXCEPTION
9886: WHEN FND_API.G_EXC_ERROR THEN
9887: x_return_status := FND_API.G_RET_STS_ERROR;
9888: x_msg_count := Fnd_Msg_Pub.count_msg;
9889:
9890: -- 4537865
9891: x_act_rawcost_tc_this_period := 0 ;
9897: x_prcnt_spent_rawcost_tc := 0 ;
9898: x_eac_rawcost_tc := 0 ;
9899:
9900: WHEN OTHERS THEN
9901: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
9902: x_msg_count := 1;
9903: x_msg_data := SUBSTRB(SQLERRM,1,240);
9904:
9905: -- 4537865
10111: l_error_count NUMBER;
10112: l_debug_mode varchar2(1);
10113: BEGIN
10114: -- Bug 4348814 : Added Debug Msgs
10115: x_return_status := FND_API.G_RET_STS_SUCCESS;
10116:
10117: l_debug_mode := NVL(FND_PROFILE.value_specific('PA_DEBUG_MODE',fnd_global.user_id,fnd_global.login_id,275,null,null), 'N');
10118:
10119: IF l_debug_mode = 'Y' THEN
10135: END IF;
10136:
10137:
10138: IF l_error_count > 0 THEN
10139: x_return_status := FND_API.G_RET_STS_ERROR;
10140: FOR i in 1..l_error_count LOOP
10141: IF i = 1 THEN
10142: l_error_msg := l_task_number_tbl(i) || ', ' || l_alias_tbl(i) || ', ' || l_actual_currency_tbl(i);
10143: ELSE
10171: END IF;
10172: END IF;
10173:
10174: EXCEPTION WHEN OTHERS THEN
10175: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR ; -- 4537865
10176: RAISE;
10177:
10178: END check_txn_currency_diff;
10179:
10249: l_num_blocks NUMBER;
10250:
10251: BEGIN
10252:
10253: x_return_status := FND_API.G_RET_STS_SUCCESS;
10254:
10255: l_num_of_asgmts := p_task_assignment_tbl.COUNT;
10256:
10257: SELECT to_number(value)
10332: -- Progress applied to the working version. Check the other business rules.
10333: ELSE -- l_lat_pub_prog_flag_tbl(k) <> 'Y'
10334:
10335: -- Cannot change the planning resource if progress has been applied to the working version.
10336: IF ( l_new_rlm_id_tbl(k) = FND_API.G_MISS_NUM AND l_old_rlm_id_tbl IS NOT NULL) OR
10337: ( l_new_rlm_id_tbl(k) <> FND_API.G_MISS_NUM AND l_new_rlm_id_tbl(k) IS NOT NULL
10338: AND ( l_new_rlm_id_tbl(k) <> l_old_rlm_id_tbl(k) OR l_old_rlm_id_tbl(k) IS NULL) ) THEN
10339: l_viol_indicator := 2;
10340: END IF;
10333: ELSE -- l_lat_pub_prog_flag_tbl(k) <> 'Y'
10334:
10335: -- Cannot change the planning resource if progress has been applied to the working version.
10336: IF ( l_new_rlm_id_tbl(k) = FND_API.G_MISS_NUM AND l_old_rlm_id_tbl IS NOT NULL) OR
10337: ( l_new_rlm_id_tbl(k) <> FND_API.G_MISS_NUM AND l_new_rlm_id_tbl(k) IS NOT NULL
10338: AND ( l_new_rlm_id_tbl(k) <> l_old_rlm_id_tbl(k) OR l_old_rlm_id_tbl(k) IS NULL) ) THEN
10339: l_viol_indicator := 2;
10340: END IF;
10341:
10339: l_viol_indicator := 2;
10340: END IF;
10341:
10342: -- Cannot change the project role if progress has been applied to the working version.
10343: IF ( l_new_project_role_id_tbl(k) = FND_API.G_MISS_NUM AND l_old_project_role_id_tbl(k) IS NOT NULL )
10344: OR ( l_new_project_role_id_tbl(k) <> FND_API.G_MISS_NUM AND l_new_project_role_id_tbl(k) IS NOT NULL AND
10345: ( l_old_project_role_id_tbl(k) <> l_new_project_role_id_tbl(k) OR l_old_project_role_id_tbl(k) IS NULL ) ) THEN
10346: l_viol_indicator := 3;
10347: END IF;
10340: END IF;
10341:
10342: -- Cannot change the project role if progress has been applied to the working version.
10343: IF ( l_new_project_role_id_tbl(k) = FND_API.G_MISS_NUM AND l_old_project_role_id_tbl(k) IS NOT NULL )
10344: OR ( l_new_project_role_id_tbl(k) <> FND_API.G_MISS_NUM AND l_new_project_role_id_tbl(k) IS NOT NULL AND
10345: ( l_old_project_role_id_tbl(k) <> l_new_project_role_id_tbl(k) OR l_old_project_role_id_tbl(k) IS NULL ) ) THEN
10346: l_viol_indicator := 3;
10347: END IF;
10348: /* Bug Fix 5726773
10349: As a part of supporting negative quantities and amounts the following check is commented out.
10350:
10351: -- Cannot decrease planned quantity below actual quantity.
10352: IF ( l_actual_qty_tbl(k) IS NOT NULL AND l_new_total_qty_tbl(k) IS NOT NULL AND
10353: ( l_new_total_qty_tbl(k) = FND_API.G_MISS_NUM OR l_new_total_qty_tbl(k) < l_actual_qty_tbl(k) ) ) THEN
10354: l_viol_indicator := 4;
10355: END IF;
10356: */
10357: -- End of Bug Fix 5726773
10361: -- If the assignment is completed.
10362: IF ( l_actual_finish_date_tbl(k) IS NOT NULL ) THEN
10363:
10364: -- Cannot change the scheduled start date if an actual end date has been entered.
10365: IF ( l_new_sched_start_date_tbl(k) = FND_API.G_MISS_DATE AND l_old_sched_start_date_tbl(k) IS NOT NULL )
10366: OR ( l_new_sched_start_date_tbl(k) <> FND_API.G_MISS_DATE AND l_new_sched_start_date_tbl(k) IS NOT NULL AND
10367: (l_new_sched_start_date_tbl(k) <> l_old_sched_start_date_tbl(k) OR l_old_sched_start_date_tbl(k) IS NULL) ) THEN
10368: l_viol_indicator := 6;
10369: END IF;
10362: IF ( l_actual_finish_date_tbl(k) IS NOT NULL ) THEN
10363:
10364: -- Cannot change the scheduled start date if an actual end date has been entered.
10365: IF ( l_new_sched_start_date_tbl(k) = FND_API.G_MISS_DATE AND l_old_sched_start_date_tbl(k) IS NOT NULL )
10366: OR ( l_new_sched_start_date_tbl(k) <> FND_API.G_MISS_DATE AND l_new_sched_start_date_tbl(k) IS NOT NULL AND
10367: (l_new_sched_start_date_tbl(k) <> l_old_sched_start_date_tbl(k) OR l_old_sched_start_date_tbl(k) IS NULL) ) THEN
10368: l_viol_indicator := 6;
10369: END IF;
10370:
10368: l_viol_indicator := 6;
10369: END IF;
10370:
10371: -- Cannot change the scheduled finish date if an actual end date has been entered.
10372: IF ( l_new_sched_finish_date_tbl(k) = FND_API.G_MISS_DATE
10373: AND l_old_sched_finish_date_tbl(k) IS NOT NULL ) OR
10374: ( l_new_sched_finish_date_tbl(k) <> FND_API.G_MISS_DATE AND
10375: l_new_sched_finish_date_tbl(k) IS NOT NULL AND ( l_new_sched_finish_date_tbl(k) <> l_old_sched_finish_date_tbl(k)
10376: OR l_old_sched_finish_date_tbl(k) IS NULL) ) THEN
10370:
10371: -- Cannot change the scheduled finish date if an actual end date has been entered.
10372: IF ( l_new_sched_finish_date_tbl(k) = FND_API.G_MISS_DATE
10373: AND l_old_sched_finish_date_tbl(k) IS NOT NULL ) OR
10374: ( l_new_sched_finish_date_tbl(k) <> FND_API.G_MISS_DATE AND
10375: l_new_sched_finish_date_tbl(k) IS NOT NULL AND ( l_new_sched_finish_date_tbl(k) <> l_old_sched_finish_date_tbl(k)
10376: OR l_old_sched_finish_date_tbl(k) IS NULL) ) THEN
10377: l_viol_indicator := 7;
10378: END IF;
10383: END IF; -- l_lat_pub_prog_flag_tbl(k) = 'Y'
10384:
10385: IF l_viol_indicator IS NOT NULL THEN
10386:
10387: x_return_status := FND_API.G_RET_STS_ERROR;
10388:
10389: IF l_viol_indicator = 1 THEN
10390: PA_UTILS.ADD_MESSAGE
10391: (
10422:
10423: END IF; -- l_num_of_asgmts > 0
10424:
10425: EXCEPTION WHEN OTHERS THEN
10426: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
10427: RAISE;
10428:
10429: END check_prog_for_update_asgmts;
10430:
10539: l_track_wp_cost_flag VARCHAR2(1) := 'Y'; -- Bug 3921624
10540:
10541:
10542: BEGIN
10543: l_return_status := fnd_api.g_ret_sts_success ; -- 4537865
10544: g1_debug_mode := NVL(FND_PROFILE.value('PA_DEBUG_MODE'), 'N');
10545:
10546: IF g1_debug_mode = 'Y' THEN
10547: pa_debug.write(x_Module=>'PA_PROGRESS_UTILS.convert_effort_to_cost_brdn_pc', x_Msg => 'p_resource_list_mem_id='||p_resource_list_mem_id, x_Log_Level=> 3);
10599: ,x_return_status => l_return_status
10600: ,x_msg_count => l_msg_count
10601: ,x_msg_data => l_msg_data);
10602:
10603: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10604: x_return_status := 'E';
10605: RAISE FND_API.G_EXC_ERROR;
10606: END IF;
10607:
10601: ,x_msg_data => l_msg_data);
10602:
10603: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10604: x_return_status := 'E';
10605: RAISE FND_API.G_EXC_ERROR;
10606: END IF;
10607:
10608: -- 3.2). If the rate_based_flag is 'Y' and the resource burden rate currency code is not the same as the txn currency code, convert the resource burden rate into txn currency.
10609: -- To do this we use the API: PA_PROGRESS_UTILS.CONVERT_CURRENCY_AMOUNTS() and we pass in
10635: ,x_msg_count => l_msg_count
10636: ,x_msg_data => l_msg_data
10637: );
10638:
10639: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10640: x_return_status := 'E';
10641: RAISE FND_API.G_EXC_ERROR;
10642: END IF;
10643:
10637: );
10638:
10639: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10640: x_return_status := 'E';
10641: RAISE FND_API.G_EXC_ERROR;
10642: END IF;
10643:
10644: l_plan_res_burden_rate_etc := l_rawcost_pc;
10645:
10673: ,x_return_status => l_return_status
10674: ,x_msg_count => l_msg_count
10675: ,x_msg_data => l_msg_data);
10676:
10677: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10678: x_return_status := 'E';
10679: RAISE FND_API.G_EXC_ERROR;
10680: END IF;
10681:
10675: ,x_msg_data => l_msg_data);
10676:
10677: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10678: x_return_status := 'E';
10679: RAISE FND_API.G_EXC_ERROR;
10680: END IF;
10681:
10682: -- 4.2). If the rate_based_flag is 'Y' and the resource burden rate currency code is
10683: -- not the same as the txn currency code, convert the resource burden rate into txn currency.
10710: ,x_msg_count => l_msg_count
10711: ,x_msg_data => l_msg_data
10712: );
10713:
10714: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10715: x_return_status := 'E';
10716: RAISE FND_API.G_EXC_ERROR;
10717: END IF;
10718:
10712: );
10713:
10714: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10715: x_return_status := 'E';
10716: RAISE FND_API.G_EXC_ERROR;
10717: END IF;
10718:
10719: l_plan_res_burden_rate_act := l_rawcost_pc;
10720: END IF;
10780: ,x_msg_count => l_msg_count
10781: ,x_msg_data => l_msg_data
10782: );
10783:
10784: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10785: x_return_status := 'E';
10786: RAISE FND_API.G_EXC_ERROR;
10787: END IF;
10788:
10782: );
10783:
10784: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10785: x_return_status := 'E';
10786: RAISE FND_API.G_EXC_ERROR;
10787: END IF;
10788:
10789: l_etc_brdncost_pc := l_rawcost_pc;
10790:
10816: ,x_msg_count => l_msg_count
10817: ,x_msg_data => l_msg_data
10818: );
10819:
10820: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10821: x_return_status := 'E';
10822: RAISE FND_API.G_EXC_ERROR;
10823: END IF;
10824:
10818: );
10819:
10820: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10821: x_return_status := 'E';
10822: RAISE FND_API.G_EXC_ERROR;
10823: END IF;
10824:
10825: l_act_brdncost_pc_this_period := l_rawcost_pc;
10826:
10865: x_msg_data := l_msg_data;
10866:
10867: EXCEPTION
10868:
10869: WHEN FND_API.G_EXC_ERROR THEN
10870: x_return_status := FND_API.G_RET_STS_ERROR;
10871: x_msg_count := Fnd_Msg_Pub.count_msg;
10872:
10873: -- 4537865
10866:
10867: EXCEPTION
10868:
10869: WHEN FND_API.G_EXC_ERROR THEN
10870: x_return_status := FND_API.G_RET_STS_ERROR;
10871: x_msg_count := Fnd_Msg_Pub.count_msg;
10872:
10873: -- 4537865
10874: x_act_brdncost_pc_this_period := 0 ;
10880: x_prcnt_spent_brdncost_pc := 0 ;
10881: x_eac_brdncost_pc := 0 ;
10882:
10883: WHEN OTHERS THEN
10884: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
10885: x_msg_count := 1;
10886: x_msg_data := SUBSTRB(SQLERRM,1,240);
10887: -- 4537865
10888: x_act_brdncost_pc_this_period := 0 ;
11350: ,x_msg_count => x_msg_count
11351: ,x_msg_data => x_msg_data);
11352: x_res_raw_rate := l_plan_res_raw_rate;
11353:
11354: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11355: RAISE FND_API.G_EXC_ERROR;
11356: END IF;
11357:
11358: -- 3.2). If the rate_based_flag is 'Y' and the resource burden rate currency code is not the same as the txn currency code, convert the resource burden rate into txn currency.
11351: ,x_msg_data => x_msg_data);
11352: x_res_raw_rate := l_plan_res_raw_rate;
11353:
11354: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11355: RAISE FND_API.G_EXC_ERROR;
11356: END IF;
11357:
11358: -- 3.2). If the rate_based_flag is 'Y' and the resource burden rate currency code is not the same as the txn currency code, convert the resource burden rate into txn currency.
11359: -- to do this we use the API: PA_PROGRESS_UTILS.CONVERT_CURRENCY_AMOUNTS() and we pass in
11385: ,x_msg_count => x_msg_count
11386: ,x_msg_data => x_msg_data
11387: );
11388:
11389: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11390: RAISE FND_API.G_EXC_ERROR;
11391: END IF;
11392:
11393: l_plan_res_burden_rate_etc := l_rawcost_pc;
11386: ,x_msg_data => x_msg_data
11387: );
11388:
11389: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11390: RAISE FND_API.G_EXC_ERROR;
11391: END IF;
11392:
11393: l_plan_res_burden_rate_etc := l_rawcost_pc;
11394: if (l_plan_res_raw_rate <> l_plan_res_burden_rate_etc) then
11415: ,x_msg_count => x_msg_count
11416: ,x_msg_data => x_msg_data
11417: );
11418:
11419: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11420: RAISE FND_API.G_EXC_ERROR;
11421: END IF;
11422: x_res_raw_rate := l_rawcost_pc;
11423: end if;
11416: ,x_msg_data => x_msg_data
11417: );
11418:
11419: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11420: RAISE FND_API.G_EXC_ERROR;
11421: END IF;
11422: x_res_raw_rate := l_rawcost_pc;
11423: end if;
11424: END IF;
11461: ,x_msg_count => x_msg_count
11462: ,x_msg_data => x_msg_data
11463: );
11464:
11465: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11466: RAISE FND_API.G_EXC_ERROR;
11467: END IF;
11468: x_rawcost_pc := l_rawcost_pc;
11469: x_rawcost_fc := l_rawcost_fc;
11462: ,x_msg_data => x_msg_data
11463: );
11464:
11465: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11466: RAISE FND_API.G_EXC_ERROR;
11467: END IF;
11468: x_rawcost_pc := l_rawcost_pc;
11469: x_rawcost_fc := l_rawcost_fc;
11470:
11492: ,x_msg_count => x_msg_count
11493: ,x_msg_data => x_msg_data
11494: );
11495:
11496: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11497: RAISE FND_API.G_EXC_ERROR;
11498: END IF;
11499: x_brdncost_pc := l_rawcost_pc;
11500: x_brdncost_fc := l_rawcost_fc;
11493: ,x_msg_data => x_msg_data
11494: );
11495:
11496: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11497: RAISE FND_API.G_EXC_ERROR;
11498: END IF;
11499: x_brdncost_pc := l_rawcost_pc;
11500: x_brdncost_fc := l_rawcost_fc;
11501: --Bug 5027965
11527:
11528:
11529: EXCEPTION
11530:
11531: WHEN FND_API.G_EXC_ERROR THEN
11532: x_return_status := FND_API.G_RET_STS_ERROR;
11533: x_msg_count := Fnd_Msg_Pub.count_msg;
11534:
11535: -- 4537865
11528:
11529: EXCEPTION
11530:
11531: WHEN FND_API.G_EXC_ERROR THEN
11532: x_return_status := FND_API.G_RET_STS_ERROR;
11533: x_msg_count := Fnd_Msg_Pub.count_msg;
11534:
11535: -- 4537865
11536:
11541: x_rawcost_fc := NULL ;
11542: x_brdncost_fc := NULL ;
11543:
11544: WHEN OTHERS THEN
11545: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
11546: x_msg_count := 1;
11547: x_msg_data := SUBSTRB(SQLERRM,1,240);
11548:
11549: -- 4537865