[Home] [Help]
PACKAGE BODY: APPS.ARP_INSERT_DIST_COVER
Source
3
1 PACKAGE BODY ARP_INSERT_DIST_COVER AS
2 /* $Header: ARTLGDIB.pls 115.7 2003/10/27 19:39:06 mraymond ship $ */
4 pg_msg_level_debug binary_integer;
5
6 FUNCTION set_original_gl_date(
7 p_customer_trx_id IN ra_customer_trx.customer_trx_id%TYPE
8 ,p_customer_trx_line_id IN ra_customer_trx_lines.customer_trx_line_id%TYPE
9 ,p_original_gl_date IN ra_cust_trx_line_gl_dist.gl_date%TYPE
10 ,p_account_class IN ra_cust_trx_line_gl_dist.account_class%TYPE)
11 RETURN DATE;
12
13 /*===========================================================================+
14 | PROCEDURE |
15 | insert_dist_cover |
16 | |
17 | DESCRIPTION |
18 | Converts column parameters to a dist record and |
19 | inserts a dist line. |
20 | |
21 | SCOPE - PUBLIC |
22 | |
23 | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED |
24 | arp_standard.debug |
25 | |
26 | ARGUMENTS : IN: |
27 | p_form_name |
28 | p_form_version |
29 | p_exchange_rate |
30 | p_base_currency_code |
31 | p_base_precision |
32 | p_base_mau |
33 | p_customer_trx_id |
34 | p_customer_trx_line_id |
35 | p_cust_trx_line_salesrep_id |
36 | p_account_class |
37 | p_percent |
38 | p_amount |
39 | p_acctd_amount |
40 | p_gl_date |
41 | p_original_gl_date |
42 | p_code_combination_id |
43 | p_concatenated_segments |
44 | p_collected_tax_ccid |
45 | p_collected_tax_concat_seg |
46 | p_comments |
47 | p_account_set_flag |
48 | p_ussgl_transaction_code |
49 | p_ussgl_trx_code_context |
50 | p_attribute_category |
51 | p_attribute1 |
52 | p_attribute2 |
53 | p_attribute3 |
54 | p_attribute4 |
55 | p_attribute5 |
56 | p_attribute6 |
57 | p_attribute7 |
58 | p_attribute8 |
59 | p_attribute9 |
60 | p_attribute10 |
61 | p_attribute11 |
62 | p_attribute12 |
63 | p_attribute13 |
64 | p_attribute14 |
65 | p_attribute15 |
66 | OUT: |
67 | p_cust_trx_line_gl_dist_id |
68 | IN/ OUT: |
69 | None |
70 | |
71 | RETURNS : NONE |
75 | MODIFICATION HISTORY |
72 | |
73 | NOTES |
74 | |
76 | 10-OCT-95 Martin Johnson Created |
77 | 05-JAN-99 Tasman Tang Added new parameters collected_tax_ccid|
78 | and collected_tax_concat_seg for |
79 | deferred tax |
80 | 12-DEC-02 Jon Beckett Bug 2569911 - Call to new function |
81 | set_original_gl_date to set the correct|
82 | value of original GL date for a rule |
83 | based line to ensure inclusion in CMs |
84 | |
85 +===========================================================================*/
86
87 PG_DEBUG varchar2(1) := NVL(FND_PROFILE.value('AFLOG_ENABLED'), 'N');
88
89 PROCEDURE insert_dist_cover(
90 p_form_name IN varchar2,
91 p_form_version IN number,
92 p_exchange_rate IN
93 ra_customer_trx.exchange_rate%type,
94 p_base_currency_code IN
95 fnd_currencies.currency_code%type,
96 p_base_precision IN
97 fnd_currencies.precision%type,
98 p_base_mau IN
99 fnd_currencies.minimum_accountable_unit%type,
100 p_customer_trx_id IN
101 ra_cust_trx_line_gl_dist.customer_trx_id%type,
102 p_customer_trx_line_id IN
103 ra_cust_trx_line_gl_dist.customer_trx_line_id %type,
104 p_cust_trx_line_salesrep_id IN
105 ra_cust_trx_line_gl_dist.cust_trx_line_salesrep_id%type,
106 p_account_class IN
107 ra_cust_trx_line_gl_dist.account_class%type,
108 p_percent IN
109 ra_cust_trx_line_gl_dist.percent%type,
110 p_amount IN
111 ra_cust_trx_line_gl_dist.amount%type,
112 p_acctd_amount IN
113 ra_cust_trx_line_gl_dist.acctd_amount%type,
114 p_gl_date IN
115 ra_cust_trx_line_gl_dist.gl_date%type,
116 p_original_gl_date IN
117 ra_cust_trx_line_gl_dist.original_gl_date%type,
118 p_code_combination_id IN
119 ra_cust_trx_line_gl_dist.code_combination_id%type,
120 p_concatenated_segments IN
121 ra_cust_trx_line_gl_dist.concatenated_segments%type,
122 p_collected_tax_ccid IN
123 ra_cust_trx_line_gl_dist.collected_tax_ccid%type,
124 p_collected_tax_concat_seg IN
125 ra_cust_trx_line_gl_dist.collected_tax_concat_seg%type,
126 p_comments IN
127 ra_cust_trx_line_gl_dist.comments%type,
131 ra_cust_trx_line_gl_dist.ussgl_transaction_code%type,
128 p_account_set_flag IN
129 ra_cust_trx_line_gl_dist.account_set_flag%type,
130 p_ussgl_transaction_code IN
132 p_ussgl_trx_code_context IN
133 ra_cust_trx_line_gl_dist.ussgl_transaction_code_context%type,
134 p_attribute_category IN
135 ra_cust_trx_line_gl_dist.attribute_category%type,
136 p_attribute1 IN
137 ra_cust_trx_line_gl_dist.attribute1%type,
138 p_attribute2 IN
139 ra_cust_trx_line_gl_dist.attribute2%type,
140 p_attribute3 IN
141 ra_cust_trx_line_gl_dist.attribute3%type,
142 p_attribute4 IN
143 ra_cust_trx_line_gl_dist.attribute4%type,
144 p_attribute5 IN
145 ra_cust_trx_line_gl_dist.attribute5%type,
146 p_attribute6 IN
147 ra_cust_trx_line_gl_dist.attribute6%type,
148 p_attribute7 IN
149 ra_cust_trx_line_gl_dist.attribute7%type,
150 p_attribute8 IN
151 ra_cust_trx_line_gl_dist.attribute8%type,
152 p_attribute9 IN
153 ra_cust_trx_line_gl_dist.attribute9%type,
154 p_attribute10 IN
155 ra_cust_trx_line_gl_dist.attribute10%type,
156 p_attribute11 IN
157 ra_cust_trx_line_gl_dist.attribute11%type,
158 p_attribute12 IN
159 ra_cust_trx_line_gl_dist.attribute12%type,
160 p_attribute13 IN
161 ra_cust_trx_line_gl_dist.attribute13%type,
162 p_attribute14 IN
163 ra_cust_trx_line_gl_dist.attribute14%type,
164 p_attribute15 IN
165 ra_cust_trx_line_gl_dist.attribute15%type,
166 p_cust_trx_line_gl_dist_id OUT NOCOPY
167 ra_cust_trx_line_gl_dist.cust_trx_line_gl_dist_id%type)
168 IS
169
170 l_dist_rec ra_cust_trx_line_gl_dist%rowtype;
171
172 BEGIN
173
174 IF PG_DEBUG in ('Y', 'C') THEN
175 arp_standard.debug('arp_process_dist.insert_dist_cover()+');
176 END IF;
177
178 /*-----------------------------------------+
179 | Populate the dist record group with |
180 | the values passed in as parameters. |
181 +-----------------------------------------*/
182
183 l_dist_rec.customer_trx_id := p_customer_trx_id;
184 l_dist_rec.customer_trx_line_id := p_customer_trx_line_id;
185 l_dist_rec.cust_trx_line_salesrep_id := p_cust_trx_line_salesrep_id;
186 l_dist_rec.account_class := p_account_class;
187 l_dist_rec.percent := p_percent;
188 l_dist_rec.amount := p_amount;
189 l_dist_rec.acctd_amount := p_acctd_amount;
190 l_dist_rec.gl_date := p_gl_date;
191 /* Bug 2569911 - set original GL date to valid value */
192 l_dist_rec.original_gl_date := set_original_gl_date
193 (p_customer_trx_id
194 ,p_customer_trx_line_id
195 ,p_original_gl_date
196 ,p_account_class);
197 l_dist_rec.code_combination_id := p_code_combination_id;
198 l_dist_rec.concatenated_segments := p_concatenated_segments;
199 l_dist_rec.collected_tax_ccid := p_collected_tax_ccid;
200 l_dist_rec.collected_tax_concat_seg := p_collected_tax_concat_seg;
201 l_dist_rec.comments := p_comments;
202 l_dist_rec.account_set_flag := p_account_set_flag;
203 l_dist_rec.ussgl_transaction_code := p_ussgl_transaction_code;
204 l_dist_rec.ussgl_transaction_code_context := p_ussgl_trx_code_context;
205 l_dist_rec.attribute_category := p_attribute_category;
206 l_dist_rec.attribute1 := p_attribute1;
207 l_dist_rec.attribute2 := p_attribute2;
208 l_dist_rec.attribute3 := p_attribute3;
209 l_dist_rec.attribute4 := p_attribute4;
210 l_dist_rec.attribute5 := p_attribute5;
211 l_dist_rec.attribute6 := p_attribute6;
212 l_dist_rec.attribute7 := p_attribute7;
213 l_dist_rec.attribute8 := p_attribute8;
214 l_dist_rec.attribute9 := p_attribute9;
215 l_dist_rec.attribute10 := p_attribute10;
216 l_dist_rec.attribute11 := p_attribute11;
217 l_dist_rec.attribute12 := p_attribute12;
218 l_dist_rec.attribute13 := p_attribute13;
219 l_dist_rec.attribute14 := p_attribute14;
220 l_dist_rec.attribute15 := p_attribute15;
221
222 /*----------------------------------------+
223 | Call the standard dist entity handler |
224 +----------------------------------------*/
225
226 arp_process_dist.insert_dist(
227 p_form_name,
228 p_form_version,
229 l_dist_rec,
230 p_exchange_rate,
231 p_base_currency_code,
232 p_base_precision,
233 p_base_mau,
234 p_cust_trx_line_gl_dist_id );
235
236 IF PG_DEBUG in ('Y', 'C') THEN
240 EXCEPTION
237 arp_standard.debug('arp_process_dist.insert_dist_cover()-');
238 END IF;
239
241 WHEN OTHERS THEN
242
243 IF PG_DEBUG in ('Y', 'C') THEN
244 arp_standard.debug('EXCEPTION: arp_process_dist.insert_dist_cover()',
245 'plsql');
246 arp_standard.debug('------- parameters for insert_dist_cover() ' ||
247 '---------',
248 'plsql');
249 arp_standard.debug( 'p_form_name = ' || p_form_name,
250 'plsql');
251 arp_standard.debug( 'p_form_version = ' || p_form_version,
252 'plsql');
253 arp_standard.debug( 'p_exchange_rate = ' || p_exchange_rate,
254 'plsql');
255 arp_standard.debug( 'p_base_currency_code = ' || p_base_currency_code,
256 'plsql');
257 arp_standard.debug( 'p_base_precision = ' || p_base_precision,
258 'plsql');
259 arp_standard.debug( 'p_base_mau = ' || p_base_mau,
260 'plsql');
261 arp_standard.debug( 'p_customer_trx_id = ' || p_customer_trx_id,
262 'plsql');
263 arp_standard.debug( 'p_customer_trx_line_id = ' || p_customer_trx_line_id,
264 'plsql');
265 arp_standard.debug( 'p_cust_trx_line_salesrep_id = ' ||
266 p_cust_trx_line_salesrep_id,
267 'plsql');
268 arp_standard.debug( 'p_account_class = ' || p_account_class,
269 'plsql');
270 arp_standard.debug( 'p_percent = ' || p_percent,
271 'plsql');
272 arp_standard.debug( 'p_amount = ' || p_amount,
273 'plsql');
274 arp_standard.debug( 'p_acctd_amount = ' || p_acctd_amount,
275 'plsql');
276 arp_standard.debug( 'p_gl_date = ' || p_gl_date,
277 'plsql');
278 arp_standard.debug( 'p_original_gl_date = ' || p_original_gl_date,
279 'plsql');
280 arp_standard.debug( 'p_code_combination_id = ' || p_code_combination_id,
281 'plsql');
282 arp_standard.debug( 'p_concatenated_segments = ' || p_concatenated_segments,
283 'plsql');
284 arp_standard.debug( 'p_collected_tax_ccid = ' || p_collected_tax_ccid,
285 'plsql');
286 arp_standard.debug( 'p_collected_tax_concat_seg = ' || p_collected_tax_concat_seg,
287 'plsql');
288 arp_standard.debug( 'p_comments = ' || p_comments,
289 'plsql');
290 arp_standard.debug( 'p_account_set_flag = ' || p_account_set_flag,
291 'plsql');
292 arp_standard.debug( 'p_ussgl_transaction_code = ' ||
293 p_ussgl_transaction_code,
294 'plsql');
295 arp_standard.debug( 'p_ussgl_trx_code_context = ' ||
296 p_ussgl_trx_code_context,
297 'plsql');
298 arp_standard.debug( 'p_attribute_category = ' || p_attribute_category,
299 'plsql');
300 arp_standard.debug( 'p_attribute1 = ' || p_attribute1,
301 'plsql');
302 arp_standard.debug( 'p_attribute2 = ' || p_attribute2,
303 'plsql');
304 arp_standard.debug( 'p_attribute3 = ' || p_attribute3,
305 'plsql');
306 arp_standard.debug( 'p_attribute4 = ' || p_attribute4,
307 'plsql');
308 arp_standard.debug( 'p_attribute5 = ' || p_attribute5,
309 'plsql');
310 arp_standard.debug( 'p_attribute6 = ' || p_attribute6,
311 'plsql');
312 arp_standard.debug( 'p_attribute7 = ' || p_attribute7,
313 'plsql');
314 arp_standard.debug( 'p_attribute8 = ' || p_attribute8,
315 'plsql');
316 arp_standard.debug( 'p_attribute9 = ' || p_attribute9,
317 'plsql');
318 arp_standard.debug( 'p_attribute10 = ' || p_attribute10,
319 'plsql');
320 arp_standard.debug( 'p_attribute11 = ' || p_attribute11,
321 'plsql');
322 arp_standard.debug( 'p_attribute12 = ' || p_attribute12,
323 'plsql');
324 arp_standard.debug( 'p_attribute13 = ' || p_attribute13,
325 'plsql');
326 arp_standard.debug( 'p_attribute14 = ' || p_attribute14,
327 'plsql');
328 arp_standard.debug( 'p_attribute15 = ' || p_attribute15,
329 'plsql');
330 END IF;
331
332 RAISE;
333
334 END insert_dist_cover;
335
336 /*===========================================================================+
337 | FUNCTION |
338 | set_original_gl_date |
339 | |
340 | DESCRIPTION |
341 | Resets original GL date to valid value from ar_revenue_assignments if |
342 | a rule based invoice line to ensure the credit memo module will pick |
343 | up the distribution when a credit memo is created. |
344 | Distributions on rule based invoice lines have been manually entered |
345 | via the Distributions window in ARXTWMAI. |
346 | |
347 | SCOPE - PRIVATE |
348 | |
349 | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED |
350 | arp_standard.debug |
351 | |
352 | ARGUMENTS : IN: |
353 | p_customer_trx_id |
354 | p_customer_trx_line_id |
355 | p_original_gl_date |
356 | OUT: |
357 | None |
358 | IN/ OUT: |
359 | None |
360 | |
361 | RETURNS : Valid original GL date |
362 | |
363 | NOTES |
364 | |
365 | MODIFICATION HISTORY |
366 | 12-DEC-02 Jon Beckett Created for bug 2569911. |
367 | |
368 +===========================================================================*/
369
370 FUNCTION set_original_gl_date(
371 p_customer_trx_id IN ra_customer_trx.customer_trx_id%TYPE
372 ,p_customer_trx_line_id IN ra_customer_trx_lines.customer_trx_line_id%TYPE
373 ,p_original_gl_date IN ra_cust_trx_line_gl_dist.gl_date%TYPE
377 CURSOR c_rule_based_inv IS
374 ,p_account_class IN ra_cust_trx_line_gl_dist.account_class%TYPE)
375 RETURN DATE
376 IS
378 SELECT ctl.accounting_rule_id, ctt.type
379 FROM ra_customer_trx_lines ctl,
380 ra_cust_trx_types ctt,
381 ra_customer_trx ct
382 WHERE ctl.customer_trx_id = ct.customer_trx_id
383 AND ct.cust_trx_type_id = ctt.cust_trx_type_id
384 AND ctl.customer_trx_line_id = p_customer_trx_line_id;
385
386 CURSOR c_valid_rule_gl_date IS
387 SELECT ra.gl_date
388 FROM ar_revenue_assignments ra,
389 gl_sets_of_books sob,
390 ar_system_parameters sp
391 WHERE ra.customer_trx_line_id = p_customer_trx_line_id
392 AND sob.set_of_books_id = sp.set_of_books_id
393 AND ra.period_set_name = sob.period_set_name
394 AND ra.account_class = 'REV'
395 and ROWNUM = 1;
396
397 l_accounting_rule_id ra_rules.rule_id%TYPE;
398 l_trx_type ra_cust_trx_types.type%TYPE;
399 l_valid_orig_gl_date DATE;
400
401 BEGIN
402 IF PG_DEBUG in ('Y', 'C') THEN
403 arp_standard.debug('arp_insert_dist_cover.set_original_gl_date()+');
404 END IF;
405
406 IF p_account_class <> 'REV'
407 THEN
408 RETURN p_original_gl_date;
409 END IF;
410
411 OPEN c_rule_based_inv;
412 FETCH c_rule_based_inv INTO l_accounting_rule_id, l_trx_type;
413 CLOSE c_rule_based_inv;
414
415 IF l_trx_type = 'INV' AND l_accounting_rule_id IS NOT NULL
416 THEN
417 OPEN c_valid_rule_gl_date;
418 FETCH c_valid_rule_gl_date INTO l_valid_orig_gl_date;
419 CLOSE c_valid_rule_gl_date;
420 ELSE
421 l_valid_orig_gl_date := p_original_gl_date;
422 END IF;
423 RETURN l_valid_orig_gl_date;
424
425 IF PG_DEBUG in ('Y', 'C') THEN
426 arp_standard.debug('arp_insert_dist_cover.set_original_gl_date()-',
427 'plsql');
428 END IF;
429 EXCEPTION
430 WHEN OTHERS THEN
431
432 IF PG_DEBUG in ('Y', 'C') THEN
433 arp_standard.debug('EXCEPTION: arp_process_dist.insert_dist_cover()'||
434 sqlerrm, 'plsql');
435 END IF;
436 RETURN p_original_gl_date;
437 END set_original_gl_date;
438
439 /*---------------------------------------------+
440 | Package initialization section. |
441 +---------------------------------------------*/
442
443 BEGIN
444
445 pg_msg_level_debug := arp_global.MSG_LEVEL_DEBUG;
446
447 END ARP_INSERT_DIST_COVER;