DBA Data[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;