1: PACKAGE body PA_FP_GEN_AMOUNT_UTILS as
2: /* $Header: PAFPGAUB.pls 120.13.12020000.2 2013/04/07 10:11:48 tvala ship $ */
3:
4: l_module_name VARCHAR2(100) := 'pa.plsql.pa_fp_gen_amount_utils';
5: Invalid_Arg_Exc EXCEPTION;
1: PACKAGE body PA_FP_GEN_AMOUNT_UTILS as
2: /* $Header: PAFPGAUB.pls 120.13.12020000.2 2013/04/07 10:11:48 tvala ship $ */
3:
4: l_module_name VARCHAR2(100) := 'pa.plsql.pa_fp_gen_amount_utils';
5: Invalid_Arg_Exc EXCEPTION;
6:
7: P_PA_DEBUG_MODE varchar2(1) := NVL(FND_PROFILE.value('PA_DEBUG_MODE'), 'N');
8: PROCEDURE GET_PLAN_VERSION_DTLS
14: X_MSG_DATA OUT NOCOPY VARCHAR2)
15:
16: IS
17:
18: l_module_name VARCHAR2(200) := 'pa.plsql.pa_fp_gen_amount_utils.get_plan_version_dtls';
19:
20: l_debug_mode VARCHAR2(30);
21: l_msg_count NUMBER := 0;
22: l_data VARCHAR2(2000);
282: WHEN OTHERS THEN
283: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
284: x_msg_data := SUBSTR(SQLERRM,1,240);
285: FND_MSG_PUB.add_exc_msg
286: ( p_pkg_name => 'PA_FP_GEN_AMOUNT_UTILS'
287: ,p_procedure_name => 'GET_PLAN_VERSION_DTLS');
288: IF P_PA_DEBUG_MODE = 'Y' THEN
289: pa_fp_gen_amount_utils.fp_debug
290: (p_msg => 'Unexpected Error'||substr(sqlerrm, 1, 240),
285: FND_MSG_PUB.add_exc_msg
286: ( p_pkg_name => 'PA_FP_GEN_AMOUNT_UTILS'
287: ,p_procedure_name => 'GET_PLAN_VERSION_DTLS');
288: IF P_PA_DEBUG_MODE = 'Y' THEN
289: pa_fp_gen_amount_utils.fp_debug
290: (p_msg => 'Unexpected Error'||substr(sqlerrm, 1, 240),
291: p_module_name => l_module_name,
292: p_log_level => 5);
293: PA_DEBUG.Reset_Curr_Function;
303: X_MSG_DATA OUT NOCOPY VARCHAR2,
304: X_RETURN_STATUS OUT NOCOPY VARCHAR2)
305: IS
306: l_flag varchar2(1):='N';
307: l_module_name VARCHAR2(200) := 'pa.plsql.pa_fp_gen_amount_utils.chk_cmt_txn_currency';
308: BEGIN
309:
310: X_MSG_COUNT := 0;
311: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
350: --dbms_output.put_line(SUBSTR(SQLERRM,1,240));
351: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
352: x_msg_data := SUBSTR(SQLERRM,1,240);
353: FND_MSG_PUB.add_exc_msg
354: ( p_pkg_name => 'PA_FP_GEN_AMOUNT_UTILS'
355: ,p_procedure_name => 'CHK_CMT_TXN_CURRENCY');
356: IF p_pa_debug_mode = 'Y' THEN
357: PA_DEBUG.Reset_Curr_Function;
358: END IF;
377: x_msg_count OUT NOCOPY NUMBER,
378: x_msg_data OUT NOCOPY VARCHAR2)
379: AS
380:
381: l_module_name VARCHAR2(200) := 'pa.plsql.pa_fp_gen_amount_utils.Get_Curr_Original_Version_Info';
382:
383: --Start of variables used for debugging
384: l_msg_count NUMBER :=0;
385: l_data VARCHAR2(2000);
416:
417: IF l_debug_mode = 'Y' THEN
418: pa_debug.g_err_stage:='Validating input parameters';
419:
420: pa_fp_gen_amount_utils.fp_debug
421: (p_msg => pa_debug.g_err_stage,
422: p_module_name => l_module_name,
423: p_log_level => 5);
424: END IF;
428: THEN
429:
430: IF l_debug_mode = 'Y' THEN
431: pa_debug.g_err_stage:='Project_id = '||p_project_id;
432: pa_fp_gen_amount_utils.fp_debug
433: (p_msg => pa_debug.g_err_stage,
434: p_module_name => l_module_name,
435: p_log_level => 5);
436:
434: p_module_name => l_module_name,
435: p_log_level => 5);
436:
437: pa_debug.g_err_stage:='Fin_plan_type_id = '||p_fin_plan_type_id;
438: pa_fp_gen_amount_utils.fp_debug
439: (p_msg => pa_debug.g_err_stage,
440: p_module_name => l_module_name,
441: p_log_level => 5);
442: END IF;
451: --Fetch fin plan preference code
452:
453: IF l_debug_mode = 'Y' THEN
454: pa_debug.g_err_stage:='Fetching fin plan preference code ';
455: pa_fp_gen_amount_utils.fp_debug
456: (p_msg => pa_debug.g_err_stage,
457: p_module_name => l_module_name,
458: p_log_level => 5);
459: END IF;
472: --In this case version_type should be passed and so raise error
473:
474: IF l_debug_mode = 'Y' THEN
475: pa_debug.g_err_stage:='Version_Type = '||p_version_type;
476: pa_fp_gen_amount_utils.fp_debug
477: (p_msg => pa_debug.g_err_stage,
478: p_module_name => l_module_name,
479: p_log_level => 5);
480: END IF;
487: END IF;
488:
489: IF l_debug_mode = 'Y' THEN
490: pa_debug.g_err_stage:='Parameter validation complete ';
491: pa_fp_gen_amount_utils.fp_debug
492: (p_msg => pa_debug.g_err_stage,
493: p_module_name => l_module_name,
494: p_log_level => 5);
495: END IF;
522: BEGIN
523:
524: IF l_debug_mode = 'Y' THEN
525: pa_debug.g_err_stage:='Fetching current original Version';
526: pa_fp_gen_amount_utils.fp_debug
527: (p_msg => pa_debug.g_err_stage,
528: p_module_name => l_module_name,
529: p_log_level => 5);
530: END IF;
554: --Fetch fp options id using plan version id
555:
556: IF l_debug_mode = 'Y' THEN
557: pa_debug.g_err_stage:='Fetching fp option id';
558: pa_fp_gen_amount_utils.fp_debug
559: (p_msg => pa_debug.g_err_stage,
560: p_module_name => l_module_name,
561: p_log_level => 5);
562: END IF;
580: x_fp_options_id := l_fp_options_id;
581:
582: IF l_debug_mode = 'Y' THEN
583: pa_debug.g_err_stage:='Exiting Get_Curr_Original_Version_Info';
584: pa_fp_gen_amount_utils.fp_debug
585: (p_msg => pa_debug.g_err_stage,
586: p_module_name => l_module_name,
587: p_log_level => 5);
588: PA_DEBUG.Reset_Curr_Function;
610: x_return_status := FND_API.G_RET_STS_ERROR;
611:
612: IF l_debug_mode = 'Y' THEN
613: pa_debug.g_err_stage:='Invalid Arguments Passed';
614: pa_fp_gen_amount_utils.fp_debug
615: (p_msg => pa_debug.g_err_stage,
616: p_module_name => l_module_name,
617: p_log_level => 5);
618:
625: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
626: x_msg_count := 1;
627: x_msg_data := SQLERRM;
628:
629: FND_MSG_PUB.add_exc_msg( p_pkg_name => 'PA_FP_GEN_AMOUNT_UTILS'
630: ,p_procedure_name => 'Get_Curr_Original_Version_Info');
631:
632: IF l_debug_mode = 'Y' THEN
633: pa_fp_gen_amount_utils.fp_debug
629: FND_MSG_PUB.add_exc_msg( p_pkg_name => 'PA_FP_GEN_AMOUNT_UTILS'
630: ,p_procedure_name => 'Get_Curr_Original_Version_Info');
631:
632: IF l_debug_mode = 'Y' THEN
633: pa_fp_gen_amount_utils.fp_debug
634: (p_msg => 'Unexpected Error'||substr(sqlerrm, 1, 240),
635: p_module_name => l_module_name,
636: p_log_level => 5);
637: PA_DEBUG.Reset_Curr_Function;
649: X_MSG_COUNT OUT NOCOPY NUMBER,
650: X_MSG_DATA OUT NOCOPY VARCHAR2,
651: X_RETURN_STATUS OUT NOCOPY VARCHAR2) IS
652:
653: l_fp_cols_rec PA_FP_GEN_AMOUNT_UTILS.FP_COLS;
654: l_module_name VARCHAR2(200) := 'pa.plsql.pa_fp_gen_amount_utils.validate_plan_version';
655:
656: BEGIN
657:
650: X_MSG_DATA OUT NOCOPY VARCHAR2,
651: X_RETURN_STATUS OUT NOCOPY VARCHAR2) IS
652:
653: l_fp_cols_rec PA_FP_GEN_AMOUNT_UTILS.FP_COLS;
654: l_module_name VARCHAR2(200) := 'pa.plsql.pa_fp_gen_amount_utils.validate_plan_version';
655:
656: BEGIN
657:
658: X_MSG_COUNT := 0;
664: END IF;
665:
666: --Calling the Util API
667: IF p_pa_debug_mode = 'Y' THEN
668: pa_fp_gen_amount_utils.fp_debug
669: (p_msg => 'Before calling
670: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS',
671: p_module_name => l_module_name,
672: p_log_level => 5);
666: --Calling the Util API
667: IF p_pa_debug_mode = 'Y' THEN
668: pa_fp_gen_amount_utils.fp_debug
669: (p_msg => 'Before calling
670: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS',
671: p_module_name => l_module_name,
672: p_log_level => 5);
673: END IF;
674: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS
670: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS',
671: p_module_name => l_module_name,
672: p_log_level => 5);
673: END IF;
674: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS
675: (P_PROJECT_ID => P_PROJECT_ID,
676: P_BUDGET_VERSION_ID => P_SRC_BDGT_VERSION_ID,
677: X_FP_COLS_REC => l_fp_cols_rec,
678: X_RETURN_STATUS => X_RETURN_STATUS,
681: IF X_RETURN_STATUS <> FND_API.G_RET_STS_SUCCESS THEN
682: RAISE PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc;
683: END IF;
684: IF p_pa_debug_mode = 'Y' THEN
685: pa_fp_gen_amount_utils.fp_debug
686: (p_msg => 'Status after calling
687: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS: '
688: ||x_return_status,
689: p_module_name => l_module_name,
683: END IF;
684: IF p_pa_debug_mode = 'Y' THEN
685: pa_fp_gen_amount_utils.fp_debug
686: (p_msg => 'Status after calling
687: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS: '
688: ||x_return_status,
689: p_module_name => l_module_name,
690: p_log_level => 5);
691: END IF;
707: WHEN OTHERS THEN
708: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
709: x_msg_data := SUBSTR(SQLERRM,1,240);
710: FND_MSG_PUB.add_exc_msg
711: ( p_pkg_name => 'PA_FP_GEN_AMOUNT_UTILS'
712: ,p_procedure_name => 'VALIDATE_PLAN_VERSION');
713: IF p_pa_debug_mode = 'Y' THEN
714: PA_DEBUG.Reset_Curr_Function;
715: END IF;
740: X_RETURN_STATUS OUT NOCOPY VARCHAR2,
741: X_MSG_COUNT OUT NOCOPY NUMBER,
742: X_MSG_DATA OUT NOCOPY VARCHAR2) IS
743:
744: l_module_name VARCHAR2(200) := 'pa.plsql.pa_fp_gen_amount_utils.get_values_for_planning_rate';
745:
746: CURSOR get_resource_asn_csr (c_resource_assignment_id IN NUMBER) IS
747: SELECT project_id
748: ,task_id
1115: END IF;
1116:
1117: --Calling the Get_planning_Rates api
1118: IF p_pa_debug_mode = 'Y' THEN
1119: pa_fp_gen_amount_utils.fp_debug
1120: (p_called_mode => p_called_mode,
1121: p_msg => 'Before calling
1122: pa_plan_revenue.Get_planning_Rates',
1123: p_module_name => l_module_name,
1216: IF X_RETURN_STATUS <> FND_API.G_RET_STS_SUCCESS THEN
1217: RAISE PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc;
1218: END IF;
1219: IF p_pa_debug_mode = 'Y' THEN
1220: pa_fp_gen_amount_utils.fp_debug
1221: (p_called_mode => p_called_mode,
1222: p_msg => 'Status after calling
1223: pa_plan_revenue.Get_planning_Rates'
1224: ||x_return_status,
1252: ROLLBACK;
1253:
1254: x_return_status := FND_API.G_RET_STS_ERROR;
1255: IF P_PA_DEBUG_MODE = 'Y' THEN
1256: pa_fp_gen_amount_utils.fp_debug
1257: (p_msg => 'Invalid Arguments Passed',
1258: p_module_name => l_module_name,
1259: p_log_level => 5);
1260: PA_DEBUG.Reset_Curr_Function;
1266: --dbms_output.put_line(SUBSTR(SQLERRM,1,240));
1267: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1268: x_msg_data := SUBSTR(SQLERRM,1,240);
1269: FND_MSG_PUB.add_exc_msg
1270: ( p_pkg_name => 'PA_FP_GEN_AMOUNT_UTILS'
1271: ,p_procedure_name => 'GET_VALUES_FOR_PLANNING_RATE');
1272: IF p_pa_debug_mode = 'Y' THEN
1273: PA_DEBUG.Reset_Curr_Function;
1274: END IF;
1464: **/
1465:
1466:
1467: PROCEDURE VALIDATE_SUPPORT_CASES
1468: (P_FP_COLS_REC_TGT IN PA_FP_GEN_AMOUNT_UTILS.FP_COLS,
1469: P_CALLING_CONTEXT IN VARCHAR2,
1470: P_CHECK_SRC_ERRORS_FLAG IN VARCHAR2,
1471: X_WARNING_MESSAGE OUT NOCOPY VARCHAR2,
1472: X_RETURN_STATUS OUT NOCOPY VARCHAR2,
1472: X_RETURN_STATUS OUT NOCOPY VARCHAR2,
1473: X_MSG_COUNT OUT NOCOPY NUMBER,
1474: X_MSG_DATA OUT NOCOPY VARCHAR2)
1475: IS
1476: l_module_name VARCHAR2(200) := 'pa.plsql.PA_FP_GEN_AMOUNT_UTILS.VALIDATE_SUPPORT_CASES';
1477:
1478: l_wp_track_cost_flag VARCHAR2(1);
1479: l_rev_gen_method VARCHAR2(1);
1480: l_plan_class_code PA_FIN_PLAN_TYPES_B.PLAN_CLASS_CODE%TYPE;
1481:
1482: l_source_wp_ver_id PA_BUDGET_VERSIONS.BUDGET_VERSION_ID%TYPE;
1483: l_stru_sharing_code PA_PROJECTS_ALL.STRUCTURE_SHARING_CODE%TYPE;
1484: l_source_fp_ver_id PA_BUDGET_VERSIONS.BUDGET_VERSION_ID%TYPE;
1485: l_fp_cols_rec_source PA_FP_GEN_AMOUNT_UTILS.FP_COLS;
1486:
1487: l_gen_src_code PA_PROJ_FP_OPTIONS.GEN_COST_SRC_CODE%TYPE;
1488: l_count NUMBER;
1489:
1486:
1487: l_gen_src_code PA_PROJ_FP_OPTIONS.GEN_COST_SRC_CODE%TYPE;
1488: l_count NUMBER;
1489:
1490: l_fp_cols_rec_tgt PA_FP_GEN_AMOUNT_UTILS.FP_COLS;
1491: x_fp_cols_rec_tgt PA_FP_GEN_AMOUNT_UTILS.FP_COLS;
1492:
1493: -- This flag tracks if we still need to perform defaulting
1494: -- logic for the source version id. This flag is only relevant
1487: l_gen_src_code PA_PROJ_FP_OPTIONS.GEN_COST_SRC_CODE%TYPE;
1488: l_count NUMBER;
1489:
1490: l_fp_cols_rec_tgt PA_FP_GEN_AMOUNT_UTILS.FP_COLS;
1491: x_fp_cols_rec_tgt PA_FP_GEN_AMOUNT_UTILS.FP_COLS;
1492:
1493: -- This flag tracks if we still need to perform defaulting
1494: -- logic for the source version id. This flag is only relevant
1495: -- if the Target is a Budget.
1564: l_default_bdgt_src_ver_flag = 'Y' AND
1565: l_fp_cols_rec_tgt.X_GEN_SRC_WP_VERSION_ID IS NULL THEN
1566:
1567: IF p_pa_debug_mode = 'Y' THEN
1568: pa_fp_gen_amount_utils.fp_debug
1569: (p_called_mode => p_calling_context,
1570: p_msg => 'Before calling
1571: PA_FP_GEN_AMOUNT_UTILS.DEFAULT_BDGT_SRC_VER',
1572: p_module_name => l_module_name,
1567: IF p_pa_debug_mode = 'Y' THEN
1568: pa_fp_gen_amount_utils.fp_debug
1569: (p_called_mode => p_calling_context,
1570: p_msg => 'Before calling
1571: PA_FP_GEN_AMOUNT_UTILS.DEFAULT_BDGT_SRC_VER',
1572: p_module_name => l_module_name,
1573: p_log_level => 5);
1574: END IF;
1575: /* The version defaulting API passes updated Target version details
1573: p_log_level => 5);
1574: END IF;
1575: /* The version defaulting API passes updated Target version details
1576: * record back as an OUT parameter. */
1577: PA_FP_GEN_AMOUNT_UTILS.DEFAULT_BDGT_SRC_VER
1578: ( P_FP_COLS_REC_TGT => l_fp_cols_rec_tgt,
1579: P_CALLING_CONTEXT => p_calling_context,
1580: X_FP_COLS_REC_TGT => x_fp_cols_rec_tgt,
1581: X_RETURN_STATUS => X_RETURN_STATUS,
1581: X_RETURN_STATUS => X_RETURN_STATUS,
1582: X_MSG_COUNT => X_MSG_COUNT,
1583: X_MSG_DATA => X_MSG_DATA );
1584: IF p_pa_debug_mode = 'Y' THEN
1585: pa_fp_gen_amount_utils.fp_debug
1586: (p_called_mode => p_calling_context,
1587: p_msg => 'Status after calling
1588: PA_FP_GEN_AMOUNT_UTILS.DEFAULT_BDGT_SRC_VER: '
1589: ||x_return_status,
1584: IF p_pa_debug_mode = 'Y' THEN
1585: pa_fp_gen_amount_utils.fp_debug
1586: (p_called_mode => p_calling_context,
1587: p_msg => 'Status after calling
1588: PA_FP_GEN_AMOUNT_UTILS.DEFAULT_BDGT_SRC_VER: '
1589: ||x_return_status,
1590: p_module_name => l_module_name,
1591: p_log_level => 5);
1592: END IF;
1606: l_source_wp_ver_id IS NOT NULL AND
1607: l_stru_sharing_code = 'SHARE_FULL' THEN
1608: /* Get version details for Source Workplan */
1609: IF p_pa_debug_mode = 'Y' THEN
1610: pa_fp_gen_amount_utils.fp_debug
1611: (p_called_mode => p_calling_context,
1612: p_msg => 'Before calling
1613: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS',
1614: p_module_name => l_module_name,
1609: IF p_pa_debug_mode = 'Y' THEN
1610: pa_fp_gen_amount_utils.fp_debug
1611: (p_called_mode => p_calling_context,
1612: p_msg => 'Before calling
1613: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS',
1614: p_module_name => l_module_name,
1615: p_log_level => 5);
1616: END IF;
1617: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS
1613: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS',
1614: p_module_name => l_module_name,
1615: p_log_level => 5);
1616: END IF;
1617: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS
1618: ( P_PROJECT_ID => l_fp_cols_rec_tgt.X_PROJECT_ID,
1619: P_BUDGET_VERSION_ID => l_source_wp_ver_id,
1620: X_FP_COLS_REC => l_fp_cols_rec_source,
1621: X_RETURN_STATUS => X_RETURN_STATUS,
1621: X_RETURN_STATUS => X_RETURN_STATUS,
1622: X_MSG_COUNT => X_MSG_COUNT,
1623: X_MSG_DATA => X_MSG_DATA );
1624: IF p_pa_debug_mode = 'Y' THEN
1625: pa_fp_gen_amount_utils.fp_debug
1626: (p_called_mode => p_calling_context,
1627: p_msg => 'Status after calling
1628: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS: '
1629: ||x_return_status,
1624: IF p_pa_debug_mode = 'Y' THEN
1625: pa_fp_gen_amount_utils.fp_debug
1626: (p_called_mode => p_calling_context,
1627: p_msg => 'Status after calling
1628: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS: '
1629: ||x_return_status,
1630: p_module_name => l_module_name,
1631: p_log_level => 5);
1632: END IF;
1798: (l_gen_src_code = 'TASK_LEVEL_SEL' AND l_count > 0) THEN
1799:
1800: /* Get version details for Source Workplan */
1801: IF p_pa_debug_mode = 'Y' THEN
1802: pa_fp_gen_amount_utils.fp_debug
1803: (p_called_mode => p_calling_context,
1804: p_msg => 'Before calling
1805: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS',
1806: p_module_name => l_module_name,
1801: IF p_pa_debug_mode = 'Y' THEN
1802: pa_fp_gen_amount_utils.fp_debug
1803: (p_called_mode => p_calling_context,
1804: p_msg => 'Before calling
1805: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS',
1806: p_module_name => l_module_name,
1807: p_log_level => 5);
1808: END IF;
1809: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS
1805: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS',
1806: p_module_name => l_module_name,
1807: p_log_level => 5);
1808: END IF;
1809: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS
1810: (P_PROJECT_ID => l_fp_cols_rec_tgt.X_PROJECT_ID,
1811: P_BUDGET_VERSION_ID => l_source_wp_ver_id,
1812: X_FP_COLS_REC => l_fp_cols_rec_source,
1813: X_RETURN_STATUS => X_RETURN_STATUS,
1813: X_RETURN_STATUS => X_RETURN_STATUS,
1814: X_MSG_COUNT => X_MSG_COUNT,
1815: X_MSG_DATA => X_MSG_DATA);
1816: IF p_pa_debug_mode = 'Y' THEN
1817: pa_fp_gen_amount_utils.fp_debug
1818: (p_called_mode => p_calling_context,
1819: p_msg => 'Status after calling
1820: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS: '
1821: ||x_return_status,
1816: IF p_pa_debug_mode = 'Y' THEN
1817: pa_fp_gen_amount_utils.fp_debug
1818: (p_called_mode => p_calling_context,
1819: p_msg => 'Status after calling
1820: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS: '
1821: ||x_return_status,
1822: p_module_name => l_module_name,
1823: p_log_level => 5);
1824: END IF;
1851: (l_gen_src_code = 'TASK_LEVEL_SEL' AND l_count > 0) THEN
1852:
1853: -- Get version details for Source Financial Plan
1854: IF p_pa_debug_mode = 'Y' THEN
1855: pa_fp_gen_amount_utils.fp_debug
1856: (p_called_mode => p_calling_context,
1857: p_msg => 'Before calling
1858: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS',
1859: p_module_name => l_module_name,
1854: IF p_pa_debug_mode = 'Y' THEN
1855: pa_fp_gen_amount_utils.fp_debug
1856: (p_called_mode => p_calling_context,
1857: p_msg => 'Before calling
1858: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS',
1859: p_module_name => l_module_name,
1860: p_log_level => 5);
1861: END IF;
1862: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS
1858: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS',
1859: p_module_name => l_module_name,
1860: p_log_level => 5);
1861: END IF;
1862: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS
1863: (P_PROJECT_ID => l_fp_cols_rec_tgt.X_PROJECT_ID,
1864: P_BUDGET_VERSION_ID => l_source_fp_ver_id,
1865: X_FP_COLS_REC => l_fp_cols_rec_source,
1866: X_RETURN_STATUS => X_RETURN_STATUS,
1866: X_RETURN_STATUS => X_RETURN_STATUS,
1867: X_MSG_COUNT => X_MSG_COUNT,
1868: X_MSG_DATA => X_MSG_DATA);
1869: IF p_pa_debug_mode = 'Y' THEN
1870: pa_fp_gen_amount_utils.fp_debug
1871: (p_called_mode => p_calling_context,
1872: p_msg => 'Status after calling
1873: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS: '
1874: ||x_return_status,
1869: IF p_pa_debug_mode = 'Y' THEN
1870: pa_fp_gen_amount_utils.fp_debug
1871: (p_called_mode => p_calling_context,
1872: p_msg => 'Status after calling
1873: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS: '
1874: ||x_return_status,
1875: p_module_name => l_module_name,
1876: p_log_level => 5);
1877: END IF;
1906: l_fp_cols_rec_tgt.X_GEN_SRC_WP_VERSION_ID IS NULL AND
1907: l_fp_cols_rec_tgt.X_GEN_SRC_PLAN_VERSION_ID IS NULL THEN
1908:
1909: IF p_pa_debug_mode = 'Y' THEN
1910: pa_fp_gen_amount_utils.fp_debug
1911: (p_called_mode => p_calling_context,
1912: p_msg => 'Before calling
1913: PA_FP_GEN_AMOUNT_UTILS.DEFAULT_BDGT_SRC_VER',
1914: p_module_name => l_module_name,
1909: IF p_pa_debug_mode = 'Y' THEN
1910: pa_fp_gen_amount_utils.fp_debug
1911: (p_called_mode => p_calling_context,
1912: p_msg => 'Before calling
1913: PA_FP_GEN_AMOUNT_UTILS.DEFAULT_BDGT_SRC_VER',
1914: p_module_name => l_module_name,
1915: p_log_level => 5);
1916: END IF;
1917: /* The version defaulting API passes updated Target version details
1915: p_log_level => 5);
1916: END IF;
1917: /* The version defaulting API passes updated Target version details
1918: * record back as an OUT parameter. */
1919: PA_FP_GEN_AMOUNT_UTILS.DEFAULT_BDGT_SRC_VER
1920: ( P_FP_COLS_REC_TGT => l_fp_cols_rec_tgt,
1921: P_CALLING_CONTEXT => p_calling_context,
1922: X_FP_COLS_REC_TGT => x_fp_cols_rec_tgt,
1923: X_RETURN_STATUS => X_RETURN_STATUS,
1923: X_RETURN_STATUS => X_RETURN_STATUS,
1924: X_MSG_COUNT => X_MSG_COUNT,
1925: X_MSG_DATA => X_MSG_DATA );
1926: IF p_pa_debug_mode = 'Y' THEN
1927: pa_fp_gen_amount_utils.fp_debug
1928: (p_called_mode => p_calling_context,
1929: p_msg => 'Status after calling
1930: PA_FP_GEN_AMOUNT_UTILS.DEFAULT_BDGT_SRC_VER: '
1931: ||x_return_status,
1926: IF p_pa_debug_mode = 'Y' THEN
1927: pa_fp_gen_amount_utils.fp_debug
1928: (p_called_mode => p_calling_context,
1929: p_msg => 'Status after calling
1930: PA_FP_GEN_AMOUNT_UTILS.DEFAULT_BDGT_SRC_VER: '
1931: ||x_return_status,
1932: p_module_name => l_module_name,
1933: p_log_level => 5);
1934: END IF;
2180: AND l_fp_cols_rec_tgt.X_VERSION_TYPE IN ('REVENUE','ALL')) THEN
2181:
2182: -- Get version details for Source Financial Plan
2183: IF p_pa_debug_mode = 'Y' THEN
2184: pa_fp_gen_amount_utils.fp_debug
2185: (p_called_mode => p_calling_context,
2186: p_msg => 'Before calling
2187: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS',
2188: p_module_name => l_module_name,
2183: IF p_pa_debug_mode = 'Y' THEN
2184: pa_fp_gen_amount_utils.fp_debug
2185: (p_called_mode => p_calling_context,
2186: p_msg => 'Before calling
2187: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS',
2188: p_module_name => l_module_name,
2189: p_log_level => 5);
2190: END IF;
2191: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS
2187: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS',
2188: p_module_name => l_module_name,
2189: p_log_level => 5);
2190: END IF;
2191: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS
2192: (P_PROJECT_ID => l_fp_cols_rec_tgt.X_PROJECT_ID,
2193: P_BUDGET_VERSION_ID => l_fp_cols_rec_tgt.X_GEN_SRC_PLAN_VERSION_ID,
2194: X_FP_COLS_REC => l_fp_cols_rec_source,
2195: X_RETURN_STATUS => X_RETURN_STATUS,
2195: X_RETURN_STATUS => X_RETURN_STATUS,
2196: X_MSG_COUNT => X_MSG_COUNT,
2197: X_MSG_DATA => X_MSG_DATA);
2198: IF p_pa_debug_mode = 'Y' THEN
2199: pa_fp_gen_amount_utils.fp_debug
2200: (p_called_mode => p_calling_context,
2201: p_msg => 'Status after calling
2202: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS: '
2203: ||x_return_status,
2198: IF p_pa_debug_mode = 'Y' THEN
2199: pa_fp_gen_amount_utils.fp_debug
2200: (p_called_mode => p_calling_context,
2201: p_msg => 'Status after calling
2202: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS: '
2203: ||x_return_status,
2204: p_module_name => l_module_name,
2205: p_log_level => 5);
2206: END IF;
2235: -- 2) This API pushed multiple messages onto the stack.
2236: -- In both cases, we should only have 1 message on the stack.
2237: IF l_msg_count <> 1 THEN
2238: IF P_PA_DEBUG_MODE = 'Y' THEN
2239: pa_fp_gen_amount_utils.fp_debug
2240: ( p_called_mode => p_calling_context,
2241: p_msg => 'Source data contains errors, but the number of ' ||
2242: 'messages on the error stack is not equal to 1.',
2243: p_module_name => l_module_name,
2286:
2287: x_return_status := FND_API.G_RET_STS_ERROR;
2288:
2289: IF P_PA_DEBUG_MODE = 'Y' THEN
2290: pa_fp_gen_amount_utils.fp_debug
2291: ( p_called_mode => p_calling_context,
2292: p_msg => 'Invalid Arguments Passed',
2293: p_module_name => l_module_name,
2294: p_log_level => 5 );
2302: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2303: x_msg_count := 1;
2304: x_msg_data := substr(sqlerrm,1,240);
2305: FND_MSG_PUB.add_exc_msg
2306: ( p_pkg_name => 'PA_FP_GEN_AMOUNT_UTILS',
2307: p_procedure_name => 'VALIDATE_SUPPORT_CASES',
2308: p_error_text => substr(sqlerrm,1,240));
2309:
2310: IF P_PA_DEBUG_MODE = 'Y' THEN
2307: p_procedure_name => 'VALIDATE_SUPPORT_CASES',
2308: p_error_text => substr(sqlerrm,1,240));
2309:
2310: IF P_PA_DEBUG_MODE = 'Y' THEN
2311: pa_fp_gen_amount_utils.fp_debug
2312: (p_called_mode => p_calling_context,
2313: p_msg => 'Unexpected Error'||substr(sqlerrm,1,240),
2314: p_module_name => l_module_name,
2315: p_log_level => 5);
2338: * This is the target version's details after the defaulting logic.
2339: * If no defaulting occurs, this will be the same as P_FP_COLS_REC_TGT.
2340: */
2341: PROCEDURE DEFAULT_BDGT_SRC_VER
2342: (P_FP_COLS_REC_TGT IN PA_FP_GEN_AMOUNT_UTILS.FP_COLS,
2343: P_CALLING_CONTEXT IN VARCHAR2,
2344: X_FP_COLS_REC_TGT OUT NOCOPY PA_FP_GEN_AMOUNT_UTILS.FP_COLS,
2345: X_RETURN_STATUS OUT NOCOPY VARCHAR2,
2346: X_MSG_COUNT OUT NOCOPY NUMBER,
2340: */
2341: PROCEDURE DEFAULT_BDGT_SRC_VER
2342: (P_FP_COLS_REC_TGT IN PA_FP_GEN_AMOUNT_UTILS.FP_COLS,
2343: P_CALLING_CONTEXT IN VARCHAR2,
2344: X_FP_COLS_REC_TGT OUT NOCOPY PA_FP_GEN_AMOUNT_UTILS.FP_COLS,
2345: X_RETURN_STATUS OUT NOCOPY VARCHAR2,
2346: X_MSG_COUNT OUT NOCOPY NUMBER,
2347: X_MSG_DATA OUT NOCOPY VARCHAR2)
2348: IS
2345: X_RETURN_STATUS OUT NOCOPY VARCHAR2,
2346: X_MSG_COUNT OUT NOCOPY NUMBER,
2347: X_MSG_DATA OUT NOCOPY VARCHAR2)
2348: IS
2349: l_module_name VARCHAR2(200) := 'pa.plsql.PA_FP_GEN_AMOUNT_UTILS.DEFAULT_BDGT_SRC_VER';
2350:
2351: l_plan_class_code PA_FIN_PLAN_TYPES_B.PLAN_CLASS_CODE%TYPE;
2352: l_gen_src_code PA_PROJ_FP_OPTIONS.GEN_COST_SRC_CODE%TYPE;
2353:
2514: OR l_gen_src_plan_ver_code = 'CURRENT_APPROVED'
2515: OR l_gen_src_plan_ver_code = 'ORIGINAL_APPROVED' THEN
2516: /*Get the current baselined or original baselined version*/
2517: IF P_PA_DEBUG_MODE = 'Y' THEN
2518: pa_fp_gen_amount_utils.fp_debug
2519: ( p_called_mode => p_calling_context,
2520: p_msg => 'Before calling
2521: pa_fp_gen_amount_utils.Get_Curr_Original_Version_Info',
2522: p_module_name => l_module_name,
2517: IF P_PA_DEBUG_MODE = 'Y' THEN
2518: pa_fp_gen_amount_utils.fp_debug
2519: ( p_called_mode => p_calling_context,
2520: p_msg => 'Before calling
2521: pa_fp_gen_amount_utils.Get_Curr_Original_Version_Info',
2522: p_module_name => l_module_name,
2523: p_log_level => 5 );
2524: END IF;
2525: pa_fp_gen_amount_utils.Get_Curr_Original_Version_Info(
2521: pa_fp_gen_amount_utils.Get_Curr_Original_Version_Info',
2522: p_module_name => l_module_name,
2523: p_log_level => 5 );
2524: END IF;
2525: pa_fp_gen_amount_utils.Get_Curr_Original_Version_Info(
2526: p_project_id => P_FP_COLS_REC_TGT.X_PROJECT_ID,
2527: p_fin_plan_type_id => P_FP_COLS_REC_TGT.X_GEN_SRC_PLAN_TYPE_ID,
2528: p_version_type => 'COST',
2529: p_status_code => l_gen_src_plan_ver_code,
2532: x_return_status => x_return_status,
2533: x_msg_count => x_msg_count,
2534: x_msg_data => x_msg_data );
2535: IF P_PA_DEBUG_MODE = 'Y' THEN
2536: pa_fp_gen_amount_utils.fp_debug
2537: ( p_called_mode => p_calling_context,
2538: p_msg => 'Status after calling
2539: pa_fp_gen_amount_utils.Get_Curr_Original_Version_Info'
2540: ||x_return_status,
2535: IF P_PA_DEBUG_MODE = 'Y' THEN
2536: pa_fp_gen_amount_utils.fp_debug
2537: ( p_called_mode => p_calling_context,
2538: p_msg => 'Status after calling
2539: pa_fp_gen_amount_utils.Get_Curr_Original_Version_Info'
2540: ||x_return_status,
2541: p_module_name => l_module_name,
2542: p_log_level => 5 );
2543: END IF;
2547:
2548: ELSIF l_gen_src_plan_ver_code = 'CURRENT_WORKING' THEN
2549: /*Get the current working version*/
2550: IF P_PA_DEBUG_MODE = 'Y' THEN
2551: pa_fp_gen_amount_utils.fp_debug
2552: ( p_called_mode => p_calling_context,
2553: p_msg => 'Before calling
2554: pa_fin_plan_utils.Get_Curr_Working_Version_Info',
2555: p_module_name => l_module_name,
2564: x_return_status => x_return_status,
2565: x_msg_count => x_msg_count,
2566: x_msg_data => x_msg_data );
2567: IF P_PA_DEBUG_MODE = 'Y' THEN
2568: pa_fp_gen_amount_utils.fp_debug
2569: ( p_called_mode => p_calling_context,
2570: p_msg => 'Status after calling
2571: pa_fin_plan_utils.Get_Curr_Working_Version_Info'
2572: ||x_return_status,
2610: /* Get updated Target version details */
2611: -- Currently, l_update_details_flag is always 'Y', but may change in the future.
2612: IF l_update_details_flag = 'Y' THEN
2613: IF p_pa_debug_mode = 'Y' THEN
2614: pa_fp_gen_amount_utils.fp_debug
2615: (p_called_mode => p_calling_context,
2616: p_msg => 'Before calling
2617: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS',
2618: p_module_name => l_module_name,
2613: IF p_pa_debug_mode = 'Y' THEN
2614: pa_fp_gen_amount_utils.fp_debug
2615: (p_called_mode => p_calling_context,
2616: p_msg => 'Before calling
2617: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS',
2618: p_module_name => l_module_name,
2619: p_log_level => 5);
2620: END IF;
2621: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS
2617: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS',
2618: p_module_name => l_module_name,
2619: p_log_level => 5);
2620: END IF;
2621: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS
2622: (P_PROJECT_ID => P_FP_COLS_REC_TGT.X_PROJECT_ID,
2623: P_BUDGET_VERSION_ID => P_FP_COLS_REC_TGT.X_BUDGET_VERSION_ID,
2624: X_FP_COLS_REC => X_FP_COLS_REC_TGT,
2625: X_RETURN_STATUS => X_RETURN_STATUS,
2625: X_RETURN_STATUS => X_RETURN_STATUS,
2626: X_MSG_COUNT => X_MSG_COUNT,
2627: X_MSG_DATA => X_MSG_DATA);
2628: IF p_pa_debug_mode = 'Y' THEN
2629: pa_fp_gen_amount_utils.fp_debug
2630: (p_called_mode => p_calling_context,
2631: p_msg => 'Status after calling
2632: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS: '
2633: ||x_return_status,
2628: IF p_pa_debug_mode = 'Y' THEN
2629: pa_fp_gen_amount_utils.fp_debug
2630: (p_called_mode => p_calling_context,
2631: p_msg => 'Status after calling
2632: PA_FP_GEN_AMOUNT_UTILS.GET_PLAN_VERSION_DTLS: '
2633: ||x_return_status,
2634: p_module_name => l_module_name,
2635: p_log_level => 5);
2636: END IF;
2663:
2664: x_return_status := FND_API.G_RET_STS_ERROR;
2665:
2666: IF P_PA_DEBUG_MODE = 'Y' THEN
2667: pa_fp_gen_amount_utils.fp_debug
2668: ( p_called_mode => p_calling_context,
2669: p_msg => 'Invalid Arguments Passed',
2670: p_module_name => l_module_name,
2671: p_log_level => 5 );
2679: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2680: x_msg_count := 1;
2681: x_msg_data := substr(sqlerrm,1,240);
2682: FND_MSG_PUB.add_exc_msg
2683: ( p_pkg_name => 'PA_FP_GEN_AMOUNT_UTILS',
2684: p_procedure_name => 'DEFAULT_BDGT_SRC_VER',
2685: p_error_text => substr(sqlerrm,1,240));
2686:
2687: IF P_PA_DEBUG_MODE = 'Y' THEN
2684: p_procedure_name => 'DEFAULT_BDGT_SRC_VER',
2685: p_error_text => substr(sqlerrm,1,240));
2686:
2687: IF P_PA_DEBUG_MODE = 'Y' THEN
2688: pa_fp_gen_amount_utils.fp_debug
2689: (p_called_mode => p_calling_context,
2690: p_msg => 'Unexpected Error'||substr(sqlerrm,1,240),
2691: p_module_name => l_module_name,
2692: p_log_level => 5);
2721: RETURN VARCHAR2
2722: IS
2723: l_flag VARCHAR2(5) := NULL;
2724: BEGIN
2725: select NVL(PA_FP_GEN_AMOUNT_UTILS.get_src_resource_class_flag(bv.budget_version_id),'Y') as Resource_Class_Flag
2726: into l_flag
2727: FROM pa_fin_plan_types_vl pt,
2728: pa_budget_versions bv,
2729: pa_proj_fp_options pfo
2759: WHEN OTHERS THEN
2760: RETURN l_flag;
2761: END get_trg_resource_class_flag;
2762:
2763: END PA_FP_GEN_AMOUNT_UTILS;