[Home] [Help]
7032: x_return_status OUT NOCOPY VARCHAR2 ) IS
7033:
7034: CURSOR Cccid IS
7035: SELECT code_combination_id, trx_dist_id, trx_line_id, trx_header_id
7036: FROM ar_trx_dist_gt
7037: WHERE code_combination_id IS NOT NULL;
7038: BEGIN
7039: -- first validate the ccid, if user has passed any ccid
7040: IF pg_debug = 'Y'
7109: SELECT d.trx_header_id,
7110: d.trx_line_id,
7111: D.trx_DIST_ID,
7112: arp_standard.fnd_message('AR_INAPI_CCID_NULL')
7113: FROM ar_trx_DIST_gt D
7114: WHERE code_combination_id IS NULL;
7115: -- the user can pass either amount or percent. If both amount and percent
7116: -- is passed then amount will take precendence.
7117:
7124: SELECT d.trx_header_id,
7125: d.trx_line_id,
7126: D.trx_DIST_ID,
7127: arp_standard.fnd_message('AR_INAPI_AMT_PER_REQUIRED')
7128: FROM ar_trx_DIST_gt D
7129: WHERE d.PERCENT IS NULL
7130: AND d.amount IS NULL;
7131:
7132: --If accounting rule id is passed
7143: SELECT d.trx_header_id,
7144: L.trx_line_id,
7145: D.trx_DIST_ID,
7146: arp_standard.fnd_message('AR_INAPI_ONLY_PER_ALLOWED')
7147: FROM ar_trx_DIST_gt D,
7148: ar_trx_lines_GT L
7149: WHERE (L.ACCOUNTING_RULE_ID IS NOT NULL
7150: OR D.ACCOUNT_CLASS = 'REC')
7151: AND d.PERCENT IS NULL
7169: SELECT d.trx_header_id,
7170: L.trx_LINE_ID,
7171: D.trx_DIST_ID,
7172: arp_standard.fnd_message('AR_INAPI_INAVLID_LINE_TYPE')
7173: FROM ar_trx_dist_gt D,
7174: ar_trx_LINES_GT L
7175: WHERE L.trx_LINE_ID = D.trx_LINE_ID
7176: AND DECODE(D.ACCOUNT_CLASS,
7177: 'TAX', 'TAX',
7185: | for account class: 'REV', 'TAX', 'FREIGHT', 'CHARGES' |
7186: | For lines w/o accounting rules. |
7187: +------------------------------------------------------------*/
7188:
7189: UPDATE ar_trx_dist_gt D
7190: SET AMOUNT =
7191: (
7192: SELECT
7193: DECODE(C.MINIMUM_ACCOUNTABLE_UNIT,
7223: | Entry form. |
7224: | For lines w/o accounting rules only. |
7225: +-----------------------------------------------------------*/
7226:
7227: UPDATE ar_trx_dist_gt D
7228: SET d.PERCENT =
7229: (
7230: SELECT DECODE(L.extended_AMOUNT,
7231: 0, 0, /* set percent =0 if line amt = 0 */
7255: | for account class: 'REV', 'TAX', 'FREIGHT', 'CHARGES' |
7256: | For lines w/o accounting rules. |
7257: +------------------------------------------------------------*/
7258:
7259: UPDATE ar_trx_dist_gt D
7260: SET ACCTD_AMOUNT =
7261: (
7262: SELECT
7263: DECODE(C.MINIMUM_ACCOUNTABLE_UNIT,
7301: SELECT l.trx_header_id,
7302: L.trx_LINE_ID,
7303: arp_standard.fnd_message('AR_INAPI_NVALID_SUM_DIST_AMT'),
7304: d.account_class || ':'||SUM(d.amount)
7305: FROM ar_trx_DIST_gt D,
7306: ar_trx_lines_GT L
7307: WHERE L.ACCOUNTING_RULE_ID IS NULL
7308: AND L.LINE_TYPE = DECODE(D.ACCOUNT_CLASS,
7309: 'REV', 'LINE',
7333: SELECT d.trx_header_id,
7334: d.trx_line_ID,
7335: arp_standard.fnd_message('AR_INAPI_100_PERCENT'),
7336: sum(d.percent)
7337: FROM ar_trx_dist_gt d, ar_trx_lines_gt L, ar_trx_header_gt h
7338: WHERE d.trx_line_id = l.trx_line_id
7339: AND l.trx_header_id = h.trx_header_id
7340: GROUP BY d.trx_header_id,d.trx_line_ID, ACCOUNT_CLASS
7341: HAVING SUM(d.PERCENT) <> 100;
7349: invalid_value)
7350: SELECT d.trx_header_id,
7351: arp_standard.fnd_message('AR_INAPI_100_PERCENT'),
7352: sum(d.percent)
7353: FROM ar_trx_dist_gt d
7354: WHERE d.account_class = 'REC'
7355: GROUP BY d.trx_header_id
7356: HAVING SUM(d.PERCENT) <> 100;
7357:
7381: (NVL(PERCENT, 0) - ROUND(NVL(PERCENT,0), :pct_precision)) <> 0
7382: ); */
7383:
7384: -- update accounting set flag
7385: UPDATE ar_trx_dist_gt dgt
7386: SET dgt.account_set_flag =
7387: (SELECT DECODE(hgt.invoicing_rule_id,null,'N','Y')
7388: FROM ar_trx_header_gt hgt, ar_trx_lines_gt lgt
7389: WHERE hgt.trx_header_id = lgt.trx_header_id
7395: WHERE h.trx_header_id = dgt.trx_header_id
7396: AND dgt.account_class = 'REC');
7397:
7398: -- Now update the amount
7399: /* UPDATE ar_trx_dist_gt D
7400: set (amount,acctd_amount) =
7401: (Select DECODE(D.ACCOUNT_CLASS,
7402: 'REC', NULL,
7403: 'TAX', DECODE(NVL(PREV_TRX.INVOICING_RULE_ID,
7518: l_min_acc_unit) *
7519: l_min_acc_unit)),
7520: D.ACCTD_AMOUNT),
7521: NULL))
7522: FROM ar_trx_DIST_gt D,
7523: ar_trx_header_gt h
7524: --RA_CUST_TRX_TYPES TYPE,
7525: FND_CURRENCIES C,
7526: GL_SETS_OF_BOOKS G,
7563: debug ('AR_INVOICE_UTILS.validate_distributions (-)' );
7564: END IF;
7565:
7566: /*4673387*/
7567: UPDATE ar_trx_dist_gt
7568: SET gl_date = NULL
7569: WHERE trx_header_id IN (SELECT trx_header_id
7570: FROM ar_trx_header_gt gt,
7571: ra_cust_trx_types ctt