1: PACKAGE BODY CSTPAPPR AS
2: /* $Header: CSTAPPRB.pls 120.23.12020000.6 2013/03/04 09:03:04 penpan ship $ */
3:
4: l_debug_flag constant VARCHAR2(1) := FND_PROFILE.VALUE('MRP_DEBUG');
5:
642:
643: WHEN CST_TXN_TYPE_FAIL THEN
644: o_err_num := 30002;
645: o_err_code := SQLCODE;
646: o_err_msg := 'CSTPAPPR.create_acct_lines :Invalid Transaction Type Code';
647:
648: WHEN CST_NO_RCV_LINE THEN
649: o_err_num := 30003;
650: o_err_code := SQLCODE;
653:
654: WHEN CST_INSERT_ERROR THEN
655: o_err_num := 30004;
656: o_err_code := SQLCODE;
657: o_err_msg := 'CSTPAPPR.create_acct_lines : ' || to_char(l_stmt_num) || ':'|| substr(SQLERRM,1,180);
658:
659: WHEN OTHERS THEN
660: o_err_num := SQLCODE;
661: o_err_code := '';
658:
659: WHEN OTHERS THEN
660: o_err_num := SQLCODE;
661: o_err_code := '';
662: o_err_msg := 'CSTPAPPR.create_acct_lines : ' || to_char(l_stmt_num) || ':'||
663: substr(SQLERRM,1,180);
664:
665: END create_acct_lines;
666:
778: END IF;
779:
780: l_stmt_num := 30;
781:
782: CSTPAPPR.insert_account (i_ae_txn_rec,
783: l_curr_rec,
784: l_dr_flag,
785: l_ae_line_rec,
786: l_ae_line_tbl,
827: ELSE
828: l_ae_line_rec.rate_or_amount := l_ae_line_rec.transaction_value * l_curr_rec.currency_conv_rate / i_ae_txn_rec.primary_quantity ;
829: END IF;
830:
831: CSTPAPPR.insert_account (i_ae_txn_rec,
832: l_curr_rec,
833: l_dr_flag,
834: l_ae_line_rec,
835: l_ae_line_tbl,
869:
870: when others then
871: o_ae_err_rec.l_err_num := SQLCODE;
872: o_ae_err_rec.l_err_code := '';
873: o_ae_err_rec.l_err_msg := 'CSTPAPPR.create_rae_ae_lines : ' || to_char(l_stmt_num) || ':'||
874: substr(SQLERRM,1,180);
875:
876: END create_rae_ae_lines;
877:
1451: l_ae_line_rec.rate_or_amount := l_ae_line_rec.transaction_value * l_curr_rec.currency_conv_rate / c_receipts_rec.dist_quantity ;
1452: END IF;
1453:
1454: l_stmt_num := 1010;
1455: CSTPAPPR.insert_account (i_ae_txn_rec,
1456: l_curr_rec,
1457: l_dr_flag,
1458: l_ae_line_rec,
1459: l_ae_line_tbl,
1510: ELSE
1511: l_ae_line_rec.rate_or_amount := l_ae_line_rec.transaction_value * l_curr_rec.currency_conv_rate / c_receipts_rec.dist_quantity ;
1512: END IF;
1513: l_stmt_num := 1050;
1514: CSTPAPPR.insert_account (i_ae_txn_rec,
1515: l_curr_rec,
1516: l_dr_flag,
1517: l_ae_line_rec,
1518: l_ae_line_tbl,
1563: ELSE
1564: l_ae_line_rec.rate_or_amount := l_ae_line_rec.transaction_value * l_curr_rec.currency_conv_rate / c_receipts_rec.dist_quantity ;
1565: END IF;
1566: l_stmt_num := 1070;
1567: CSTPAPPR.insert_account (i_ae_txn_rec,
1568: l_curr_rec,
1569: l_dr_flag,
1570: l_ae_line_rec,
1571: l_ae_line_tbl,
1678: ELSE
1679: l_ae_line_rec.rate_or_amount := l_ae_line_rec.transaction_value * l_curr_rec.currency_conv_rate / c_receipts_rec.dist_quantity ;
1680: END IF;
1681:
1682: CSTPAPPR.insert_account (i_ae_txn_rec,
1683: l_curr_rec,
1684: l_dr_flag,
1685: l_ae_line_rec,
1686: l_ae_line_tbl,
1814: END IF;
1815:
1816: l_stmt_num := 757;
1817:
1818: CSTPAPPR.insert_account (i_ae_txn_rec,
1819: l_curr_rec,
1820: l_dr_flag,
1821: l_ae_line_rec,
1822: l_ae_line_tbl,
1994: ELSE
1995: l_ae_line_rec.rate_or_amount := l_ae_line_rec.transaction_value * l_curr_rec.currency_conv_rate / i_ae_txn_rec.primary_quantity;
1996: END IF;
1997:
1998: CSTPAPPR.insert_account (i_ae_txn_rec,
1999: l_curr_rec,
2000: l_dr_flag,
2001: l_ae_line_rec,
2002: l_ae_line_tbl,
2209: ELSE
2210: l_ae_line_rec.rate_or_amount := l_ae_line_rec.transaction_value * l_curr_rec.currency_conv_rate / i_ae_txn_rec.primary_quantity;
2211: END IF;
2212:
2213: CSTPAPPR.insert_account (i_ae_txn_rec,
2214: l_curr_rec,
2215: l_dr_flag,
2216: l_ae_line_rec,
2217: l_ae_line_tbl,
2366: ELSE
2367: l_ae_line_rec.rate_or_amount := l_ae_line_rec.transaction_value * l_curr_rec.currency_conv_rate / i_ae_txn_rec.primary_quantity;
2368: END IF;
2369:
2370: CSTPAPPR.insert_account (i_ae_txn_rec,
2371: l_curr_rec,
2372: l_dr_flag,
2373: l_ae_line_rec,
2374: l_ae_line_tbl,
2540: ELSE
2541: l_ae_line_rec.rate_or_amount := l_ae_line_rec.transaction_value * l_curr_rec.currency_conv_rate / c_receipts_rec.dist_quantity;
2542: END IF;
2543:
2544: CSTPAPPR.insert_account (i_ae_txn_rec,
2545: l_curr_rec,
2546: l_dr_flag,
2547: l_ae_line_rec,
2548: l_ae_line_tbl,
2606: END IF;
2607:
2608:
2609:
2610: CSTPAPPR.insert_account (i_ae_txn_rec,
2611: l_curr_rec,
2612: l_dr_flag,
2613: l_ae_line_rec,
2614: l_ae_line_tbl,
2689: END IF;
2690: END IF;
2691:
2692:
2693: CSTPAPPR.insert_account (i_ae_txn_rec,
2694: l_curr_rec,
2695: l_dr_flag,
2696: l_ae_line_rec,
2697: l_ae_line_tbl,
2718: fnd_file.put_line(fnd_file.log,'CR RI: '||to_char( l_ae_line_rec.transaction_value * l_curr_rec.currency_conv_rate ));
2719: END IF;
2720: END IF;
2721:
2722: CSTPAPPR.insert_account (i_ae_txn_rec,
2723: l_curr_rec,
2724: l_dr_flag,
2725: l_ae_line_rec,
2726: l_ae_line_tbl,
2756: fnd_file.put_line(fnd_file.log,'No Encumbrance account at PO level');
2757: END IF;
2758: ELSE
2759:
2760: CSTPAPPR.check_encumbrance(
2761: i_transaction_id => i_ae_txn_rec.transaction_id,
2762: i_set_of_books_id => i_ae_txn_rec.set_of_books_id,
2763: i_period_name => i_ae_txn_rec.accounting_period_name,
2764: i_encumbrance_account_id => c_receipts_rec.encumbrance_account_id,
2789: -- This quantity will be used to determine the amount that has
2790: -- been reversed and the quantity available to unencumber.
2791: -------------------------------------------------------------------
2792:
2793: l_quantity_delivered := CSTPAPPR.get_net_del_qty(
2794: c_receipts_rec.po_distribution_id,
2795: i_ae_txn_rec.transaction_id);
2796: IF l_debug_flag = 'Y' THEN
2797: fnd_file.put_line(fnd_file.log,'Delivered Quantity: '||to_char(l_quantity_delivered));
2926: ELSE
2927: l_ae_line_rec.rate_or_amount := l_ae_line_rec.transaction_value * l_curr_rec.currency_conv_rate / c_receipts_rec.dist_quantity;
2928: END IF;
2929:
2930: CSTPAPPR.insert_account (i_ae_txn_rec,
2931: l_curr_rec,
2932: l_dr_flag,
2933: l_ae_line_rec,
2934: l_ae_line_tbl,
2978:
2979: when others then
2980: o_ae_err_rec.l_err_num := SQLCODE;
2981: o_ae_err_rec.l_err_code := '';
2982: o_ae_err_rec.l_err_msg := 'CSTPAPPR.create_rcv_ae_lines : ' || to_char(l_stmt_num) || ':'||
2983: substr(SQLERRM,1,180);
2984:
2985: END create_rcv_ae_lines;
2986:
3149: l_ae_line_rec.po_distribution_id := p_ae_txn_rec.po_distribution_id;
3150:
3151: l_stmt_num := 50;
3152:
3153: CSTPAPPR.insert_account (p_ae_txn_rec,
3154: l_curr_rec,
3155: l_dr_flag,
3156: l_ae_line_rec,
3157: l_ae_line_tbl,
3175: END IF;
3176:
3177: l_stmt_num := 70;
3178:
3179: CSTPAPPR.insert_account (p_ae_txn_rec,
3180: l_curr_rec,
3181: l_dr_flag,
3182: l_ae_line_rec,
3183: l_ae_line_tbl,
3197: EXCEPTION
3198: WHEN INVALID_RETRO_ADJ_ACCOUNT THEN
3199: l_err_rec.l_err_num := SQLCODE;
3200: l_err_rec.l_err_code := 'No Periodic Retroactive Adjustment Account Specified';
3201: l_err_rec.l_err_msg := 'CSTPAPPR:( '||to_char(l_stmt_num)||' ): ' || l_err_rec.l_err_code;
3202: x_ae_err_rec := l_err_rec;
3203: FND_FILE.PUT_LINE(FND_FILE.LOG, l_err_rec.l_err_msg);
3204:
3205: WHEN PROCESS_ERROR THEN
3208:
3209: WHEN OTHERS THEN
3210: l_err_rec.l_err_num := SQLCODE;
3211: l_err_rec.l_err_code := '';
3212: l_err_rec.l_err_msg := 'CSTPAPPR:( '||to_char(l_stmt_num)||' ): ' || to_char(SQLCODE);
3213: x_ae_err_rec := l_err_rec;
3214: FND_FILE.PUT_LINE(FND_FILE.LOG, l_err_rec.l_err_msg);
3215:
3216: END create_adj_ae_lines;
3312: l_ae_line_rec.po_distribution_id := p_ae_txn_rec.po_distribution_id;
3313:
3314: l_stmt_num := 50;
3315:
3316: CSTPAPPR.insert_account (p_ae_txn_rec,
3317: l_curr_rec,
3318: l_dr_flag,
3319: l_ae_line_rec,
3320: l_ae_line_tbl,
3354: END IF;
3355:
3356: l_stmt_num := 70;
3357:
3358: CSTPAPPR.insert_account (p_ae_txn_rec,
3359: l_curr_rec,
3360: l_dr_flag,
3361: l_ae_line_rec,
3362: l_ae_line_tbl,
3380:
3381: WHEN OTHERS THEN
3382: l_err_rec.l_err_num := SQLCODE;
3383: l_err_rec.l_err_code := '';
3384: l_err_rec.l_err_msg := 'CSTPAPPR:( '||to_char(l_stmt_num)||' ): ' || to_char(SQLCODE);
3385: x_ae_err_rec := l_err_rec;
3386: FND_FILE.PUT_LINE(FND_FILE.LOG, l_err_rec.l_err_msg);
3387:
3388: END create_lc_adj_ae_lines;
3634: fnd_file.put_line(fnd_file.log,'CR Expense: '||to_char( l_ae_line_rec.transaction_value * l_curr_rec.currency_conv_rate ));
3635: END IF;
3636: END IF;
3637:
3638: CSTPAPPR.insert_account (i_ae_txn_rec,
3639: l_curr_rec,
3640: l_dr_flag,
3641: l_ae_line_rec,
3642: l_ae_line_tbl,
3657: ELSE
3658: fnd_file.put_line(fnd_file.log,'CR Accrual: '||to_char( l_ae_line_rec.transaction_value * l_curr_rec.currency_conv_rate ));
3659: END IF;
3660: END IF;
3661: CSTPAPPR.insert_account (i_ae_txn_rec,
3662: l_curr_rec,
3663: l_dr_flag,
3664: l_ae_line_rec,
3665: l_ae_line_tbl,
3692: fnd_file.put_line(fnd_file.log,'No Encumbrance account at PO level');
3693: END IF;
3694: ELSE
3695:
3696: CSTPAPPR.check_encumbrance(
3697: i_transaction_id => i_ae_txn_rec.transaction_id,
3698: i_set_of_books_id => i_ae_txn_rec.set_of_books_id,
3699: i_period_name => i_ae_txn_rec.accounting_period_name,
3700: i_encumbrance_account_id => c_receipts_rec.encumbrance_account_id,
3728: ELSE
3729: fnd_file.put_line(fnd_file.log,'CR Encumbrance: '||to_char( l_ae_line_rec.transaction_value * l_curr_rec.currency_conv_rate ));
3730: END IF;
3731: END IF;
3732: CSTPAPPR.insert_account (i_ae_txn_rec,
3733: l_curr_rec,
3734: l_dr_flag,
3735: l_ae_line_rec,
3736: l_ae_line_tbl,
3774:
3775: when others then
3776: o_ae_err_rec.l_err_num := SQLCODE;
3777: o_ae_err_rec.l_err_code := '';
3778: o_ae_err_rec.l_err_msg := 'CSTPAPPR.create_per_end_ae_lines : ' || to_char(l_stmt_num) || ':'|| substr(SQLERRM,1,180);
3779:
3780: END create_per_end_ae_lines;
3781:
3782: PROCEDURE check_encumbrance(
3880:
3881: WHEN OTHERS THEN
3882: o_ae_err_rec.l_err_num := SQLCODE;
3883: o_ae_err_rec.l_err_code := '';
3884: o_ae_err_rec.l_err_msg := 'CSTPAPPR.check_encumbrance : ' || to_char(l_stmt_num) || ':'|| substr(SQLERRM,1,180);
3885:
3886:
3887: END check_encumbrance;
3888:
4083:
4084: when others then
4085: o_ae_err_rec.l_err_num := SQLCODE;
4086: o_ae_err_rec.l_err_code := '';
4087: o_ae_err_rec.l_err_msg := 'CSTPAPPR.insert_account' || to_char(l_stmt_num) ||
4088: substr(SQLERRM,1,180);
4089:
4090: end insert_account;
4091:
4293:
4294: when others then
4295: o_ae_err_rec.l_err_num := SQLCODE;
4296: o_ae_err_rec.l_err_code := '';
4297: o_ae_err_rec.l_err_msg := 'CSTPAPPR.balance_account' || to_char(l_stmt_num) ||
4298: substr(SQLERRM,1,180);
4299:
4300: END balance_account;
4301:
4298: substr(SQLERRM,1,180);
4299:
4300: END balance_account;
4301:
4302: end CSTPAPPR;