1: PACKAGE body PA_RES_ASG_CURRENCY_PUB as
2: /* $Header: PAFPRBCB.pls 120.1.12010000.2 2008/12/05 10:13:01 rthumma ship $ */
3: P_PA_DEBUG_MODE varchar2(1) := NVL(FND_PROFILE.value('PA_DEBUG_MODE'), 'N');
4:
5: -- Private P_CALLING_MODULE values
6: G_PVT_MAINTAIN CONSTANT VARCHAR2(30) := 'MAINTAIN_DATA';
7: G_PVT_DELETE CONSTANT VARCHAR2(30) := 'DELETE_TABLE_RECORDS';
152: l_duplicate_count_tab PA_PLSQL_DATATYPES.IdTabTyp;
153: l_null_record_count NUMBER;
154:
155: BEGIN
156: IF p_pa_debug_mode = 'Y' THEN
157: pa_debug.set_curr_function
158: ( p_function => 'MAINTAIN_DATA',
159: p_debug_mode => p_pa_debug_mode );
160: END IF;
153: l_null_record_count NUMBER;
154:
155: BEGIN
156: IF p_pa_debug_mode = 'Y' THEN
157: pa_debug.set_curr_function
158: ( p_function => 'MAINTAIN_DATA',
159: p_debug_mode => p_pa_debug_mode );
160: END IF;
161:
155: BEGIN
156: IF p_pa_debug_mode = 'Y' THEN
157: pa_debug.set_curr_function
158: ( p_function => 'MAINTAIN_DATA',
159: p_debug_mode => p_pa_debug_mode );
160: END IF;
161:
162: PA_RES_ASG_CURRENCY_PUB.PRINT_INPUT_PARAMS
163: ( P_CALLING_API => G_PVT_MAINTAIN,
178:
179: l_parameters_valid_flag := 'Y';
180:
181: IF p_fp_cols_rec.x_budget_version_id IS NULL THEN
182: IF p_pa_debug_mode = 'Y' THEN
183: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
184: ( P_MSG => 'P_fp_cols_rec.x_budget_version_id should not be null.',
185: P_CALLED_MODE => p_called_mode,
186: P_MODULE_NAME => l_module_name,
189: l_parameters_valid_flag := 'N';
190: END IF; -- minimum p_fp_cols_rec validation
191:
192: IF NOT is_public_calling_module(p_calling_module) THEN
193: IF p_pa_debug_mode = 'Y' THEN
194: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
195: ( P_MSG => 'Invalid p_calling_module value: '
196: || p_calling_module,
197: P_CALLED_MODE => p_called_mode,
201: l_parameters_valid_flag := 'N';
202: END IF; -- p_calling_module validation
203:
204: IF NOT is_valid_flag(p_delete_flag) THEN
205: IF p_pa_debug_mode = 'Y' THEN
206: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
207: ( P_MSG => 'Invalid p_delete_flag value: '
208: || p_delete_flag,
209: P_CALLED_MODE => p_called_mode,
213: l_parameters_valid_flag := 'N';
214: END IF; -- p_delete_flag validation
215:
216: IF NOT is_valid_flag(p_copy_flag) THEN
217: IF p_pa_debug_mode = 'Y' THEN
218: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
219: ( P_MSG => 'Invalid p_copy_flag value: '
220: || p_copy_flag,
221: P_CALLED_MODE => p_called_mode,
226: END IF; -- p_copy_flag validation
227:
228: IF p_copy_flag = 'Y' AND
229: p_src_version_id IS NULL THEN
230: IF p_pa_debug_mode = 'Y' THEN
231: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
232: ( P_MSG => 'Since p_copy_flag is Y, p_src_version_id cannot be Null',
233: P_CALLED_MODE => p_called_mode,
234: P_MODULE_NAME => l_module_name,
238: END IF; -- p_src_version_id validation
239:
240: IF p_copy_flag = 'Y' AND
241: NOT IS_VALID_COPY_MODE(p_copy_mode) THEN
242: IF p_pa_debug_mode = 'Y' THEN
243: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
244: ( P_MSG => 'Since p_copy_flag is Y, invalid p_copy_mode value: '
245: || p_copy_mode,
246: P_CALLED_MODE => p_called_mode,
250: l_parameters_valid_flag := 'N';
251: END IF; -- p_copy_flag validation
252:
253: IF NOT is_valid_flag(p_rollup_flag) THEN
254: IF p_pa_debug_mode = 'Y' THEN
255: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
256: ( P_MSG => 'Invalid p_rollup_flag value: '
257: || p_rollup_flag,
258: P_CALLED_MODE => p_called_mode,
262: l_parameters_valid_flag := 'N';
263: END IF; -- p_rollup_flag validation
264:
265: IF NOT is_valid_flag(p_version_level_flag) THEN
266: IF p_pa_debug_mode = 'Y' THEN
267: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
268: ( P_MSG => 'Invalid p_version_level_flag value: '
269: || p_version_level_flag,
270: P_CALLED_MODE => p_called_mode,
283:
284: -- Step 1: Handle Deletion
285: IF p_delete_flag = 'Y' THEN
286:
287: IF p_pa_debug_mode = 'Y' THEN
288: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG(
289: P_MSG => 'Before calling PA_RES_ASG_CURRENCY_PUB.' ||
290: 'DELETE_TABLE_RECORDS',
291: P_CALLED_MODE => p_called_mode,
298: P_CALLED_MODE => p_called_mode,
299: X_RETURN_STATUS => x_return_status,
300: X_MSG_COUNT => x_msg_count,
301: X_MSG_DATA => x_msg_data );
302: IF p_pa_debug_mode = 'Y' THEN
303: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG(
304: P_MSG => 'After calling PA_RES_ASG_CURRENCY_PUB.' ||
305: 'DELETE_TABLE_RECORDS: '||x_return_status,
306: P_CALLED_MODE => p_called_mode,
309: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
310: raise PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc;
311: END IF;
312:
313: IF P_PA_DEBUG_MODE = 'Y' THEN
314: PA_DEBUG.RESET_CURR_FUNCTION;
315: END IF;
316:
317: -- Return control to caller.
310: raise PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc;
311: END IF;
312:
313: IF P_PA_DEBUG_MODE = 'Y' THEN
314: PA_DEBUG.RESET_CURR_FUNCTION;
315: END IF;
316:
317: -- Return control to caller.
318: RETURN;
372: END IF; -- IF p_copy_flag = 'Y' THEN
373:
374: -- Raise an error if duplicates are found.
375: IF l_ra_id_tab.count > 0 THEN
376: IF p_pa_debug_mode = 'Y' THEN
377: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
378: ( p_msg => 'Duplicate records found in '
379: || 'PA_RESOURCE_ASGN_CURR_TMP '
380: || '(count='||l_ra_id_tab.count||'):',
401: FROM pa_resource_asgn_curr_tmp
402: WHERE resource_assignment_id IS NULL;
403:
404: IF l_null_record_count > 0 THEN
405: IF p_pa_debug_mode = 'Y' THEN
406: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
407: ( p_msg => 'Records with null resource_assignment_id found in '
408: || 'PA_RESOURCE_ASGN_CURR_TMP '
409: || '(count='||l_null_record_count||'):',
424: FROM pa_resource_asgn_curr_tmp
425: WHERE txn_currency_code IS NULL;
426:
427: IF l_null_record_count > 0 THEN
428: IF p_pa_debug_mode = 'Y' THEN
429: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
430: ( p_msg => 'Records with null txn_currency_code found in '
431: || 'PA_RESOURCE_ASGN_CURR_TMP '
432: || '(count='||l_null_record_count||'):',
445:
446: -- Step 2: Handle Copy
447: IF p_copy_flag = 'Y' THEN
448:
449: IF p_pa_debug_mode = 'Y' THEN
450: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG(
451: P_MSG => 'Before calling PA_RES_ASG_CURRENCY_PUB.' ||
452: 'COPY_TABLE_RECORDS',
453: P_CALLED_MODE => p_called_mode,
462: P_CALLED_MODE => p_called_mode,
463: X_RETURN_STATUS => x_return_status,
464: X_MSG_COUNT => x_msg_count,
465: X_MSG_DATA => x_msg_data );
466: IF p_pa_debug_mode = 'Y' THEN
467: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG(
468: P_MSG => 'After calling PA_RES_ASG_CURRENCY_PUB.' ||
469: 'COPY_TABLE_RECORDS: '||x_return_status,
470: P_CALLED_MODE => p_called_mode,
473: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
474: raise PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc;
475: END IF;
476:
477: IF P_PA_DEBUG_MODE = 'Y' THEN
478: PA_DEBUG.RESET_CURR_FUNCTION;
479: END IF;
480:
481: -- Return control to caller.
474: raise PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc;
475: END IF;
476:
477: IF P_PA_DEBUG_MODE = 'Y' THEN
478: PA_DEBUG.RESET_CURR_FUNCTION;
479: END IF;
480:
481: -- Return control to caller.
482: RETURN;
485:
486: -- Step 3: Handle Insertion
487: IF p_rollup_flag = 'N' THEN
488:
489: IF p_pa_debug_mode = 'Y' THEN
490: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG(
491: P_MSG => 'Before calling PA_RES_ASG_CURRENCY_PUB.' ||
492: 'INSERT_TABLE_RECORDS',
493: P_CALLED_MODE => p_called_mode,
500: P_CALLED_MODE => p_called_mode,
501: X_RETURN_STATUS => x_return_status,
502: X_MSG_COUNT => x_msg_count,
503: X_MSG_DATA => x_msg_data );
504: IF p_pa_debug_mode = 'Y' THEN
505: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG(
506: P_MSG => 'After calling PA_RES_ASG_CURRENCY_PUB.' ||
507: 'INSERT_TABLE_RECORDS: '||x_return_status,
508: P_CALLED_MODE => p_called_mode,
514:
515: -- Step 4: Handle Rollup of Amounts
516: ELSIF p_rollup_flag = 'Y' THEN
517:
518: IF p_pa_debug_mode = 'Y' THEN
519: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG(
520: P_MSG => 'Before calling PA_RES_ASG_CURRENCY_PUB.' ||
521: 'ROLLUP_AMOUNTS',
522: P_CALLED_MODE => p_called_mode,
529: P_CALLED_MODE => p_called_mode,
530: X_RETURN_STATUS => x_return_status,
531: X_MSG_COUNT => x_msg_count,
532: X_MSG_DATA => x_msg_data );
533: IF p_pa_debug_mode = 'Y' THEN
534: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG(
535: P_MSG => 'After calling PA_RES_ASG_CURRENCY_PUB.' ||
536: 'ROLLUP_AMOUNTS: '||x_return_status,
537: P_CALLED_MODE => p_called_mode,
543:
544: END IF; -- p_rollup_flag = 'Y'
545:
546:
547: IF P_PA_DEBUG_MODE = 'Y' THEN
548: PA_DEBUG.RESET_CURR_FUNCTION;
549: END IF;
550:
551: EXCEPTION
544: END IF; -- p_rollup_flag = 'Y'
545:
546:
547: IF P_PA_DEBUG_MODE = 'Y' THEN
548: PA_DEBUG.RESET_CURR_FUNCTION;
549: END IF;
550:
551: EXCEPTION
552: WHEN PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc THEN
569: -- Removed ROLLBACK statement.
570:
571: x_return_status := FND_API.G_RET_STS_ERROR;
572:
573: IF P_PA_DEBUG_MODE = 'Y' THEN
574: pa_fp_gen_amount_utils.fp_debug
575: ( p_msg => 'Invalid Arguments Passed',
576: p_called_mode => p_called_mode,
577: p_module_name => l_module_name,
575: ( p_msg => 'Invalid Arguments Passed',
576: p_called_mode => p_called_mode,
577: p_module_name => l_module_name,
578: p_log_level => l_log_level );
579: PA_DEBUG.RESET_CURR_FUNCTION;
580: END IF;
581:
582: -- Removed RAISE statement.
583:
590: FND_MSG_PUB.add_exc_msg
591: ( p_pkg_name => 'PA_RES_ASG_CURRENCY_PUB',
592: p_procedure_name => 'MAINTAIN_DATA',
593: p_error_text => substr(sqlerrm,1,240));
594: IF P_PA_DEBUG_MODE = 'Y' THEN
595: pa_fp_gen_amount_utils.fp_debug
596: ( p_msg => 'Unexpected Error'||substr(sqlerrm, 1, 240),
597: p_called_mode => p_called_mode,
598: p_module_name => l_module_name,
596: ( p_msg => 'Unexpected Error'||substr(sqlerrm, 1, 240),
597: p_called_mode => p_called_mode,
598: p_module_name => l_module_name,
599: p_log_level => l_log_level);
600: PA_DEBUG.RESET_CURR_FUNCTION;
601: END IF;
602: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
603:
604: END MAINTAIN_DATA;
622: IS
623: l_module_name VARCHAR2(100) := 'pa.plsql.PA_RES_ASG_CURRENCY_PUB.PRINT_INPUT_PARAMS';
624: l_log_level NUMBER := 5;
625: BEGIN
626: IF p_pa_debug_mode = 'N' THEN
627: RETURN;
628: END IF; -- IF p_pa_debug_mode = 'N' THEN
629:
630: -- Print values of Input Parameters based on p_calling_module
624: l_log_level NUMBER := 5;
625: BEGIN
626: IF p_pa_debug_mode = 'N' THEN
627: RETURN;
628: END IF; -- IF p_pa_debug_mode = 'N' THEN
629:
630: -- Print values of Input Parameters based on p_calling_module
631: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
632: ( p_msg => 'Input Parameters to '
771: l_msg_data VARCHAR2(2000);
772: l_msg_index_out NUMBER;
773:
774: BEGIN
775: IF p_pa_debug_mode = 'Y' THEN
776: PA_DEBUG.SET_CURR_FUNCTION
777: ( p_function => 'DELETE_TABLE_RECORDS',
778: p_debug_mode => p_pa_debug_mode );
779: END IF;
772: l_msg_index_out NUMBER;
773:
774: BEGIN
775: IF p_pa_debug_mode = 'Y' THEN
776: PA_DEBUG.SET_CURR_FUNCTION
777: ( p_function => 'DELETE_TABLE_RECORDS',
778: p_debug_mode => p_pa_debug_mode );
779: END IF;
780:
774: BEGIN
775: IF p_pa_debug_mode = 'Y' THEN
776: PA_DEBUG.SET_CURR_FUNCTION
777: ( p_function => 'DELETE_TABLE_RECORDS',
778: p_debug_mode => p_pa_debug_mode );
779: END IF;
780:
781: PA_RES_ASG_CURRENCY_PUB.PRINT_INPUT_PARAMS
782: ( P_CALLING_API => G_PVT_DELETE,
832: END IF; -- p_calling_module check
833:
834: END IF; -- p_version_level_flag check
835:
836: IF P_PA_DEBUG_MODE = 'Y' THEN
837: PA_DEBUG.RESET_CURR_FUNCTION;
838: END IF;
839: EXCEPTION
840: WHEN PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc THEN
833:
834: END IF; -- p_version_level_flag check
835:
836: IF P_PA_DEBUG_MODE = 'Y' THEN
837: PA_DEBUG.RESET_CURR_FUNCTION;
838: END IF;
839: EXCEPTION
840: WHEN PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc THEN
841:
857: -- Removed ROLLBACK statement.
858:
859: x_return_status := FND_API.G_RET_STS_ERROR;
860:
861: IF P_PA_DEBUG_MODE = 'Y' THEN
862: pa_fp_gen_amount_utils.fp_debug
863: ( p_msg => 'Invalid Arguments Passed',
864: p_called_mode => p_called_mode,
865: p_module_name => l_module_name,
863: ( p_msg => 'Invalid Arguments Passed',
864: p_called_mode => p_called_mode,
865: p_module_name => l_module_name,
866: p_log_level => l_log_level );
867: PA_DEBUG.RESET_CURR_FUNCTION;
868: END IF;
869: -- Removed RAISE statement.
870:
871: WHEN OTHERS THEN
877: FND_MSG_PUB.add_exc_msg
878: ( p_pkg_name => 'PA_RES_ASG_CURRENCY_PUB',
879: p_procedure_name => 'DELETE_TABLE_RECORDS',
880: p_error_text => substr(sqlerrm,1,240));
881: IF P_PA_DEBUG_MODE = 'Y' THEN
882: pa_fp_gen_amount_utils.fp_debug
883: ( p_msg => 'Unexpected Error'||substr(sqlerrm, 1, 240),
884: p_called_mode => p_called_mode,
885: p_module_name => l_module_name,
883: ( p_msg => 'Unexpected Error'||substr(sqlerrm, 1, 240),
884: p_called_mode => p_called_mode,
885: p_module_name => l_module_name,
886: p_log_level => l_log_level);
887: PA_DEBUG.RESET_CURR_FUNCTION;
888: END IF;
889: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
890:
891: END DELETE_TABLE_RECORDS;
1055: -- Indicates if the Target version is a Workplan.
1056: l_wp_version_flag PA_BUDGET_VERSIONS.WP_VERSION_FLAG%TYPE;
1057:
1058: BEGIN
1059: IF p_pa_debug_mode = 'Y' THEN
1060: PA_DEBUG.SET_CURR_FUNCTION
1061: ( p_function => 'COPY_TABLE_RECORDS',
1062: p_debug_mode => p_pa_debug_mode );
1063: END IF;
1056: l_wp_version_flag PA_BUDGET_VERSIONS.WP_VERSION_FLAG%TYPE;
1057:
1058: BEGIN
1059: IF p_pa_debug_mode = 'Y' THEN
1060: PA_DEBUG.SET_CURR_FUNCTION
1061: ( p_function => 'COPY_TABLE_RECORDS',
1062: p_debug_mode => p_pa_debug_mode );
1063: END IF;
1064:
1058: BEGIN
1059: IF p_pa_debug_mode = 'Y' THEN
1060: PA_DEBUG.SET_CURR_FUNCTION
1061: ( p_function => 'COPY_TABLE_RECORDS',
1062: p_debug_mode => p_pa_debug_mode );
1063: END IF;
1064:
1065: PA_RES_ASG_CURRENCY_PUB.PRINT_INPUT_PARAMS
1066: ( P_CALLING_API => G_PVT_COPY,
1079: INTO l_wp_version_flag
1080: FROM pa_budget_versions
1081: WHERE budget_version_id = p_fp_cols_rec.x_budget_version_id;
1082: EXCEPTION WHEN NO_DATA_FOUND THEN
1083: IF p_pa_debug_mode = 'Y' THEN
1084: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
1085: ( P_MSG => 'Invalid p_fp_cols_rec.x_budget_version_id value: '
1086: || p_fp_cols_rec.x_budget_version_id
1087: || '. Budget version does not exist.',
1152: ELSIF p_version_level_flag = 'N' THEN
1153:
1154: IF p_copy_mode = G_COPY_ALL THEN
1155: -- This case is currently NOT supported.
1156: IF p_pa_debug_mode = 'Y' THEN
1157: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
1158: ( P_MSG => 'The '''||G_COPY_ALL||''' copy mode is not supported '
1159: || 'when p_version_level_flag is '
1160: || p_version_level_flag,
1180: END IF; -- p_version_level_flag check
1181:
1182: -- No further processing is required if there are no records to copy.
1183: IF l_ra_id_tab.count <= 0 THEN
1184: IF P_PA_DEBUG_MODE = 'Y' THEN
1185: PA_DEBUG.RESET_CURR_FUNCTION;
1186: END IF;
1187: RETURN;
1188: END IF;
1181:
1182: -- No further processing is required if there are no records to copy.
1183: IF l_ra_id_tab.count <= 0 THEN
1184: IF P_PA_DEBUG_MODE = 'Y' THEN
1185: PA_DEBUG.RESET_CURR_FUNCTION;
1186: END IF;
1187: RETURN;
1188: END IF;
1189:
1282: VALUES (
1283: l_ra_id_tab(i),
1284: l_txn_currency_code_tab(i) );
1285:
1286: IF p_pa_debug_mode = 'Y' THEN
1287: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
1288: ( P_MSG => 'Before calling PA_RES_ASG_CURRENCY_PUB.'
1289: || 'DELETE_TABLE_RECORDS',
1290: P_CALLED_MODE => p_called_mode,
1298: P_CALLED_MODE => p_called_mode,
1299: X_RETURN_STATUS => x_return_status,
1300: X_MSG_COUNT => x_msg_count,
1301: X_MSG_DATA => x_msg_data );
1302: IF p_pa_debug_mode = 'Y' THEN
1303: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
1304: ( P_MSG => 'After calling PA_RES_ASG_CURRENCY_PUB.'
1305: || 'DELETE_TABLE_RECORDS: ' || x_return_status,
1306: P_CALLED_MODE => p_called_mode,
1430: END IF; -- p_copy_mode check
1431:
1432: --dbms_output.put_line('Reached Copy Records');
1433:
1434: IF P_PA_DEBUG_MODE = 'Y' THEN
1435: PA_DEBUG.RESET_CURR_FUNCTION;
1436: END IF;
1437: EXCEPTION
1438: WHEN PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc THEN
1431:
1432: --dbms_output.put_line('Reached Copy Records');
1433:
1434: IF P_PA_DEBUG_MODE = 'Y' THEN
1435: PA_DEBUG.RESET_CURR_FUNCTION;
1436: END IF;
1437: EXCEPTION
1438: WHEN PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc THEN
1439:
1455: -- Removed ROLLBACK statement.
1456:
1457: x_return_status := FND_API.G_RET_STS_ERROR;
1458:
1459: IF P_PA_DEBUG_MODE = 'Y' THEN
1460: pa_fp_gen_amount_utils.fp_debug
1461: ( p_msg => 'Invalid Arguments Passed',
1462: p_called_mode => p_called_mode,
1463: p_module_name => l_module_name,
1461: ( p_msg => 'Invalid Arguments Passed',
1462: p_called_mode => p_called_mode,
1463: p_module_name => l_module_name,
1464: p_log_level => l_log_level );
1465: PA_DEBUG.RESET_CURR_FUNCTION;
1466: END IF;
1467: -- Removed RAISE statement.
1468:
1469: WHEN OTHERS THEN
1475: FND_MSG_PUB.add_exc_msg
1476: ( p_pkg_name => 'PA_RES_ASG_CURRENCY_PUB',
1477: p_procedure_name => 'COPY_TABLE_RECORDS',
1478: p_error_text => substr(sqlerrm,1,240));
1479: IF P_PA_DEBUG_MODE = 'Y' THEN
1480: pa_fp_gen_amount_utils.fp_debug
1481: ( p_msg => 'Unexpected Error'||substr(sqlerrm, 1, 240),
1482: p_called_mode => p_called_mode,
1483: p_module_name => l_module_name,
1481: ( p_msg => 'Unexpected Error'||substr(sqlerrm, 1, 240),
1482: p_called_mode => p_called_mode,
1483: p_module_name => l_module_name,
1484: p_log_level => l_log_level);
1485: PA_DEBUG.RESET_CURR_FUNCTION;
1486: END IF;
1487: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1488:
1489: END COPY_TABLE_RECORDS;
1518: l_bill_rate_override_tab PA_PLSQL_DATATYPES.NumTabTyp;
1519:
1520: BEGIN
1521:
1522: IF p_pa_debug_mode = 'Y' THEN
1523: PA_DEBUG.SET_CURR_FUNCTION
1524: ( p_function => 'INSERT_TABLE_RECORDS',
1525: p_debug_mode => p_pa_debug_mode );
1526: END IF;
1519:
1520: BEGIN
1521:
1522: IF p_pa_debug_mode = 'Y' THEN
1523: PA_DEBUG.SET_CURR_FUNCTION
1524: ( p_function => 'INSERT_TABLE_RECORDS',
1525: p_debug_mode => p_pa_debug_mode );
1526: END IF;
1527:
1521:
1522: IF p_pa_debug_mode = 'Y' THEN
1523: PA_DEBUG.SET_CURR_FUNCTION
1524: ( p_function => 'INSERT_TABLE_RECORDS',
1525: p_debug_mode => p_pa_debug_mode );
1526: END IF;
1527:
1528: PA_RES_ASG_CURRENCY_PUB.PRINT_INPUT_PARAMS
1529: ( P_CALLING_API => G_PVT_INSERT,
1592: -- TEMP TABLE Mode:
1593: -- Delete and then Insert the records specified by the temp table
1594: -- into the PA_RESOURCE_ASGN_CURR table.
1595:
1596: IF p_pa_debug_mode = 'Y' THEN
1597: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
1598: ( P_MSG => 'Before calling PA_RES_ASG_CURRENCY_PUB.'
1599: || 'DELETE_TABLE_RECORDS',
1600: P_CALLED_MODE => p_called_mode,
1608: P_CALLED_MODE => p_called_mode,
1609: X_RETURN_STATUS => x_return_status,
1610: X_MSG_COUNT => x_msg_count,
1611: X_MSG_DATA => x_msg_data );
1612: IF p_pa_debug_mode = 'Y' THEN
1613: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
1614: ( P_MSG => 'After calling PA_RES_ASG_CURRENCY_PUB.'
1615: || 'DELETE_TABLE_RECORDS: ' || x_return_status,
1616: P_CALLED_MODE => p_called_mode,
1653: END IF; -- p_version_level_flag check
1654:
1655: --dbms_output.put_line('Reached Insert Records');
1656:
1657: IF P_PA_DEBUG_MODE = 'Y' THEN
1658: PA_DEBUG.RESET_CURR_FUNCTION;
1659: END IF;
1660: EXCEPTION
1661: WHEN PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc THEN
1654:
1655: --dbms_output.put_line('Reached Insert Records');
1656:
1657: IF P_PA_DEBUG_MODE = 'Y' THEN
1658: PA_DEBUG.RESET_CURR_FUNCTION;
1659: END IF;
1660: EXCEPTION
1661: WHEN PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc THEN
1662:
1678: -- Removed ROLLBACK statement.
1679:
1680: x_return_status := FND_API.G_RET_STS_ERROR;
1681:
1682: IF P_PA_DEBUG_MODE = 'Y' THEN
1683: pa_fp_gen_amount_utils.fp_debug
1684: ( p_msg => 'Invalid Arguments Passed',
1685: p_called_mode => p_called_mode,
1686: p_module_name => l_module_name,
1684: ( p_msg => 'Invalid Arguments Passed',
1685: p_called_mode => p_called_mode,
1686: p_module_name => l_module_name,
1687: p_log_level => l_log_level );
1688: PA_DEBUG.RESET_CURR_FUNCTION;
1689: END IF;
1690: -- Removed RAISE statement.
1691:
1692: WHEN OTHERS THEN
1698: FND_MSG_PUB.add_exc_msg
1699: ( p_pkg_name => 'PA_RES_ASG_CURRENCY_PUB',
1700: p_procedure_name => 'INSERT_TABLE_RECORDS',
1701: p_error_text => substr(sqlerrm,1,240));
1702: IF P_PA_DEBUG_MODE = 'Y' THEN
1703: pa_fp_gen_amount_utils.fp_debug
1704: ( p_msg => 'Unexpected Error'||substr(sqlerrm, 1, 240),
1705: p_called_mode => p_called_mode,
1706: p_module_name => l_module_name,
1704: ( p_msg => 'Unexpected Error'||substr(sqlerrm, 1, 240),
1705: p_called_mode => p_called_mode,
1706: p_module_name => l_module_name,
1707: p_log_level => l_log_level);
1708: PA_DEBUG.RESET_CURR_FUNCTION;
1709: END IF;
1710: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1711:
1712: END INSERT_TABLE_RECORDS;
2057: l_wp_version_flag PA_BUDGET_VERSIONS.WP_VERSION_FLAG%TYPE;
2058:
2059: BEGIN
2060:
2061: IF p_pa_debug_mode = 'Y' THEN
2062: PA_DEBUG.SET_CURR_FUNCTION
2063: ( p_function => 'ROLLUP_AMOUNTS',
2064: p_debug_mode => p_pa_debug_mode );
2065: END IF;
2058:
2059: BEGIN
2060:
2061: IF p_pa_debug_mode = 'Y' THEN
2062: PA_DEBUG.SET_CURR_FUNCTION
2063: ( p_function => 'ROLLUP_AMOUNTS',
2064: p_debug_mode => p_pa_debug_mode );
2065: END IF;
2066:
2060:
2061: IF p_pa_debug_mode = 'Y' THEN
2062: PA_DEBUG.SET_CURR_FUNCTION
2063: ( p_function => 'ROLLUP_AMOUNTS',
2064: p_debug_mode => p_pa_debug_mode );
2065: END IF;
2066:
2067: PA_RES_ASG_CURRENCY_PUB.PRINT_INPUT_PARAMS
2068: ( P_CALLING_API => G_PVT_ROLLUP,
2079: INTO l_wp_version_flag
2080: FROM pa_budget_versions
2081: WHERE budget_version_id = p_fp_cols_rec.x_budget_version_id;
2082: EXCEPTION WHEN NO_DATA_FOUND THEN
2083: IF p_pa_debug_mode = 'Y' THEN
2084: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
2085: ( P_MSG => 'Invalid p_fp_cols_rec.x_budget_version_id value: '
2086: || p_fp_cols_rec.x_budget_version_id
2087: || '. Budget version does not exist.',
2176: END IF; -- p_version_level_flag check
2177:
2178: -- No further processing is required if there are no records to rollup.
2179: IF l_ra_id_tab.count <= 0 THEN
2180: IF P_PA_DEBUG_MODE = 'Y' THEN
2181: PA_DEBUG.RESET_CURR_FUNCTION;
2182: END IF;
2183: RETURN;
2184: END IF;
2177:
2178: -- No further processing is required if there are no records to rollup.
2179: IF l_ra_id_tab.count <= 0 THEN
2180: IF P_PA_DEBUG_MODE = 'Y' THEN
2181: PA_DEBUG.RESET_CURR_FUNCTION;
2182: END IF;
2183: RETURN;
2184: END IF;
2185:
2249: END IF;
2250:
2251: -- Step 3: Delete records from the PA_RESOURCE_ASGN_CURR table.
2252:
2253: IF p_pa_debug_mode = 'Y' THEN
2254: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
2255: ( P_MSG => 'Before calling PA_RES_ASG_CURRENCY_PUB.'
2256: || 'DELETE_TABLE_RECORDS',
2257: P_CALLED_MODE => p_called_mode,
2265: P_CALLED_MODE => p_called_mode,
2266: X_RETURN_STATUS => x_return_status,
2267: X_MSG_COUNT => x_msg_count,
2268: X_MSG_DATA => x_msg_data );
2269: IF p_pa_debug_mode = 'Y' THEN
2270: PA_FP_GEN_AMOUNT_UTILS.FP_DEBUG
2271: ( P_MSG => 'After calling PA_RES_ASG_CURRENCY_PUB.'
2272: || 'DELETE_TABLE_RECORDS: ' || x_return_status,
2273: P_CALLED_MODE => p_called_mode,
2363: l_last_updated_by,
2364: l_last_update_login,
2365: l_record_version_number );
2366:
2367: IF P_PA_DEBUG_MODE = 'Y' THEN
2368: PA_DEBUG.RESET_CURR_FUNCTION;
2369: END IF;
2370: EXCEPTION
2371: WHEN PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc THEN
2364: l_last_update_login,
2365: l_record_version_number );
2366:
2367: IF P_PA_DEBUG_MODE = 'Y' THEN
2368: PA_DEBUG.RESET_CURR_FUNCTION;
2369: END IF;
2370: EXCEPTION
2371: WHEN PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc THEN
2372:
2388: -- Removed ROLLBACK statement.
2389:
2390: x_return_status := FND_API.G_RET_STS_ERROR;
2391:
2392: IF P_PA_DEBUG_MODE = 'Y' THEN
2393: pa_fp_gen_amount_utils.fp_debug
2394: ( p_msg => 'Invalid Arguments Passed',
2395: p_called_mode => p_called_mode,
2396: p_module_name => l_module_name,
2394: ( p_msg => 'Invalid Arguments Passed',
2395: p_called_mode => p_called_mode,
2396: p_module_name => l_module_name,
2397: p_log_level => l_log_level );
2398: PA_DEBUG.RESET_CURR_FUNCTION;
2399: END IF;
2400: -- Removed RAISE statement.
2401:
2402: WHEN OTHERS THEN
2408: FND_MSG_PUB.add_exc_msg
2409: ( p_pkg_name => 'PA_RES_ASG_CURRENCY_PUB',
2410: p_procedure_name => 'ROLLUP_AMOUNTS',
2411: p_error_text => substr(sqlerrm,1,240));
2412: IF P_PA_DEBUG_MODE = 'Y' THEN
2413: pa_fp_gen_amount_utils.fp_debug
2414: ( p_msg => 'Unexpected Error'||substr(sqlerrm, 1, 240),
2415: p_called_mode => p_called_mode,
2416: p_module_name => l_module_name,
2414: ( p_msg => 'Unexpected Error'||substr(sqlerrm, 1, 240),
2415: p_called_mode => p_called_mode,
2416: p_module_name => l_module_name,
2417: p_log_level => l_log_level);
2418: PA_DEBUG.RESET_CURR_FUNCTION;
2419: END IF;
2420: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2421:
2422: END ROLLUP_AMOUNTS;