1: PACKAGE BODY ARP_PROCESS_ADJUSTMENT AS
2: /* $Header: ARTEADJB.pls 120.44.12020000.5 2012/11/15 13:07:34 ashlkuma ship $ */
3: PG_DEBUG varchar2(1) := NVL(FND_PROFILE.value('AFLOG_ENABLED'), 'N');
4:
5: pg_msg_level_debug binary_integer;
52: l_allow_overapp_flag varchar2(1);
53:
54: BEGIN
55:
56: arp_util.debug('arp_process_adjustment.validate_insert_adjustment()+');
57:
58: SELECT ps.amount_due_original,
59: ps.amount_due_remaining,
60: ctt.creation_sign,
142: arp_util.debug('Exception during Unearned test: ' || SQLERRM);
143: RAISE;
144: END;
145:
146: arp_util.debug('arp_process_adjustment.validate_insert_adjustment()-');
147:
148: EXCEPTION
149: WHEN OTHERS THEN
150: arp_util.debug(
147:
148: EXCEPTION
149: WHEN OTHERS THEN
150: arp_util.debug(
151: 'EXCEPTION: arp_process_adjustment.validate_insert_adjustment()');
152: RAISE;
153:
154: END;
155:
200: l_tax_original number;
201:
202: BEGIN
203:
204: arp_util.debug('arp_process_adjustment.validate_update_adjustment()+');
205:
206: IF ( p_status_changed_flag ) AND
207: ( p_status = 'A' )
208: THEN
311: END IF;
312:
313: END IF;
314:
315: arp_util.debug('arp_process_adjustment.validate_update_adjustment()-');
316:
317: EXCEPTION
318: WHEN OTHERS THEN
319: FND_MESSAGE.set_name( 'AR', 'GENERIC_MESSAGE' );
318: WHEN OTHERS THEN
319: FND_MESSAGE.set_name( 'AR', 'GENERIC_MESSAGE' );
320: FND_MESSAGE.set_token( 'GENERIC_TEXT', 'arp_non_db_pkg.check_natural_application exception: '||SQLERRM );
321: arp_util.debug(
322: 'EXCEPTION: arp_process_adjustment.validate_update_adjustment()');
323: RAISE;
324:
325: END;
326:
389: /*---------------------------------------------+
390: | Display parameters and raise the exception |
391: +---------------------------------------------*/
392:
393: arp_util.debug('EXCEPTION: arp_process_adjustment.set_flags()');
394:
395: arp_util.debug('');
396: arp_util.debug('---------- parameters for set_flags() ---------');
397:
546:
547:
548: BEGIN
549:
550: arp_util.debug('arp_process_adjustment.validate_inv_line_amount()+',
551: pg_msg_level_debug);
552:
553: /*----------------------------------------------------------------+
554: | IF the line number is filled in |
702: l_line_credited -
703: l_line_applied < 0
704: )
705: THEN
706: arp_util.debug( 'EXCEPTION: arp_process_adjustment.' ||
707: 'validate_inv_line_amount ()',
708: pg_msg_level_debug);
709: arp_util.debug( 'Adjustments cannot be more than available ' ||
710: 'invoiced line amount.',
721: l_line_credited -
722: l_line_applied > 0
723: )
724: THEN
725: arp_util.debug( 'EXCEPTION: arp_process_adjustment.' ||
726: 'validate_inv_line_amount ()',
727: pg_msg_level_debug);
728: arp_util.debug( 'Adjustments cannot be more than available ' ||
729: 'invoiced line amount.',
738: p_adj_rec.amount +
739: l_remain_amt < 0
740: )
741: THEN
742: arp_util.debug( 'EXCEPTION: arp_process_adjustment.' ||
743: 'validate_inv_line_amount ()',
744: pg_msg_level_debug);
745: arp_util.debug( 'Adjustments cannot be more than available ' ||
746: 'invoiced line amount.',
753: p_adj_rec.amount +
754: l_remain_amt > 0
755: )
756: THEN
757: arp_util.debug( 'EXCEPTION: arp_process_adjustment.' ||
758: 'validate_inv_line_amount ()',
759: pg_msg_level_debug);
760: arp_util.debug( 'Adjustments cannot be more than available ' ||
761: 'invoiced line amount.',
767:
768: END IF; -- end not approved or adjusted and line specified case
769:
770:
771: arp_util.debug('arp_process_adjustment.validate_inv_line_amount()-',
772: pg_msg_level_debug);
773:
774: EXCEPTION
775: WHEN OTHERS THEN
772: pg_msg_level_debug);
773:
774: EXCEPTION
775: WHEN OTHERS THEN
776: arp_util.debug('EXCEPTION: arp_process_adjustment.' ||
777: 'validate_inv_line_amount()',
778: pg_msg_level_debug);
779:
780: arp_util.debug('', pg_msg_level_debug);
830: l_ps_rec ar_payment_schedules%rowtype;
831:
832: BEGIN
833:
834: arp_util.debug('arp_process_adjustment.validate_inv_line_amount_cover()+',
835: pg_msg_level_debug);
836:
837: l_adj_rec.customer_trx_line_id := p_customer_trx_line_id;
838: l_adj_rec.customer_trx_id := p_customer_trx_id;
850: WHERE payment_schedule_id = p_payment_schedule_id;
851:
852: validate_inv_line_amount( l_adj_rec, l_ps_rec );
853:
854: arp_util.debug('arp_process_adjustment.validate_inv_line_amount_cover()-',
855: pg_msg_level_debug);
856:
857: EXCEPTION
858: WHEN OTHERS THEN
855: pg_msg_level_debug);
856:
857: EXCEPTION
858: WHEN OTHERS THEN
859: arp_util.debug('EXCEPTION: arp_process_adjustment.' ||
860: 'validate_inv_line_amount_cover()',
861: pg_msg_level_debug);
862:
863: arp_util.debug('', pg_msg_level_debug);
929: l_approval_amount_from ar_approval_user_limits.amount_from%type;
930:
931: BEGIN
932:
933: arp_util.debug('arp_process_adjustment.validate_update_approve_adj()+',
934: pg_msg_level_debug);
935:
936:
937: IF ( p_adjustment_code = 'A' )
953:
954: IF ( l_closing_status not in ('O', 'F' ) )
955: THEN
956:
957: arp_util.debug( 'EXCEPTION: arp_process_adjustment.' ||
958: 'validate_update_approve_adj ()',
959: pg_msg_level_debug);
960: arp_util.debug( 'Invalid date. Enter a GL date in an open or' ||
961: ' future enterable period.',
970:
971: IF ( p_adj_rec.gl_date < p_ps_rec.gl_date )
972: THEN
973:
974: arp_util.debug( 'EXCEPTION: arp_process_adjustment.' ||
975: 'validate_update_approve_adj ()',
976: pg_msg_level_debug);
977: arp_util.debug( 'The GL date should not be prior to the ' ||
978: 'invoice''s GL date.',
1005: AND aul.document_type = 'ADJ';
1006:
1007: EXCEPTION
1008: WHEN NO_DATA_FOUND THEN
1009: arp_util.debug( 'EXCEPTION: arp_process_adjustment.' ||
1010: 'validate_update_approve_adj ()',
1011: pg_msg_level_debug);
1012: arp_util.debug( 'You do not have approval limits for currency ' ||
1013: p_ps_rec.invoice_currency_code,
1026: ( p_adj_rec.amount < l_approval_amount_from )
1027: )
1028: THEN
1029:
1030: arp_util.debug( 'EXCEPTION: arp_process_adjustment.' ||
1031: 'validate_update_approve_adj ()',
1032: pg_msg_level_debug);
1033: arp_util.debug( 'User ID: ' || arp_adjustments_pkg.pg_user_id ||
1034: ' Amount: ' ||
1050:
1051: END IF; -- end approved case
1052:
1053:
1054: arp_util.debug('arp_process_adjustment.validate_update_approve_adj()-',
1055: pg_msg_level_debug);
1056:
1057: EXCEPTION
1058: WHEN OTHERS THEN
1055: pg_msg_level_debug);
1056:
1057: EXCEPTION
1058: WHEN OTHERS THEN
1059: arp_util.debug('EXCEPTION: arp_process_adjustment.' ||
1060: 'validate_update_approve_adj()',
1061: pg_msg_level_debug);
1062:
1063: arp_util.debug('', pg_msg_level_debug);
1787:
1788: EXCEPTION
1789: WHEN OTHERS THEN
1790: FND_MESSAGE.set_name( 'AR', 'GENERIC_MESSAGE' );
1791: FND_MESSAGE.set_token( 'GENERIC_TEXT', 'arp_process_adjustment.insert_adjustment exception: '||SQLERRM );
1792: arp_util.debug(
1793: 'EXCEPTION: ar_process_adjustment.insert_adjustment()');
1794: RAISE;
1795:
2392:
2393: EXCEPTION
2394: WHEN OTHERS THEN
2395: FND_MESSAGE.set_name( 'AR', 'GENERIC_MESSAGE' );
2396: FND_MESSAGE.set_token( 'GENERIC_TEXT', 'arp_process_adjustment.update_adjustment exception: '||SQLERRM );
2397: arp_util.debug(
2398: 'EXCEPTION: ar_process_adjustment.update_adjustment()',
2399: pg_msg_level_debug);
2400: RAISE;
2758: arp_util.debug(
2759: 'EXCEPTION: ar_process_adjustment.update_approve_adj()',
2760: pg_msg_level_debug);
2761: FND_MESSAGE.set_name( 'AR', 'GENERIC_MESSAGE' );
2762: FND_MESSAGE.set_token( 'GENERIC_TEXT', 'arp_process_adjustment.update_approce_adjustment exception: '||SQLERRM );
2763:
2764: arp_util.debug('', pg_msg_level_debug);
2765: arp_util.debug('---------- parameters for update_approve_adj()'
2766: || ' ---------',
3057: l_adj_post_to_gl ra_cust_trx_types.adj_post_to_gl%TYPE := 'Y' ;
3058:
3059: BEGIN
3060: IF PG_DEBUG in ('Y', 'C') THEN
3061: arp_standard.debug( 'arp_process_adjustment.reverse_adjustment()+' );
3062: arp_standard.debug( 'p_adj_id = '||to_char( p_adj_id ) );
3063: END IF;
3064:
3065: IF (p_module_name IS NOT NULL
3109: WHEN OTHERS THEN
3110:
3111: IF PG_DEBUG in ('Y', 'C') THEN
3112: arp_util.debug('Unable to get post to gl flag for adjustment' );
3113: arp_util.debug('EXCEPTION: arp_process_adjustment.reverse_adjustment '|| SQLERRM);
3114: END IF;
3115: RAISE;
3116: END;
3117:
3154: EXCEPTION
3155: WHEN OTHERS THEN
3156: IF PG_DEBUG in ('Y', 'C') THEN
3157: arp_util.debug('Unable to get the XLA Entites Data ' ||
3158: 'EXCEPTION: arp_process_adjustment.reverse_adjustment' );
3159: END IF;
3160: RAISE;
3161: END;
3162: END IF ;
3165: EXCEPTION
3166: WHEN NO_DATA_FOUND THEN
3167: IF PG_DEBUG in ('Y', 'C') THEN
3168: arp_standard.debug(
3169: 'NO_DATA_FOUND: arp_process_adjustment.reverse_adjustment' );
3170: END IF;
3171:
3172: WHEN OTHERS THEN
3173: IF PG_DEBUG in ('Y', 'C') THEN
3171:
3172: WHEN OTHERS THEN
3173: IF PG_DEBUG in ('Y', 'C') THEN
3174: arp_standard.debug(
3175: 'EXCEPTION: arp_process_adjustment.reverse_adjustment:SELECT' );
3176: END IF;
3177: RAISE;
3178: END;
3179:
3206: , p_reversal_date );
3207:
3208:
3209: IF PG_DEBUG in ('Y', 'C') THEN
3210: arp_standard.debug( 'arp_process_adjustment.reverse_adjustment()-' );
3211: END IF;
3212:
3213: EXCEPTION
3214: WHEN OTHERS THEN
3213: EXCEPTION
3214: WHEN OTHERS THEN
3215: IF PG_DEBUG in ('Y', 'C') THEN
3216: arp_standard.debug(
3217: 'EXCEPTION: arp_process_adjustment.reverse_adjustment' );
3218: END IF;
3219: FND_MESSAGE.set_name( 'AR', 'GENERIC_MESSAGE' );
3220: FND_MESSAGE.set_token( 'GENERIC_TEXT', 'arp_process_adjustment.reverse_adjustment exception: '||SQLERRM );
3221:
3216: arp_standard.debug(
3217: 'EXCEPTION: arp_process_adjustment.reverse_adjustment' );
3218: END IF;
3219: FND_MESSAGE.set_name( 'AR', 'GENERIC_MESSAGE' );
3220: FND_MESSAGE.set_token( 'GENERIC_TEXT', 'arp_process_adjustment.reverse_adjustment exception: '||SQLERRM );
3221:
3222: IF PG_DEBUG in ('Y', 'C') THEN
3223: arp_standard.debug ( 'p_adj_id = '|| TO_CHAR(p_adj_id ) );
3224: arp_standard.debug ( 'p_reversal_gl_date = '|| TO_CHAR(p_reversal_gl_date));
3259: p_reversal_gl_date IN DATE,
3260: p_reversal_date IN DATE ) IS
3261: BEGIN
3262: IF PG_DEBUG in ('Y', 'C') THEN
3263: arp_standard.debug( 'arp_process_adjustment.validate_args_radj()+' );
3264: END IF;
3265: IF ( p_adj_id is NULL OR p_reversal_gl_date is NULL OR
3266: p_reversal_date is NULL ) THEN
3267: IF PG_DEBUG in ('Y', 'C') THEN
3271: APP_EXCEPTION.raise_exception;
3272: END IF;
3273: --
3274: IF PG_DEBUG in ('Y', 'C') THEN
3275: arp_standard.debug( 'arp_process_adjustment.validate_args_radj()-' );
3276: END IF;
3277: EXCEPTION
3278: WHEN OTHERS THEN
3279: IF PG_DEBUG in ('Y', 'C') THEN
3277: EXCEPTION
3278: WHEN OTHERS THEN
3279: IF PG_DEBUG in ('Y', 'C') THEN
3280: arp_standard.debug(
3281: 'EXCEPTION: arp_process_adjustment.validate_args_radj' );
3282: END IF;
3283: RAISE;
3284: END;
3285: --
3317: l_defaulting_rule_used VARCHAR2(100);
3318: l_default_gl_date DATE;
3319: BEGIN
3320: IF PG_DEBUG in ('Y', 'C') THEN
3321: arp_standard.debug( 'arp_process_adjustment.modify_adj_rec()+' );
3322: arp_standard.debug( 'p_adj_id = '||to_char( p_adj_id ) );
3323: END IF;
3324:
3325: arp_adj_pkg.fetch_p( p_adj_id, l_adj_rec );
3375:
3376: insert_reverse_actions( l_adj_rec, NULL, NULL );
3377:
3378: IF PG_DEBUG in ('Y', 'C') THEN
3379: arp_standard.debug( 'arp_process_adjustment.modify_adj_rec()-' );
3380: END IF;
3381:
3382: EXCEPTION
3383: WHEN OTHERS THEN
3382: EXCEPTION
3383: WHEN OTHERS THEN
3384: IF PG_DEBUG in ('Y', 'C') THEN
3385: arp_standard.debug(
3386: 'EXCEPTION: arp_process_adjustment.modify_adj_rec' );
3387: END IF;
3388: RAISE;
3389:
3390: END;
3452:
3453:
3454: BEGIN
3455: IF PG_DEBUG in ('Y', 'C') THEN
3456: arp_standard.debug( 'arp_process_adjustment.insert_reverse_actions()+');
3457: END IF;
3458:
3459: /* VAT changes: save p_adj_rec.adjustment_id in l_old_adj_id
3460: to be passed to accounting library. Clear p_adj_rec.adjustment_id
3674: EXCEPTION
3675: WHEN OTHERS THEN
3676: IF PG_DEBUG in ('Y', 'C') THEN
3677: arp_util.debug('Unable to get the XLA Entites Data ' ||
3678: 'EXCEPTION: arp_process_adjustment.insert_reverse_actions' );
3679: END IF;
3680: RAISE;
3681: END;
3682:
3717: * END IF;
3718: *********************************************************************/
3719:
3720: IF PG_DEBUG in ('Y', 'C') THEN
3721: arp_standard.debug( 'arp_process_adjustment.insert_reverse_actions()-');
3722: END IF;
3723:
3724: EXCEPTION
3725: WHEN OTHERS THEN
3724: EXCEPTION
3725: WHEN OTHERS THEN
3726: IF PG_DEBUG in ('Y', 'C') THEN
3727: arp_standard.debug(
3728: 'EXCEPTION: arp_process_adjustment.insert_reverse_actions');
3729: END IF;
3730: RAISE;
3731: END insert_reverse_actions;
3732: --
3755: PROCEDURE val_insert_rev_actions(
3756: p_adj_id IN ar_adjustments.adjustment_id%TYPE ) IS
3757: BEGIN
3758: IF PG_DEBUG in ('Y', 'C') THEN
3759: arp_standard.debug( 'arp_process_adjustment.val_insert_rev_actions()+' );
3760: END IF;
3761: IF ( p_adj_id IS NULL ) THEN
3762: IF PG_DEBUG in ('Y', 'C') THEN
3763: arp_standard.debug( ' Null values found in input variable' );
3766: APP_EXCEPTION.raise_exception;
3767: END IF;
3768: --
3769: IF PG_DEBUG in ('Y', 'C') THEN
3770: arp_standard.debug( 'arp_process_adjustment.val_insert_rev_actions()-' );
3771: END IF;
3772: EXCEPTION
3773: WHEN OTHERS THEN
3774: IF PG_DEBUG in ('Y', 'C') THEN
3772: EXCEPTION
3773: WHEN OTHERS THEN
3774: IF PG_DEBUG in ('Y', 'C') THEN
3775: arp_standard.debug(
3776: 'EXCEPTION: arp_process_adjustment.val_insert_rev_actions' );
3777: END IF;
3778: RAISE;
3779: END val_insert_rev_actions;
3780:
3870: l_return_status VARCHAR2(10);
3871:
3872: BEGIN
3873: IF PG_DEBUG in ('Y', 'C') THEN
3874: arp_util.debug('arp_process_adjustment.cal_prorated_amounts()+');
3875: arp_util.debug( 'p_adj_amount = ' || to_char(p_adj_amount));
3876: arp_util.debug( 'p_payment_schedule_id = ' || to_char(p_payment_schedule_id));
3877: arp_util.debug( 'p_type = ' || p_type);
3878: arp_util.debug( 'p_receivables_trx_id = ' || to_char(p_receivables_trx_id));
4070: IF PG_DEBUG in ('Y', 'C') THEN
4071: arp_util.debug( 'p_prorated_amt = ' || to_char(p_prorated_amt));
4072: arp_util.debug( 'p_prorated_tax = ' || to_char(p_prorated_tax));
4073: arp_util.debug( 'p_error_num = ' || to_char(p_error_num));
4074: arp_util.debug('arp_process_adjustment.cal_prorated_amounts()-');
4075: END IF;
4076:
4077: EXCEPTION
4078: WHEN OTHERS THEN
4077: EXCEPTION
4078: WHEN OTHERS THEN
4079: IF PG_DEBUG in ('Y', 'C') THEN
4080: arp_util.debug(
4081: 'EXCEPTION: arp_process_adjustment.cal_prorated_amounts()');
4082: END IF;
4083: FND_MESSAGE.set_name( 'AR', 'GENERIC_MESSAGE' );
4084: FND_MESSAGE.set_token( 'GENERIC_TEXT', 'arp_process_adjustment.cal_prorated_amounts exception: '||SQLERRM );
4085: RAISE;
4080: arp_util.debug(
4081: 'EXCEPTION: arp_process_adjustment.cal_prorated_amounts()');
4082: END IF;
4083: FND_MESSAGE.set_name( 'AR', 'GENERIC_MESSAGE' );
4084: FND_MESSAGE.set_token( 'GENERIC_TEXT', 'arp_process_adjustment.cal_prorated_amounts exception: '||SQLERRM );
4085: RAISE;
4086:
4087: END cal_prorated_amounts;
4088:
4102: pg_base_min_acc_unit := arp_global.base_min_acc_unit;
4103:
4104: EXCEPTION
4105: WHEN OTHERS THEN
4106: arp_util.debug('EXCEPTION: arp_process_adjustment.initialization');
4107: RAISE;
4108:
4109:
4110: END ARP_PROCESS_ADJUSTMENT;
4106: arp_util.debug('EXCEPTION: arp_process_adjustment.initialization');
4107: RAISE;
4108:
4109:
4110: END ARP_PROCESS_ADJUSTMENT;