DBA Data[Home] [Help]

PACKAGE BODY: APPS.ARP_CTL_PKG

Source


1 PACKAGE BODY ARP_CTL_PKG AS
2 /* $Header: ARTICTLB.pls 120.31.12010000.6 2008/11/24 12:46:19 rasarasw ship $ */
3 PG_DEBUG varchar2(1) := NVL(FND_PROFILE.value('AFLOG_ENABLED'), 'N');
4 
5   /*--------------------------------------------------------+
6    |  Dummy constants for use in update and lock operations |
7    +--------------------------------------------------------*/
8 
9   AR_TEXT_DUMMY   CONSTANT VARCHAR2(10) := '~~!@#$*&^';
10   AR_TEXT3_DUMMY  CONSTANT VARCHAR2(10) := '~!@';
11   AR_FLAG_DUMMY   CONSTANT VARCHAR2(10) := '~';
12   AR_NUMBER_DUMMY CONSTANT NUMBER(15)   := -999999999999999;
13   AR_DATE_DUMMY   CONSTANT DATE         := to_date(1, 'J');
14 
15   /*---------------------------------------------------------------+
16    |  Package global variables to hold the parsed update cursors.  |
17    |  This allows the cursors to be reused without being reparsed. |
18    +---------------------------------------------------------------*/
19 
20   pg_cursor1  integer := '';
21   pg_cursor2  integer := '';
22 
23   /*-------------------------------------+
24    |  WHO column values from FND_GLOBAL  |
25    +-------------------------------------*/
26 
27   pg_user_id          number;
28   pg_conc_login_id    number;
29   pg_login_id         number;
30   pg_prog_appl_id     number;
31   pg_conc_program_id  number;
32 
33 --{BUG#3339072
34   TYPE ctlrec IS RECORD (
35           customer_trx_line_id   DBMS_SQL.NUMBER_TABLE,
36           customer_trx_id        DBMS_SQL.NUMBER_TABLE,
37           created_by             DBMS_SQL.VARCHAR2_TABLE,
38           creation_date          DBMS_SQL.DATE_TABLE,
39           last_updated_by        DBMS_SQL.VARCHAR2_TABLE,
40           last_update_date       DBMS_SQL.DATE_TABLE,
41           last_update_login      DBMS_SQL.VARCHAR2_TABLE,
42           line_number            DBMS_SQL.NUMBER_TABLE,
43           line_type              DBMS_SQL.VARCHAR2_TABLE,
44           set_of_books_id        DBMS_SQL.NUMBER_TABLE,
45           accounting_rule_id     DBMS_SQL.NUMBER_TABLE,
46           autorule_complete_flag DBMS_SQL.VARCHAR2_TABLE,
47           last_period_to_credit  DBMS_SQL.NUMBER_TABLE,
48           description            DBMS_SQL.VARCHAR2_TABLE,
49           initial_customer_trx_line_id  DBMS_SQL.NUMBER_TABLE,
50           inventory_item_id      DBMS_SQL.NUMBER_TABLE,
51           item_exception_rate_id DBMS_SQL.NUMBER_TABLE,
52           memo_line_id           DBMS_SQL.NUMBER_TABLE,
53           reason_code            DBMS_SQL.VARCHAR2_TABLE,
54           previous_customer_trx_id DBMS_SQL.NUMBER_TABLE,
55           previous_customer_trx_line_id DBMS_SQL.NUMBER_TABLE,
56           link_to_cust_trx_line_id  DBMS_SQL.NUMBER_TABLE,
57           unit_standard_price     DBMS_SQL.NUMBER_TABLE,
58           unit_selling_price      DBMS_SQL.NUMBER_TABLE,
59           gross_unit_selling_price DBMS_SQL.NUMBER_TABLE,-- Bug 7389126 KALYAN
60           gross_extended_amount   DBMS_SQL.NUMBER_TABLE, -- 6882394
61           original_extended_amount DBMS_SQL.NUMBER_TABLE,-- 6882394
62           original_revenue_amount  DBMS_SQL.NUMBER_TABLE,-- 6882394
63           quantity_credited       DBMS_SQL.NUMBER_TABLE,
64           quantity_invoiced       DBMS_SQL.NUMBER_TABLE,      -- Bug 6990227
65           extended_amount         DBMS_SQL.NUMBER_TABLE,
66           revenue_amount          DBMS_SQL.NUMBER_TABLE,
67           sales_order             DBMS_SQL.VARCHAR2_TABLE,
68           sales_order_date        DBMS_SQL.DATE_TABLE,
69           sales_order_line        DBMS_SQL.VARCHAR2_TABLE,
70           sales_order_revision    DBMS_SQL.NUMBER_TABLE,
71           sales_order_source      DBMS_SQL.VARCHAR2_TABLE,
72           tax_exemption_id        DBMS_SQL.NUMBER_TABLE,
73           tax_precedence          DBMS_SQL.NUMBER_TABLE,
74           tax_rate                DBMS_SQL.NUMBER_TABLE,
75           uom_code                DBMS_SQL.VARCHAR2_TABLE,
76           default_ussgl_transaction_code DBMS_SQL.VARCHAR2_TABLE,
77           default_ussgl_trx_code_context DBMS_SQL.VARCHAR2_TABLE,
78           sales_tax_id            DBMS_SQL.NUMBER_TABLE,
79           location_segment_id     DBMS_SQL.NUMBER_TABLE,
80           vat_tax_id              DBMS_SQL.NUMBER_TABLE,
81           amount_includes_tax_flag    DBMS_SQL.VARCHAR2_TABLE,
82           warehouse_id            DBMS_SQL.NUMBER_TABLE,
83           taxable_amount          DBMS_SQL.NUMBER_TABLE,
84           translated_description  DBMS_SQL.VARCHAR2_TABLE,
85           org_id                  DBMS_SQL.NUMBER_TABLE,
86           ship_to_customer_id     DBMS_SQL.NUMBER_TABLE,
87           ship_to_address_id      DBMS_SQL.NUMBER_TABLE,
88           ship_to_site_use_id     DBMS_SQL.NUMBER_TABLE,
89           ship_to_contact_id      DBMS_SQL.NUMBER_TABLE,
90 	  tax_classification_code DBMS_SQL.VARCHAR2_TABLE,
91           historical_flag         DBMS_SQL.VARCHAR2_TABLE,
92           memo_line_type          DBMS_SQL.VARCHAR2_TABLE);
93   --}
94 /*===========================================================================+
95  | FUNCTION                                                                  |
96  |    calculate_prorated_tax_amount                                          |
97  |                                                                           |
98  | DESCRIPTION                                                               |
99  |    This function will prorate the tax across lines when the               |
100  |    credit transaction is of type TAX ONLY			             |
101  |                                                                           |
102  | SCOPE - PUBLIC                                                            |
103  |                                                                           |
104  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
105  |    arp_util.debug                                                         |
106  |                                                                           |
107  | ARGUMENTS  : IN:                                                          |
108  |                    p_mode                                                 |
109  |                    p_tax_amount                                           |
110  |                    p_customer_trx_id                                      |
111  |                    p_customer_trx_line_id                                 |
112  | RETURNS    : Number                                                       |
113  |                                                                           |
114  | NOTES                                                                     |
115  |                                                                           |
116  | MODIFICATION HISTORY                                                      |
117  |     06-FEB-2008  Manohar Kolla V K  Created                               |
118  |                                                                           |
119  +===========================================================================*/
120 
121 FUNCTION calculate_prorated_tax_amount (p_mode			IN varchar2,
122                                         p_tax_amount		IN ra_customer_trx_lines.extended_amount%type,
123 					p_customer_trx_id	IN ra_customer_trx.customer_trx_id%type,
124 					p_customer_trx_line_id	IN ra_customer_trx_lines.customer_trx_line_id%type)
125 RETURN NUMBER
126 IS
127 l_tax_recoverable	ra_customer_trx_lines.tax_recoverable%type;
128 l_total_tax_recoverable ra_customer_trx_lines.tax_recoverable%type;
129 l_precision		FND_CURRENCIES.precision%type;
130 l_mau			FND_CURRENCIES.minimum_accountable_unit%type;
131 l_tax_amount		ra_customer_trx_lines.extended_amount%type;
132 
133 BEGIN
134     IF PG_DEBUG in ('Y', 'C') THEN
135        arp_util.debug(  'arp_ctl_pkg.calculate_prorated_tax_amount()+');
136     END IF;
137 
138    IF p_mode = 'INSERT_NO_LINE' then
139 
140 	select sum(decode(ct.complete_flag , 'N', 0,
141 			  nvl(ctl.tax_recoverable,
142         (select sum(ctl_tax.extended_amount) from ra_customer_trx_lines_all ctl_tax
143         where ctl_tax.customer_trx_id = ctl.customer_trx_id
144         and ctl_tax.link_to_cust_trx_line_id = ctl.customer_trx_line_id
145         and ctl_tax.line_type = 'TAX')))) tax_recoverable
146 	INTO l_tax_recoverable
147 	from ra_customer_trx_lines_all orig_ctl,
148 	ra_customer_trx_lines_all ctl,
149 	ra_customer_trx_lines_all cm_ctl,
150 	ra_customer_trx_all ct
151 	where (ctl.customer_trx_line_id = orig_ctl.customer_trx_line_id
152 		   OR ( ctl.previous_customer_trx_line_id IS NOT NULL
153 		       AND ctl.previous_customer_trx_line_id = orig_ctl.customer_trx_line_id)
154 	      )
155 	and orig_ctl.customer_trx_id = cm_ctl.previous_customer_trx_id
156 	and orig_ctl.customer_trx_line_id = cm_ctl.previous_customer_trx_line_id
157 	and cm_ctl.customer_trx_id = p_customer_trx_id
158 	and cm_ctl.customer_trx_line_id = p_customer_trx_line_id
159 	and ctl.line_type = 'LINE'
160 	and ct.customer_trx_id = ctl.customer_trx_id
161 	group by orig_ctl.customer_trx_line_id, ctl.line_type;
162 
163 	select sum(decode(ct.complete_flag , 'N', 0,
164 			  nvl(ctl.tax_recoverable, (select sum(ctl_tax.extended_amount) from ra_customer_trx_lines_all ctl_tax
165         where ctl_tax.customer_trx_id = ctl.customer_trx_id
166         and ctl_tax.link_to_cust_trx_line_id = ctl.customer_trx_line_id
167         and ctl_tax.line_type = 'TAX')))) total_tax_recoverable
168 	INTO l_total_tax_recoverable
169 	from ra_customer_trx_lines_all orig_ctl,
170 	ra_customer_trx_lines_all ctl,
171 	ra_customer_trx_lines_all cm_ctl,
172 	ra_customer_trx_all ct
173 	where (ctl.customer_trx_line_id = orig_ctl.customer_trx_line_id
174 		   OR ( ctl.previous_customer_trx_line_id IS NOT NULL
175 		       AND ctl.previous_customer_trx_line_id = orig_ctl.customer_trx_line_id)
176 	      )
177 	and orig_ctl.customer_trx_id = cm_ctl.previous_customer_trx_id
178 	and orig_ctl.customer_trx_line_id = cm_ctl.previous_customer_trx_line_id
179 	and cm_ctl.customer_trx_id = p_customer_trx_id
180 	and ctl.line_type = 'LINE'
181 	and ct.customer_trx_id = ctl.customer_trx_id;
182 
183         if l_total_tax_recoverable = 0 then
184 		l_total_tax_recoverable := 1;
185 	end if;
186 
187 	select
188 	      CUR.precision,
189 	      CUR.minimum_accountable_unit
190 	into  l_precision,
191 	      l_mau
192 	from RA_CUSTOMER_TRX          TRX,
193 	     FND_CURRENCIES           CUR
194 	where TRX.customer_trx_id = p_customer_trx_id
195 	and   TRX.invoice_currency_code = CUR.currency_code;
196 
197 	l_tax_amount := p_tax_amount * (l_tax_recoverable / l_total_tax_recoverable);
198 
199 		IF l_precision is not null
200 		THEN
201 		    l_tax_amount := round(l_tax_amount, l_precision);
202 		ELSE
203 		    l_tax_amount := (round(l_tax_amount / l_mau)
204 					    * l_mau);
205 		END IF;
206    ELSE
207 	l_tax_amount := p_tax_amount;
208    END IF;
209 
210     IF PG_DEBUG in ('Y', 'C') THEN
211        arp_util.debug(  'l_tax_recoverable = ' || l_tax_recoverable);
212        arp_util.debug(  'l_total_tax_recoverable = ' || l_total_tax_recoverable);
213        arp_util.debug(  'l_tax_amount = ' || l_tax_amount);
214     END IF;
215 
216     IF PG_DEBUG in ('Y', 'C') THEN
217        arp_util.debug(  'arp_ctl_pkg.calculate_prorated_tax_amount()-');
218     END IF;
219 
220 RETURN l_tax_amount;
221 EXCEPTION
222   WHEN NO_DATA_FOUND THEN
223     return null;
224   WHEN OTHERS THEN
225     IF PG_DEBUG in ('Y', 'C') THEN
226        arp_util.debug(  'EXCEPTION: arp_ctl_pkg.calculate_prorated_tax_amount');
227        arp_util.debug(  '');
228        arp_util.debug(  'p_customer_trx_id         = '||p_customer_trx_id);
229        arp_util.debug(  'p_customer_trx_line_id    = '||p_customer_trx_line_id);
230        arp_util.debug(  'p_tax_amount              = '||p_tax_amount);
231        arp_util.debug(  'p_mode			   = '||p_mode);
232     END IF;
233     RAISE;
234 
235 END calculate_prorated_tax_amount;
236 
237 /*===========================================================================+
238  | PROCEDURE                                                                 |
239  |    bind_line_variables                                                    |
240  |                                                                           |
241  | DESCRIPTION                                                               |
242  |    Binds variables from the record variable to the bind variables         |
243  |    in the dynamic SQL update statement.                                   |
244  |                                                                           |
245  | SCOPE - PRIVATE                                                           |
246  |                                                                           |
247  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
248  |    dbms_sql.bind_variable                                                 |
249  |    arp_util.debug                                                         |
250  |                                                                           |
251  | ARGUMENTS  : IN:                                                          |
252  |                    p_update_cursor  - ID of the update cursor             |
253  |                    p_line_rec       - ra_customer_trx_lines record        |
254  |              OUT:                                                         |
255  |                    None                                                   |
256  |                                                                           |
257  | RETURNS    : NONE                                                         |
258  |                                                                           |
259  | NOTES                                                                     |
260  |                                                                           |
261  | MODIFICATION HISTORY                                                      |
262  |     06-JUN-95  Charlie Tomberg     Created                                |
263  |                                                                           |
264  |     Rel. 11 Changes:							     |
265  |     ----------------							     |
266  |     07-22-97   OSTEINME		added code to bind variables for     |
267  |					three new database columns:          |
268  |					  - gross_unit_selling_price         |
269  |					  - gross_extended_amount            |
270  |					  - amount_includes_tax_flag         |
271  |                                                                           |
272  |     08-20-97   KTANG                 bind variables for                   |
273  |                                      global_attribute_category and        |
274  |                                      global_attribute[1-20] for global    |
275  |                                      descriptive flexfield                |
276  |                                                                           |
277  |     10-JAN-99  Saloni Shah           added warehouse_id for global tax    |
278  |                                      engine changes                       |
279  |     22-MAR-99  Debbie Jancis         added translated_description for     |
280  |                                      MLS project.                         |
281  |                                                                           |
282  | 20-MAR-2000  J Rautiainen    Added BR project related columns                |
283  |                              EXTENDED_ACCTD_AMOUNT, BR_REF_CUSTOMER_TRX_ID,  |
284  |                              BR_REF_PAYMENT_SCHEDULE_ID and BR_ADJUSTMENT_ID |
285  |                              into table handlers                             |
286  |                                                                           |
287  | 31-OCT-2000 Y Rakotonirainy	Bug 1243304 : Added column wh_update_date    |
288  | 					      into the table handlers. 	     |
289  | 04-NOV-2005 MRAYMOND         4713671 - added ship_to and tax columns
290  +===========================================================================*/
291 
292 
293 PROCEDURE bind_line_variables(p_update_cursor  IN integer,
294                               p_line_rec   IN ra_customer_trx_lines%rowtype) IS
295 
296 BEGIN
297 
298    arp_util.debug('arp_ctl_pkg.bind_line_variables()+');
299 
300 
301   /*------------------+
302    |  Dummy constants |
303    +------------------*/
304 
305    dbms_sql.bind_variable(p_update_cursor, ':ar_text_dummy',
306                           AR_TEXT_DUMMY);
307 
308    dbms_sql.bind_variable(p_update_cursor, ':ar_text3_dummy',
309                           AR_TEXT3_DUMMY);
310 
311    dbms_sql.bind_variable(p_update_cursor, ':ar_flag_dummy',
312                           AR_FLAG_DUMMY);
313 
314    dbms_sql.bind_variable(p_update_cursor, ':ar_number_dummy',
315                           AR_NUMBER_DUMMY);
316 
317    dbms_sql.bind_variable(p_update_cursor, ':ar_date_dummy',
318                           AR_DATE_DUMMY);
319 
320   /*------------------+
321    |  WHO variables   |
322    +------------------*/
323 
324    dbms_sql.bind_variable(p_update_cursor, ':pg_user_id',
325                           pg_user_id);
326 
327    dbms_sql.bind_variable(p_update_cursor, ':pg_login_id',
328                           pg_login_id);
329 
330    dbms_sql.bind_variable(p_update_cursor, ':pg_conc_login_id',
331                           pg_conc_login_id);
332 
333 
334   /*----------------------------------------------+
335    |  Bind variables for all columns in the table |
336    +----------------------------------------------*/
337 
338 
339    dbms_sql.bind_variable(p_update_cursor, ':customer_trx_line_id',
340                           p_line_rec.customer_trx_line_id);
341 
342    dbms_sql.bind_variable(p_update_cursor, ':customer_trx_id',
343                           p_line_rec.customer_trx_id);
344 
345    dbms_sql.bind_variable(p_update_cursor, ':line_number',
346                           p_line_rec.line_number);
347 
348    dbms_sql.bind_variable(p_update_cursor, ':line_type',
349                           p_line_rec.line_type);
350 
351    dbms_sql.bind_variable(p_update_cursor, ':quantity_credited',
352                           p_line_rec.quantity_credited);
353 
354    dbms_sql.bind_variable(p_update_cursor, ':quantity_invoiced',
355                           p_line_rec.quantity_invoiced);
356 
357    dbms_sql.bind_variable(p_update_cursor, ':quantity_ordered',
358                           p_line_rec.quantity_ordered);
359 
360    dbms_sql.bind_variable(p_update_cursor, ':unit_selling_price',
361                           p_line_rec.unit_selling_price);
362 
363    dbms_sql.bind_variable(p_update_cursor, ':unit_standard_price',
364                           p_line_rec.unit_standard_price);
365 
366    dbms_sql.bind_variable(p_update_cursor, ':revenue_amount',
367                           p_line_rec.revenue_amount);
368 
369    dbms_sql.bind_variable(p_update_cursor, ':extended_amount',
370                           p_line_rec.extended_amount);
371 
372    dbms_sql.bind_variable(p_update_cursor, ':memo_line_id',
373                           p_line_rec.memo_line_id);
374 
375    dbms_sql.bind_variable(p_update_cursor, ':inventory_item_id',
376                           p_line_rec.inventory_item_id);
377 
378    dbms_sql.bind_variable(p_update_cursor, ':item_exception_rate_id',
379                           p_line_rec.item_exception_rate_id);
380 
381    dbms_sql.bind_variable(p_update_cursor, ':description',
382                           p_line_rec.description);
383 
384    dbms_sql.bind_variable(p_update_cursor, ':item_context',
385                           p_line_rec.item_context);
386 
387    dbms_sql.bind_variable(p_update_cursor, ':initial_customer_trx_line_id',
388                           p_line_rec.initial_customer_trx_line_id);
389 
390    dbms_sql.bind_variable(p_update_cursor, ':link_to_cust_trx_line_id',
391                           p_line_rec.link_to_cust_trx_line_id);
392 
393    dbms_sql.bind_variable(p_update_cursor, ':previous_customer_trx_id',
394                           p_line_rec.previous_customer_trx_id);
395 
396    dbms_sql.bind_variable(p_update_cursor, ':previous_customer_trx_line_id',
397                           p_line_rec.previous_customer_trx_line_id);
398 
399    dbms_sql.bind_variable(p_update_cursor, ':accounting_rule_duration',
400                           p_line_rec.accounting_rule_duration);
401 
402    dbms_sql.bind_variable(p_update_cursor, ':accounting_rule_id',
403                           p_line_rec.accounting_rule_id);
404 
405    dbms_sql.bind_variable(p_update_cursor, ':rule_start_date',
406                           p_line_rec.rule_start_date);
407 
408    dbms_sql.bind_variable(p_update_cursor, ':autorule_complete_flag',
409                           p_line_rec.autorule_complete_flag);
410 
411    dbms_sql.bind_variable(p_update_cursor, ':autorule_duration_processed',
412                           p_line_rec.autorule_duration_processed);
413 
414    dbms_sql.bind_variable(p_update_cursor, ':reason_code',
415                           p_line_rec.reason_code);
416 
417    dbms_sql.bind_variable(p_update_cursor, ':last_period_to_credit',
418                           p_line_rec.last_period_to_credit);
419 
420    dbms_sql.bind_variable(p_update_cursor, ':sales_order',
421                           p_line_rec.sales_order);
422 
423    dbms_sql.bind_variable(p_update_cursor, ':sales_order_date',
424                           p_line_rec.sales_order_date);
425 
426    dbms_sql.bind_variable(p_update_cursor, ':sales_order_line',
427                           p_line_rec.sales_order_line);
428 
429    dbms_sql.bind_variable(p_update_cursor, ':sales_order_revision',
430                           p_line_rec.sales_order_revision);
431 
432    dbms_sql.bind_variable(p_update_cursor, ':sales_order_source',
433                           p_line_rec.sales_order_source);
434 
435    dbms_sql.bind_variable(p_update_cursor, ':vat_tax_id',
436                           p_line_rec.vat_tax_id);
437 
438    dbms_sql.bind_variable(p_update_cursor, ':tax_exempt_flag',
439                           p_line_rec.tax_exempt_flag);
440 
441    dbms_sql.bind_variable(p_update_cursor, ':sales_tax_id',
442                           p_line_rec.sales_tax_id);
443 
444    dbms_sql.bind_variable(p_update_cursor, ':location_segment_id',
445                           p_line_rec.location_segment_id);
446 
447    dbms_sql.bind_variable(p_update_cursor, ':tax_exempt_number',
448                           p_line_rec.tax_exempt_number);
449 
450    dbms_sql.bind_variable(p_update_cursor, ':tax_exempt_reason_code',
451                           p_line_rec.tax_exempt_reason_code);
452 
453    dbms_sql.bind_variable(p_update_cursor, ':tax_vendor_return_code',
454                           p_line_rec.tax_vendor_return_code);
455 
456    dbms_sql.bind_variable(p_update_cursor, ':taxable_flag',
457                           p_line_rec.taxable_flag);
458 
459    dbms_sql.bind_variable(p_update_cursor, ':tax_exemption_id',
460                           p_line_rec.tax_exemption_id);
461 
462    dbms_sql.bind_variable(p_update_cursor, ':tax_precedence',
463                           p_line_rec.tax_precedence);
464 
465    dbms_sql.bind_variable(p_update_cursor, ':tax_rate',
466                           p_line_rec.tax_rate);
467 
468    dbms_sql.bind_variable(p_update_cursor, ':uom_code',
469                           p_line_rec.uom_code);
470 
471    dbms_sql.bind_variable(p_update_cursor, ':autotax',
472                           p_line_rec.autotax);
473 
474    dbms_sql.bind_variable(p_update_cursor, ':movement_id',
475                           p_line_rec.movement_id);
476 
477    dbms_sql.bind_variable(p_update_cursor, ':default_ussgl_transaction_code',
478                           p_line_rec.default_ussgl_transaction_code);
479 
480    dbms_sql.bind_variable(p_update_cursor, ':default_ussgl_trx_code_context',
481                           p_line_rec.default_ussgl_trx_code_context);
482 
483    dbms_sql.bind_variable(p_update_cursor, ':interface_line_context',
484                           p_line_rec.interface_line_context);
485 
486    dbms_sql.bind_variable(p_update_cursor, ':interface_line_attribute1',
487                           p_line_rec.interface_line_attribute1);
488 
489    dbms_sql.bind_variable(p_update_cursor, ':interface_line_attribute2',
490                           p_line_rec.interface_line_attribute2);
491 
492    dbms_sql.bind_variable(p_update_cursor, ':interface_line_attribute3',
493                           p_line_rec.interface_line_attribute3);
494 
495    dbms_sql.bind_variable(p_update_cursor, ':interface_line_attribute4',
496                           p_line_rec.interface_line_attribute4);
497 
498    dbms_sql.bind_variable(p_update_cursor, ':interface_line_attribute5',
499                           p_line_rec.interface_line_attribute5);
500 
501    dbms_sql.bind_variable(p_update_cursor, ':interface_line_attribute6',
502                           p_line_rec.interface_line_attribute6);
503 
504    dbms_sql.bind_variable(p_update_cursor, ':interface_line_attribute7',
505                           p_line_rec.interface_line_attribute7);
506 
507    dbms_sql.bind_variable(p_update_cursor, ':interface_line_attribute8',
508                           p_line_rec.interface_line_attribute8);
509 
510    dbms_sql.bind_variable(p_update_cursor, ':interface_line_attribute9',
511                           p_line_rec.interface_line_attribute9);
512 
513    dbms_sql.bind_variable(p_update_cursor, ':interface_line_attribute10',
514                           p_line_rec.interface_line_attribute10);
515 
516    dbms_sql.bind_variable(p_update_cursor, ':interface_line_attribute11',
517                           p_line_rec.interface_line_attribute11);
518 
519    dbms_sql.bind_variable(p_update_cursor, ':interface_line_attribute12',
520                           p_line_rec.interface_line_attribute12);
521 
522    dbms_sql.bind_variable(p_update_cursor, ':interface_line_attribute13',
523                           p_line_rec.interface_line_attribute13);
524 
525    dbms_sql.bind_variable(p_update_cursor, ':interface_line_attribute14',
526                           p_line_rec.interface_line_attribute14);
527 
528    dbms_sql.bind_variable(p_update_cursor, ':interface_line_attribute15',
529                           p_line_rec.interface_line_attribute15);
530 
531    dbms_sql.bind_variable(p_update_cursor, ':attribute_category',
532                           p_line_rec.attribute_category);
533 
534    dbms_sql.bind_variable(p_update_cursor, ':attribute1',
535                           p_line_rec.attribute1);
536 
537    dbms_sql.bind_variable(p_update_cursor, ':attribute2',
538                           p_line_rec.attribute2);
539 
540    dbms_sql.bind_variable(p_update_cursor, ':attribute3',
541                           p_line_rec.attribute3);
542 
543    dbms_sql.bind_variable(p_update_cursor, ':attribute4',
544                           p_line_rec.attribute4);
545 
546    dbms_sql.bind_variable(p_update_cursor, ':attribute5',
547                           p_line_rec.attribute5);
548 
549    dbms_sql.bind_variable(p_update_cursor, ':attribute6',
550                           p_line_rec.attribute6);
551 
552    dbms_sql.bind_variable(p_update_cursor, ':attribute7',
553                           p_line_rec.attribute7);
554 
555    dbms_sql.bind_variable(p_update_cursor, ':attribute8',
556                           p_line_rec.attribute8);
557 
558    dbms_sql.bind_variable(p_update_cursor, ':attribute9',
559                           p_line_rec.attribute9);
560 
561    dbms_sql.bind_variable(p_update_cursor, ':attribute10',
562                           p_line_rec.attribute10);
563 
564    dbms_sql.bind_variable(p_update_cursor, ':attribute11',
565                           p_line_rec.attribute11);
566 
567    dbms_sql.bind_variable(p_update_cursor, ':attribute12',
568                           p_line_rec.attribute12);
569 
570    dbms_sql.bind_variable(p_update_cursor, ':attribute13',
571                           p_line_rec.attribute13);
572 
573    dbms_sql.bind_variable(p_update_cursor, ':attribute14',
574                           p_line_rec.attribute14);
575 
576    dbms_sql.bind_variable(p_update_cursor, ':attribute15',
577                           p_line_rec.attribute15);
578 
579    dbms_sql.bind_variable(p_update_cursor, ':created_by',
580                           p_line_rec.created_by);
581 
582    dbms_sql.bind_variable(p_update_cursor, ':creation_date',
583                           p_line_rec.creation_date);
584 
585    dbms_sql.bind_variable(p_update_cursor, ':last_updated_by',
586                           p_line_rec.last_updated_by);
587 
588    dbms_sql.bind_variable(p_update_cursor, ':last_update_date',
589                           p_line_rec.last_update_date);
590 
591    dbms_sql.bind_variable(p_update_cursor, ':program_application_id',
592                           p_line_rec.program_application_id);
593 
594    dbms_sql.bind_variable(p_update_cursor, ':last_update_login',
595                           p_line_rec.last_update_login);
596 
597    dbms_sql.bind_variable(p_update_cursor, ':program_id',
598                           p_line_rec.program_id);
599 
600    dbms_sql.bind_variable(p_update_cursor, ':program_update_date',
601                           p_line_rec.program_update_date);
602 
603    dbms_sql.bind_variable(p_update_cursor, ':set_of_books_id',
604                           p_line_rec.set_of_books_id);
605 
606    -- Rel. 11 Changes:
607 
608    dbms_sql.bind_variable(p_update_cursor, ':gross_unit_selling_price',
609                           p_line_rec.gross_unit_selling_price);
610 
611    dbms_sql.bind_variable(p_update_cursor, ':gross_extended_amount',
612                           p_line_rec.gross_extended_amount);
613 
614    dbms_sql.bind_variable(p_update_cursor, ':amount_includes_tax_flag',
615                           p_line_rec.amount_includes_tax_flag);
616 
617    -- For global descriptive flexfield
618 
619    dbms_sql.bind_variable(p_update_cursor, ':global_attribute_category',
620                           p_line_rec.global_attribute_category);
621 
622    dbms_sql.bind_variable(p_update_cursor, ':global_attribute1',
623                           p_line_rec.global_attribute1);
624 
625    dbms_sql.bind_variable(p_update_cursor, ':global_attribute2',
626                           p_line_rec.global_attribute2);
627 
628    dbms_sql.bind_variable(p_update_cursor, ':global_attribute3',
629                           p_line_rec.global_attribute3);
630 
631    dbms_sql.bind_variable(p_update_cursor, ':global_attribute4',
632                           p_line_rec.global_attribute4);
633 
634    dbms_sql.bind_variable(p_update_cursor, ':global_attribute5',
635                           p_line_rec.global_attribute5);
636 
637    dbms_sql.bind_variable(p_update_cursor, ':global_attribute6',
638                           p_line_rec.global_attribute6);
639 
640    dbms_sql.bind_variable(p_update_cursor, ':global_attribute7',
641                           p_line_rec.global_attribute7);
642 
643    dbms_sql.bind_variable(p_update_cursor, ':global_attribute8',
644                           p_line_rec.global_attribute8);
645 
646    dbms_sql.bind_variable(p_update_cursor, ':global_attribute9',
647                           p_line_rec.global_attribute9);
648 
649    dbms_sql.bind_variable(p_update_cursor, ':global_attribute10',
650                           p_line_rec.global_attribute10);
651 
652    dbms_sql.bind_variable(p_update_cursor, ':global_attribute11',
653                           p_line_rec.global_attribute11);
654 
655    dbms_sql.bind_variable(p_update_cursor, ':global_attribute12',
656                           p_line_rec.global_attribute12);
657 
658    dbms_sql.bind_variable(p_update_cursor, ':global_attribute13',
659                           p_line_rec.global_attribute13);
660 
661    dbms_sql.bind_variable(p_update_cursor, ':global_attribute14',
662                           p_line_rec.global_attribute14);
663 
664    dbms_sql.bind_variable(p_update_cursor, ':global_attribute15',
665                           p_line_rec.global_attribute15);
666 
667    dbms_sql.bind_variable(p_update_cursor, ':global_attribute16',
668                           p_line_rec.global_attribute16);
669 
670    dbms_sql.bind_variable(p_update_cursor, ':global_attribute17',
671                           p_line_rec.global_attribute17);
672 
673    dbms_sql.bind_variable(p_update_cursor, ':global_attribute18',
674                           p_line_rec.global_attribute18);
675 
676    dbms_sql.bind_variable(p_update_cursor, ':global_attribute19',
677                           p_line_rec.global_attribute19);
678 
679    dbms_sql.bind_variable(p_update_cursor, ':global_attribute20',
680                           p_line_rec.global_attribute20);
681 
682 /* added for global tax engine */
683    dbms_sql.bind_variable(p_update_cursor, ':warehouse_id',
684                           p_line_rec.warehouse_id);
685    dbms_sql.bind_variable(p_update_cursor, ':translated_description',
686                           p_line_rec.translated_description);
687 
688    /* Bug 853757 */
689    dbms_sql.bind_variable(p_update_cursor, ':taxable_amount',
690 			  p_line_rec.taxable_amount);
691 
692    dbms_sql.bind_variable(p_update_cursor, ':extended_acctd_amount',
693 			  p_line_rec.extended_acctd_amount);
694 
695    dbms_sql.bind_variable(p_update_cursor, ':br_ref_customer_trx_id',
696 			  p_line_rec.br_ref_customer_trx_id);
697 
698    dbms_sql.bind_variable(p_update_cursor, ':br_ref_payment_schedule_id',
699 			  p_line_rec.br_ref_payment_schedule_id);
700 
701    dbms_sql.bind_variable(p_update_cursor, ':br_adjustment_id',
702 			  p_line_rec.br_adjustment_id);
703 
704    dbms_sql.bind_variable(p_update_cursor, ':wh_update_date',
705 			  p_line_rec.wh_update_date);
706 
707    dbms_sql.bind_variable(p_update_cursor, ':payment_set_id',
708 			  p_line_rec.payment_set_id);
709 /* 4713671 */
710    dbms_sql.bind_variable(p_update_cursor, ':ship_to_customer_id',
711 			  p_line_rec.ship_to_customer_id);
712 
713    dbms_sql.bind_variable(p_update_cursor, ':ship_to_site_use_id',
714 			  p_line_rec.ship_to_site_use_id);
715 
716    dbms_sql.bind_variable(p_update_cursor, ':ship_to_contact_id',
717 			  p_line_rec.ship_to_contact_id);
718 
719    dbms_sql.bind_variable(p_update_cursor, ':tax_classification_code',
720 			  p_line_rec.tax_classification_code);
721 /* 4713671 end */
722   dbms_sql.bind_variable(p_update_cursor, ':rule_end_date',
723                           p_line_rec.rule_end_date);
724 
725    arp_util.debug('arp_ctl_pkg.bind_line_variables()-');
726 
727 EXCEPTION
728     WHEN OTHERS THEN
729         arp_util.debug('EXCEPTION:  arp_ctl_pkg.bind_line_variables()');
730 
731         arp_util.debug('');
732         arp_util.debug('-------- parameters for bind_line_variables() ------');
733 
734         arp_util.debug('p_update_cursor    = ' || p_update_cursor);
735         arp_util.debug('');
736         display_line_rec(p_line_rec);
737 
738         RAISE;
739 
740 END;
741 
742 
743 /*===========================================================================+
744  | PROCEDURE                                                                 |
745  |    construct_line_update_stmt 					     |
746  |                                                                           |
747  | DESCRIPTION                                                               |
748  |    Copies the text of the dynamic SQL update statement into the           |
749  |    out paramater. The update statement does not contain a where clause    |
750  |    since this is the dynamic part that is added later.                    |
751  |                                                                           |
752  | SCOPE - PRIVATE                                                           |
753  |                                                                           |
754  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
755  |    arp_util.debug                                                         |
756  |                                                                           |
757  | ARGUMENTS  : IN:                                                          |
758  |                    None.                                                  |
759  |              OUT:                                                         |
760  |                    update_text  - text of the update statement            |
761  |                                                                           |
762  | RETURNS    : NONE                                                         |
763  |                                                                           |
764  | NOTES                                                                     |
765  |    This statement only updates columns in the line record that do not     |
766  |    contain the dummy values that indicate that they should not be changed.|
767  |                                                                           |
768  | MODIFICATION HISTORY                                                      |
769  |     06-JUN-95  Charlie Tomberg     Created                                |
770  |                                                                           |
771  |     Rel. 11 Changes:							     |
772  |     ----------------							     |
773  |     07-22-97   OSTEINME		added code to update three new       |
774  |					database columns:                    |
775  |					  - gross_unit_selling_price         |
776  |					  - gross_extended_amount            |
777  |					  - amount_includes_tax_flag         |
778  |									     |
779  |     08-20-97   KTANG                 update global_attribute_category and |
780  |                                      global_attribute[1-20] for global    |
781  |                                      descriptive flexfield                |
782  |									     |
783  |     10-JAN-99  Saloni Shah           added warehouse_id for global tax    |
784  |				        engine changes                       |
785  |     22-MAR-99  Debbie Jancis         added translated_description for MLS |
786  |                                                                           |
787  | 20-MAR-2000  J Rautiainen    Added BR project related columns                |
788  |                              EXTENDED_ACCTD_AMOUNT, BR_REF_CUSTOMER_TRX_ID,  |
789  |                              BR_REF_PAYMENT_SCHEDULE_ID and BR_ADJUSTMENT_ID |
790  |                              into table handlers                             |
791  |									     |
792  | 31-OCT-2000 Y Rakotonirainy	Bug 1243304 : Added column wh_update_date    |
793  | 					      into the table handlers. 	     |
794  | 04-NOV-2005 MRAYMOND         4713671 - coded ship to and classifctn fields
795  +===========================================================================*/
796 
797 PROCEDURE construct_line_update_stmt( update_text OUT NOCOPY varchar2) IS
798 
799 BEGIN
800    arp_util.debug('arp_ctl_pkg.construct_line_update_stmt()+');
801 
802    update_text :=
803  'UPDATE ra_customer_trx_lines
804    SET    customer_trx_line_id =
805                DECODE(:customer_trx_line_id,
806                       :ar_number_dummy, customer_trx_line_id,
807                                         :customer_trx_line_id),
808           customer_trx_id =
809                DECODE(:customer_trx_id,
810                       :ar_number_dummy, customer_trx_id,
811                                         :customer_trx_id),
812           line_number =
813                DECODE(:line_number,
814                       :ar_number_dummy, line_number,
815                                         :line_number),
816           line_type =
817                DECODE(:line_type,
818                       :ar_text_dummy,   line_type,
819                                         :line_type),
820           quantity_credited =
821                DECODE(:quantity_credited,
822                       :ar_number_dummy, quantity_credited,
823                                         :quantity_credited),
824           quantity_invoiced =
825                DECODE(:quantity_invoiced,
826                       :ar_number_dummy, quantity_invoiced,
827                                         :quantity_invoiced),
828           quantity_ordered =
829                DECODE(:quantity_ordered,
830                       :ar_number_dummy, quantity_ordered,
831                                         :quantity_ordered),
832           unit_selling_price =
833                DECODE(:unit_selling_price,
834                       :ar_number_dummy, unit_selling_price,
835                                         :unit_selling_price),
836           unit_standard_price =
837                DECODE(:unit_standard_price,
838                       :ar_number_dummy, unit_standard_price,
839                                         :unit_standard_price),
840           revenue_amount =
841                DECODE(:revenue_amount,
842                       :ar_number_dummy,
843                          /* IF   the line type is LINE
844                             AND  the extended_amount has changed
845                             THEN compute the revenue_amount based on the
846                                  percent of the old line amount was revenue:
847                                  new_revenue_amount = new_extended_amount *
848                                                       (old_revenue_amount /
849                                                        old_extended_amount)
850                             ELSE use the old revenue_amount */
851                          DECODE(
852                                  DECODE(
853                                          :line_type,
854                                          :ar_text_dummy, line_type,
855                                                          :line_type
856                                        ) ||
857                                  DECODE(
858                                         :extended_amount,
859                                         :ar_number_dummy, ''Amount unchanged'',
860                                                           null
861                                        ),
862                                 ''LINE'',  arpcurr.CurrRound(
863                                                    DECODE(extended_amount,
864                                                           0, :extended_amount,
865                                                              :extended_amount *
866                                                              (
867                                                                revenue_amount /
868                                                                extended_amount
869                                                              )
870                                                          ),
871                                                    :invoice_currency_code
872                                                 ),
873                                           revenue_amount
874                                ),
875                          :revenue_amount),
876           extended_amount =
877                DECODE(:extended_amount,
878                       :ar_number_dummy, extended_amount,
879                                         :extended_amount),
880           memo_line_id =
881                DECODE(:memo_line_id,
882                       :ar_number_dummy, memo_line_id,
883                                         :memo_line_id),
884           inventory_item_id =
885                DECODE(:inventory_item_id,
886                       :ar_number_dummy, inventory_item_id,
887                                         :inventory_item_id),
888           item_exception_rate_id =
889                DECODE(:item_exception_rate_id,
890                       :ar_number_dummy, item_exception_rate_id,
891                                         :item_exception_rate_id),
892           description =
893                DECODE(:description,
894                       :ar_text_dummy,   description,
895                                         :description),
896           item_context =
897                DECODE(:item_context,
898                       :ar_text_dummy,   item_context,
899                                         :item_context),
900           initial_customer_trx_line_id =
901                DECODE(:initial_customer_trx_line_id,
902                       :ar_number_dummy, initial_customer_trx_line_id,
903                                         :initial_customer_trx_line_id),
904           link_to_cust_trx_line_id =
905                DECODE(:link_to_cust_trx_line_id,
906                       :ar_number_dummy, link_to_cust_trx_line_id,
907                                         :link_to_cust_trx_line_id),
908           previous_customer_trx_id =
909                DECODE(:previous_customer_trx_id,
910                       :ar_number_dummy, previous_customer_trx_id,
911                                         :previous_customer_trx_id),
912           previous_customer_trx_line_id =
913                DECODE(:previous_customer_trx_line_id,
914                       :ar_number_dummy, previous_customer_trx_line_id,
915                                         :previous_customer_trx_line_id),
916           accounting_rule_duration =
917                DECODE(:accounting_rule_duration,
918                       :ar_number_dummy, accounting_rule_duration,
919                                         :accounting_rule_duration),
920           accounting_rule_id =
921                DECODE(:accounting_rule_id,
922                       :ar_number_dummy, accounting_rule_id,
923                                         :accounting_rule_id),
924           rule_start_date =
925                DECODE(:rule_start_date,
926                       :ar_date_dummy,   rule_start_date,
927                                         :rule_start_date),
928           autorule_complete_flag =
929                DECODE(:autorule_complete_flag,
930                       :ar_flag_dummy,   autorule_complete_flag,
931                                         :autorule_complete_flag),
932           autorule_duration_processed =
933                DECODE(:autorule_duration_processed,
934                       :ar_number_dummy, autorule_duration_processed,
935                                         :autorule_duration_processed),
936           reason_code =
937                DECODE(:reason_code,
938                       :ar_text_dummy,   reason_code,
939                                         :reason_code),
940           last_period_to_credit =
941                DECODE(:last_period_to_credit,
942                       :ar_number_dummy, last_period_to_credit,
943                                         :last_period_to_credit),
944           sales_order =
945                DECODE(:sales_order,
946                       :ar_text_dummy,   sales_order,
947                                         :sales_order),
948           sales_order_date =
949                DECODE(:sales_order_date,
950                       :ar_date_dummy,   sales_order_date,
951                                         :sales_order_date),
952           sales_order_line =
953                DECODE(:sales_order_line,
954                       :ar_text_dummy,   sales_order_line,
955                                         :sales_order_line),
956           sales_order_revision =
957                DECODE(:sales_order_revision,
958                       :ar_number_dummy, sales_order_revision,
959                                         :sales_order_revision),
960           sales_order_source =
961                DECODE(:sales_order_source,
962                       :ar_text_dummy,   sales_order_source,
963                                         :sales_order_source),
964           vat_tax_id =
965                DECODE(:vat_tax_id,
966                       :ar_number_dummy, vat_tax_id,
967                                         :vat_tax_id),
968           tax_exempt_flag =
969                DECODE(:tax_exempt_flag,
970                       :ar_flag_dummy,   tax_exempt_flag,
971                                         :tax_exempt_flag),
972           sales_tax_id =
973                DECODE(:sales_tax_id,
974                       :ar_number_dummy, sales_tax_id,
975                                         :sales_tax_id),
976           location_segment_id =
977                DECODE(:location_segment_id,
978                       :ar_number_dummy, location_segment_id,
979                                         :location_segment_id),
980           tax_exempt_number =
981                DECODE(:tax_exempt_number,
982                       :ar_text_dummy,   tax_exempt_number,
983                                         :tax_exempt_number),
984           tax_exempt_reason_code =
985                DECODE(:tax_exempt_reason_code,
986                       :ar_text_dummy,   tax_exempt_reason_code,
987                                         :tax_exempt_reason_code),
988           tax_vendor_return_code =
989                DECODE(:tax_vendor_return_code,
990                       :ar_text_dummy,   tax_vendor_return_code,
991                                         :tax_vendor_return_code),
992           taxable_flag =
993                DECODE(:taxable_flag,
994                       :ar_flag_dummy,   taxable_flag,
995                                         :taxable_flag),
996           tax_exemption_id =
997                DECODE(:tax_exemption_id,
998                       :ar_number_dummy, tax_exemption_id,
999                                         :tax_exemption_id),
1000           tax_precedence =
1001                DECODE(:tax_precedence,
1002                       :ar_number_dummy, tax_precedence,
1003                                         :tax_precedence),
1004           tax_rate =
1005                DECODE(:tax_rate,
1006                       :ar_number_dummy, tax_rate,
1007                                         :tax_rate),
1008           uom_code =
1009                DECODE(:uom_code,
1010                       :ar_text3_dummy,   uom_code,
1011                                         :uom_code),
1012           autotax =
1013                DECODE(:autotax,
1014                       :ar_flag_dummy,   autotax,
1015                                         :autotax),
1016           movement_id =
1017                DECODE(:movement_id,
1018                       :ar_number_dummy, movement_id,
1019                                         :movement_id),
1020           default_ussgl_transaction_code =
1021                DECODE(:default_ussgl_transaction_code,
1022                       :ar_text_dummy,   default_ussgl_transaction_code,
1023                                         :default_ussgl_transaction_code),
1024           default_ussgl_trx_code_context =
1025                DECODE(:default_ussgl_trx_code_context,
1026                       :ar_text_dummy,   default_ussgl_trx_code_context,
1027                                         :default_ussgl_trx_code_context),
1028           interface_line_context =
1029                DECODE(:interface_line_context,
1030                       :ar_text_dummy,   interface_line_context,
1031                                         :interface_line_context),
1032           interface_line_attribute1 =
1033                DECODE(:interface_line_attribute1,
1034                       :ar_text_dummy,   interface_line_attribute1,
1035                                         :interface_line_attribute1),
1036           interface_line_attribute2 =
1037                DECODE(:interface_line_attribute2,
1038                       :ar_text_dummy,   interface_line_attribute2,
1039                                         :interface_line_attribute2),
1040           interface_line_attribute3 =
1041                DECODE(:interface_line_attribute3,
1042                       :ar_text_dummy,   interface_line_attribute3,
1043                                         :interface_line_attribute3),
1044           interface_line_attribute4 =
1045                DECODE(:interface_line_attribute4,
1046                       :ar_text_dummy,   interface_line_attribute4,
1047                                         :interface_line_attribute4),
1048           interface_line_attribute5 =
1049                DECODE(:interface_line_attribute5,
1050                       :ar_text_dummy,   interface_line_attribute5,
1051                                         :interface_line_attribute5),
1052           interface_line_attribute6 =
1053                DECODE(:interface_line_attribute6,
1054                       :ar_text_dummy,   interface_line_attribute6,
1055                                         :interface_line_attribute6),
1056           interface_line_attribute7 =
1057                DECODE(:interface_line_attribute7,
1058                       :ar_text_dummy,   interface_line_attribute7,
1059                                         :interface_line_attribute7),
1060           interface_line_attribute8 =
1061                DECODE(:interface_line_attribute8,
1062                       :ar_text_dummy,   interface_line_attribute8,
1063                                         :interface_line_attribute8),
1064           interface_line_attribute9 =
1065                DECODE(:interface_line_attribute9,
1066                       :ar_text_dummy,   interface_line_attribute9,
1067                                         :interface_line_attribute9),
1068           interface_line_attribute10 =
1069                DECODE(:interface_line_attribute10,
1070                       :ar_text_dummy,   interface_line_attribute10,
1071                                         :interface_line_attribute10),
1072           interface_line_attribute11 =
1073                DECODE(:interface_line_attribute11,
1074                       :ar_text_dummy,   interface_line_attribute11,
1075                                         :interface_line_attribute11),
1076           interface_line_attribute12 =
1077                DECODE(:interface_line_attribute12,
1078                       :ar_text_dummy,   interface_line_attribute12,
1079                                         :interface_line_attribute12),
1080           interface_line_attribute13 =
1081                DECODE(:interface_line_attribute13,
1082                       :ar_text_dummy,   interface_line_attribute13,
1083                                         :interface_line_attribute13),
1084           interface_line_attribute14 =
1085                DECODE(:interface_line_attribute14,
1086                       :ar_text_dummy,   interface_line_attribute14,
1087                                         :interface_line_attribute14),
1088           interface_line_attribute15 =
1089                DECODE(:interface_line_attribute15,
1090                       :ar_text_dummy,   interface_line_attribute15,
1091                                         :interface_line_attribute15),
1092           attribute_category =
1093                DECODE(:attribute_category,
1094                       :ar_text_dummy,   attribute_category,
1095                                         :attribute_category),
1096           attribute1 =
1097                DECODE(:attribute1,
1098                       :ar_text_dummy,   attribute1,
1099                                         :attribute1),
1100           attribute2 =
1101                DECODE(:attribute2,
1102                       :ar_text_dummy,   attribute2,
1103                                         :attribute2),
1104           attribute3 =
1105                DECODE(:attribute3,
1106                       :ar_text_dummy,   attribute3,
1107                                         :attribute3),
1108           attribute4 =
1109                DECODE(:attribute4,
1110                       :ar_text_dummy,   attribute4,
1111                                         :attribute4),
1112           attribute5 =
1113                DECODE(:attribute5,
1114                       :ar_text_dummy,   attribute5,
1115                                         :attribute5),
1116           attribute6 =
1117                DECODE(:attribute6,
1118                       :ar_text_dummy,   attribute6,
1119                                         :attribute6),
1120           attribute7 =
1121                DECODE(:attribute7,
1122                       :ar_text_dummy,   attribute7,
1123                                         :attribute7),
1124           attribute8 =
1125                DECODE(:attribute8,
1126                       :ar_text_dummy,   attribute8,
1127                                         :attribute8),
1128           attribute9 =
1129                DECODE(:attribute9,
1130                       :ar_text_dummy,   attribute9,
1131                                         :attribute9),
1132           attribute10 =
1133                DECODE(:attribute10,
1134                       :ar_text_dummy,   attribute10,
1135                                         :attribute10),
1136           attribute11 =
1137                DECODE(:attribute11,
1138                       :ar_text_dummy,   attribute11,
1139                                         :attribute11),
1140           attribute12 =
1141                DECODE(:attribute12,
1142                       :ar_text_dummy,   attribute12,
1143                                         :attribute12),
1144           attribute13 =
1145                DECODE(:attribute13,
1146                       :ar_text_dummy,   attribute13,
1147                                         :attribute13),
1148           attribute14 =
1149                DECODE(:attribute14,
1150                       :ar_text_dummy,   attribute14,
1151                                         :attribute14),
1152           attribute15 =
1153                DECODE(:attribute15,
1154                       :ar_text_dummy,   attribute15,
1155                                         :attribute15),
1156           global_attribute_category =
1157                DECODE(:global_attribute_category,
1158                       :ar_text_dummy,   global_attribute_category,
1159                                         :global_attribute_category),
1160           global_attribute1 =
1161                DECODE(:global_attribute1,
1162                       :ar_text_dummy,   global_attribute1,
1163                                         :global_attribute1),
1164           global_attribute2 =
1165                DECODE(:global_attribute2,
1166                       :ar_text_dummy,   global_attribute2,
1167                                         :global_attribute2),
1168           global_attribute3 =
1169                DECODE(:global_attribute3,
1170                       :ar_text_dummy,   global_attribute3,
1171                                         :global_attribute3),
1172           global_attribute4 =
1173                DECODE(:global_attribute4,
1174                       :ar_text_dummy,   global_attribute4,
1175                                         :global_attribute4),
1176           global_attribute5 =
1177                DECODE(:global_attribute5,
1178                       :ar_text_dummy,   global_attribute5,
1179                                         :global_attribute5),
1180           global_attribute6 =
1181                DECODE(:global_attribute6,
1182                       :ar_text_dummy,   global_attribute6,
1183                                         :global_attribute6),
1184           global_attribute7 =
1185                DECODE(:global_attribute7,
1186                       :ar_text_dummy,   global_attribute7,
1187                                         :global_attribute7),
1188           global_attribute8 =
1189                DECODE(:global_attribute8,
1190                       :ar_text_dummy,   global_attribute8,
1191                                         :global_attribute8),
1192           global_attribute9 =
1193                DECODE(:global_attribute9,
1194                       :ar_text_dummy,   global_attribute9,
1195                                         :global_attribute9),
1196           global_attribute10 =
1197                DECODE(:global_attribute10,
1198                       :ar_text_dummy,   global_attribute10,
1199                                         :global_attribute10),
1200           global_attribute11 =
1201                DECODE(:global_attribute11,
1202                       :ar_text_dummy,   global_attribute11,
1203                                         :global_attribute11),
1204           global_attribute12 =
1205                DECODE(:global_attribute12,
1206                       :ar_text_dummy,   global_attribute12,
1207                                         :global_attribute12),
1208           global_attribute13 =
1209                DECODE(:global_attribute13,
1210                       :ar_text_dummy,   global_attribute13,
1211                                         :global_attribute13),
1212           global_attribute14 =
1213                DECODE(:global_attribute14,
1214                       :ar_text_dummy,   global_attribute14,
1215                                         :global_attribute14),
1216           global_attribute15 =
1217                DECODE(:global_attribute15,
1218                       :ar_text_dummy,   global_attribute15,
1219                                         :global_attribute15),
1220           global_attribute16 =
1221                DECODE(:global_attribute16,
1222                       :ar_text_dummy,   global_attribute16,
1223                                         :global_attribute16),
1224           global_attribute17 =
1225                DECODE(:global_attribute17,
1226                       :ar_text_dummy,   global_attribute17,
1227                                         :global_attribute17),
1228           global_attribute18 =
1229                DECODE(:global_attribute18,
1230                       :ar_text_dummy,   global_attribute18,
1231                                         :global_attribute18),
1232           global_attribute19 =
1233                DECODE(:global_attribute19,
1234                       :ar_text_dummy,   global_attribute19,
1235                                         :global_attribute19),
1236           global_attribute20 =
1237                DECODE(:global_attribute20,
1238                       :ar_text_dummy,   global_attribute20,
1239                                         :global_attribute20),
1240           created_by =
1241                DECODE(:created_by,
1242                       :ar_number_dummy, created_by,
1243                                         :created_by),
1244           creation_date =
1245                DECODE(:creation_date,
1246                       :ar_date_dummy, creation_date,
1247                                         :creation_date),
1248           last_updated_by =
1249                DECODE(:last_updated_by,
1250                       :ar_number_dummy, :pg_user_id,
1251                                         :last_updated_by),
1252           last_update_date =
1253                DECODE(:last_update_date,
1254                       :ar_date_dummy, sysdate,
1255                                         :last_update_date),
1256           program_application_id =
1257                DECODE(:program_application_id,
1258                       :ar_number_dummy, program_application_id,
1259                                         :program_application_id),
1260           last_update_login =
1261                DECODE(:last_update_login,
1262                       :ar_number_dummy, nvl(:pg_conc_login_id,
1263                                             :pg_login_id),
1264                                         :last_update_login),
1265           program_id =
1266                DECODE(:program_id,
1267                       :ar_number_dummy, program_id,
1268                                         :program_id),
1269           program_update_date =
1270                DECODE(:program_update_date,
1271                       :ar_date_dummy, program_update_date,
1272                                         :program_update_date),
1273           set_of_books_id =
1274                DECODE(:set_of_books_id,
1275                       :ar_number_dummy, set_of_books_id,
1276                                         :set_of_books_id),
1277           gross_extended_amount =
1278                DECODE(:gross_extended_amount,
1279                       :ar_number_dummy, gross_extended_amount,
1280                                         :gross_extended_amount),
1281           gross_unit_selling_price =
1282                DECODE(:gross_unit_selling_price,
1283                       :ar_number_dummy, gross_unit_selling_price,
1284                                         :gross_unit_selling_price),
1285           warehouse_id =
1286 	       DECODE(:warehouse_id,
1287 		      :ar_number_dummy, warehouse_id,
1288 					:warehouse_id),
1289           translated_description =
1290                DECODE(:translated_description,
1291                       :ar_text_dummy,  translated_description,
1292                                         :translated_description),
1293           /* Bug 853757 */
1294           taxable_amount =
1295                DECODE(:taxable_amount,
1296                       :ar_number_dummy, taxable_amount,
1297                                         :taxable_amount),
1298 
1299           amount_includes_tax_flag =
1300                DECODE(:amount_includes_tax_flag,
1301                       :ar_flag_dummy, amount_includes_tax_flag,
1302                                         :amount_includes_tax_flag),
1303 
1304           extended_acctd_amount =
1305                DECODE(:extended_acctd_amount,
1306                       :ar_number_dummy, extended_acctd_amount,
1307                                         :extended_acctd_amount),
1308           br_ref_customer_trx_id =
1309                DECODE(:br_ref_customer_trx_id,
1310                       :ar_number_dummy, br_ref_customer_trx_id,
1311                                         :br_ref_customer_trx_id),
1312           br_ref_payment_schedule_id =
1313                DECODE(:br_ref_payment_schedule_id,
1314                       :ar_number_dummy, br_ref_payment_schedule_id,
1315                                         :br_ref_payment_schedule_id),
1316           br_adjustment_id =
1317                DECODE(:br_adjustment_id,
1318                       :ar_number_dummy, br_adjustment_id,
1319                                         :br_adjustment_id) ,
1320 
1321           wh_update_date =
1322                DECODE(:wh_update_date,
1323                       :ar_date_dummy, wh_update_date,
1324                                         :wh_update_date)  ,
1325 
1326           payment_set_id =
1327                DECODE(:payment_set_id,
1328                       :ar_number_dummy, payment_set_id,
1329                                         :payment_set_id) ,
1330           ship_to_customer_id =
1331                DECODE(:ship_to_customer_id,
1332                       :ar_number_dummy, ship_to_customer_id,
1333                                         :ship_to_customer_id)  ,
1334           ship_to_site_use_id =
1335                DECODE(:ship_to_site_use_id,
1336                       :ar_number_dummy, ship_to_site_use_id,
1337                                         :ship_to_site_use_id)   ,
1338           ship_to_contact_id =
1339                DECODE(:ship_to_contact_id,
1340                       :ar_number_dummy, ship_to_contact_id,
1341                                         :ship_to_contact_id),
1342           tax_classification_code =
1343                DECODE(:tax_classification_code,
1344                       :ar_text_dummy, tax_classification_code,
1345                                         :tax_classification_code),
1346           rule_end_date =
1347                DECODE(:rule_end_date,
1348                       :ar_date_dummy,   rule_end_date,
1349                                         :rule_end_date) ';
1350 
1351 
1352    arp_util.debug('arp_ctl_pkg.construct_line_update_stmt()-');
1353 
1354 EXCEPTION
1355     WHEN OTHERS THEN
1356         arp_util.debug('EXCEPTION:  arp_ctl_pkg.construct_line_update_stmt()');
1357         RAISE;
1358 
1359 END;
1360 
1361 /*===========================================================================+
1362  | PROCEDURE                                                                 |
1363  |    generic_update                                                         |
1364  |                                                                           |
1365  | DESCRIPTION                                                               |
1366  |    This procedure Updates records in ra_customer_trx_lines identified by  |
1367  |    the where clause that is passed in as a parameter. Only those columns  |
1368  |    in the line record parameter that do not contain the special dummy     |
1369  |    values are updated.                                                    |
1370  |                                                                           |
1371  | SCOPE - PRIVATE                                                           |
1372  |                                                                           |
1373  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
1374  |    arp_util.debug                                                         |
1375  |    dbms_sql.open_cursor 						     |
1376  |    dbms_sql.parse							     |
1377  |    dbms_sql.execute							     |
1378  |    dbms_sql.close_cursor						     |
1379  |                                                                           |
1380  | ARGUMENTS  : IN:                                                          |
1381  |		      p_update_cursor  - identifies the cursor to use 	     |
1382  |                    p_where_clause   - identifies which rows to update     |
1383  | 		      p_where1         - value to bind into where clause     |
1384  |                    p_line_type      - line_type of the line               |
1385  |                    p_currency_code  - the currency code of the invoice    |
1386  |		      p_line_rec        - contains the new line values       |
1387  |              OUT:                                                         |
1388  |                    None						     |
1389  |                                                                           |
1390  | RETURNS    : NONE                                                         |
1391  |                                                                           |
1392  | NOTES                                                                     |
1393  |                                                                           |
1394  | MODIFICATION HISTORY                                                      |
1395  |     06-JUN-95  Charlie Tomberg     Created                                |
1396  |                                                                           |
1397  +===========================================================================*/
1398 
1399 PROCEDURE generic_update(p_update_cursor IN OUT NOCOPY integer,
1400 			 p_where_clause      IN varchar2,
1401 			 p_where1            IN number,
1402                          p_line_type         IN
1403                            ra_customer_trx_lines.line_type%type,
1404                          p_currency_code     IN
1405                            fnd_currencies.currency_code%type,
1406                          p_line_rec          IN ra_customer_trx_lines%rowtype)
1407                        IS
1408 
1409    l_count             number;
1410    l_update_statement  varchar2(32767);
1411    --{bug#3339072 MRC trx lines
1412    ctl_array           dbms_sql.number_table;
1413    --}
1414 
1415 BEGIN
1416    arp_util.debug('arp_ctl_pkg.generic_update()+');
1417 
1418   /*--------------------------------------------------------------+
1419    |  If this update statement has not already been parsed, 	  |
1420    |  construct the statement and parse it.			  |
1421    |  Otherwise, use the already parsed statement and rebind its  |
1422    |  variables.						  |
1423    +--------------------------------------------------------------*/
1424 
1425    IF (p_update_cursor is null)
1426    THEN
1427 
1428          p_update_cursor := dbms_sql.open_cursor;
1429 
1430          /*---------------------------------+
1431           |  Construct the update statement |
1432           +---------------------------------*/
1433 
1434          arp_ctl_pkg.construct_line_update_stmt(l_update_statement);
1435 
1436          l_update_statement := l_update_statement || p_where_clause ||
1437             --{BUG#3339072 MRC trx line
1438             ' RETURNING :customer_trx_line_id INTO :ctl_value ';
1439             --}
1440 
1441          arp_util.debug('Update statement:');
1442          arp_util.debug('');
1443          arp_util.debug(l_update_statement);
1444          arp_util.debug('');
1445 
1446          /*-----------------------------------------------+
1447           |  Parse, bind, execute and close the statement |
1448           +-----------------------------------------------*/
1449 
1450          dbms_sql.parse(p_update_cursor,
1451                         l_update_statement,
1452                         dbms_sql.v7);
1453 
1454    END IF;
1455 
1456    arp_ctl_pkg.bind_line_variables(p_update_cursor, p_line_rec);
1457 
1458   /*-----------------------------------------+
1459    |  Bind the variables in the where clause |
1460    +-----------------------------------------*/
1461 
1462    dbms_sql.bind_variable(p_update_cursor, ':where_1',
1463                           p_where1);
1464 
1465    dbms_sql.bind_variable(p_update_cursor, ':where_line_type',
1466                           p_line_type);
1467 
1468    dbms_sql.bind_variable(p_update_cursor, ':invoice_currency_code',
1469                           p_currency_code);
1470 
1471    --{BUG#3339072
1472    dbms_sql.bind_array(p_update_cursor, ':ctl_value',
1473                           ctl_array);
1474    --}
1475 
1476    l_count := dbms_sql.execute(p_update_cursor);
1477 
1478    arp_util.debug( to_char(l_count) || ' rows updated');
1479 
1480    --{BUG#3339072
1481    dbms_sql.variable_value(p_update_cursor, ':ctl_value',
1482                            ctl_array);
1483    --}
1484 
1485    /*------------------------------------------------------------+
1486     |  Raise the NO_DATA_FOUND exception if no rows were updated |
1487     +------------------------------------------------------------*/
1488 
1489    IF         (l_count = 0)
1490    THEN RAISE NO_DATA_FOUND;
1491    END IF;
1492 
1493    arp_util.debug('arp_ctl_pkg.generic_update()-');
1494 
1495 EXCEPTION
1496     WHEN OTHERS THEN
1497         arp_util.debug('EXCEPTION:  arp_ctl_pkg.generic_update()');
1498         arp_util.debug(l_update_statement);
1499         arp_util.debug('Error at character: ' ||
1500                            to_char(dbms_sql.last_error_position));
1501 
1502         arp_util.debug('');
1503         arp_util.debug('-------- parameters for generic_update() ------');
1504         arp_util.debug('p_update_cursor    = ' || p_update_cursor);
1505         arp_util.debug('p_where_clause     = ' || p_where_clause);
1506         arp_util.debug('p_where1           = ' || p_where1);
1507         arp_util.debug('p_line_type        = ' || p_line_type);
1508         arp_util.debug('p_currency_code    = ' || p_currency_code);
1509         display_line_rec(p_line_rec);
1510 
1511         RAISE;
1512 END;
1513 
1514 /*===========================================================================+
1515  | PROCEDURE                                                                 |
1516  |    set_to_dummy							     |
1517  |                                                                           |
1518  | DESCRIPTION                                                               |
1519  |    This procedure initializes all columns in the parameter line record    |
1520  |    to the appropriate dummy value for its datatype.			     |
1521  |    									     |
1522  |    The dummy values are defined in the following package level constants: |
1523  |	AR_TEXT_DUMMY 							     |
1524  |	AR_TEXT3_DUMMY 							     |
1525  |	AR_FLAG_DUMMY							     |
1526  |	AR_NUMBER_DUMMY							     |
1527  |	AR_DATE_DUMMY							     |
1528  |                                                                           |
1529  | SCOPE - PUBLIC                                                            |
1530  |                                                                           |
1531  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
1532  |    arp_util.debug                                                         |
1533  |                                                                           |
1534  | ARGUMENTS  : IN:                                                          |
1535  |                    None						     |
1536  |              OUT:                                                         |
1537  |                    p_line_rec   - The record to initialize		     |
1538  |                                                                           |
1539  | RETURNS    : NONE                                                         |
1540  |                                                                           |
1541  | NOTES                                                                     |
1542  |                                                                           |
1543  | MODIFICATION HISTORY                                                      |
1544  |     06-JUN-95  Charlie Tomberg     Created                                |
1545  |                                                                           |
1546  |     Rel. 11 Changes:							     |
1547  |     ----------------							     |
1548  |     07-22-97   OSTEINME		added code to dummify three new      |
1549  |					database columns:                    |
1550  |					  - gross_unit_selling_price         |
1551  |					  - gross_extended_amount            |
1552  |					  - amount_includes_tax_flag         |
1553  |                                                                           |
1554  |     08-20-97   KTANG                 dummify global_attribute_category and|
1555  |                                      global_attribute[1-20] for global    |
1556  |                                      descriptive flexfield                |
1557  |                                                                           |
1558  |                                                                           |
1559  |     10-JAN-99  Saloni Shah           added warehouse_id for global tax    |
1560  |                                      engine changes                       |
1561  |     22-MAR-99  Debbie Jancis         added translated_description for MLS |
1562  |                                                                           |
1563  | 20-MAR-2000  J Rautiainen    Added BR project related columns                |
1564  |                              EXTENDED_ACCTD_AMOUNT, BR_REF_CUSTOMER_TRX_ID,  |
1565  |                              BR_REF_PAYMENT_SCHEDULE_ID and BR_ADJUSTMENT_ID |
1566  |                              into table handlers                             |
1567  |									     |
1568  | 31-OCT-2000 Y Rakotonirainy	Bug 1243304 : Added column wh_update_date    |
1569  | 					      into the table handlers. 	     |
1570  +===========================================================================*/
1571 
1572 
1573 PROCEDURE set_to_dummy( p_line_rec OUT NOCOPY ra_customer_trx_lines%rowtype) IS
1574 
1575 BEGIN
1576 
1577     IF PG_DEBUG in ('Y', 'C') THEN
1578        arp_util.debug('arp_ctl_pkg.set_to_dummy()+');
1579     END IF;
1580 
1581     p_line_rec.customer_trx_line_id 		:= AR_NUMBER_DUMMY;
1582     p_line_rec.customer_trx_id 			:= AR_NUMBER_DUMMY;
1583     p_line_rec.line_number			:= AR_NUMBER_DUMMY;
1584     p_line_rec.line_type			:= AR_TEXT_DUMMY;
1585     p_line_rec.quantity_credited		:= AR_NUMBER_DUMMY;
1586     p_line_rec.quantity_invoiced		:= AR_NUMBER_DUMMY;
1587     p_line_rec.quantity_ordered			:= AR_NUMBER_DUMMY;
1588     p_line_rec.unit_selling_price		:= AR_NUMBER_DUMMY;
1589     p_line_rec.unit_standard_price		:= AR_NUMBER_DUMMY;
1590     p_line_rec.revenue_amount			:= AR_NUMBER_DUMMY;
1591     p_line_rec.extended_amount			:= AR_NUMBER_DUMMY;
1592     p_line_rec.memo_line_id			:= AR_NUMBER_DUMMY;
1593     p_line_rec.inventory_item_id		:= AR_NUMBER_DUMMY;
1594     p_line_rec.item_exception_rate_id		:= AR_NUMBER_DUMMY;
1595     p_line_rec.description			:= AR_TEXT_DUMMY;
1596     p_line_rec.item_context			:= AR_TEXT_DUMMY;
1597     p_line_rec.initial_customer_trx_line_id	:= AR_NUMBER_DUMMY;
1598     p_line_rec.link_to_cust_trx_line_id		:= AR_NUMBER_DUMMY;
1599     p_line_rec.previous_customer_trx_id		:= AR_NUMBER_DUMMY;
1600     p_line_rec.previous_customer_trx_line_id	:= AR_NUMBER_DUMMY;
1601     p_line_rec.accounting_rule_duration		:= AR_NUMBER_DUMMY;
1602     p_line_rec.accounting_rule_id		:= AR_NUMBER_DUMMY;
1603     p_line_rec.rule_start_date			:= AR_DATE_DUMMY;
1604     p_line_rec.autorule_complete_flag		:= AR_FLAG_DUMMY;
1605     p_line_rec.autorule_duration_processed	:= AR_NUMBER_DUMMY;
1606     p_line_rec.reason_code			:= AR_TEXT_DUMMY;
1607     p_line_rec.last_period_to_credit		:= AR_NUMBER_DUMMY;
1608     p_line_rec.sales_order			:= AR_TEXT_DUMMY;
1609     p_line_rec.sales_order_date			:= AR_DATE_DUMMY;
1610     p_line_rec.sales_order_line			:= AR_TEXT_DUMMY;
1611     p_line_rec.sales_order_revision		:= AR_NUMBER_DUMMY;
1612     p_line_rec.sales_order_source		:= AR_TEXT_DUMMY;
1613     p_line_rec.vat_tax_id			:= AR_NUMBER_DUMMY;
1614     p_line_rec.tax_exempt_flag			:= AR_FLAG_DUMMY;
1615     p_line_rec.sales_tax_id			:= AR_NUMBER_DUMMY;
1616     p_line_rec.location_segment_id		:= AR_NUMBER_DUMMY;
1617     p_line_rec.tax_exempt_number		:= AR_TEXT_DUMMY;
1618     p_line_rec.tax_exempt_reason_code		:= AR_TEXT_DUMMY;
1619     p_line_rec.tax_vendor_return_code		:= AR_TEXT_DUMMY;
1620     p_line_rec.taxable_flag			:= AR_FLAG_DUMMY;
1621     p_line_rec.tax_exemption_id			:= AR_NUMBER_DUMMY;
1622     p_line_rec.tax_precedence			:= AR_NUMBER_DUMMY;
1623     p_line_rec.tax_rate				:= AR_NUMBER_DUMMY;
1624     p_line_rec.uom_code				:= AR_TEXT3_DUMMY;
1625     p_line_rec.autotax				:= AR_FLAG_DUMMY;
1626     p_line_rec.movement_id			:= AR_NUMBER_DUMMY;
1627     p_line_rec.default_ussgl_transaction_code	:= AR_TEXT_DUMMY;
1628     p_line_rec.default_ussgl_trx_code_context	:= AR_TEXT_DUMMY;
1629     p_line_rec.interface_line_context		:= AR_TEXT_DUMMY;
1630     p_line_rec.interface_line_attribute1	:= AR_TEXT_DUMMY;
1631     p_line_rec.interface_line_attribute2	:= AR_TEXT_DUMMY;
1632     p_line_rec.interface_line_attribute3	:= AR_TEXT_DUMMY;
1633     p_line_rec.interface_line_attribute4	:= AR_TEXT_DUMMY;
1634     p_line_rec.interface_line_attribute5	:= AR_TEXT_DUMMY;
1635     p_line_rec.interface_line_attribute6	:= AR_TEXT_DUMMY;
1636     p_line_rec.interface_line_attribute7	:= AR_TEXT_DUMMY;
1637     p_line_rec.interface_line_attribute8	:= AR_TEXT_DUMMY;
1638     p_line_rec.interface_line_attribute9	:= AR_TEXT_DUMMY;
1639     p_line_rec.interface_line_attribute10	:= AR_TEXT_DUMMY;
1640     p_line_rec.interface_line_attribute11	:= AR_TEXT_DUMMY;
1641     p_line_rec.interface_line_attribute12	:= AR_TEXT_DUMMY;
1642     p_line_rec.interface_line_attribute13	:= AR_TEXT_DUMMY;
1643     p_line_rec.interface_line_attribute14	:= AR_TEXT_DUMMY;
1644     p_line_rec.interface_line_attribute15	:= AR_TEXT_DUMMY;
1645     p_line_rec.attribute_category		:= AR_TEXT_DUMMY;
1646     p_line_rec.attribute1			:= AR_TEXT_DUMMY;
1647     p_line_rec.attribute2			:= AR_TEXT_DUMMY;
1648     p_line_rec.attribute3			:= AR_TEXT_DUMMY;
1649     p_line_rec.attribute4			:= AR_TEXT_DUMMY;
1650     p_line_rec.attribute5			:= AR_TEXT_DUMMY;
1651     p_line_rec.attribute6			:= AR_TEXT_DUMMY;
1652     p_line_rec.attribute7			:= AR_TEXT_DUMMY;
1653     p_line_rec.attribute8			:= AR_TEXT_DUMMY;
1654     p_line_rec.attribute9			:= AR_TEXT_DUMMY;
1655     p_line_rec.attribute10			:= AR_TEXT_DUMMY;
1656     p_line_rec.attribute11			:= AR_TEXT_DUMMY;
1657     p_line_rec.attribute12			:= AR_TEXT_DUMMY;
1658     p_line_rec.attribute13			:= AR_TEXT_DUMMY;
1659     p_line_rec.attribute14			:= AR_TEXT_DUMMY;
1660     p_line_rec.attribute15			:= AR_TEXT_DUMMY;
1661     p_line_rec.global_attribute_category        := AR_TEXT_DUMMY;
1662     p_line_rec.global_attribute1                := AR_TEXT_DUMMY;
1663     p_line_rec.global_attribute2                := AR_TEXT_DUMMY;
1664     p_line_rec.global_attribute3                := AR_TEXT_DUMMY;
1665     p_line_rec.global_attribute4                := AR_TEXT_DUMMY;
1666     p_line_rec.global_attribute5                := AR_TEXT_DUMMY;
1667     p_line_rec.global_attribute6                := AR_TEXT_DUMMY;
1668     p_line_rec.global_attribute7                := AR_TEXT_DUMMY;
1669     p_line_rec.global_attribute8                := AR_TEXT_DUMMY;
1670     p_line_rec.global_attribute9                := AR_TEXT_DUMMY;
1671     p_line_rec.global_attribute10               := AR_TEXT_DUMMY;
1672     p_line_rec.global_attribute11               := AR_TEXT_DUMMY;
1673     p_line_rec.global_attribute12               := AR_TEXT_DUMMY;
1674     p_line_rec.global_attribute13               := AR_TEXT_DUMMY;
1675     p_line_rec.global_attribute14               := AR_TEXT_DUMMY;
1676     p_line_rec.global_attribute15               := AR_TEXT_DUMMY;
1677     p_line_rec.global_attribute16               := AR_TEXT_DUMMY;
1678     p_line_rec.global_attribute17               := AR_TEXT_DUMMY;
1679     p_line_rec.global_attribute18               := AR_TEXT_DUMMY;
1680     p_line_rec.global_attribute19               := AR_TEXT_DUMMY;
1681     p_line_rec.global_attribute20               := AR_TEXT_DUMMY;
1682     p_line_rec.created_by			:= AR_NUMBER_DUMMY;
1683     p_line_rec.creation_date			:= AR_DATE_DUMMY;
1684     p_line_rec.last_updated_by			:= AR_NUMBER_DUMMY;
1685     p_line_rec.last_update_date			:= AR_DATE_DUMMY;
1686     p_line_rec.program_application_id		:= AR_NUMBER_DUMMY;
1687     p_line_rec.last_update_login		:= AR_NUMBER_DUMMY;
1688     p_line_rec.program_id			:= AR_NUMBER_DUMMY;
1689     p_line_rec.program_update_date		:= AR_DATE_DUMMY;
1690     p_line_rec.set_of_books_id			:= AR_NUMBER_DUMMY;
1691     p_line_rec.payment_set_id 		        := AR_NUMBER_DUMMY;
1692 
1693     -- Rel. 11 Changes:
1694 
1695     p_line_rec.gross_unit_selling_price		:= AR_NUMBER_DUMMY;
1696     p_line_rec.gross_extended_amount		:= AR_NUMBER_DUMMY;
1697     p_line_rec.amount_includes_tax_flag		:= AR_FLAG_DUMMY;
1698 
1699     -- Rel 11.5 Changes (for global tax engine)
1700     p_line_rec.warehouse_id			:= AR_NUMBER_DUMMY;
1701     p_line_rec.translated_description           := AR_TEXT_DUMMY;
1702 
1703     /* Bug 853757 */
1704     p_line_rec.taxable_amount			:= AR_NUMBER_DUMMY;
1705 
1706     p_line_rec.extended_acctd_amount            := AR_NUMBER_DUMMY;
1707     p_line_rec.br_ref_customer_trx_id           := AR_NUMBER_DUMMY;
1708     p_line_rec.br_ref_payment_schedule_id       := AR_NUMBER_DUMMY;
1709     p_line_rec.br_adjustment_id                 := AR_NUMBER_DUMMY;
1710     p_line_rec.wh_update_date			:= AR_DATE_DUMMY;
1711 
1712     /* 4713671 */
1713     p_line_rec.ship_to_customer_id              := AR_NUMBER_DUMMY;
1714     p_line_rec.ship_to_site_use_id              := AR_NUMBER_DUMMY;
1715     p_line_rec.ship_to_contact_id               := AR_NUMBER_DUMMY;
1716     p_line_rec.tax_classification_code          := AR_TEXT_DUMMY;
1717 
1718    p_line_rec.rule_end_date                     := AR_DATE_DUMMY;
1719     IF PG_DEBUG in ('Y', 'C') THEN
1720        arp_util.debug('arp_ctl_pkg.set_to_dummy()-');
1721     END IF;
1722 
1723 EXCEPTION
1724     WHEN OTHERS THEN
1725         IF PG_DEBUG in ('Y', 'C') THEN
1726            arp_util.debug('EXCEPTION:  arp_ctl_pkg.set_to_dummy()');
1727         END IF;
1728         RAISE;
1729 
1730 END;
1731 
1732 /*===========================================================================+
1733  | PROCEDURE                                                                 |
1734  |    fetch_p								     |
1735  |                                                                           |
1736  | DESCRIPTION                                                               |
1737  |    This procedure fetches a single row from ra_customer_trx_lines into a  |
1738  |    variable specified as a parameter based on the table's primary key,    |
1739  |    customer_trx__line_id. 						     |
1740  |                                                                           |
1741  | SCOPE - PUBLIC                                                            |
1742  |                                                                           |
1743  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
1744  |    arp_util.debug        	                                             |
1745  |                                                                           |
1746  | ARGUMENTS  : IN:                                                          |
1747  |                    p_customer_trx_line_id - identifies the record to fetch|
1748  |              OUT:                                                         |
1749  |                    p_line_rec	     - contains the fetched record   |
1750  |                                                                           |
1751  | RETURNS    : NONE                                                         |
1752  |                                                                           |
1753  | NOTES                                                                     |
1754  |                                                                           |
1755  | MODIFICATION HISTORY                                                      |
1756  |     07-JUN-95  Charlie Tomberg     Created                                |
1757  |                                                                           |
1758  +===========================================================================*/
1759 
1760 PROCEDURE fetch_p( p_line_rec         OUT NOCOPY ra_customer_trx_lines%rowtype,
1761                    p_customer_trx_line_id  IN
1762                              ra_customer_trx_lines.customer_trx_line_id%type )
1763           IS
1764 
1765 BEGIN
1766     IF PG_DEBUG in ('Y', 'C') THEN
1767        arp_util.debug(  'arp_ctl_pkg.fetch_p()+');
1768     END IF;
1769 
1770     SELECT *
1771     INTO   p_line_rec
1772     FROM   ra_customer_trx_lines
1773     WHERE  customer_trx_line_id = p_customer_trx_line_id;
1774 
1775     IF PG_DEBUG in ('Y', 'C') THEN
1776        arp_util.debug(  'arp_ctl_pkg.fetch_p()-');
1777     END IF;
1778 
1779     EXCEPTION
1780         WHEN  OTHERS THEN
1781             IF PG_DEBUG in ('Y', 'C') THEN
1782                arp_util.debug(   'EXCEPTION: arp_ctl_pkg.fetch_p' );
1783            arp_util.debug(  '');
1784            arp_util.debug(  '-------- parameters for fetch_p() ------');
1785            arp_util.debug(  'p_customer_trx_line_id  = ' || p_customer_trx_line_id);
1786         END IF;
1787 
1788         RAISE;
1789 END;
1790 
1791 /*===========================================================================+
1792  | PROCEDURE                                                                 |
1793  |    lock_p								     |
1794  |                                                                           |
1795  | DESCRIPTION                                                               |
1796  |    This procedure locks the ra_customer_trx_lines row identified by the   |
1797  |    p_customer_trx_line_id parameter.					     |
1798  |                                                                           |
1799  | SCOPE - PUBLIC                                                            |
1800  |                                                                           |
1801  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
1802  |    arp_util.debug                                                         |
1803  |                                                                           |
1804  | ARGUMENTS  : IN:                                                          |
1805  |                    p_customer_trx_line_id	- identifies the row to lock |
1806  |              OUT:                                                         |
1807  |                    None						     |
1808  |                                                                           |
1809  | RETURNS    : NONE                                                         |
1810  |                                                                           |
1811  | NOTES                                                                     |
1812  |                                                                           |
1813  | MODIFICATION HISTORY                                                      |
1814  |     07-JUN-95  Charlie Tomberg     Created                                |
1815  |                                                                           |
1816  +===========================================================================*/
1817 
1818 PROCEDURE lock_p( p_customer_trx_line_id  IN
1819                             ra_customer_trx_lines.customer_trx_line_id%type )
1820           IS
1821 
1822     l_customer_trx_line_id  ra_customer_trx_lines.customer_trx_line_id%type;
1823 
1824 BEGIN
1825     IF PG_DEBUG in ('Y', 'C') THEN
1826        arp_util.debug(  'arp_ctl_pkg.lock_p()+');
1827     END IF;
1828 
1829 
1830     SELECT        customer_trx_line_id
1831     INTO          l_customer_trx_line_id
1832     FROM          ra_customer_trx_lines
1833     WHERE         customer_trx_line_id = p_customer_trx_line_id
1834     FOR UPDATE OF customer_trx_line_id NOWAIT;
1835 
1836     IF PG_DEBUG in ('Y', 'C') THEN
1837        arp_util.debug(  'arp_ctl_pkg.lock_p()-');
1838     END IF;
1839 
1840     EXCEPTION
1841         WHEN  OTHERS THEN
1842 	    IF PG_DEBUG in ('Y', 'C') THEN
1843 	       arp_util.debug(   'EXCEPTION: arp_ctl_pkg.lock_p' );
1844                arp_util.debug(  '');
1845                arp_util.debug(  '-------- parameters for lock_p() ------');
1846                arp_util.debug(  'p_customer_trx_line_id  = ' ||
1847                            p_customer_trx_line_id);
1848             END IF;
1849 
1850             RAISE;
1851 END;
1852 
1853 /*===========================================================================+
1854  | PROCEDURE                                                                 |
1855  |    lock_f_ct_id							     |
1856  |                                                                           |
1857  | DESCRIPTION                                                               |
1858  |    This procedure locks the ra_customer_trx_lines rows identified by the  |
1859  |    p_customer_trx_id parameter.					     |
1860  |                                                                           |
1861  | SCOPE - PUBLIC                                                            |
1862  |                                                                           |
1863  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
1864  |    arp_util.debug                                                         |
1865  |                                                                           |
1866  | ARGUMENTS  : IN:                                                          |
1867  |                    p_customer_trx_id	- identifies the rows to lock	     |
1868  |              OUT:                                                         |
1869  |                    None						     |
1870  |                                                                           |
1871  | RETURNS    : NONE                                                         |
1872  |                                                                           |
1873  | NOTES                                                                     |
1874  |                                                                           |
1875  | MODIFICATION HISTORY                                                      |
1876  |     07-JUN-95  Charlie Tomberg     Created                                |
1877  |                                                                           |
1878  +===========================================================================*/
1879 
1880 PROCEDURE lock_f_ct_id( p_customer_trx_id  IN
1881                             ra_customer_trx.customer_trx_id%type )
1882           IS
1883 
1884     CURSOR LOCK_C IS
1885     SELECT        'lock'
1886     FROM          ra_customer_trx_lines
1887     WHERE         customer_trx_id = p_customer_trx_id
1888     FOR UPDATE OF customer_trx_line_id NOWAIT;
1889 
1890 BEGIN
1891     IF PG_DEBUG in ('Y', 'C') THEN
1892        arp_util.debug(  'arp_ctl_pkg.lock_f_ct_id()+');
1893     END IF;
1894 
1895     OPEN lock_c;
1896     CLOSE lock_c;
1897 
1898     IF PG_DEBUG in ('Y', 'C') THEN
1899        arp_util.debug(  'arp_ctl_pkg.lock_f_ct_id()-');
1900     END IF;
1901 
1902     EXCEPTION
1903         WHEN  OTHERS THEN
1904 	    IF PG_DEBUG in ('Y', 'C') THEN
1905 	       arp_util.debug(   'EXCEPTION: arp_ctl_pkg.lock_f_ct_id' );
1906                arp_util.debug(  '');
1907                arp_util.debug(  '-------- parameters for lock_f_ct_id() ------');
1908                arp_util.debug(  'p_customer_trx_id  = ' ||
1909                            p_customer_trx_id);
1910             END IF;
1911 
1912             RAISE;
1913 END;
1914 
1915 
1916 /*===========================================================================+
1917  | PROCEDURE                                                                 |
1918  |    lock_fetch_p							     |
1919  |                                                                           |
1920  | DESCRIPTION                                                               |
1921  |    This procedure locks the ra_customer_trx_lines row identified by the   |
1922  |    p_ra_customer_trx_line_id parameter and populates the 		     |
1923  |    p_line_rec parameter with the row that was locked			     |
1924  |                                                                           |
1925  | SCOPE - PUBLIC                                                            |
1926  |                                                                           |
1927  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
1928  |    arp_util.debug                                                         |
1929  |                                                                           |
1930  | ARGUMENTS  : IN:                                                          |
1931  |                    p_customer_trx_line_id	- identifies the row to lock |
1932  |              OUT:                                                         |
1933  |                    p_line_rec		- contains the locked row    |
1934  |                                                                           |
1935  | RETURNS    : NONE                                                         |
1936  |                                                                           |
1937  | NOTES                                                                     |
1938  |                                                                           |
1939  | MODIFICATION HISTORY                                                      |
1940  |     07-JUN-95  Charlie Tomberg     Created                                |
1941  |                                                                           |
1942  +===========================================================================*/
1943 
1944 PROCEDURE lock_fetch_p( p_line_rec        IN OUT NOCOPY ra_customer_trx_lines%rowtype,
1945                         p_customer_trx_line_id IN
1946                           ra_customer_trx_lines.customer_trx_line_id%type ) IS
1947 
1948 BEGIN
1949     IF PG_DEBUG in ('Y', 'C') THEN
1950        arp_util.debug(  'arp_ctl_pkg.lock_fetch_p()+');
1951     END IF;
1952 
1953     SELECT        *
1954     INTO          p_line_rec
1955     FROM          ra_customer_trx_lines
1956     WHERE         customer_trx_line_id = p_customer_trx_line_id
1957     FOR UPDATE OF customer_trx_line_id NOWAIT;
1958 
1959     IF PG_DEBUG in ('Y', 'C') THEN
1960        arp_util.debug(  'arp_ctl_pkg.lock_fetch_p()-');
1961     END IF;
1962 
1963     EXCEPTION
1964         WHEN  OTHERS THEN
1965             IF PG_DEBUG in ('Y', 'C') THEN
1966                arp_util.debug(   'EXCEPTION: arp_ctl_pkg.lock_fetch_p' );
1967                arp_util.debug(  '');
1968                arp_util.debug(  '-------- parameters for lock_fetch_p() ------');
1969                arp_util.debug(  'p_customer_trx_line_id  = ' ||
1970                            p_customer_trx_line_id);
1971             END IF;
1972             display_line_rec(p_line_rec);
1973 
1974             RAISE;
1975 END;
1976 
1977 /*===========================================================================+
1978  | PROCEDURE                                                                 |
1979  |    lock_compare_p							     |
1980  |                                                                           |
1981  | DESCRIPTION                                                               |
1982  |    This procedure locks the ra_customer_trx_lines row identified by the   |
1983  |    p_customer_trx_line_id parameter only if no columns in that row have   |
1984  |    changed from when they were first selected in the form.		     |
1985  |                                                                           |
1986  | SCOPE - PUBLIC                                                            |
1987  |                                                                           |
1988  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
1989  |    arp_util.debug                                                         |
1990  |                                                                           |
1991  | ARGUMENTS  : IN:                                                          |
1992  |                    p_customer_trx_line_id	- identifies the row to lock |
1993  | 		      p_line_rec	    	- line record for comparison |
1994  |                    p_ignore_who_flag  - directs system to ignore who cols |
1995  |              OUT:                                                         |
1996  |                    None						     |
1997  |                                                                           |
1998  | RETURNS    : NONE                                                         |
1999  |                                                                           |
2000  | NOTES                                                                     |
2001  |                                                                           |
2002  | MODIFICATION HISTORY                                                      |
2003  |     07-JUN-95  Charlie Tomberg     Created                                |
2004  |     29-JUN-95  Charlie Tomberg     Modified to use select for update      |
2005  |     04-DEC-95  Martin Johnson      Handle NO_DATA_FOUND exception         |
2006  |                                                                           |
2007  |     Rel. 11 Changes:							     |
2008  |     ----------------							     |
2009  |     07-22-97   OSTEINME		added code to handle three new       |
2010  |					database columns:                    |
2011  |					  - gross_unit_selling_price         |
2012  |					  - gross_extended_amount            |
2013  |					  - amount_includes_tax_flag         |
2014  |                                                                           |
2015  |     08-20-97   KTANG                 handle global_attribute_category and |
2016  |                                      global_attribute[1-20] for global    |
2017  |                                      descriptive flexfield                |
2018  |                                                                           |
2019  |     10-JAN-99  Saloni Shah           added warehouse_id for global tax    |
2020  |                                      engine change                        |
2021  |     22-MAR-99  Debbie Jancis         added translated_description for MLS |
2022  |                                                                           |
2023  | 20-MAR-2000  J Rautiainen    Added BR project related columns                |
2024  |                              EXTENDED_ACCTD_AMOUNT, BR_REF_CUSTOMER_TRX_ID,  |
2025  |                              BR_REF_PAYMENT_SCHEDULE_ID and BR_ADJUSTMENT_ID |
2026  |                              into table handlers                             |
2027  |									     |
2028  | 31-OCT-2000 Y Rakotonirainy	Bug 1243304 : Added column wh_update_date    |
2029  | 					      into the table handlers. 	     |
2030  +===========================================================================*/
2031 
2032 PROCEDURE lock_compare_p( p_line_rec          IN ra_customer_trx_lines%rowtype,
2033                           p_customer_trx_line_id  IN
2034                             ra_customer_trx_lines.customer_trx_line_id%type,
2035                           p_ignore_who_flag BOOLEAN DEFAULT FALSE )  IS
2036 
2037     l_new_line_rec  ra_customer_trx_lines%rowtype;
2038     l_temp_line_rec ra_customer_trx_lines%rowtype;
2039     l_ignore_who_flag varchar2(2);
2040 
2041 BEGIN
2042     IF PG_DEBUG in ('Y', 'C') THEN
2043        arp_util.debug(  'arp_ctl_pkg.lock_compare_p()+');
2044     END IF;
2045 
2046     IF     (p_ignore_who_flag = TRUE)
2047     THEN   l_ignore_who_flag := 'Y';
2048     ELSE   l_ignore_who_flag := 'N';
2049     END IF;
2050 
2051     SELECT   *
2052     INTO     l_new_line_rec
2053     FROM     ra_customer_trx_lines ctl
2054     WHERE    ctl.customer_trx_line_id = p_customer_trx_line_id
2055     AND
2056        (
2057            NVL(ctl.customer_trx_line_id, AR_NUMBER_DUMMY) =
2058            NVL(
2059                  DECODE(p_line_rec.customer_trx_line_id,
2060                         AR_NUMBER_DUMMY, ctl.customer_trx_line_id,
2061                                          p_line_rec.customer_trx_line_id),
2062                  AR_NUMBER_DUMMY
2063               )
2064          AND
2065            NVL(ctl.customer_trx_id, AR_NUMBER_DUMMY) =
2066            NVL(
2067                  DECODE(p_line_rec.customer_trx_id,
2068                         AR_NUMBER_DUMMY, ctl.customer_trx_id,
2069                                          p_line_rec.customer_trx_id),
2070                  AR_NUMBER_DUMMY
2071               )
2072          AND
2073            NVL(ctl.line_number, AR_NUMBER_DUMMY) =
2074            NVL(
2075                  DECODE(p_line_rec.line_number,
2076                         AR_NUMBER_DUMMY, ctl.line_number,
2077                                          p_line_rec.line_number),
2078                  AR_NUMBER_DUMMY
2079               )
2080          AND
2081            NVL(ctl.line_type, AR_TEXT_DUMMY) =
2082            NVL(
2083                  DECODE(p_line_rec.line_type,
2084                         AR_TEXT_DUMMY, ctl.line_type,
2085                                          p_line_rec.line_type),
2086                  AR_TEXT_DUMMY
2087               )
2088          AND
2089            NVL(substr(ctl.quantity_credited,1,37), AR_NUMBER_DUMMY) =
2090            NVL(
2091                  DECODE(p_line_rec.quantity_credited,
2092                         AR_NUMBER_DUMMY, substr(ctl.quantity_credited,1,37),
2093                                          substr(p_line_rec.quantity_credited,1,37)),
2094                  AR_NUMBER_DUMMY
2095               )
2096          AND
2097            NVL(ctl.quantity_invoiced, AR_NUMBER_DUMMY) =
2098            NVL(
2099                  DECODE(p_line_rec.quantity_invoiced,
2100                         AR_NUMBER_DUMMY, ctl.quantity_invoiced,
2101                                          p_line_rec.quantity_invoiced),
2102                  AR_NUMBER_DUMMY
2103               )
2104          AND
2105            NVL(ctl.quantity_ordered, AR_NUMBER_DUMMY) =
2106            NVL(
2107                  DECODE(p_line_rec.quantity_ordered,
2108                         AR_NUMBER_DUMMY, ctl.quantity_ordered,
2109                                          p_line_rec.quantity_ordered),
2110                  AR_NUMBER_DUMMY
2111               )
2112          AND
2113            NVL(ctl.unit_selling_price, AR_NUMBER_DUMMY) =
2114            NVL(
2115                  DECODE(p_line_rec.unit_selling_price,
2116                         AR_NUMBER_DUMMY, ctl.unit_selling_price,
2117                                          p_line_rec.unit_selling_price),
2118                  AR_NUMBER_DUMMY
2119               )
2120          AND
2121            NVL(ctl.unit_standard_price, AR_NUMBER_DUMMY) =
2122            NVL(
2123                  DECODE(p_line_rec.unit_standard_price,
2124                         AR_NUMBER_DUMMY, ctl.unit_standard_price,
2125                                          p_line_rec.unit_standard_price),
2126                  AR_NUMBER_DUMMY
2127               )
2128          AND
2129            NVL(ctl.revenue_amount, AR_NUMBER_DUMMY) =
2130            NVL(
2131                  DECODE(p_line_rec.revenue_amount,
2132                         AR_NUMBER_DUMMY, ctl.revenue_amount,
2133                                          p_line_rec.revenue_amount),
2134                  AR_NUMBER_DUMMY
2135               )
2136          AND
2137            NVL(ctl.extended_amount, AR_NUMBER_DUMMY) =
2138            NVL(
2139                  DECODE(p_line_rec.extended_amount,
2140                         AR_NUMBER_DUMMY, ctl.extended_amount,
2141                                          p_line_rec.extended_amount),
2142                  AR_NUMBER_DUMMY
2143               )
2144          AND
2145            NVL(ctl.memo_line_id, AR_NUMBER_DUMMY) =
2146            NVL(
2147                  DECODE(p_line_rec.memo_line_id,
2148                         AR_NUMBER_DUMMY, ctl.memo_line_id,
2149                                          p_line_rec.memo_line_id),
2150                  AR_NUMBER_DUMMY
2151               )
2152          AND
2153            NVL(ctl.inventory_item_id, AR_NUMBER_DUMMY) =
2154            NVL(
2155                  DECODE(p_line_rec.inventory_item_id,
2156                         AR_NUMBER_DUMMY, ctl.inventory_item_id,
2157                                          p_line_rec.inventory_item_id),
2158                  AR_NUMBER_DUMMY
2159               )
2160          AND
2161            NVL(ctl.item_exception_rate_id, AR_NUMBER_DUMMY) =
2162            NVL(
2163                  DECODE(p_line_rec.item_exception_rate_id,
2164                         AR_NUMBER_DUMMY, ctl.item_exception_rate_id,
2165                                          p_line_rec.item_exception_rate_id),
2166                  AR_NUMBER_DUMMY
2167               )
2168          AND
2169            NVL(ctl.description, AR_TEXT_DUMMY) =
2170            NVL(
2171                  DECODE(p_line_rec.description,
2172                         AR_TEXT_DUMMY, ctl.description,
2173                                          p_line_rec.description),
2174                  AR_TEXT_DUMMY
2175               )
2176          AND
2177            NVL(ctl.item_context, AR_TEXT_DUMMY) =
2178            NVL(
2179                  DECODE(p_line_rec.item_context,
2180                         AR_TEXT_DUMMY, ctl.item_context,
2181                                          p_line_rec.item_context),
2182                  AR_TEXT_DUMMY
2183               )
2184          AND
2185            NVL(ctl.initial_customer_trx_line_id, AR_NUMBER_DUMMY) =
2186            NVL(
2187                  DECODE(p_line_rec.initial_customer_trx_line_id,
2188                         AR_NUMBER_DUMMY, ctl.initial_customer_trx_line_id,
2189                                       p_line_rec.initial_customer_trx_line_id),
2190                  AR_NUMBER_DUMMY
2191               )
2192          AND
2193            NVL(ctl.link_to_cust_trx_line_id, AR_NUMBER_DUMMY) =
2194            NVL(
2195                  DECODE(p_line_rec.link_to_cust_trx_line_id,
2196                         AR_NUMBER_DUMMY, ctl.link_to_cust_trx_line_id,
2197                                          p_line_rec.link_to_cust_trx_line_id),
2198                  AR_NUMBER_DUMMY
2199               )
2200          AND
2201            NVL(ctl.previous_customer_trx_id, AR_NUMBER_DUMMY) =
2202            NVL(
2203                  DECODE(p_line_rec.previous_customer_trx_id,
2204                         AR_NUMBER_DUMMY, ctl.previous_customer_trx_id,
2205                                          p_line_rec.previous_customer_trx_id),
2206                  AR_NUMBER_DUMMY
2207               )
2208          AND
2209            NVL(ctl.previous_customer_trx_line_id, AR_NUMBER_DUMMY) =
2210            NVL(
2211                  DECODE(p_line_rec.previous_customer_trx_line_id,
2212                         AR_NUMBER_DUMMY, ctl.previous_customer_trx_line_id,
2213                                      p_line_rec.previous_customer_trx_line_id),
2214                  AR_NUMBER_DUMMY
2215               )
2216          AND
2217            NVL(ctl.accounting_rule_duration, AR_NUMBER_DUMMY) =
2218            NVL(
2219                  DECODE(p_line_rec.accounting_rule_duration,
2220                         AR_NUMBER_DUMMY, ctl.accounting_rule_duration,
2221                                          p_line_rec.accounting_rule_duration),
2222                  AR_NUMBER_DUMMY
2223               )
2224          AND
2225            NVL(ctl.accounting_rule_id, AR_NUMBER_DUMMY) =
2226            NVL(
2227                  DECODE(p_line_rec.accounting_rule_id,
2228                         AR_NUMBER_DUMMY, ctl.accounting_rule_id,
2229                                          p_line_rec.accounting_rule_id),
2230                  AR_NUMBER_DUMMY
2231               )
2232          AND
2233            NVL(ctl.rule_start_date, AR_DATE_DUMMY) =
2234            NVL(
2235                  DECODE(p_line_rec.rule_start_date,
2236                         AR_DATE_DUMMY, ctl.rule_start_date,
2237                                          p_line_rec.rule_start_date),
2238                  AR_DATE_DUMMY
2239               )
2240          AND
2241            NVL(ctl.autorule_complete_flag, AR_FLAG_DUMMY) =
2242            NVL(
2243                  DECODE(p_line_rec.autorule_complete_flag,
2244                         AR_FLAG_DUMMY, ctl.autorule_complete_flag,
2245                                          p_line_rec.autorule_complete_flag),
2246                  AR_FLAG_DUMMY
2247               )
2248          AND
2249            NVL(ctl.autorule_duration_processed, AR_NUMBER_DUMMY) =
2250            NVL(
2251                  DECODE(p_line_rec.autorule_duration_processed,
2252                         AR_NUMBER_DUMMY, ctl.autorule_duration_processed,
2253                                       p_line_rec.autorule_duration_processed),
2254                  AR_NUMBER_DUMMY
2255               )
2256          AND
2257            NVL(ctl.reason_code, AR_TEXT_DUMMY) =
2258            NVL(
2259                  DECODE(p_line_rec.reason_code,
2260                         AR_TEXT_DUMMY, ctl.reason_code,
2261                                          p_line_rec.reason_code),
2262                  AR_TEXT_DUMMY
2263               )
2264          AND
2265            NVL(ctl.warehouse_id, AR_NUMBER_DUMMY) =
2266            NVL(
2267                  DECODE(p_line_rec.warehouse_id,
2268 			AR_NUMBER_DUMMY, ctl.warehouse_id,
2269 					 p_line_rec.warehouse_id),
2270                  AR_NUMBER_DUMMY
2271              )
2272          AND
2273            NVL(ctl.translated_description, AR_TEXT_DUMMY) =
2274            NVL(
2275                  DECODE(p_line_rec.translated_description,
2276                         AR_TEXT_DUMMY, ctl.translated_description,
2277                                          p_line_rec.translated_description),
2278                  AR_TEXT_DUMMY
2279               )
2280          AND
2281            NVL(ctl.last_period_to_credit, AR_NUMBER_DUMMY) =
2282            NVL(
2283                  DECODE(p_line_rec.last_period_to_credit,
2284                         AR_NUMBER_DUMMY, ctl.last_period_to_credit,
2285                                          p_line_rec.last_period_to_credit),
2286                  AR_NUMBER_DUMMY
2287               )
2288          AND
2289            NVL(ctl.sales_order, AR_TEXT_DUMMY) =
2290            NVL(
2291                  DECODE(p_line_rec.sales_order,
2292                         AR_TEXT_DUMMY, ctl.sales_order,
2293                                          p_line_rec.sales_order),
2294                  AR_TEXT_DUMMY
2295               )
2296          AND
2297            NVL(ctl.sales_order_date, AR_DATE_DUMMY) =
2298            NVL(
2299                  DECODE(p_line_rec.sales_order_date,
2300                         AR_DATE_DUMMY, ctl.sales_order_date,
2301                                          p_line_rec.sales_order_date),
2302                  AR_DATE_DUMMY
2303               )
2304          AND
2305            NVL(ctl.sales_order_line, AR_TEXT_DUMMY) =
2306            NVL(
2307                  DECODE(p_line_rec.sales_order_line,
2308                         AR_TEXT_DUMMY, ctl.sales_order_line,
2309                                        p_line_rec.sales_order_line),
2310                  AR_TEXT_DUMMY
2311               )
2312          AND
2313            NVL(ctl.sales_order_revision, AR_NUMBER_DUMMY) =
2314            NVL(
2315                  DECODE(p_line_rec.sales_order_revision,
2316                         AR_NUMBER_DUMMY, ctl.sales_order_revision,
2317                                          p_line_rec.sales_order_revision),
2318                  AR_NUMBER_DUMMY
2319               )
2320          AND
2321            NVL(ctl.sales_order_source, AR_TEXT_DUMMY) =
2322            NVL(
2323                  DECODE(p_line_rec.sales_order_source,
2324                         AR_TEXT_DUMMY, ctl.sales_order_source,
2325                                          p_line_rec.sales_order_source),
2326                  AR_TEXT_DUMMY
2327               )
2328          AND
2329            NVL(ctl.vat_tax_id, AR_NUMBER_DUMMY) =
2330            NVL(
2331                  DECODE(p_line_rec.vat_tax_id,
2332                         AR_NUMBER_DUMMY, ctl.vat_tax_id,
2333                                          p_line_rec.vat_tax_id),
2334                  AR_NUMBER_DUMMY
2335               )
2336          AND
2337            NVL(ctl.tax_exempt_flag, AR_FLAG_DUMMY) =
2338            NVL(
2339                  DECODE(p_line_rec.tax_exempt_flag,
2340                         AR_FLAG_DUMMY, ctl.tax_exempt_flag,
2341                                          p_line_rec.tax_exempt_flag),
2342                  AR_FLAG_DUMMY
2343               )
2344          AND
2345            NVL(ctl.sales_tax_id, AR_NUMBER_DUMMY) =
2346            NVL(
2347                  DECODE(p_line_rec.sales_tax_id,
2348                         AR_NUMBER_DUMMY, ctl.sales_tax_id,
2349                                          p_line_rec.sales_tax_id),
2350                  AR_NUMBER_DUMMY
2351               )
2352          AND
2353            NVL(ctl.location_segment_id, AR_NUMBER_DUMMY) =
2354            NVL(
2355                  DECODE(p_line_rec.location_segment_id,
2356                         AR_NUMBER_DUMMY, ctl.location_segment_id,
2357                                          p_line_rec.location_segment_id),
2358                  AR_NUMBER_DUMMY
2359               )
2360          AND
2361            NVL(ctl.tax_exempt_number, AR_TEXT_DUMMY) =
2362            NVL(
2363                  DECODE(p_line_rec.tax_exempt_number,
2364                         AR_TEXT_DUMMY, ctl.tax_exempt_number,
2365                                          p_line_rec.tax_exempt_number),
2366                  AR_TEXT_DUMMY
2367               )
2368          AND
2369            NVL(ctl.tax_exempt_reason_code, AR_TEXT_DUMMY) =
2370            NVL(
2371                  DECODE(p_line_rec.tax_exempt_reason_code,
2372                         AR_TEXT_DUMMY, ctl.tax_exempt_reason_code,
2373                                          p_line_rec.tax_exempt_reason_code),
2374                  AR_TEXT_DUMMY
2375               )
2376          AND
2377            NVL(ctl.tax_vendor_return_code, AR_TEXT_DUMMY) =
2378            NVL(
2379                  DECODE(p_line_rec.tax_vendor_return_code,
2380                         AR_TEXT_DUMMY, ctl.tax_vendor_return_code,
2381                                          p_line_rec.tax_vendor_return_code),
2382                  AR_TEXT_DUMMY
2383               )
2384          AND
2385            NVL(ctl.taxable_flag, AR_FLAG_DUMMY) =
2386            NVL(
2387                  DECODE(p_line_rec.taxable_flag,
2388                         AR_FLAG_DUMMY, ctl.taxable_flag,
2389                                          p_line_rec.taxable_flag),
2390                  AR_FLAG_DUMMY
2391               )
2392        )
2393      AND
2394        (
2395            NVL(ctl.tax_exemption_id, AR_NUMBER_DUMMY) =
2396            NVL(
2397                  DECODE(p_line_rec.tax_exemption_id,
2398                         AR_NUMBER_DUMMY, ctl.tax_exemption_id,
2399                                          p_line_rec.tax_exemption_id),
2400                  AR_NUMBER_DUMMY
2401               )
2402          AND
2403            NVL(ctl.tax_precedence, AR_NUMBER_DUMMY) =
2404            NVL(
2405                  DECODE(p_line_rec.tax_precedence,
2406                         AR_NUMBER_DUMMY, ctl.tax_precedence,
2407                                          p_line_rec.tax_precedence),
2408                  AR_NUMBER_DUMMY
2409               )
2410          AND
2411            NVL(ctl.tax_rate, AR_NUMBER_DUMMY) =
2412            NVL(
2413                  DECODE(p_line_rec.tax_rate,
2414                         AR_NUMBER_DUMMY, ctl.tax_rate,
2415                                          p_line_rec.tax_rate),
2416                  AR_NUMBER_DUMMY
2417               )
2418          AND
2419            NVL(ctl.uom_code, AR_TEXT3_DUMMY) =
2420            NVL(
2421                  DECODE(p_line_rec.uom_code,
2422                         AR_TEXT3_DUMMY, ctl.uom_code,
2423                                          p_line_rec.uom_code),
2424                  AR_TEXT3_DUMMY
2425               )
2426          AND
2427            NVL(ctl.autotax, AR_FLAG_DUMMY) =
2428            NVL(
2429                  DECODE(p_line_rec.autotax,
2430                         AR_FLAG_DUMMY, ctl.autotax,
2431                                          p_line_rec.autotax),
2432                  AR_FLAG_DUMMY
2433               )
2434          AND
2435            NVL(ctl.movement_id, AR_NUMBER_DUMMY) =
2436            NVL(
2437                  DECODE(p_line_rec.movement_id,
2438                         AR_NUMBER_DUMMY, ctl.movement_id,
2439                                          p_line_rec.movement_id),
2440                  AR_NUMBER_DUMMY
2441               )
2442          AND
2443            NVL(ctl.default_ussgl_transaction_code, AR_TEXT_DUMMY) =
2444            NVL(
2445                  DECODE(p_line_rec.default_ussgl_transaction_code,
2446                         AR_TEXT_DUMMY, ctl.default_ussgl_transaction_code,
2447                                     p_line_rec.default_ussgl_transaction_code),
2448                  AR_TEXT_DUMMY
2449               )
2450          AND
2451            NVL(ctl.default_ussgl_trx_code_context, AR_TEXT_DUMMY) =
2452            NVL(
2453                  DECODE(p_line_rec.default_ussgl_trx_code_context,
2454                         AR_TEXT_DUMMY, ctl.default_ussgl_trx_code_context,
2455                                    p_line_rec.default_ussgl_trx_code_context),
2456                  AR_TEXT_DUMMY
2457               )
2458          AND
2459            NVL(ctl.interface_line_context, AR_TEXT_DUMMY) =
2460            NVL(
2461                  DECODE(p_line_rec.interface_line_context,
2462                         AR_TEXT_DUMMY, ctl.interface_line_context,
2463                                          p_line_rec.interface_line_context),
2464                  AR_TEXT_DUMMY
2465               )
2466          AND
2467            NVL(ctl.interface_line_attribute1, AR_TEXT_DUMMY) =
2468            NVL(
2469                  DECODE(p_line_rec.interface_line_attribute1,
2470                         AR_TEXT_DUMMY, ctl.interface_line_attribute1,
2471                                          p_line_rec.interface_line_attribute1),
2472                  AR_TEXT_DUMMY
2473               )
2474          AND
2475            NVL(ctl.interface_line_attribute2, AR_TEXT_DUMMY) =
2476            NVL(
2477                  DECODE(p_line_rec.interface_line_attribute2,
2478                         AR_TEXT_DUMMY, ctl.interface_line_attribute2,
2479                                          p_line_rec.interface_line_attribute2),
2480                  AR_TEXT_DUMMY
2481               )
2482          AND
2483            NVL(ctl.interface_line_attribute3, AR_TEXT_DUMMY) =
2484            NVL(
2485                  DECODE(p_line_rec.interface_line_attribute3,
2486                         AR_TEXT_DUMMY, ctl.interface_line_attribute3,
2487                                          p_line_rec.interface_line_attribute3),
2488                  AR_TEXT_DUMMY
2489               )
2490          AND
2491            NVL(ctl.interface_line_attribute4, AR_TEXT_DUMMY) =
2492            NVL(
2493                  DECODE(p_line_rec.interface_line_attribute4,
2494                         AR_TEXT_DUMMY, ctl.interface_line_attribute4,
2495                                          p_line_rec.interface_line_attribute4),
2496                  AR_TEXT_DUMMY
2497               )
2498          AND
2499            NVL(ctl.interface_line_attribute5, AR_TEXT_DUMMY) =
2500            NVL(
2501                  DECODE(p_line_rec.interface_line_attribute5,
2502                         AR_TEXT_DUMMY, ctl.interface_line_attribute5,
2503                                          p_line_rec.interface_line_attribute5),
2504                  AR_TEXT_DUMMY
2505               )
2506          AND
2507            NVL(ctl.interface_line_attribute6, AR_TEXT_DUMMY) =
2508            NVL(
2509                  DECODE(p_line_rec.interface_line_attribute6,
2510                         AR_TEXT_DUMMY, ctl.interface_line_attribute6,
2511                                          p_line_rec.interface_line_attribute6),
2512                  AR_TEXT_DUMMY
2513               )
2514          AND
2515            NVL(ctl.interface_line_attribute7, AR_TEXT_DUMMY) =
2516            NVL(
2517                  DECODE(p_line_rec.interface_line_attribute7,
2518                         AR_TEXT_DUMMY, ctl.interface_line_attribute7,
2519                                          p_line_rec.interface_line_attribute7),
2520                  AR_TEXT_DUMMY
2521               )
2522          AND
2523            NVL(ctl.interface_line_attribute8, AR_TEXT_DUMMY) =
2524            NVL(
2525                  DECODE(p_line_rec.interface_line_attribute8,
2526                         AR_TEXT_DUMMY, ctl.interface_line_attribute8,
2527                                          p_line_rec.interface_line_attribute8),
2528                  AR_TEXT_DUMMY
2529               )
2530          AND
2531            NVL(ctl.interface_line_attribute9, AR_TEXT_DUMMY) =
2532            NVL(
2533                  DECODE(p_line_rec.interface_line_attribute9,
2534                         AR_TEXT_DUMMY, ctl.interface_line_attribute9,
2535                                          p_line_rec.interface_line_attribute9),
2536                  AR_TEXT_DUMMY
2537               )
2538          AND
2539            NVL(ctl.interface_line_attribute10, AR_TEXT_DUMMY) =
2540            NVL(
2541                  DECODE(p_line_rec.interface_line_attribute10,
2542                         AR_TEXT_DUMMY, ctl.interface_line_attribute10,
2543                                         p_line_rec.interface_line_attribute10),
2544                  AR_TEXT_DUMMY
2545               )
2546          AND
2547            NVL(ctl.interface_line_attribute11, AR_TEXT_DUMMY) =
2548            NVL(
2549                  DECODE(p_line_rec.interface_line_attribute11,
2550                         AR_TEXT_DUMMY, ctl.interface_line_attribute11,
2551                                         p_line_rec.interface_line_attribute11),
2552                  AR_TEXT_DUMMY
2553               )
2554          AND
2555            NVL(ctl.interface_line_attribute12, AR_TEXT_DUMMY) =
2556            NVL(
2557                  DECODE(p_line_rec.interface_line_attribute12,
2558                         AR_TEXT_DUMMY, ctl.interface_line_attribute12,
2559                                         p_line_rec.interface_line_attribute12),
2560                  AR_TEXT_DUMMY
2561               )
2562          AND
2563            NVL(ctl.interface_line_attribute13, AR_TEXT_DUMMY) =
2564            NVL(
2565                  DECODE(p_line_rec.interface_line_attribute13,
2566                         AR_TEXT_DUMMY, ctl.interface_line_attribute13,
2567                                         p_line_rec.interface_line_attribute13),
2568                  AR_TEXT_DUMMY
2569               )
2570          AND
2571            NVL(ctl.interface_line_attribute14, AR_TEXT_DUMMY) =
2572            NVL(
2573                  DECODE(p_line_rec.interface_line_attribute14,
2574                         AR_TEXT_DUMMY, ctl.interface_line_attribute14,
2575                                         p_line_rec.interface_line_attribute14),
2576                  AR_TEXT_DUMMY
2577               )
2578          AND
2579            NVL(ctl.interface_line_attribute15, AR_TEXT_DUMMY) =
2580            NVL(
2581                  DECODE(p_line_rec.interface_line_attribute15,
2582                         AR_TEXT_DUMMY, ctl.interface_line_attribute15,
2583                                         p_line_rec.interface_line_attribute15),
2584                  AR_TEXT_DUMMY
2585               )
2586          AND
2587            NVL(ctl.attribute_category, AR_TEXT_DUMMY) =
2588            NVL(
2589                  DECODE(p_line_rec.attribute_category,
2590                         AR_TEXT_DUMMY, ctl.attribute_category,
2591                                          p_line_rec.attribute_category),
2592                  AR_TEXT_DUMMY
2593               )
2594          AND
2595            NVL(ctl.attribute1, AR_TEXT_DUMMY) =
2596            NVL(
2597                  DECODE(p_line_rec.attribute1,
2598                         AR_TEXT_DUMMY, ctl.attribute1,
2599                                          p_line_rec.attribute1),
2600                  AR_TEXT_DUMMY
2601               )
2602          AND
2603            NVL(ctl.attribute2, AR_TEXT_DUMMY) =
2604            NVL(
2605                  DECODE(p_line_rec.attribute2,
2606                         AR_TEXT_DUMMY, ctl.attribute2,
2607                                          p_line_rec.attribute2),
2608                  AR_TEXT_DUMMY
2609               )
2610          AND
2611            NVL(ctl.attribute3, AR_TEXT_DUMMY) =
2612            NVL(
2613                  DECODE(p_line_rec.attribute3,
2614                         AR_TEXT_DUMMY, ctl.attribute3,
2615                                          p_line_rec.attribute3),
2616                  AR_TEXT_DUMMY
2617               )
2618          AND
2619            NVL(ctl.attribute4, AR_TEXT_DUMMY) =
2620            NVL(
2621                  DECODE(p_line_rec.attribute4,
2622                         AR_TEXT_DUMMY, ctl.attribute4,
2623                                          p_line_rec.attribute4),
2624                  AR_TEXT_DUMMY
2625               )
2626          AND
2627            NVL(ctl.attribute5, AR_TEXT_DUMMY) =
2628            NVL(
2629                  DECODE(p_line_rec.attribute5,
2630                         AR_TEXT_DUMMY, ctl.attribute5,
2631                                          p_line_rec.attribute5),
2632                  AR_TEXT_DUMMY
2633               )
2634          AND
2635            NVL(ctl.attribute6, AR_TEXT_DUMMY) =
2636            NVL(
2637                  DECODE(p_line_rec.attribute6,
2638                         AR_TEXT_DUMMY, ctl.attribute6,
2639                                          p_line_rec.attribute6),
2640                  AR_TEXT_DUMMY
2641               )
2642          AND
2643            NVL(ctl.attribute7, AR_TEXT_DUMMY) =
2644            NVL(
2645                  DECODE(p_line_rec.attribute7,
2646                         AR_TEXT_DUMMY, ctl.attribute7,
2647                                          p_line_rec.attribute7),
2648                  AR_TEXT_DUMMY
2649               )
2650          AND
2651            NVL(ctl.attribute8, AR_TEXT_DUMMY) =
2652            NVL(
2653                  DECODE(p_line_rec.attribute8,
2654                         AR_TEXT_DUMMY, ctl.attribute8,
2655                                          p_line_rec.attribute8),
2656                  AR_TEXT_DUMMY
2657               )
2658          AND
2659            NVL(ctl.attribute9, AR_TEXT_DUMMY) =
2660            NVL(
2661                  DECODE(p_line_rec.attribute9,
2662                         AR_TEXT_DUMMY, ctl.attribute9,
2663                                          p_line_rec.attribute9),
2664                  AR_TEXT_DUMMY
2665               )
2666          AND
2667            NVL(ctl.attribute10, AR_TEXT_DUMMY) =
2668            NVL(
2669                  DECODE(p_line_rec.attribute10,
2670                         AR_TEXT_DUMMY, ctl.attribute10,
2671                                          p_line_rec.attribute10),
2672                  AR_TEXT_DUMMY
2673               )
2674          AND
2675            NVL(ctl.attribute11, AR_TEXT_DUMMY) =
2676            NVL(
2677                  DECODE(p_line_rec.attribute11,
2678                         AR_TEXT_DUMMY, ctl.attribute11,
2679                                          p_line_rec.attribute11),
2680                  AR_TEXT_DUMMY
2681               )
2682          AND
2683            NVL(ctl.attribute12, AR_TEXT_DUMMY) =
2684            NVL(
2685                  DECODE(p_line_rec.attribute12,
2686                         AR_TEXT_DUMMY, ctl.attribute12,
2687                                          p_line_rec.attribute12),
2688                  AR_TEXT_DUMMY
2689               )
2690          AND
2691            NVL(ctl.attribute13, AR_TEXT_DUMMY) =
2692            NVL(
2693                  DECODE(p_line_rec.attribute13,
2694                         AR_TEXT_DUMMY, ctl.attribute13,
2695                                          p_line_rec.attribute13),
2696                  AR_TEXT_DUMMY
2697               )
2698          AND
2699            NVL(ctl.attribute14, AR_TEXT_DUMMY) =
2700            NVL(
2701                  DECODE(p_line_rec.attribute14,
2702                         AR_TEXT_DUMMY, ctl.attribute14,
2703                                          p_line_rec.attribute14),
2704                  AR_TEXT_DUMMY
2705               )
2706          AND
2707            NVL(ctl.attribute15, AR_TEXT_DUMMY) =
2708            NVL(
2709                  DECODE(p_line_rec.attribute15,
2710                         AR_TEXT_DUMMY, ctl.attribute15,
2711                                          p_line_rec.attribute15),
2712                  AR_TEXT_DUMMY
2713               )
2714          AND
2715            NVL(ctl.global_attribute_category, AR_TEXT_DUMMY) =
2716            NVL(
2717                  DECODE(p_line_rec.global_attribute_category,
2718                         AR_TEXT_DUMMY, ctl.global_attribute_category,
2719                                          p_line_rec.global_attribute_category),
2720                  AR_TEXT_DUMMY
2721               )
2722          AND
2723            NVL(ctl.global_attribute1, AR_TEXT_DUMMY) =
2724            NVL(
2725                  DECODE(p_line_rec.global_attribute1,
2726                         AR_TEXT_DUMMY, ctl.global_attribute1,
2727                                          p_line_rec.global_attribute1),
2728                  AR_TEXT_DUMMY
2729               )
2730          AND
2731            NVL(ctl.global_attribute2, AR_TEXT_DUMMY) =
2732            NVL(
2733                  DECODE(p_line_rec.global_attribute2,
2734                         AR_TEXT_DUMMY, ctl.global_attribute2,
2735                                          p_line_rec.global_attribute2),
2736                  AR_TEXT_DUMMY
2737               )
2738          AND
2739            NVL(ctl.global_attribute3, AR_TEXT_DUMMY) =
2740            NVL(
2741                  DECODE(p_line_rec.global_attribute3,
2742                         AR_TEXT_DUMMY, ctl.global_attribute3,
2743                                          p_line_rec.global_attribute3),
2744                  AR_TEXT_DUMMY
2745               )
2746          AND
2747            NVL(ctl.global_attribute4, AR_TEXT_DUMMY) =
2748            NVL(
2749                  DECODE(p_line_rec.global_attribute4,
2750                         AR_TEXT_DUMMY, ctl.global_attribute4,
2751                                          p_line_rec.global_attribute4),
2752                  AR_TEXT_DUMMY
2753               )
2754          AND
2755            NVL(ctl.global_attribute5, AR_TEXT_DUMMY) =
2756            NVL(
2757                  DECODE(p_line_rec.global_attribute5,
2758                         AR_TEXT_DUMMY, ctl.global_attribute5,
2759                                          p_line_rec.global_attribute5),
2760                  AR_TEXT_DUMMY
2761               )
2762          AND
2763            NVL(ctl.global_attribute6, AR_TEXT_DUMMY) =
2764            NVL(
2765                  DECODE(p_line_rec.global_attribute6,
2766                         AR_TEXT_DUMMY, ctl.global_attribute6,
2767                                          p_line_rec.global_attribute6),
2768                  AR_TEXT_DUMMY
2769               )
2770          AND
2771            NVL(ctl.global_attribute7, AR_TEXT_DUMMY) =
2772            NVL(
2773                  DECODE(p_line_rec.global_attribute7,
2774                         AR_TEXT_DUMMY, ctl.global_attribute7,
2775                                          p_line_rec.global_attribute7),
2776                  AR_TEXT_DUMMY
2777               )
2778          AND
2779            NVL(ctl.global_attribute8, AR_TEXT_DUMMY) =
2780            NVL(
2781                  DECODE(p_line_rec.global_attribute8,
2782                         AR_TEXT_DUMMY, ctl.global_attribute8,
2783                                          p_line_rec.global_attribute8),
2784                  AR_TEXT_DUMMY
2785               )
2786          AND
2787            NVL(ctl.global_attribute9, AR_TEXT_DUMMY) =
2788            NVL(
2789                  DECODE(p_line_rec.global_attribute9,
2790                         AR_TEXT_DUMMY, ctl.global_attribute9,
2791                                          p_line_rec.global_attribute9),
2792                  AR_TEXT_DUMMY
2793               )
2794          AND
2795            NVL(ctl.global_attribute10, AR_TEXT_DUMMY) =
2796            NVL(
2797                  DECODE(p_line_rec.global_attribute10,
2798                         AR_TEXT_DUMMY, ctl.global_attribute10,
2799                                          p_line_rec.global_attribute10),
2800                  AR_TEXT_DUMMY
2801               )
2802          AND
2803            NVL(ctl.global_attribute11, AR_TEXT_DUMMY) =
2804            NVL(
2805                  DECODE(p_line_rec.global_attribute11,
2806                         AR_TEXT_DUMMY, ctl.global_attribute11,
2807                                          p_line_rec.global_attribute11),
2808                  AR_TEXT_DUMMY
2809               )
2810          AND
2811            NVL(ctl.global_attribute12, AR_TEXT_DUMMY) =
2812            NVL(
2813                  DECODE(p_line_rec.global_attribute12,
2814                         AR_TEXT_DUMMY, ctl.global_attribute12,
2815                                          p_line_rec.global_attribute12),
2816                  AR_TEXT_DUMMY
2817               )
2818          AND
2819            NVL(ctl.global_attribute13, AR_TEXT_DUMMY) =
2820            NVL(
2821                  DECODE(p_line_rec.global_attribute13,
2822                         AR_TEXT_DUMMY, ctl.global_attribute13,
2823                                          p_line_rec.global_attribute13),
2824                  AR_TEXT_DUMMY
2825               )
2826          AND
2827            NVL(ctl.global_attribute14, AR_TEXT_DUMMY) =
2828            NVL(
2829                  DECODE(p_line_rec.global_attribute14,
2830                         AR_TEXT_DUMMY, ctl.global_attribute14,
2831                                          p_line_rec.global_attribute14),
2832                  AR_TEXT_DUMMY
2833               )
2834          AND
2835            NVL(ctl.global_attribute15, AR_TEXT_DUMMY) =
2836            NVL(
2837                  DECODE(p_line_rec.global_attribute15,
2838                         AR_TEXT_DUMMY, ctl.global_attribute15,
2839                                          p_line_rec.global_attribute15),
2840                  AR_TEXT_DUMMY
2841               )
2842          AND
2843            NVL(ctl.global_attribute16, AR_TEXT_DUMMY) =
2844            NVL(
2845                  DECODE(p_line_rec.global_attribute16,
2846                         AR_TEXT_DUMMY, ctl.global_attribute16,
2847                                          p_line_rec.global_attribute16),
2848                  AR_TEXT_DUMMY
2849               )
2850          AND
2851            NVL(ctl.global_attribute17, AR_TEXT_DUMMY) =
2852            NVL(
2853                  DECODE(p_line_rec.global_attribute17,
2854                         AR_TEXT_DUMMY, ctl.global_attribute17,
2855                                          p_line_rec.global_attribute17),
2856                  AR_TEXT_DUMMY
2857               )
2858          AND
2859            NVL(ctl.global_attribute18, AR_TEXT_DUMMY) =
2860            NVL(
2861                  DECODE(p_line_rec.global_attribute18,
2862                         AR_TEXT_DUMMY, ctl.global_attribute18,
2863                                          p_line_rec.global_attribute18),
2864                  AR_TEXT_DUMMY
2865               )
2866          AND
2867            NVL(ctl.global_attribute19, AR_TEXT_DUMMY) =
2868            NVL(
2869                  DECODE(p_line_rec.global_attribute19,
2870                         AR_TEXT_DUMMY, ctl.global_attribute19,
2871                                          p_line_rec.global_attribute19),
2872                  AR_TEXT_DUMMY
2873               )
2874          AND
2875            NVL(ctl.global_attribute20, AR_TEXT_DUMMY) =
2876            NVL(
2877                  DECODE(p_line_rec.global_attribute20,
2878                         AR_TEXT_DUMMY, ctl.global_attribute20,
2879                                          p_line_rec.global_attribute20),
2880                  AR_TEXT_DUMMY
2881               )
2882          AND
2883            NVL(ctl.last_update_date, AR_DATE_DUMMY) =
2884            NVL(
2885                  DECODE(l_ignore_who_flag,
2886                         'Y',  NVL(ctl.last_update_date, AR_DATE_DUMMY),
2887                               DECODE(
2888                                       p_line_rec.last_update_date,
2889                                       AR_DATE_DUMMY, ctl.last_update_date,
2890                                                   p_line_rec.last_update_date
2891                                     )
2892                        ),
2893                  AR_DATE_DUMMY
2894               )
2895          AND
2896            NVL(ctl.last_updated_by, AR_NUMBER_DUMMY) =
2897            NVL(
2898                  DECODE(l_ignore_who_flag,
2899                         'Y',   NVL(ctl.last_updated_by, AR_NUMBER_DUMMY),
2900                                DECODE(
2901                                       p_line_rec.last_updated_by,
2902                                       AR_NUMBER_DUMMY, ctl.last_updated_by,
2903                                                   p_line_rec.last_updated_by
2904                                      )
2905                         ),
2906                  AR_NUMBER_DUMMY
2907               )
2908          AND
2909            NVL(ctl.creation_date, AR_DATE_DUMMY) =
2910            NVL(
2911                  DECODE(l_ignore_who_flag,
2912                         'Y',  NVL(ctl.creation_date, AR_DATE_DUMMY),
2913                               DECODE(
2914                                      p_line_rec.creation_date,
2915                                      AR_DATE_DUMMY, ctl.creation_date,
2916                                                  p_line_rec.creation_date
2917                                     )
2918                        ),
2919                  AR_DATE_DUMMY
2920               )
2921          AND
2922            NVL(ctl.created_by, AR_NUMBER_DUMMY) =
2923            NVL(
2924                  DECODE(l_ignore_who_flag,
2925                         'Y',  NVL(ctl.created_by, AR_NUMBER_DUMMY),
2926                               DECODE(
2927                                        p_line_rec.created_by,
2928                                        AR_NUMBER_DUMMY, ctl.created_by,
2929                                                       p_line_rec.created_by
2930                                      )
2931                         ),
2932                  AR_NUMBER_DUMMY
2933               )
2934          AND
2935            NVL(ctl.last_update_login, AR_NUMBER_DUMMY) =
2936            NVL(
2937                  DECODE(l_ignore_who_flag,
2938                         'Y',  NVL(ctl.last_update_login, AR_NUMBER_DUMMY),
2939                               DECODE(
2940                                        p_line_rec.last_update_login,
2941                                        AR_NUMBER_DUMMY, ctl.last_update_login,
2942                                                  p_line_rec.last_update_login
2943                                     )
2944                         ),
2945                  AR_NUMBER_DUMMY
2946               )
2947          AND
2948            NVL(ctl.program_application_id, AR_NUMBER_DUMMY) =
2949            NVL(
2950                  DECODE(l_ignore_who_flag,
2951                         'Y',  NVL(ctl.program_application_id, AR_NUMBER_DUMMY),
2952                               DECODE(
2953                                   p_line_rec.program_application_id,
2954                                   AR_NUMBER_DUMMY, ctl.program_application_id,
2955                                             p_line_rec.program_application_id
2956                                      )
2957                         ),
2958                  AR_NUMBER_DUMMY
2959               )
2960          AND
2961            NVL(ctl.program_id, AR_NUMBER_DUMMY) =
2962            NVL(
2963                  DECODE(l_ignore_who_flag,
2964                         'Y',  NVL(ctl.program_id, AR_NUMBER_DUMMY),
2965                               DECODE(
2966                                       p_line_rec.program_id,
2967                                       AR_NUMBER_DUMMY, ctl.program_id,
2968                                                        p_line_rec.program_id
2969                                     )
2970                         ),
2971                  AR_NUMBER_DUMMY
2972               )
2973          AND
2974            NVL(ctl.program_update_date, AR_DATE_DUMMY) =
2975            NVL(
2976                  DECODE(l_ignore_who_flag,
2977                         'Y',  NVL(ctl.program_update_date, AR_DATE_DUMMY),
2978                               DECODE(
2979                                        p_line_rec.program_update_date,
2980                                        AR_DATE_DUMMY, ctl.program_update_date,
2981                                                 p_line_rec.program_update_date
2982                                     )
2983                        ),
2984                  AR_DATE_DUMMY
2985               )
2986          AND
2987            NVL(ctl.set_of_books_id, AR_NUMBER_DUMMY) =
2988            NVL(
2989                  DECODE(p_line_rec.set_of_books_id,
2990                         AR_NUMBER_DUMMY, ctl.set_of_books_id,
2991                                          p_line_rec.set_of_books_id),
2992                  AR_NUMBER_DUMMY
2993               )
2994          /* Rel. 11 Changes: 					*/
2995          AND
2996            NVL(ctl.gross_extended_amount, NVL(ctl.extended_amount,
2997 						AR_NUMBER_DUMMY)) =
2998            NVL(
2999                  DECODE(p_line_rec.gross_extended_amount,
3000                         AR_NUMBER_DUMMY,
3001 				NVL(ctl.gross_extended_amount,
3002 					ctl.extended_amount),
3003                                 p_line_rec.gross_extended_amount),
3004                  AR_NUMBER_DUMMY
3005               )
3006          AND
3007            NVL(ctl.gross_unit_selling_price, NVL(ctl.unit_selling_price,
3008 					AR_NUMBER_DUMMY)) =
3009            NVL(
3010                  DECODE(p_line_rec.gross_unit_selling_price,
3011                         AR_NUMBER_DUMMY,
3012 				NVL(ctl.gross_unit_selling_price,
3013 					ctl.unit_selling_price),
3014                                 p_line_rec.gross_unit_selling_price),
3015                  AR_NUMBER_DUMMY
3016               )
3017          AND
3018            NVL(ctl.amount_includes_tax_flag, AR_FLAG_DUMMY) =
3019            NVL(
3020                  DECODE(p_line_rec.amount_includes_tax_flag,
3021                         AR_FLAG_DUMMY, ctl.amount_includes_tax_flag,
3022                                          p_line_rec.amount_includes_tax_flag),
3023                  AR_FLAG_DUMMY
3024               )
3025 	 /* Bug 853757 */
3026 	 AND
3027            NVL(ctl.taxable_amount, AR_NUMBER_DUMMY) =
3028            NVL(
3029                  DECODE(p_line_rec.taxable_amount,
3030 			AR_NUMBER_DUMMY, ctl.taxable_amount,
3031 					 p_line_rec.taxable_amount),
3032 		 AR_NUMBER_DUMMY
3033 	      )
3034 	 AND
3035            NVL(ctl.extended_acctd_amount, AR_NUMBER_DUMMY) =
3036            NVL(
3037                  DECODE(p_line_rec.extended_acctd_amount,
3038 			AR_NUMBER_DUMMY, ctl.extended_acctd_amount,
3039 					 p_line_rec.extended_acctd_amount),
3040 		 AR_NUMBER_DUMMY
3041 	      )
3042 	 AND
3043            NVL(ctl.br_ref_customer_trx_id, AR_NUMBER_DUMMY) =
3044            NVL(
3045                  DECODE(p_line_rec.br_ref_customer_trx_id,
3046 			AR_NUMBER_DUMMY, ctl.br_ref_customer_trx_id,
3047 					 p_line_rec.br_ref_customer_trx_id),
3048 		 AR_NUMBER_DUMMY
3049 	      )
3050 	 AND
3051            NVL(ctl.br_ref_payment_schedule_id, AR_NUMBER_DUMMY) =
3052            NVL(
3053                  DECODE(p_line_rec.br_ref_payment_schedule_id,
3054 			AR_NUMBER_DUMMY, ctl.br_ref_payment_schedule_id,
3055 					 p_line_rec.br_ref_payment_schedule_id),
3056 		 AR_NUMBER_DUMMY
3057 	      )
3058 	 AND
3059            NVL(ctl.br_adjustment_id, AR_NUMBER_DUMMY) =
3060            NVL(
3061                  DECODE(p_line_rec.br_adjustment_id,
3062 			AR_NUMBER_DUMMY, ctl.br_adjustment_id,
3063 					 p_line_rec.br_adjustment_id),
3064 		 AR_NUMBER_DUMMY
3065 	      )
3066 	 AND
3067            NVL(ctl.wh_update_date, AR_DATE_DUMMY) =
3068            NVL(
3069                  DECODE(p_line_rec.wh_update_date,
3070 			AR_DATE_DUMMY, ctl.wh_update_date,
3071 					 p_line_rec.wh_update_date),
3072 		 AR_DATE_DUMMY
3073 	      )
3074 	 AND
3075            NVL(ctl.rule_end_date, AR_DATE_DUMMY) =
3076            NVL(
3077                  DECODE(p_line_rec.rule_end_date,
3078 			AR_DATE_DUMMY, ctl.rule_end_date,
3079 					 p_line_rec.rule_end_date),
3080 		 AR_DATE_DUMMY
3081 	      )
3082          /* 4713671 */
3083 	 AND
3084            NVL(ctl.ship_to_customer_id, AR_NUMBER_DUMMY) =
3085            NVL(
3086                  DECODE(p_line_rec.ship_to_customer_id,
3087 			AR_NUMBER_DUMMY, ctl.ship_to_customer_id,
3088 					 p_line_rec.ship_to_customer_id),
3089 		 AR_NUMBER_DUMMY
3090 	      )
3091 	 AND
3092            NVL(ctl.ship_to_site_use_id, AR_NUMBER_DUMMY) =
3093            NVL(
3094                  DECODE(p_line_rec.ship_to_site_use_id,
3095 			AR_NUMBER_DUMMY, ctl.ship_to_site_use_id,
3096 					 p_line_rec.ship_to_site_use_id),
3097 		 AR_NUMBER_DUMMY
3098 	      )
3099 	 AND
3100            NVL(ctl.ship_to_contact_id, AR_NUMBER_DUMMY) =
3101            NVL(
3102                  DECODE(p_line_rec.ship_to_contact_id,
3103 			AR_NUMBER_DUMMY, ctl.ship_to_contact_id,
3104 					 p_line_rec.ship_to_contact_id),
3105 		 AR_NUMBER_DUMMY
3106 	      )
3107 	 AND
3108            NVL(ctl.tax_classification_code, AR_TEXT_DUMMY) =
3109            NVL(
3110                  DECODE(p_line_rec.tax_classification_code,
3111 			AR_TEXT_DUMMY, ctl.tax_classification_code,
3112 					 p_line_rec.tax_classification_code),
3113 		 AR_TEXT_DUMMY
3114 	      )
3115        )
3116        FOR UPDATE OF customer_trx_line_id NOWAIT;
3117 
3118 
3119     IF PG_DEBUG in ('Y', 'C') THEN
3120        arp_util.debug(  'arp_ctl_pkg.lock_compare_p()-');
3121     END IF;
3122 
3123     EXCEPTION
3124         WHEN NO_DATA_FOUND THEN
3125               IF PG_DEBUG in ('Y', 'C') THEN
3126                  arp_util.debug(  '');
3127                  arp_util.debug(  'p_customer_trx_line_id  = ' ||
3128                               p_customer_trx_line_id );
3129                  arp_util.debug(  '-------- new line record --------');
3130               END IF;
3131               display_line_rec( p_line_rec );
3132 
3133               IF PG_DEBUG in ('Y', 'C') THEN
3134                  arp_util.debug(  '');
3135                  arp_util.debug(  '-------- old line record --------');
3136               END IF;
3137 
3138               fetch_p( l_temp_line_rec,
3139                        p_customer_trx_line_id );
3140 
3141               display_line_rec( l_temp_line_rec );
3142 
3143               FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
3144               APP_EXCEPTION.Raise_Exception;
3145 
3146         WHEN  OTHERS THEN
3147             IF PG_DEBUG in ('Y', 'C') THEN
3148                arp_util.debug(   'EXCEPTION: arp_ctl_pkg.lock_compare_p' );
3149                arp_util.debug(  '');
3150                arp_util.debug(  '-------- parameters for lock_compare_p() ------');
3151                arp_util.debug(  'p_customer_trx_line_id  = ' ||
3152                            p_customer_trx_line_id);
3153                arp_util.debug(  'p_ignore_who_flag       = ' ||
3154                          arp_trx_util.boolean_to_varchar2(p_ignore_who_flag));
3155             END IF;
3156             display_line_rec(p_line_rec);
3157 
3158 
3159             RAISE;
3160 END;
3161 
3162 /*===========================================================================+
3163  | PROCEDURE                                                                 |
3164  |    delete_p								     |
3165  |                                                                           |
3166  | DESCRIPTION                                                               |
3167  |    This procedure deletes the ra_customer_trx_lines row identified by the |
3168  |    p_customer_trx_line_id parameter.					     |
3169  |                                                                           |
3170  | SCOPE - PUBLIC                                                            |
3171  |                                                                           |
3172  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
3173  |    arp_util.debug                                                         |
3174  |                                                                           |
3175  | ARGUMENTS  : IN:                                                          |
3176  |                    p_customer_trx_line_id  - identifies the row to delete |
3177  |              OUT:                                                         |
3178  |                    None						     |
3179  |                                                                           |
3180  | RETURNS    : NONE                                                         |
3181  |                                                                           |
3182  | NOTES                                                                     |
3183  |                                                                           |
3184  | MODIFICATION HISTORY                                                      |
3185  |     07-JUN-95  Charlie Tomberg     Created                                |
3186  |                                                                           |
3187  +===========================================================================*/
3188 
3189 procedure delete_p( p_customer_trx_line_id  IN
3190                           ra_customer_trx_lines.customer_trx_line_id%type)
3191        IS
3192 
3193 
3194 BEGIN
3195 
3196    IF PG_DEBUG in ('Y', 'C') THEN
3197       arp_util.debug(  'arp_ctl_pkg.delete_p()+');
3198       arp_util.debug(  'deleting ctlid: ' || p_customer_trx_line_id);
3199    END IF;
3200 
3201    DELETE FROM ra_customer_trx_lines
3202    WHERE       customer_trx_line_id = p_customer_trx_line_id;
3203 
3204    IF ( SQL%ROWCOUNT = 0 )
3205    THEN     arp_util.debug('EXCEPTION:  arp_ctl_pkg.delete_p()');
3206             RAISE NO_DATA_FOUND;
3207    END IF;
3208 
3209    IF PG_DEBUG in ('Y', 'C') THEN
3210       arp_util.debug(  'arp_ctl_pkg.delete_p()-');
3211    END IF;
3212 
3213 EXCEPTION
3214     WHEN OTHERS THEN
3215         IF PG_DEBUG in ('Y', 'C') THEN
3216            arp_util.debug(  'EXCEPTION:  arp_ctl_pkg.delete_p()');
3217            arp_util.debug(  '');
3218            arp_util.debug(  '-------- parameters for delete_p() ------');
3219            arp_util.debug(  'p_customer_trx_line_id  = ' ||
3220                        p_customer_trx_line_id);
3221         END IF;
3222 
3223 	RAISE;
3224 
3225 END;
3226 
3227 /*===========================================================================+
3228  | PROCEDURE                                                                 |
3229  |    delete_f_ct_id							     |
3230  |                                                                           |
3231  | DESCRIPTION                                                               |
3232  |    This procedure deletes the ra_customer_trx_lines rows identified by    |
3233  |    the p_customer_trx_id parameter.					     |
3234  |                                                                           |
3235  | SCOPE - PUBLIC                                                            |
3236  |                                                                           |
3237  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
3238  |    arp_util.debug                                                         |
3239  |                                                                           |
3240  | ARGUMENTS  : IN:                                                          |
3241  |                    p_customer_trx_id  - identifies the rows to delete     |
3242  |              OUT:                                                         |
3243  |                    None						     |
3244  |                                                                           |
3245  | RETURNS    : NONE                                                         |
3246  |                                                                           |
3247  | NOTES                                                                     |
3248  |                                                                           |
3249  | MODIFICATION HISTORY                                                      |
3250  |     07-JUN-95  Charlie Tomberg     Created                                |
3251  |                                                                           |
3252  +===========================================================================*/
3253 
3254 procedure delete_f_ct_id( p_customer_trx_id  IN
3255                                 ra_customer_trx.customer_trx_id%type)
3256        IS
3257 
3258 --{BUG#3339072
3259 l_ctl_key_list  gl_ca_utility_pkg.r_key_value_arr;
3260 --}
3261 
3262 BEGIN
3263 
3264 
3265    IF PG_DEBUG in ('Y', 'C') THEN
3266       arp_util.debug(  'arp_ctl_pkg.delete_f_ct_id()+');
3267    END IF;
3268 
3269    DELETE FROM ra_customer_trx_lines
3270    WHERE       customer_trx_id = p_customer_trx_id
3271    --{BUG#3339072
3272    RETURNING customer_trx_line_id
3273    BULK COLLECT INTO l_ctl_key_list;
3274    --}
3275 
3276    IF PG_DEBUG in ('Y', 'C') THEN
3277       arp_util.debug(  'arp_ctl_pkg.delete_f_ct_id()-');
3278    END IF;
3279 
3280 EXCEPTION
3281     WHEN OTHERS THEN
3282         IF PG_DEBUG in ('Y', 'C') THEN
3283            arp_util.debug(  'EXCEPTION:  arp_ctl_pkg.delete_f_ct_id()');
3284            arp_util.debug(  '');
3285            arp_util.debug(  '-------- parameters for delete_f_ct_id() ------');
3286            arp_util.debug(  'p_customer_trx_id  = ' ||
3287                        p_customer_trx_id);
3288         END IF;
3289 
3290 	RAISE;
3291 
3292 END;
3293 
3294 
3295 /*===========================================================================+
3296  | PROCEDURE                                                                 |
3297  |    delete_f_ltctl_id							     |
3298  |                                                                           |
3299  | DESCRIPTION                                                               |
3300  |    This procedure deletes the child ra_customer_trx_lines rows identified |
3301  |    by the p_link_to_cust_trx_line_id	parameter.			     |
3302  |                                                                           |
3303  | SCOPE - PUBLIC                                                            |
3304  |                                                                           |
3305  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
3306  |    arp_util.debug                                                         |
3307  |                                                                           |
3308  | ARGUMENTS  : IN:                                                          |
3309  |               p_link_to_cust_trx_line_id  - identifies the rows to delete |
3310  |              OUT:                                                         |
3311  |               None							     |
3312  |                                                                           |
3313  | RETURNS    : NONE                                                         |
3314  |                                                                           |
3315  | NOTES                                                                     |
3316  |                                                                           |
3317  | MODIFICATION HISTORY                                                      |
3318  |     25-JUN-95  Charlie Tomberg     Created                                |
3319  |                                                                           |
3320  +===========================================================================*/
3321 
3322 procedure delete_f_ltctl_id( p_link_to_cust_trx_line_id	IN
3323                           ra_customer_trx_lines.link_to_cust_trx_line_id%type)
3324        IS
3325 --{BUG#3339072
3326 l_ctl_key_list  gl_ca_utility_pkg.r_key_value_arr;
3327 --}
3328 
3329 BEGIN
3330 
3331 
3332    IF PG_DEBUG in ('Y', 'C') THEN
3333       arp_util.debug(  'arp_ctl_pkg.delete_f_ltctl_id()+');
3334    END IF;
3335 
3336    DELETE FROM ra_customer_trx_lines
3337    WHERE       link_to_cust_trx_line_id = p_link_to_cust_trx_line_id
3338    --{BUG#3339072
3339    RETURNING customer_trx_line_id
3340    BULK COLLECT INTO l_ctl_key_list;
3341    --}
3342 
3343    IF PG_DEBUG in ('Y', 'C') THEN
3344       arp_util.debug(  'arp_ctl_pkg.delete_f_ltctl_id()-');
3345    END IF;
3346 
3347 EXCEPTION
3348     WHEN OTHERS THEN
3349         IF PG_DEBUG in ('Y', 'C') THEN
3350            arp_util.debug(  'EXCEPTION:  arp_ctl_pkg.delete_f_ltctl_id()');
3351            arp_util.debug(  '');
3352            arp_util.debug(  '-------- parameters for delete_f_ltctl_id() ------');
3353            arp_util.debug(  'p_link_to_cust_trx_line_id = ' ||
3354                        p_link_to_cust_trx_line_id);
3355         END IF;
3356 
3357 	RAISE;
3358 
3359 END;
3360 
3361 /*===========================================================================+
3362  | PROCEDURE                                                                 |
3363  |    delete_f_ct_ltctl_id_type                                              |
3364  |                                                                           |
3365  | DESCRIPTION                                                               |
3366  |    This procedure deletes the child ra_customer_trx_lines rows identified |
3367  |    by the p_customer_trx_id, p_link_to_cust_trx_line_id and p_line_type   |
3368  |                                                                           |
3369  | SCOPE - PUBLIC                                                            |
3370  |                                                                           |
3371  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
3372  |    arp_util.debug                                                         |
3373  |                                                                           |
3374  | ARGUMENTS  : IN:                                                          |
3375  |               p_customer_trx_id           - identifies the transaction    |
3376  |               p_link_to_cust_trx_line_id  - identifies the parent line    |
3377  |               p_line_type                 - identifies the parent line    |
3378  |                                             type                          |
3379  |              OUT:                                                         |
3380  |               None                                                        |
3381  |                                                                           |
3382  | RETURNS    : NONE                                                         |
3383  |                                                                           |
3384  |                                                                           |
3385  | NOTES                                                                     |
3386  |                                                                           |
3387  | MODIFICATION HISTORY                                                      |
3388  |     14-SEP-95  Subash Chadalavada  Created                                |
3389  |                                                                           |
3390  +===========================================================================*/
3391 
3392 procedure delete_f_ct_ltctl_id_type(
3393                p_customer_trx_id           IN
3394                           ra_customer_trx.customer_trx_id%type,
3395                p_link_to_cust_trx_line_id  IN
3396                           ra_customer_trx_lines.link_to_cust_trx_line_id%type,
3397                p_line_type                 IN
3398                           ra_customer_trx_lines.line_type%type DEFAULT NULL)
3399 IS
3400 --{BUG#3339072
3401 l_ctl_key_list  gl_ca_utility_pkg.r_key_value_arr;
3402 --}
3403 
3404 BEGIN
3405 
3406    IF PG_DEBUG in ('Y', 'C') THEN
3407       arp_util.debug(  'arp_ctl_pkg.delete_f_ct_ltctl_id_type()+');
3408    END IF;
3409 
3410    DELETE FROM ra_customer_trx_lines
3411    WHERE  customer_trx_id = p_customer_trx_id
3412    AND    decode(p_link_to_cust_trx_line_id,
3413             null, -99,
3414             customer_trx_line_id)  = nvl(p_link_to_cust_trx_line_id, -99)
3415    AND    line_type = nvl(p_line_type, line_type)
3416    --{BUG#3339072
3417    RETURNING customer_trx_line_id
3418    BULK COLLECT INTO l_ctl_key_list;
3419    --}
3420 
3421    IF PG_DEBUG in ('Y', 'C') THEN
3422       arp_util.debug(  'arp_ctl_pkg.delete_f_ct_ltctl_id_type()-');
3423    END IF;
3424 
3425 EXCEPTION
3426     WHEN OTHERS THEN
3427         IF PG_DEBUG in ('Y', 'C') THEN
3428            arp_util.debug(  'EXCEPTION:  arp_ctl_pkg.delete_f_ct_ltctl_id_type()');
3429            arp_util.debug(  '');
3430            arp_util.debug(  '---- parameters for delete_f_ct_ltctl_id_type() -----');
3431            arp_util.debug(  'p_customer_trx_id          = ' || p_customer_trx_id);
3432            arp_util.debug(  'p_link_to_cust_trx_line_id = ' ||
3433                                                  p_link_to_cust_trx_line_id);
3434            arp_util.debug(  'p_line_type                = ' || p_line_type);
3435         END IF;
3436 
3437         RAISE;
3438 END;
3439 
3440 
3441 /*===========================================================================+
3442  | PROCEDURE                                                                 |
3443  |    update_p								     |
3444  |                                                                           |
3445  | DESCRIPTION                                                               |
3446  |    This procedure updates the ra_customer_trx_lines row identified by the |
3447  |    p_customer_trx_line_id parameter.					     |
3448  |                                                                           |
3449  | SCOPE - PUBLIC                                                            |
3450  |                                                                           |
3451  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
3452  |    arp_util.debug                                                         |
3453  |                                                                           |
3454  | ARGUMENTS  : IN:                                                          |
3455  |                    p_customer_trx_line_id  - identifies the row to update |
3456  |                    p_line_rec            - contains the new column values |
3457  |                    p_currency_code         - transaction's currency code  |
3458  |              OUT:                                                         |
3459  |                    None						     |
3460  |                                                                           |
3461  | RETURNS    : NONE                                                         |
3462  |                                                                           |
3463  | NOTES                                                                     |
3464  |     set_to_dummy must be called before the values in p_line_rec are       |
3465  |     changed and this function is called.				     |
3466  |                                                                           |
3467  | MODIFICATION HISTORY                                                      |
3468  |     06-JUN-95  Charlie Tomberg     Created                                |
3469  |                                                                           |
3470  +===========================================================================*/
3471 
3472 PROCEDURE update_p( p_line_rec IN ra_customer_trx_lines%rowtype,
3473                     p_customer_trx_line_id IN
3474                            ra_customer_trx_lines.customer_trx_line_id%type,
3475                     p_currency_code        IN fnd_currencies.currency_code%type
3476                                               DEFAULT NULL ) IS
3477 
3478    l_currency_code fnd_currencies.currency_code%type;
3479 
3480 BEGIN
3481 
3482    IF PG_DEBUG in ('Y', 'C') THEN
3483       arp_util.debug(  'arp_ctl_pkg.update_p()+  ' ||
3484                       to_char(sysdate, 'HH:MI:SS'));
3485    END IF;
3486 
3487   /*---------------------------------------------------------------+
3488    |  Get the transaction's currency code if it was not passed in  |
3489    +---------------------------------------------------------------*/
3490 
3491    IF (p_currency_code IS NULL)
3492    THEN
3493           SELECT ct.invoice_currency_code
3494           INTO   l_currency_code
3495           FROM   ra_customer_trx ct,
3496                  ra_customer_trx_lines ctl
3497           WHERE  ct.customer_trx_id       = ctl.customer_trx_id
3498           AND    ctl.customer_trx_line_id = p_customer_trx_line_id;
3499    ELSE   l_currency_code := p_currency_code;
3500    END IF;
3501 
3502    IF PG_DEBUG in ('Y', 'C') THEN
3503       arp_util.debug(  'using currency code: ' || l_currency_code );
3504    END IF;
3505 
3506    arp_ctl_pkg.generic_update(  pg_cursor1,
3507 			       ' WHERE customer_trx_line_id = :where_1 ' ||
3508                                ' AND :where_line_type is null',
3509                                p_customer_trx_line_id,
3510                                null,
3511                                l_currency_code,
3512                                p_line_rec);
3513 
3514    IF PG_DEBUG in ('Y', 'C') THEN
3515       arp_util.debug(  'arp_ctl_pkg.update_p()-  ' ||
3516                       to_char(sysdate, 'HH:MI:SS'));
3517    END IF;
3518 
3519 
3520 EXCEPTION
3521     WHEN OTHERS THEN
3522         IF PG_DEBUG in ('Y', 'C') THEN
3523            arp_util.debug(  'EXCEPTION:  arp_ctl_pkg.update_p()');
3524            arp_util.debug(  '');
3525            arp_util.debug(  '-------- parameters for update_p() ------');
3526            arp_util.debug(  'p_customer_trx_line_id  = ' ||
3527                        p_customer_trx_line_id);
3528            arp_util.debug(  'p_currency_code         = ' || p_currency_code);
3529         END IF;
3530         display_line_rec(p_line_rec);
3531 
3532         RAISE;
3533 END;
3534 
3535 /*===========================================================================+
3536  | PROCEDURE                                                                 |
3537  |    update_f_ct_id							     |
3538  |                                                                           |
3539  | DESCRIPTION                                                               |
3540  |    This procedure updates the ra_customer_trx_lines rows identified by the|
3541  |    p_customer_trx_id parameter.					     |
3542  |                                                                           |
3543  | SCOPE - PUBLIC                                                            |
3544  |                                                                           |
3545  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
3546  |    arp_util.debug                                                         |
3547  |                                                                           |
3548  | ARGUMENTS  : IN:                                                          |
3549  |                    p_customer_trx_id     - identifies the rows to update  |
3550  |                    p_line_rec            - contains the new column values |
3551  |                    p_line_type         - value is used to restrict update |
3552  |                    p_currency_code         - transaction's currency code  |
3553  |              OUT:                                                         |
3554  |                    None						     |
3555  |                                                                           |
3556  | RETURNS    : NONE                                                         |
3557  |                                                                           |
3558  | NOTES                                                                     |
3559  |     set_to_dummy must be called before the values in p_line_rec are       |
3560  |     changed and this function is called.				     |
3561  |                                                                           |
3562  | MODIFICATION HISTORY                                                      |
3563  |     06-JUN-95  Charlie Tomberg     Created                                |
3564  |                                                                           |
3565  +===========================================================================*/
3566 
3567 PROCEDURE update_f_ct_id( p_line_rec IN ra_customer_trx_lines%rowtype,
3568                           p_customer_trx_id  IN
3569                                 ra_customer_trx_lines.customer_trx_id%type,
3570                           p_line_type IN
3571                             ra_customer_trx_lines.line_type%type default null,
3572                           p_currency_code IN fnd_currencies.currency_code%type
3573                                              DEFAULT NULL)  IS
3574 
3575    l_where varchar2(500);
3576    l_currency_code fnd_currencies.currency_code%type;
3577 
3578 BEGIN
3579 
3580    IF PG_DEBUG in ('Y', 'C') THEN
3581       arp_util.debug(  'arp_ctl_pkg.update_f_ct_id()+  ' ||
3582                       to_char(sysdate, 'HH:MI:SS'));
3583    END IF;
3584 
3585 
3586 
3587   /*---------------------------------------------------------------+
3588    |  Get the transaction's currency code if it was not passed in  |
3589    +---------------------------------------------------------------*/
3590 
3591    IF (p_currency_code IS NULL)
3592    THEN
3593           SELECT ct.invoice_currency_code
3594           INTO   l_currency_code
3595           FROM   ra_customer_trx ct
3596           WHERE  ct.customer_trx_id = p_customer_trx_id;
3597    ELSE   l_currency_code := p_currency_code;
3598    END IF;
3599 
3600    IF PG_DEBUG in ('Y', 'C') THEN
3601       arp_util.debug(  'using currency code: ' || l_currency_code );
3602    END IF;
3603 
3604 
3605    l_where := ' WHERE customer_trx_id = :where_1 ' ||
3606             'AND  line_type = nvl(:where_line_type, line_type)';
3607 
3608    arp_ctl_pkg.generic_update( pg_cursor2,
3609 			       l_where,
3610                                p_customer_trx_id,
3611                                p_line_type,
3612                                l_currency_code,
3613                                p_line_rec);
3614 
3615    IF PG_DEBUG in ('Y', 'C') THEN
3616       arp_util.debug(  'arp_ctl_pkg.update_f_ct_id()-  ' ||
3617                       to_char(sysdate, 'HH:MI:SS'));
3618    END IF;
3619 
3620 
3621 EXCEPTION
3622     WHEN OTHERS THEN
3623         IF PG_DEBUG in ('Y', 'C') THEN
3624            arp_util.debug(  'EXCEPTION:  arp_ctl_pkg.update_f_ct_id()');
3625            arp_util.debug(  '');
3626            arp_util.debug(  '-------- parameters for update_f_ct_id() ------');
3627            arp_util.debug(  'p_customer_trx_id  = ' ||
3628                        p_customer_trx_id);
3629            arp_util.debug(  'p_line_type        = ' || p_line_type);
3630            arp_util.debug(  'p_currency_code    = ' || p_currency_code);
3631         END IF;
3632         display_line_rec(p_line_rec);
3633 
3634         RAISE;
3635 END;
3636 
3637 
3638 /*===========================================================================+
3639  | PROCEDURE                                                                 |
3640  |    update_amount_f_ctl_id                                                 |
3641  |                                                                           |
3642  | DESCRIPTION                                                               |
3643  |    This procedure updates the amounts in a record in ra_customer_trx_lines|
3644  |    The columns affected are: extended_amount, unit_selling_price,         |
3645  |    gross_extended_amount, and gross_unit_selling_price.                   |
3646  |    These are adjustments made for inclusive tax amounts.                  |
3647  |    This function is used when the amounts are gross of inclusive tax.     |
3648  |    Regular invoice lines should use this. Applied credit memo lines       |
3649  |    should use the function update_cm_amount_f_ctl_id.                     |
3650  |                                                                           |
3651  | SCOPE - PUBLIC                                                            |
3652  |                                                                           |
3653  | ARGUMENTS : IN : p_customer_trx_line_id                                   |
3654  |                  p_inclusive_amt        --- Inclusive tax amount          |
3655  |             OUT: p_new_extended_amt     --- New net price                 |
3656  |                  p_new_unit_selling_price --- New unit selling price      |
3657  |                                                                           |
3658  | NOTES                                                                     |
3659  |                                                                           |
3660  | HISTORY                                                                   |
3661  |    18-Aug-97   Kenichi Mizuta    Created.                                 |
3662  |    14-FEB-03   M Raymond         Bug 2772387 - preventing ORA-1476 errors
3663  |                                  when quantity invoiced is zero and
3664  |                                  tax compounding is in use.
3665  |    20-FEB-2003 NIPATEL           Bug 2772387 - Per PM inputs, will not
3666  |                                  adjutst Unit Selling Price when quantity is
3667  |                                  zero in update_amount_f_ctl_id
3668  |                                                                           |
3669  +===========================================================================*/
3670 PROCEDURE update_amount_f_ctl_id(
3671 		p_customer_trx_line_id	IN Number,
3672 		p_inclusive_amt		IN Number,
3673 		p_new_extended_amt	OUT NOCOPY Number,
3674 		p_new_unit_selling_price OUT NOCOPY Number,
3675 		p_precision		IN Number,
3676 		p_min_acct_unit		IN Number) IS
3677 cursor c is select
3678 	quantity_invoiced,
3679 	quantity_credited,
3680 	extended_amount,
3681 	unit_selling_price,
3682 	gross_extended_amount,
3683 	gross_unit_selling_price,
3684 	revenue_amount
3685 		from
3686 	ra_customer_trx_lines
3687 		where
3688 	customer_trx_line_id = p_customer_trx_line_id for update;
3689 crow	c%rowtype;
3690 l_extended_amount	ra_customer_trx_lines.extended_amount%type;
3691 l_unit_selling_price	ra_customer_trx_lines.unit_selling_price%type;
3692 l_gross_extended_amount		ra_customer_trx_lines.gross_extended_amount%type;
3693 l_gross_unit_selling_price	ra_customer_trx_lines.gross_unit_selling_price%type;
3694 l_revenue_amount	ra_customer_trx_lines.revenue_amount%type;
3695 l_old_inclusive_amt	ra_customer_trx_lines.extended_amount%type;
3696 l_qty                   ra_customer_trx_lines.quantity_invoiced%type;
3697 begin
3698 	IF PG_DEBUG in ('Y', 'C') THEN
3699 	   arp_util.debug(  'arp_ctl_pkg.update_amount_f_ctl_id('
3700 				|| to_char(p_customer_trx_line_id) || ','
3701 				|| to_char(p_inclusive_amt)
3702 				||')+');
3703 	END IF;
3704 
3705 	begin
3706 		open c;
3707 		fetch c into crow;
3708 
3709 		-- On insert old inclusive should be 0, since gross amount should be null.
3710 		l_old_inclusive_amt := nvl(crow.gross_extended_amount, crow.extended_amount) - crow.extended_amount;
3711                 l_extended_amount := nvl(crow.gross_extended_amount, crow.extended_amount) - p_inclusive_amt;
3712 
3713                /*  Bugfix 2772387: do not adjust the unit selling proce when quantity is zero */
3714 
3715                 l_qty := nvl(crow.quantity_invoiced, crow.quantity_credited);
3716 
3717                 if (l_qty = 0 OR l_qty is NULL)then
3718 
3719                   l_unit_selling_price := crow.unit_selling_price;
3720 
3721                 elsif (p_min_acct_unit is NULL) then
3722                   l_unit_selling_price :=
3723                                 round(l_extended_amount/
3724                                         l_qty,
3725                                         p_precision+2);
3726                 else
3727                   l_unit_selling_price :=
3728                                 round(l_extended_amount/
3729                                         l_qty
3730                                         /p_min_acct_unit/100)
3731                                         *100*p_min_acct_unit;
3732                 end if;
3733 
3734 
3735 		l_gross_extended_amount :=
3736 			nvl(crow.gross_extended_amount, crow.extended_amount);
3737 		l_gross_unit_selling_price :=
3738 			nvl(crow.gross_unit_selling_price, crow.unit_selling_price);
3739 		l_revenue_amount := crow.revenue_amount +
3740                    l_old_inclusive_amt - p_inclusive_amt;
3741 
3742                 /* 5487466 - if inclusive tax to be removed, clear
3743                    gross_ columns */
3744                 IF (p_inclusive_amt = 0)
3745                 THEN
3746                    l_gross_extended_amount := NULL;
3747                    l_gross_unit_selling_price := NULL;
3748                 END IF;
3749 
3750 		update ra_customer_trx_lines
3751 			set
3752 		extended_amount = l_extended_amount,
3753 		unit_selling_price = l_unit_selling_price,
3754 		gross_extended_amount = l_gross_extended_amount,
3755 		gross_unit_selling_price = l_gross_unit_selling_price,
3756 		revenue_amount = l_revenue_amount
3757 			where current of c;
3758 
3759 
3760 		close c;
3761 	end;
3762 
3763 	p_new_extended_amt := l_extended_amount;
3764 	p_new_unit_selling_price := l_unit_selling_price;
3765 
3766 	IF PG_DEBUG in ('Y', 'C') THEN
3767 	   arp_util.debug(  'arp_ctl_pkg.update_amount_f_ctl_id('
3768 				|| to_char(l_extended_amount) || ','
3769 				|| to_char(l_unit_selling_price)
3770 				||')-');
3771 	END IF;
3772 exception
3773 when others then
3774   if c%isopen then
3775     close c;
3776   end if;
3777 
3778   IF PG_DEBUG in ('Y', 'C') THEN
3779      arp_util.debug(  'arp_ctl_pkg.update_amount_f_ctl_id(EXCEPTION)-');
3780   END IF;
3781   raise;
3782 end update_amount_f_ctl_id;
3783 
3784 /*===========================================================================+
3785  | PROCEDURE                                                                 |
3786  |    update_cm_amount_f_ctl_id                                              |
3787  |                                                                           |
3788  | DESCRIPTION                                                               |
3789  |    This procedure updates the amounts in a record in ra_customer_trx_lines|
3790  |    The columns affected are: extended_amount, unit_selling_price,         |
3791  |    gross_extended_amount, and gross_unit_selling_price.                   |
3792  |    These are adjustments made for inclusive tax amounts.                  |
3793  |    This function is used when the amounts are net of inclusive tax.       |
3794  |    Applied credit memo lines - use this function.                         |
3795  |                                                                           |
3796  | SCOPE - PUBLIC                                                            |
3797  |                                                                           |
3798  | ARGUMENTS : IN : p_customer_trx_line_id                                   |
3799  |                  p_inclusive_amt        --- Inclusive tax amount          |
3800  |             OUT: p_new_gross_extended_amt     --- New gross price         |
3801  |                  p_new_gross_unit_selling_price --- New gross selling pric|
3802  |                                                                           |
3803  | NOTES                                                                     |
3804  |                                                                           |
3805  | HISTORY                                                                   |
3806  |    18-Aug-97   Kenichi Mizuta    Created.                                 |
3807  |                                                                           |
3808  +===========================================================================*/
3809 
3810 PROCEDURE update_cm_amount_f_ctl_id(
3811 	p_customer_trx_line_id IN Number,
3812 	p_inclusive_amount IN Number,
3813 	p_new_gross_extended_amount OUT NOCOPY Number,
3814 	p_new_gross_unit_selling_price OUT NOCOPY Number,
3815 	p_precision IN Number,
3816 	p_min_acct_unit IN Number) IS
3817 cursor c is select
3818 	cm.quantity_credited quantity_credited,
3819 	cm.quantity_invoiced quantity_invoiced,
3820 	cm.extended_amount extended_amount,
3821 	cm.unit_selling_price unit_selling_price,
3822 	cm.gross_extended_amount gross_extended_amount,
3823 	cm.gross_unit_selling_price gross_unit_selling_price,
3824 	cm.previous_customer_trx_line_id previous_customer_trx_line_id
3825 		from
3826 	ra_customer_trx_lines cm
3827 		where
3828 	customer_trx_line_id = p_customer_trx_line_id for update;
3829 cursor cinv(p_line_id IN number) is select
3830 	inv.gross_unit_selling_price gross_unit_selling_price
3831 		from
3832 	ra_customer_trx_lines inv
3833 		where
3834 	customer_trx_line_id = p_line_id;
3835 
3836 crow	c%rowtype;
3837 l_extended_amount	ra_customer_trx_lines.extended_amount%type;
3838 l_unit_selling_price	ra_customer_trx_lines.unit_selling_price%type;
3839 l_gross_extended_amount		ra_customer_trx_lines.gross_extended_amount%type;
3840 l_gross_unit_selling_price	ra_customer_trx_lines.gross_unit_selling_price%type;
3841 l_revenue_amount	ra_customer_trx_lines.revenue_amount%type;
3842 l_old_inclusive_amt	ra_customer_trx_lines.extended_amount%type;
3843 begin
3844 	IF PG_DEBUG in ('Y', 'C') THEN
3845 	   arp_util.debug(  'arp_ctl_pkg.update_cm_amount_f_ctl_id('
3846 				|| to_char(p_customer_trx_line_id) || ','
3847 				|| to_char(p_inclusive_amount)
3848 				||')+');
3849 	END IF;
3850 
3851 	begin
3852 		open c;
3853 		fetch c into crow;
3854 
3855 		l_extended_amount := crow.extended_amount;
3856 		if ( p_inclusive_amount is null ) OR
3857                    ( p_inclusive_amount = 0 )
3858                 then
3859 		  IF PG_DEBUG in ('Y', 'C') THEN
3860 		     arp_util.debug(  'arp_ctl_pkg.update_cm_amount_f_ctl_id: '||
3861 				'No Inclusive Tax Amounts');
3862 		  END IF;
3863 
3864 		  l_gross_extended_amount := null;
3865 		  l_gross_unit_selling_price := null;
3866 		else
3867 		  IF PG_DEBUG in ('Y', 'C') THEN
3868 		     arp_util.debug(  'arp_ctl_pkg.update_cm_amount_f_ctl_id: '||
3869 				'Inclusive Amount = '||to_char(p_inclusive_amount));
3870 		     arp_util.debug(  'arp_ctl_pkg.update_cm_amount_f_ctl_id: '||
3871 				'Quantity = '||nvl(to_char(crow.quantity_credited), 'NULL'));
3872 		     arp_util.debug(  'arp_ctl_pkg.update_cm_amount_f_ctl_id: '||
3873 				'Precision = '||nvl(to_char(p_precision), 'NULL'));
3874 		     arp_util.debug(  'arp_ctl_pkg.update_cm_amount_f_ctl_id: '||
3875 				'MAU = '||nvl(to_char(p_min_acct_unit), 'NULL'));
3876 		  END IF;
3877 
3878 		  l_gross_extended_amount := crow.extended_amount + p_inclusive_amount;
3879 		  if ( crow.quantity_credited = 0 ) then
3880 		  begin
3881 			open cinv(crow.previous_customer_trx_line_id);
3882 			fetch cinv into l_gross_unit_selling_price;
3883 			close cinv;
3884 		  exception
3885 		  when others then
3886 			IF PG_DEBUG in ('Y', 'C') THEN
3887 			   arp_util.debug(  'EXCPETION: Unable to fetch original invoice');
3888 			END IF;
3889 			raise;
3890 		  end;
3891 		  elsif ( crow.unit_selling_price is null ) then
3892 			IF PG_DEBUG in ('Y', 'C') THEN
3893 			   arp_util.debug(  'arp_ctl_pkg.update_cm_amount_f_ctl_id: NO unit selling price');
3894 			END IF;
3895 			l_gross_unit_selling_price := null;
3896 		  elsif (p_min_acct_unit is null) then
3897 			IF PG_DEBUG in ('Y', 'C') THEN
3898 			   arp_util.debug(  'arp_ctl_pkg.update_cm_amount_f_ctl_id: Rounding to precision');
3899 			END IF;
3900 			l_gross_unit_selling_price :=
3901 				round(l_gross_extended_amount / crow.quantity_credited, p_precision+2);
3902 		  else
3903 			IF PG_DEBUG in ('Y', 'C') THEN
3904 			   arp_util.debug(  'arp_ctl_pkg.update_cm_amount_f_ctl_id: Rounding to MAU');
3905 			END IF;
3906 			l_gross_unit_selling_price :=
3907 				round(l_gross_extended_amount / crow.quantity_credited / p_min_acct_unit / 100)
3908 					* 100 * p_min_acct_unit;
3909 		  end if;
3910 		end if;
3911 
3912 		update ra_customer_trx_lines
3913 			set
3914 		gross_extended_amount = l_gross_extended_amount,
3915 		gross_unit_selling_price = l_gross_unit_selling_price
3916 			where current of c;
3917 
3918 		close c;
3919 	end;
3920 
3921 	p_new_gross_extended_amount := l_gross_extended_amount;
3922 	p_new_gross_unit_selling_price := l_gross_unit_selling_price;
3923 
3924 	IF PG_DEBUG in ('Y', 'C') THEN
3925 	   arp_util.debug(  'arp_ctl_pkg.update_cm_amount_f_ctl_id('
3926 				|| to_char(l_gross_extended_amount) || ','
3927 				|| to_char(l_gross_unit_selling_price)
3928 				||')-');
3929 	END IF;
3930 
3931 exception
3932 when others then
3933   if c%isopen then
3934     close c;
3935   end if;
3936 
3937   IF PG_DEBUG in ('Y', 'C') THEN
3938      arp_util.debug(  'arp_ctl_pkg.update_cm_amount_f_ctl_id(EXCEPTION)-');
3939   END IF;
3940   raise;
3941 end update_cm_amount_f_ctl_id;
3942 
3943 
3944 
3945 /*===========================================================================+
3946  | PROCEDURE                                                                 |
3947  |    insert_p								     |
3948  |                                                                           |
3949  | DESCRIPTION                                                               |
3950  |    This procedure inserts a row into ra_customer_trx_lines that contains  |
3951  |    the column values specified in the p_trx_rec parameter. 		     |
3952  |                                                                           |
3953  | SCOPE - PUBLIC                                                            |
3954  |                                                                           |
3955  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
3956  |    arp_util.debug                                                         |
3957  |    arp_global.set_of_books_id					     |
3958  |                                                                           |
3959  | ARGUMENTS  : IN:                                                          |
3960  |                    p_line_rec            - contains the new column values |
3961  |              OUT:                                                         |
3962  |                    p_customer_trx_line_id    - unique ID of the new row   |
3963  |                                                                           |
3964  | RETURNS    : NONE                                                         |
3965  |                                                                           |
3966  | NOTES                                                                     |
3967  |                                                                           |
3968  | MODIFICATION HISTORY                                                      |
3969  |     06-JUN-95  Charlie Tomberg     Created                                |
3970  |                                                                           |
3971  |     Rel. 11 Changes:							     |
3972  |     ----------------							     |
3973  |     07-22-97   OSTEINME		added code to handle three new       |
3974  |					database columns:                    |
3975  |					  - gross_unit_selling_price         |
3976  |					  - gross_extended_amount            |
3977  |					  - amount_includes_tax_flag         |
3978  |                                                                           |
3979  |     08-20-97   KTANG                 handle global_attribute_category and |
3980  |                                      global_attribute[1-20] for global    |
3981  |                                      descriptive flexfield                |
3982  |                                                                           |
3983  |                                                                           |
3984  |     10-JAN-99 Saloni Shah            added warehouse_id for global tax    |
3985  |                                      engine change                        |
3986  |     17-MAR-99 Debbie Jancis          added translated description for     |
3987  |                                      MLS changes                          |
3988  |                                                                           |
3989  | 20-MAR-2000  J Rautiainen    Added BR project related columns             |
3990  |                              EXTENDED_ACCTD_AMOUNT,BR_REF_CUSTOMER_TRX_ID,|
3991  |                              BR_REF_PAYMENT_SCHEDULE_ID, BR_ADJUSTMENT_ID |
3992  |                              into table handlers                          |
3993  |									     |
3994  | 31-OCT-2000 Y Rakotonirainy	Bug 1243304 : Added column wh_update_date    |
3995  | 					      into the table handlers. 	     |
3996  | 07-Apr-2005 Debbie Sue Jancis ETAX:  Added SHIP_TO Id columns to support  |
3997  |                               ship to at the line level. Also added       |
3998  |                               tax_Code                                    |
3999  | 23-Dec-2005 Gyanajyothi      Added Rule End date for Daily Rate Rule types
4000  |                              commented the changes for Bug 4410461
4001  +===========================================================================*/
4002 
4003 PROCEDURE insert_p(
4004                     p_line_rec              IN  ra_customer_trx_lines%rowtype,
4005                     p_customer_trx_line_id OUT NOCOPY
4006                                ra_customer_trx_lines.customer_trx_line_id%type
4007                   ) IS
4008 
4009 
4010     l_customer_trx_line_id  ra_customer_trx_lines.customer_trx_line_id%type;
4011     l_revenue_amount        ra_customer_trx_lines.revenue_amount%TYPE;
4012 
4013 BEGIN
4014 
4015     IF PG_DEBUG in ('Y', 'C') THEN
4016        arp_util.debug(  'arp_ctl_pkg.insert_p()+');
4017     END IF;
4018 
4019     p_customer_trx_line_id := '';
4020 
4021     /*---------------------------*
4022      | Get the unique identifier |
4023      *---------------------------*/
4024 	/* Bug 4410461 FP for 4340099: Added the If Condition below */
4025         IF p_line_rec.customer_trx_line_id is null THEN
4026         SELECT RA_CUSTOMER_TRX_LINES_S.NEXTVAL
4027         INTO   l_customer_trx_line_id
4028         FROM   DUAL;
4029         ELSE   l_customer_trx_line_id := p_line_rec.customer_trx_line_id ;
4030         END IF ;
4031 
4032 
4033     /*-------------------*
4034      | Insert the record |
4035      *-------------------*/
4036 
4037 
4038    l_revenue_amount := p_line_rec.revenue_amount;
4039    IF p_line_rec.revenue_amount is NULL
4040    THEN
4041       IF p_line_rec.line_type not in ( 'CHARGES', 'TAX' )
4042       THEN
4043          l_revenue_amount := p_line_rec.extended_amount;
4044       END IF;
4045    END IF;
4046 
4047 
4048    INSERT INTO ra_customer_trx_lines
4049     (
4050       customer_trx_line_id,
4051       customer_trx_id,
4052       line_number,
4053       line_type,
4054       quantity_credited,
4055       quantity_invoiced,
4056       quantity_ordered,
4057       unit_selling_price,
4058       unit_standard_price,
4059       revenue_amount,
4060       extended_amount,
4061       memo_line_id,
4062       inventory_item_id,
4063       item_exception_rate_id,
4064       description,
4065       item_context,
4066       initial_customer_trx_line_id,
4067       link_to_cust_trx_line_id,
4068       previous_customer_trx_id,
4069       previous_customer_trx_line_id,
4070       accounting_rule_duration,
4071       accounting_rule_id,
4072       rule_start_date,
4073       autorule_complete_flag,
4074       autorule_duration_processed,
4075       reason_code,
4076       last_period_to_credit,
4077       sales_order,
4078       sales_order_date,
4079       sales_order_line,
4080       sales_order_revision,
4081       sales_order_source,
4082       vat_tax_id,
4083       tax_exempt_flag,
4084       sales_tax_id,
4085       location_segment_id,
4086       tax_exempt_number,
4087       tax_exempt_reason_code,
4088       tax_vendor_return_code,
4089       taxable_flag,
4090       tax_exemption_id,
4091       tax_precedence,
4092       tax_rate,
4093       uom_code,
4094       autotax,
4095       movement_id,
4096       default_ussgl_transaction_code,
4097       default_ussgl_trx_code_context,
4098       interface_line_context,
4099       interface_line_attribute1,
4100       interface_line_attribute2,
4101       interface_line_attribute3,
4102       interface_line_attribute4,
4103       interface_line_attribute5,
4104       interface_line_attribute6,
4105       interface_line_attribute7,
4106       interface_line_attribute8,
4107       interface_line_attribute9,
4108       interface_line_attribute10,
4109       interface_line_attribute11,
4110       interface_line_attribute12,
4111       interface_line_attribute13,
4112       interface_line_attribute14,
4113       interface_line_attribute15,
4114       attribute_category,
4115       attribute1,
4116       attribute2,
4117       attribute3,
4118       attribute4,
4119       attribute5,
4120       attribute6,
4121       attribute7,
4122       attribute8,
4123       attribute9,
4124       attribute10,
4125       attribute11,
4126       attribute12,
4127       attribute13,
4128       attribute14,
4129       attribute15,
4130       global_attribute_category,
4131       global_attribute1,
4132       global_attribute2,
4133       global_attribute3,
4134       global_attribute4,
4135       global_attribute5,
4136       global_attribute6,
4137       global_attribute7,
4138       global_attribute8,
4139       global_attribute9,
4140       global_attribute10,
4141       global_attribute11,
4142       global_attribute12,
4143       global_attribute13,
4144       global_attribute14,
4145       global_attribute15,
4146       global_attribute16,
4147       global_attribute17,
4148       global_attribute18,
4149       global_attribute19,
4150       global_attribute20,
4151       created_by,
4152       creation_date,
4153       last_updated_by,
4154       last_update_date,
4155       program_application_id,
4156       last_update_login,
4157       program_id,
4158       program_update_date,
4159       set_of_books_id,
4160       gross_unit_selling_price,
4161       gross_extended_amount,
4162       amount_includes_tax_flag,
4163       warehouse_id,
4164       translated_description,
4165       taxable_amount, /* Bug 853757 */
4166       request_id,
4167       extended_acctd_amount,
4168       br_ref_customer_trx_id,
4169       br_ref_payment_schedule_id,
4170       br_adjustment_id,
4171       wh_update_date,
4172       payment_set_id,
4173       org_id,
4174       ship_to_customer_id,
4175       ship_to_site_use_id,
4176       ship_to_contact_id,
4177       tax_classification_code,
4178       historical_flag,
4179       rule_end_date
4180     )
4181    VALUES
4182     (
4183       l_customer_trx_line_id,
4184       p_line_rec.customer_trx_id,
4185       p_line_rec.line_number,
4186       p_line_rec.line_type,
4187       p_line_rec.quantity_credited,
4188       p_line_rec.quantity_invoiced,
4189       p_line_rec.quantity_ordered,
4190       p_line_rec.unit_selling_price,
4191       p_line_rec.unit_standard_price,
4192       l_revenue_amount,
4193       p_line_rec.extended_amount,
4194       p_line_rec.memo_line_id,
4195       p_line_rec.inventory_item_id,
4196       p_line_rec.item_exception_rate_id,
4197       p_line_rec.description,
4198       p_line_rec.item_context,
4199       p_line_rec.initial_customer_trx_line_id,
4200       p_line_rec.link_to_cust_trx_line_id,
4201       p_line_rec.previous_customer_trx_id,
4202       p_line_rec.previous_customer_trx_line_id,
4203       p_line_rec.accounting_rule_duration,
4204       p_line_rec.accounting_rule_id,
4205       p_line_rec.rule_start_date,
4206       p_line_rec.autorule_complete_flag,
4207       p_line_rec.autorule_duration_processed,
4208       p_line_rec.reason_code,
4209       p_line_rec.last_period_to_credit,
4210       p_line_rec.sales_order,
4211       p_line_rec.sales_order_date,
4212       p_line_rec.sales_order_line,
4213       p_line_rec.sales_order_revision,
4214       p_line_rec.sales_order_source,
4215       p_line_rec.vat_tax_id,
4216       p_line_rec.tax_exempt_flag,
4217       p_line_rec.sales_tax_id,
4218       p_line_rec.location_segment_id,
4219       p_line_rec.tax_exempt_number,
4220       p_line_rec.tax_exempt_reason_code,
4221       p_line_rec.tax_vendor_return_code,
4222       p_line_rec.taxable_flag,
4223       p_line_rec.tax_exemption_id,
4224       p_line_rec.tax_precedence,
4225       p_line_rec.tax_rate,
4226       p_line_rec.uom_code,
4227       p_line_rec.autotax,
4228       p_line_rec.movement_id,
4229       p_line_rec.default_ussgl_transaction_code,
4230       p_line_rec.default_ussgl_trx_code_context,
4231       p_line_rec.interface_line_context,
4232       p_line_rec.interface_line_attribute1,
4233       p_line_rec.interface_line_attribute2,
4234       p_line_rec.interface_line_attribute3,
4235       p_line_rec.interface_line_attribute4,
4236       p_line_rec.interface_line_attribute5,
4237       p_line_rec.interface_line_attribute6,
4238       p_line_rec.interface_line_attribute7,
4239       p_line_rec.interface_line_attribute8,
4240       p_line_rec.interface_line_attribute9,
4241       p_line_rec.interface_line_attribute10,
4242       p_line_rec.interface_line_attribute11,
4243       p_line_rec.interface_line_attribute12,
4244       p_line_rec.interface_line_attribute13,
4245       p_line_rec.interface_line_attribute14,
4246       p_line_rec.interface_line_attribute15,
4247       p_line_rec.attribute_category,
4248       p_line_rec.attribute1,
4249       p_line_rec.attribute2,
4250       p_line_rec.attribute3,
4251       p_line_rec.attribute4,
4252       p_line_rec.attribute5,
4253       p_line_rec.attribute6,
4254       p_line_rec.attribute7,
4255       p_line_rec.attribute8,
4256       p_line_rec.attribute9,
4257       p_line_rec.attribute10,
4258       p_line_rec.attribute11,
4259       p_line_rec.attribute12,
4260       p_line_rec.attribute13,
4261       p_line_rec.attribute14,
4262       p_line_rec.attribute15,
4263       p_line_rec.global_attribute_category,
4264       p_line_rec.global_attribute1,
4265       p_line_rec.global_attribute2,
4266       p_line_rec.global_attribute3,
4267       p_line_rec.global_attribute4,
4268       p_line_rec.global_attribute5,
4269       p_line_rec.global_attribute6,
4270       p_line_rec.global_attribute7,
4271       p_line_rec.global_attribute8,
4272       p_line_rec.global_attribute9,
4273       p_line_rec.global_attribute10,
4274       p_line_rec.global_attribute11,
4275       p_line_rec.global_attribute12,
4276       p_line_rec.global_attribute13,
4277       p_line_rec.global_attribute14,
4278       p_line_rec.global_attribute15,
4279       p_line_rec.global_attribute16,
4280       p_line_rec.global_attribute17,
4281       p_line_rec.global_attribute18,
4282       p_line_rec.global_attribute19,
4283       p_line_rec.global_attribute20,
4284       pg_user_id,			/* created_by */
4285       sysdate,                          /* creation_date */
4286       pg_user_id,			/* last_updated_by */
4287       sysdate,				/* last_update_date */
4288       pg_prog_appl_id,			/* program_application_id */
4289       nvl(pg_conc_login_id,
4290           pg_login_id),			/* last_update_login */
4291       pg_conc_program_id,		/* program_id */
4292       sysdate,				/* program_update_date */
4293       arp_global.set_of_books_id,	/* set_of_books_id */
4294       p_line_rec.gross_unit_selling_price,
4295       p_line_rec.gross_extended_amount,
4296       p_line_rec.amount_includes_tax_flag,
4297       p_line_rec.warehouse_id,
4298       p_line_rec.translated_description,
4299       p_line_rec.taxable_amount,
4300       p_line_rec.request_id,
4301       p_line_rec.extended_acctd_amount,
4302       p_line_rec.br_ref_customer_trx_id,
4303       p_line_rec.br_ref_payment_schedule_id,
4304       p_line_rec.br_adjustment_id,
4305       p_line_rec.wh_update_date,
4306       p_line_rec.payment_set_id,
4307       arp_standard.sysparm.org_id, /* SSA changes */
4308       p_line_rec.ship_to_customer_id,
4309       p_line_rec.ship_to_site_use_id,
4310       p_line_rec.ship_to_contact_id,
4311       p_line_rec.tax_classification_code,
4312       nvl(p_line_rec.historical_flag, 'N'),
4313       p_line_rec.rule_end_date
4314     );
4315 
4316    p_customer_trx_line_id          := l_customer_trx_line_id;
4317 
4318    IF PG_DEBUG in ('Y', 'C') THEN
4319       arp_util.debug(  'after insert: amount_includes_tax_flag = ' ||
4320                      p_line_rec.amount_includes_tax_flag);
4321        arp_util.debug(  'after insert: gross_extended_amount = ' ||
4322                      p_line_rec.gross_extended_amount);
4323        arp_util.debug(  'after insert: gross_unit_selling_price = ' ||
4324                      p_line_rec.gross_unit_selling_price);
4325       arp_util.debug(  'arp_ctl_pkg.insert_p()-');
4326    END IF;
4327 
4328 EXCEPTION
4329     WHEN OTHERS THEN
4330         IF PG_DEBUG in ('Y', 'C') THEN
4331            arp_util.debug(  'EXCEPTION:  arp_ctl_pkg.insert_p()');
4332            arp_util.debug(  '');
4333            arp_util.debug(  '-------- parameters for insert_p() ------');
4334         END IF;
4335         display_line_rec(p_line_rec);
4336 
4337 	RAISE;
4338 END;
4339 
4340 /*===========================================================================+
4341  | PROCEDURE                                                                 |
4342  |    display_line_rec                                                       |
4343  |                                                                           |
4344  | DESCRIPTION                                                               |
4345  |    Displays the values of all columns except creation_date and            |
4346  |    last_update_date.                                                      |
4347  |                                                                           |
4348  | SCOPE - PRIVATE                                                           |
4349  |                                                                           |
4350  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
4351  |    arp_util.debug                                                         |
4352  |                                                                           |
4353  | ARGUMENTS  : IN:                                                          |
4354  |                       p_line_rec                                          |
4355  |              OUT:                                                         |
4356  |          IN/ OUT:                                                         |
4357  |                                                                           |
4358  | RETURNS    : NONE                                                         |
4359  |                                                                           |
4360  | NOTES                                                                     |
4361  |                                                                           |
4362  | MODIFICATION HISTORY                                                      |
4363  |     19-JUL-95  Subash C            Created                                |
4364  |                                                                           |
4365  +===========================================================================*/
4366 PROCEDURE display_line_rec(
4367             p_line_rec IN ra_customer_trx_lines%rowtype) IS
4368 BEGIN
4369    IF PG_DEBUG in ('Y', 'C') THEN
4370       arp_util.debug(  'arp_ctl_pkg.display_line_rec()+');
4371    END IF;
4372 
4373    arp_ctl_private_pkg.display_line_rec(p_line_rec);
4374 
4375    IF PG_DEBUG in ('Y', 'C') THEN
4376       arp_util.debug(  'arp_ctl_pkg.display_line_rec()-');
4377    END IF;
4378 END;
4379 
4380 
4381 /*===========================================================================+
4382  | PROCEDURE                                                                 |
4383  |    display_line_p                                                         |
4384  |                                                                           |
4385  | DESCRIPTION                                                               |
4386  |    Displays the values of all columns except creation_date and            |
4387  |    last_update_date.                                                      |
4388  |                                                                           |
4389  | SCOPE - PUBLIC                                                            |
4390  |                                                                           |
4391  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
4392  |    arp_util.debug                                                         |
4393  |                                                                           |
4394  | ARGUMENTS  : IN:                                                          |
4395  |                       p_customer_trx_line_id                              |
4396  |              OUT:                                                         |
4397  |          IN/ OUT:                                                         |
4398  |                                                                           |
4399  | RETURNS    : NONE                                                         |
4400  |                                                                           |
4401  | NOTES                                                                     |
4402  |                                                                           |
4403  | MODIFICATION HISTORY                                                      |
4404  |     19-JUL-95  Subash C            Created                                |
4405  |                                                                           |
4406  +===========================================================================*/
4407 PROCEDURE display_line_p(
4408             p_customer_trx_line_id IN
4409                    ra_customer_trx_lines.customer_trx_line_id%type) IS
4410 BEGIN
4411    IF PG_DEBUG in ('Y', 'C') THEN
4412       arp_util.debug(  'arp_ctl_pkg.display_line_p()+');
4413    END IF;
4414 
4415    arp_ctl_private_pkg.display_line_p(p_customer_trx_line_id);
4416 
4417    IF PG_DEBUG in ('Y', 'C') THEN
4418       arp_util.debug(  'arp_ctl_pkg.display_line_p()-');
4419    END IF;
4420 
4421 END;
4422 
4423 /*===========================================================================+
4424  | PROCEDURE                                                                 |
4425  |    display_line_f_lctl_id						     |
4426  |                                                                           |
4427  | DESCRIPTION                                                               |
4428  |    Displays the values of all columns except creation_date and 	     |
4429  |    last_update_date.							     |
4430  |                                                                           |
4431  | SCOPE - PUBLIC                                                            |
4432  |                                                                           |
4433  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
4434  |    arp_util.debug                                                         |
4435  |                                                                           |
4436  | ARGUMENTS  : IN:                                                          |
4437  |		      p_link_to_cust_trx_line_id			     |
4438  |              OUT:                                                         |
4439  |		      None						     |
4440  |          IN/ OUT:							     |
4441  |                    None						     |
4442  |                                                                           |
4443  | RETURNS    : NONE                                                         |
4444  |                                                                           |
4445  | NOTES                                                                     |
4446  |                                                                           |
4447  | MODIFICATION HISTORY                                                      |
4448  |     03-AUG-95  Charlie Tomberg     Created                                |
4449  |                                                                           |
4450  +===========================================================================*/
4451 
4452 
4453 PROCEDURE display_line_f_lctl_id(  p_link_to_cust_trx_line_id IN
4454                          ra_customer_trx_lines.link_to_cust_trx_line_id%type)
4455                    IS
4456 BEGIN
4457 
4458    IF PG_DEBUG in ('Y', 'C') THEN
4459       arp_util.debug(  'arp_ctl_pkg.display_line_f_lctl_id()+');
4460    END IF;
4461 
4462    arp_ctl_private_pkg.display_line_f_lctl_id( p_link_to_cust_trx_line_id );
4463 
4464    IF PG_DEBUG in ('Y', 'C') THEN
4465       arp_util.debug(  'arp_ctl_pkg.display_line_f_lctl_id()-');
4466    END IF;
4467 
4468 END;
4469 
4470 
4471 /*===========================================================================+
4472  | PROCEDURE                                                                 |
4473  |    display_line_f_ct_id						     |
4474  |                                                                           |
4475  | DESCRIPTION                                                               |
4476  |    Displays the values of all columns except creation_date and 	     |
4477  |    last_update_date.							     |
4478  |                                                                           |
4479  | SCOPE - PUBLIC                                                            |
4480  |                                                                           |
4481  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
4482  |    arp_util.debug                                                         |
4483  |                                                                           |
4484  | ARGUMENTS  : IN:                                                          |
4485  |		      p_customer_trx_id					     |
4486  |              OUT:                                                         |
4487  |		      None						     |
4488  |          IN/ OUT:							     |
4489  |                    None						     |
4490  |                                                                           |
4491  | RETURNS    : NONE                                                         |
4492  |                                                                           |
4493  | NOTES                                                                     |
4494  |                                                                           |
4495  | MODIFICATION HISTORY                                                      |
4496  |     08-AUG-95  Charlie Tomberg     Created                                |
4497  |                                                                           |
4498  +===========================================================================*/
4499 
4500 
4501 PROCEDURE display_line_f_ct_id(  p_customer_trx_id IN
4502                                         ra_customer_trx.customer_trx_id%type )
4503                    IS
4504 BEGIN
4505 
4506    IF PG_DEBUG in ('Y', 'C') THEN
4507       arp_util.debug(  'arp_ctl_pkg.display_line_f_ct_id()+');
4508    END IF;
4509 
4510    arp_ctl_private_pkg.display_line_f_ct_id( p_customer_trx_id );
4511 
4512    IF PG_DEBUG in ('Y', 'C') THEN
4513       arp_util.debug(  'arp_ctl_pkg.display_line_f_ct_id()-');
4514    END IF;
4515 
4516 END;
4517 
4518 /*===========================================================================+
4519  | PROCEDURE                                                                 |
4520  |    merge_line_recs							     |
4521  |                                                                           |
4522  | DESCRIPTION                                                               |
4523  |    Merges the changed columns in p_new_line_rec into the same columns     |
4524  |    p_old_line_rec and puts the result into p_out_line_rec. Columns that   |
4525  |    contain the dummy values are not changed.				     |
4526  |                                                                           |
4527  | SCOPE - PRIVATE                                                           |
4528  |                                                                           |
4529  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
4530  |    arp_util.debug                                                         |
4531  |                                                                           |
4532  | ARGUMENTS  : IN:                                                          |
4533  |		      p_old_line_rec 					     |
4534  |		      p_new_line_rec 					     |
4535  |              OUT:                                                         |
4536  |                    None						     |
4537  |          IN/ OUT:							     |
4538  |		      p_out_line_rec 					     |
4539  |                                                                           |
4540  | RETURNS    : NONE                                                         |
4541  |                                                                           |
4542  | NOTES                                                                     |
4543  |                                                                           |
4544  | MODIFICATION HISTORY                                                      |
4545  |     17-AUG-95  Charlie Tomberg     Created                                |
4546  |                                                                           |
4547  |     Rel. 11 Changes:							     |
4548  |     ----------------							     |
4549  |     07-22-97   OSTEINME		added code to handle three new       |
4550  |					database columns:                    |
4551  |					  - gross_unit_selling_price         |
4552  |					  - gross_extended_amount            |
4553  |					  - amount_includes_tax_flag         |
4554  |                                                                           |
4555  |     08-20-97   KTANG                 handle global_attribute_category and |
4556  |                                      global_attribute[1-20] for global    |
4557  |                                      descriptive flexfield                |
4558  |                                                                           |
4559  |     10-JAN-99  Saloni Shah           added code for warehouse_id          |
4560  |                                      for global tax engine change         |
4561  |                                                                           |
4562  |     22-MAR-99  Debbie Jancis         added translated_description for MLS |
4563  |                                                                           |
4564  |     20-MAR-2000  J Rautiainen        Added BR project related columns     |
4565  |                                      EXTENDED_ACCTD_AMOUNT,               |
4566  |                                      BR_REF_CUSTOMER_TRX_ID,              |
4567  |                                      BR_REF_PAYMENT_SCHEDULE_ID and       |
4568  |                                      BR_ADJUSTMENT_ID                     |
4569  |                                      into table handlers                  |
4570  |									     |
4571  |    31-OCT-2000 Y Rakotonirainy	Bug 1243304 : Added column           |
4572  |                                      wh_update_date into the table        |
4573  | 				        handlers. 	                     |
4574  |    20-APR-2005 Debbie Jancis         ETax:  added ship to id columns to   |
4575  |                                      support ship to at the line level    |
4576  +===========================================================================*/
4577 
4578 PROCEDURE merge_line_recs(
4579                          p_old_line_rec IN ra_customer_trx_lines%rowtype,
4580                          p_new_line_rec IN
4581                                           ra_customer_trx_lines%rowtype,
4582                          p_out_line_rec IN OUT NOCOPY
4583                                           ra_customer_trx_lines%rowtype)
4584                           IS
4585 
4586 BEGIN
4587 
4588     IF PG_DEBUG in ('Y', 'C') THEN
4589        arp_util.debug(  'arp_ctl_pkg.merge_line_recs()+');
4590     END IF;
4591 
4592     IF     (p_new_line_rec.customer_trx_line_id = AR_NUMBER_DUMMY)
4593     THEN   p_out_line_rec.customer_trx_line_id :=
4594                                           p_old_line_rec.customer_trx_line_id;
4595     ELSE   p_out_line_rec.customer_trx_line_id :=
4596                                           p_new_line_rec.customer_trx_line_id;
4597     END IF;
4598 
4599     IF     (p_new_line_rec.customer_trx_id = AR_NUMBER_DUMMY)
4600     THEN   p_out_line_rec.customer_trx_id := p_old_line_rec.customer_trx_id;
4601     ELSE   p_out_line_rec.customer_trx_id := p_new_line_rec.customer_trx_id;
4602     END IF;
4603 
4604     IF     (p_new_line_rec.line_number = AR_NUMBER_DUMMY)
4605     THEN   p_out_line_rec.line_number := p_old_line_rec.line_number;
4606     ELSE   p_out_line_rec.line_number := p_new_line_rec.line_number;
4607     END IF;
4608 
4609     IF     (p_new_line_rec.line_type = AR_TEXT_DUMMY)
4610     THEN   p_out_line_rec.line_type := p_old_line_rec.line_type;
4611     ELSE   p_out_line_rec.line_type := p_new_line_rec.line_type;
4612     END IF;
4613 
4614     IF     (p_new_line_rec.quantity_credited = AR_NUMBER_DUMMY)
4615     THEN   p_out_line_rec.quantity_credited :=
4616                                             p_old_line_rec.quantity_credited;
4617     ELSE   p_out_line_rec.quantity_credited :=
4618                                             p_new_line_rec.quantity_credited;
4619     END IF;
4620 
4621     IF     (p_new_line_rec.quantity_invoiced = AR_NUMBER_DUMMY)
4622     THEN   p_out_line_rec.quantity_invoiced :=
4623                                             p_old_line_rec.quantity_invoiced;
4624     ELSE   p_out_line_rec.quantity_invoiced :=
4625                                             p_new_line_rec.quantity_invoiced;
4626     END IF;
4627 
4628     IF     (p_new_line_rec.quantity_ordered = AR_NUMBER_DUMMY)
4629     THEN   p_out_line_rec.quantity_ordered := p_old_line_rec.quantity_ordered;
4630     ELSE   p_out_line_rec.quantity_ordered := p_new_line_rec.quantity_ordered;
4631     END IF;
4632 
4633     IF     (p_new_line_rec.unit_selling_price = AR_NUMBER_DUMMY)
4634     THEN   p_out_line_rec.unit_selling_price :=
4635                                              p_old_line_rec.unit_selling_price;
4636     ELSE   p_out_line_rec.unit_selling_price :=
4637                                              p_new_line_rec.unit_selling_price;
4638     END IF;
4639 
4640     IF     (p_new_line_rec.unit_standard_price = AR_NUMBER_DUMMY)
4641     THEN   p_out_line_rec.unit_standard_price :=
4642                                             p_old_line_rec.unit_standard_price;
4643     ELSE   p_out_line_rec.unit_standard_price :=
4644                                             p_new_line_rec.unit_standard_price;
4645     END IF;
4646 
4647     IF     (p_new_line_rec.revenue_amount = AR_NUMBER_DUMMY)
4648     THEN   p_out_line_rec.revenue_amount := p_old_line_rec.revenue_amount;
4649     ELSE   p_out_line_rec.revenue_amount := p_new_line_rec.revenue_amount;
4650     END IF;
4651 
4652     IF     (p_new_line_rec.extended_amount = AR_NUMBER_DUMMY)
4653     THEN   p_out_line_rec.extended_amount := p_old_line_rec.extended_amount;
4654     ELSE   p_out_line_rec.extended_amount := p_new_line_rec.extended_amount;
4655     END IF;
4656 
4657     IF     (p_new_line_rec.memo_line_id = AR_NUMBER_DUMMY)
4658     THEN   p_out_line_rec.memo_line_id := p_old_line_rec.memo_line_id;
4659     ELSE   p_out_line_rec.memo_line_id := p_new_line_rec.memo_line_id;
4660     END IF;
4661 
4662     IF     (p_new_line_rec.inventory_item_id = AR_NUMBER_DUMMY)
4663     THEN   p_out_line_rec.inventory_item_id :=
4664                                             p_old_line_rec.inventory_item_id;
4665     ELSE   p_out_line_rec.inventory_item_id :=
4666                                             p_new_line_rec.inventory_item_id;
4667     END IF;
4668 
4669     IF     (p_new_line_rec.item_exception_rate_id = AR_NUMBER_DUMMY)
4670     THEN   p_out_line_rec.item_exception_rate_id :=
4671                                          p_old_line_rec.item_exception_rate_id;
4672     ELSE   p_out_line_rec.item_exception_rate_id :=
4673                                          p_new_line_rec.item_exception_rate_id;
4674     END IF;
4675 
4676     IF     (p_new_line_rec.description = AR_TEXT_DUMMY)
4677     THEN   p_out_line_rec.description := p_old_line_rec.description;
4678     ELSE   p_out_line_rec.description := p_new_line_rec.description;
4679     END IF;
4680 
4681     IF     (p_new_line_rec.item_context = AR_TEXT_DUMMY)
4682     THEN   p_out_line_rec.item_context := p_old_line_rec.item_context;
4683     ELSE   p_out_line_rec.item_context := p_new_line_rec.item_context;
4684     END IF;
4685 
4686     IF     (p_new_line_rec.initial_customer_trx_line_id = AR_NUMBER_DUMMY)
4687     THEN   p_out_line_rec.initial_customer_trx_line_id :=
4688                                    p_old_line_rec.initial_customer_trx_line_id;
4689     ELSE   p_out_line_rec.initial_customer_trx_line_id :=
4690                                    p_new_line_rec.initial_customer_trx_line_id;
4691     END IF;
4692 
4693     IF     (p_new_line_rec.link_to_cust_trx_line_id = AR_NUMBER_DUMMY)
4694     THEN   p_out_line_rec.link_to_cust_trx_line_id :=
4695                                    p_old_line_rec.link_to_cust_trx_line_id;
4696     ELSE   p_out_line_rec.link_to_cust_trx_line_id :=
4697                                    p_new_line_rec.link_to_cust_trx_line_id;
4698     END IF;
4699 
4700     IF     (p_new_line_rec.previous_customer_trx_id = AR_NUMBER_DUMMY)
4701     THEN   p_out_line_rec.previous_customer_trx_id :=
4702                                    p_old_line_rec.previous_customer_trx_id;
4703     ELSE   p_out_line_rec.previous_customer_trx_id :=
4704                                    p_new_line_rec.previous_customer_trx_id;
4705     END IF;
4706 
4707     IF     (p_new_line_rec.previous_customer_trx_line_id = AR_NUMBER_DUMMY)
4708     THEN   p_out_line_rec.previous_customer_trx_line_id :=
4709                                   p_old_line_rec.previous_customer_trx_line_id;
4710     ELSE   p_out_line_rec.previous_customer_trx_line_id :=
4711                                   p_new_line_rec.previous_customer_trx_line_id;
4712     END IF;
4713 
4714     IF     (p_new_line_rec.accounting_rule_duration = AR_NUMBER_DUMMY)
4715     THEN   p_out_line_rec.accounting_rule_duration :=
4716                                   p_old_line_rec.accounting_rule_duration;
4717     ELSE   p_out_line_rec.accounting_rule_duration :=
4718                                   p_new_line_rec.accounting_rule_duration;
4719     END IF;
4720 
4721     IF     (p_new_line_rec.accounting_rule_id = AR_NUMBER_DUMMY)
4722     THEN   p_out_line_rec.accounting_rule_id :=
4723                                   p_old_line_rec.accounting_rule_id;
4724     ELSE   p_out_line_rec.accounting_rule_id :=
4725                                   p_new_line_rec.accounting_rule_id;
4726     END IF;
4727 
4728     IF     (p_new_line_rec.rule_start_date = AR_DATE_DUMMY)
4729     THEN   p_out_line_rec.rule_start_date := p_old_line_rec.rule_start_date;
4730     ELSE   p_out_line_rec.rule_start_date := p_new_line_rec.rule_start_date;
4731     END IF;
4732 
4733     IF     (p_new_line_rec.autorule_complete_flag = AR_FLAG_DUMMY)
4734     THEN   p_out_line_rec.autorule_complete_flag :=
4735                                         p_old_line_rec.autorule_complete_flag;
4736     ELSE   p_out_line_rec.autorule_complete_flag :=
4737                                         p_new_line_rec.autorule_complete_flag;
4738     END IF;
4739 
4740     IF     (p_new_line_rec.autorule_duration_processed = AR_NUMBER_DUMMY)
4741     THEN   p_out_line_rec.autorule_duration_processed :=
4742                                    p_old_line_rec.autorule_duration_processed;
4743     ELSE   p_out_line_rec.autorule_duration_processed :=
4744                                    p_new_line_rec.autorule_duration_processed;
4745     END IF;
4746 
4747     IF     (p_new_line_rec.reason_code = AR_TEXT_DUMMY)
4748     THEN   p_out_line_rec.reason_code := p_old_line_rec.reason_code;
4749     ELSE   p_out_line_rec.reason_code := p_new_line_rec.reason_code;
4750     END IF;
4751 
4752     IF     (p_new_line_rec.last_period_to_credit = AR_NUMBER_DUMMY)
4753     THEN   p_out_line_rec.last_period_to_credit :=
4754                                           p_old_line_rec.last_period_to_credit;
4755     ELSE   p_out_line_rec.last_period_to_credit :=
4756                                           p_new_line_rec.last_period_to_credit;
4757     END IF;
4758 
4759     IF     (p_new_line_rec.warehouse_id = AR_NUMBER_DUMMY)
4760     THEN   p_out_line_rec.warehouse_id :=
4761                                           p_old_line_rec.warehouse_id;
4762     ELSE   p_out_line_rec.warehouse_id :=
4763                                           p_new_line_rec.warehouse_id;
4764     END IF;
4765 
4766     IF     (p_new_line_rec.translated_description= AR_TEXT_DUMMY)
4767     THEN   p_out_line_rec.translated_description :=
4768                                           p_old_line_rec.translated_description;
4769     ELSE   p_out_line_rec.translated_description :=
4770                                           p_new_line_rec.translated_description;
4771     END IF;
4772 
4773     IF     (p_new_line_rec.sales_order = AR_TEXT_DUMMY)
4774     THEN   p_out_line_rec.sales_order := p_old_line_rec.sales_order;
4775     ELSE   p_out_line_rec.sales_order := p_new_line_rec.sales_order;
4776     END IF;
4777 
4778     IF     (p_new_line_rec.sales_order_date = AR_DATE_DUMMY)
4779     THEN   p_out_line_rec.sales_order_date := p_old_line_rec.sales_order_date;
4780     ELSE   p_out_line_rec.sales_order_date := p_new_line_rec.sales_order_date;
4781     END IF;
4782 
4783     IF     (p_new_line_rec.sales_order_line = AR_TEXT_DUMMY)
4784     THEN   p_out_line_rec.sales_order_line := p_old_line_rec.sales_order_line;
4785     ELSE   p_out_line_rec.sales_order_line := p_new_line_rec.sales_order_line;
4786     END IF;
4787 
4788     IF     (p_new_line_rec.sales_order_revision = AR_NUMBER_DUMMY)
4789     THEN   p_out_line_rec.sales_order_revision :=
4790                                            p_old_line_rec.sales_order_revision;
4791     ELSE   p_out_line_rec.sales_order_revision :=
4792                                            p_new_line_rec.sales_order_revision;
4793     END IF;
4794 
4795     IF     (p_new_line_rec.sales_order_source = AR_TEXT_DUMMY)
4796     THEN   p_out_line_rec.sales_order_source :=
4797                                              p_old_line_rec.sales_order_source;
4798     ELSE   p_out_line_rec.sales_order_source :=
4799                                              p_new_line_rec.sales_order_source;
4800     END IF;
4801 
4802     IF     (p_new_line_rec.vat_tax_id = AR_NUMBER_DUMMY)
4803     THEN   p_out_line_rec.vat_tax_id := p_old_line_rec.vat_tax_id;
4804     ELSE   p_out_line_rec.vat_tax_id := p_new_line_rec.vat_tax_id;
4805     END IF;
4806 
4807     IF     (p_new_line_rec.tax_exempt_flag = AR_FLAG_DUMMY)
4808     THEN   p_out_line_rec.tax_exempt_flag := p_old_line_rec.tax_exempt_flag;
4809     ELSE   p_out_line_rec.tax_exempt_flag := p_new_line_rec.tax_exempt_flag;
4810     END IF;
4811 
4812     IF     (p_new_line_rec.sales_tax_id = AR_NUMBER_DUMMY)
4813     THEN   p_out_line_rec.sales_tax_id := p_old_line_rec.sales_tax_id;
4814     ELSE   p_out_line_rec.sales_tax_id := p_new_line_rec.sales_tax_id;
4815     END IF;
4816 
4817     IF     (p_new_line_rec.location_segment_id = AR_NUMBER_DUMMY)
4818     THEN   p_out_line_rec.location_segment_id :=
4819                                             p_old_line_rec.location_segment_id;
4820     ELSE   p_out_line_rec.location_segment_id :=
4821                                             p_new_line_rec.location_segment_id;
4822     END IF;
4823 
4824     IF     (p_new_line_rec.tax_exempt_number = AR_TEXT_DUMMY)
4825     THEN   p_out_line_rec.tax_exempt_number :=
4826                                              p_old_line_rec.tax_exempt_number;
4827     ELSE   p_out_line_rec.tax_exempt_number :=
4828                                              p_new_line_rec.tax_exempt_number;
4829     END IF;
4830 
4831     IF     (p_new_line_rec.tax_exempt_reason_code = AR_TEXT_DUMMY)
4832     THEN   p_out_line_rec.tax_exempt_reason_code :=
4833                                          p_old_line_rec.tax_exempt_reason_code;
4834     ELSE   p_out_line_rec.tax_exempt_reason_code :=
4835                                          p_new_line_rec.tax_exempt_reason_code;
4836     END IF;
4837 
4838     IF     (p_new_line_rec.tax_vendor_return_code = AR_TEXT_DUMMY)
4839     THEN   p_out_line_rec.tax_vendor_return_code :=
4840                                         p_old_line_rec.tax_vendor_return_code;
4841     ELSE   p_out_line_rec.tax_vendor_return_code :=
4842                                         p_new_line_rec.tax_vendor_return_code;
4843     END IF;
4844 
4845     IF     (p_new_line_rec.taxable_flag = AR_FLAG_DUMMY)
4846     THEN   p_out_line_rec.taxable_flag := p_old_line_rec.taxable_flag;
4847     ELSE   p_out_line_rec.taxable_flag := p_new_line_rec.taxable_flag;
4848     END IF;
4849 
4850     IF     (p_new_line_rec.tax_exemption_id = AR_NUMBER_DUMMY)
4851     THEN   p_out_line_rec.tax_exemption_id := p_old_line_rec.tax_exemption_id;
4852     ELSE   p_out_line_rec.tax_exemption_id := p_new_line_rec.tax_exemption_id;
4853     END IF;
4854 
4855     IF     (p_new_line_rec.tax_precedence = AR_NUMBER_DUMMY)
4856     THEN   p_out_line_rec.tax_precedence := p_old_line_rec.tax_precedence;
4857     ELSE   p_out_line_rec.tax_precedence := p_new_line_rec.tax_precedence;
4858     END IF;
4859 
4860     IF     (p_new_line_rec.tax_rate = AR_NUMBER_DUMMY)
4861     THEN   p_out_line_rec.tax_rate := p_old_line_rec.tax_rate;
4862     ELSE   p_out_line_rec.tax_rate := p_new_line_rec.tax_rate;
4863     END IF;
4864 
4865     IF     (p_new_line_rec.uom_code = AR_TEXT3_DUMMY)
4866     THEN   p_out_line_rec.uom_code := p_old_line_rec.uom_code;
4867     ELSE   p_out_line_rec.uom_code := p_new_line_rec.uom_code;
4868     END IF;
4869 
4870     IF     (p_new_line_rec.autotax = AR_FLAG_DUMMY)
4871     THEN   p_out_line_rec.autotax := p_old_line_rec.autotax;
4872     ELSE   p_out_line_rec.autotax := p_new_line_rec.autotax;
4873     END IF;
4874 
4875     IF     (p_new_line_rec.movement_id = AR_NUMBER_DUMMY)
4876     THEN   p_out_line_rec.movement_id := p_old_line_rec.movement_id;
4877     ELSE   p_out_line_rec.movement_id := p_new_line_rec.movement_id;
4878     END IF;
4879 
4880     IF     (p_new_line_rec.default_ussgl_transaction_code = AR_TEXT_DUMMY)
4881     THEN   p_out_line_rec.default_ussgl_transaction_code :=
4882                                 p_old_line_rec.default_ussgl_transaction_code;
4883     ELSE   p_out_line_rec.default_ussgl_transaction_code :=
4884                                 p_new_line_rec.default_ussgl_transaction_code;
4885     END IF;
4886 
4887     IF     (p_new_line_rec.default_ussgl_trx_code_context = AR_TEXT_DUMMY)
4888     THEN   p_out_line_rec.default_ussgl_trx_code_context :=
4889                        p_old_line_rec.default_ussgl_trx_code_context;
4890     ELSE   p_out_line_rec.default_ussgl_trx_code_context :=
4891                        p_new_line_rec.default_ussgl_trx_code_context;
4892     END IF;
4893 
4894     IF     (p_new_line_rec.interface_line_context = AR_TEXT_DUMMY)
4895     THEN   p_out_line_rec.interface_line_context :=
4896                        p_old_line_rec.interface_line_context;
4897     ELSE   p_out_line_rec.interface_line_context :=
4898                        p_new_line_rec.interface_line_context;
4899     END IF;
4900 
4901     IF     (p_new_line_rec.interface_line_attribute1 = AR_TEXT_DUMMY)
4902     THEN   p_out_line_rec.interface_line_attribute1 :=
4903                        p_old_line_rec.interface_line_attribute1;
4904     ELSE   p_out_line_rec.interface_line_attribute1 :=
4905                        p_new_line_rec.interface_line_attribute1;
4906     END IF;
4907 
4908     IF     (p_new_line_rec.interface_line_attribute2 = AR_TEXT_DUMMY)
4909     THEN   p_out_line_rec.interface_line_attribute2 :=
4910                        p_old_line_rec.interface_line_attribute2;
4911     ELSE   p_out_line_rec.interface_line_attribute2 :=
4912                        p_new_line_rec.interface_line_attribute2;
4913     END IF;
4914 
4915     IF     (p_new_line_rec.interface_line_attribute3 = AR_TEXT_DUMMY)
4916     THEN   p_out_line_rec.interface_line_attribute3 :=
4917                        p_old_line_rec.interface_line_attribute3;
4918     ELSE   p_out_line_rec.interface_line_attribute3 :=
4919                        p_new_line_rec.interface_line_attribute3;
4920     END IF;
4921 
4922     IF     (p_new_line_rec.interface_line_attribute4 = AR_TEXT_DUMMY)
4923     THEN   p_out_line_rec.interface_line_attribute4 :=
4924                        p_old_line_rec.interface_line_attribute4;
4925     ELSE   p_out_line_rec.interface_line_attribute4 :=
4926                        p_new_line_rec.interface_line_attribute4;
4927     END IF;
4928 
4929     IF     (p_new_line_rec.interface_line_attribute5 = AR_TEXT_DUMMY)
4930     THEN   p_out_line_rec.interface_line_attribute5 :=
4931                        p_old_line_rec.interface_line_attribute5;
4932     ELSE   p_out_line_rec.interface_line_attribute5 :=
4933                        p_new_line_rec.interface_line_attribute5;
4934     END IF;
4935 
4936     IF     (p_new_line_rec.interface_line_attribute6 = AR_TEXT_DUMMY)
4937     THEN   p_out_line_rec.interface_line_attribute6 :=
4938                        p_old_line_rec.interface_line_attribute6;
4939     ELSE   p_out_line_rec.interface_line_attribute6 :=
4940                        p_new_line_rec.interface_line_attribute6;
4941     END IF;
4942 
4943     IF     (p_new_line_rec.interface_line_attribute7 = AR_TEXT_DUMMY)
4944     THEN   p_out_line_rec.interface_line_attribute7 :=
4945                        p_old_line_rec.interface_line_attribute7;
4946     ELSE   p_out_line_rec.interface_line_attribute7 :=
4947                        p_new_line_rec.interface_line_attribute7;
4948     END IF;
4949 
4950     IF     (p_new_line_rec.interface_line_attribute8 = AR_TEXT_DUMMY)
4951     THEN   p_out_line_rec.interface_line_attribute8 :=
4952                        p_old_line_rec.interface_line_attribute8;
4953     ELSE   p_out_line_rec.interface_line_attribute8 :=
4954                        p_new_line_rec.interface_line_attribute8;
4955     END IF;
4956 
4957     IF     (p_new_line_rec.interface_line_attribute9 = AR_TEXT_DUMMY)
4958     THEN   p_out_line_rec.interface_line_attribute9 :=
4959                        p_old_line_rec.interface_line_attribute9;
4960     ELSE   p_out_line_rec.interface_line_attribute9 :=
4961                        p_new_line_rec.interface_line_attribute9;
4962     END IF;
4963 
4964     IF     (p_new_line_rec.interface_line_attribute10 = AR_TEXT_DUMMY)
4965     THEN   p_out_line_rec.interface_line_attribute10 :=
4966                        p_old_line_rec.interface_line_attribute10;
4967     ELSE   p_out_line_rec.interface_line_attribute10 :=
4968                        p_new_line_rec.interface_line_attribute10;
4969     END IF;
4970 
4971     IF     (p_new_line_rec.interface_line_attribute11 = AR_TEXT_DUMMY)
4972     THEN   p_out_line_rec.interface_line_attribute11 :=
4973                        p_old_line_rec.interface_line_attribute11;
4974     ELSE   p_out_line_rec.interface_line_attribute11 :=
4975                        p_new_line_rec.interface_line_attribute11;
4976     END IF;
4977 
4978     IF     (p_new_line_rec.interface_line_attribute12 = AR_TEXT_DUMMY)
4979     THEN   p_out_line_rec.interface_line_attribute12 :=
4980                        p_old_line_rec.interface_line_attribute12;
4981     ELSE   p_out_line_rec.interface_line_attribute12 :=
4982                        p_new_line_rec.interface_line_attribute12;
4983     END IF;
4984 
4985     IF     (p_new_line_rec.interface_line_attribute13 = AR_TEXT_DUMMY)
4986     THEN   p_out_line_rec.interface_line_attribute13 :=
4987                        p_old_line_rec.interface_line_attribute13;
4988     ELSE   p_out_line_rec.interface_line_attribute13 :=
4989                        p_new_line_rec.interface_line_attribute13;
4990     END IF;
4991 
4992     IF     (p_new_line_rec.interface_line_attribute14 = AR_TEXT_DUMMY)
4993     THEN   p_out_line_rec.interface_line_attribute14 :=
4994                        p_old_line_rec.interface_line_attribute14;
4995     ELSE   p_out_line_rec.interface_line_attribute14 :=
4996                        p_new_line_rec.interface_line_attribute14;
4997     END IF;
4998 
4999     IF     (p_new_line_rec.interface_line_attribute15 = AR_TEXT_DUMMY)
5000     THEN   p_out_line_rec.interface_line_attribute15 :=
5001                        p_old_line_rec.interface_line_attribute15;
5002     ELSE   p_out_line_rec.interface_line_attribute15 :=
5003                        p_new_line_rec.interface_line_attribute15;
5004     END IF;
5005 
5006     IF     (p_new_line_rec.attribute_category = AR_TEXT_DUMMY)
5007     THEN   p_out_line_rec.attribute_category :=
5008                        p_old_line_rec.attribute_category;
5009     ELSE   p_out_line_rec.attribute_category :=
5010                        p_new_line_rec.attribute_category;
5011     END IF;
5012 
5013     IF     (p_new_line_rec.attribute1 = AR_TEXT_DUMMY)
5014     THEN   p_out_line_rec.attribute1 := p_old_line_rec.attribute1;
5015     ELSE   p_out_line_rec.attribute1 := p_new_line_rec.attribute1;
5016     END IF;
5017 
5018     IF     (p_new_line_rec.attribute2 = AR_TEXT_DUMMY)
5019     THEN   p_out_line_rec.attribute2 := p_old_line_rec.attribute2;
5020     ELSE   p_out_line_rec.attribute2 := p_new_line_rec.attribute2;
5021     END IF;
5022 
5023     IF     (p_new_line_rec.attribute3 = AR_TEXT_DUMMY)
5024     THEN   p_out_line_rec.attribute3 := p_old_line_rec.attribute3;
5025     ELSE   p_out_line_rec.attribute3 := p_new_line_rec.attribute3;
5026     END IF;
5027 
5028     IF     (p_new_line_rec.attribute4 = AR_TEXT_DUMMY)
5029     THEN   p_out_line_rec.attribute4 := p_old_line_rec.attribute4;
5030     ELSE   p_out_line_rec.attribute4 := p_new_line_rec.attribute4;
5031     END IF;
5032 
5033     IF     (p_new_line_rec.attribute5 = AR_TEXT_DUMMY)
5034     THEN   p_out_line_rec.attribute5 := p_old_line_rec.attribute5;
5035     ELSE   p_out_line_rec.attribute5 := p_new_line_rec.attribute5;
5036     END IF;
5037 
5038     IF     (p_new_line_rec.attribute6 = AR_TEXT_DUMMY)
5039     THEN   p_out_line_rec.attribute6 := p_old_line_rec.attribute6;
5040     ELSE   p_out_line_rec.attribute6 := p_new_line_rec.attribute6;
5041     END IF;
5042 
5043     IF     (p_new_line_rec.attribute7 = AR_TEXT_DUMMY)
5044     THEN   p_out_line_rec.attribute7 := p_old_line_rec.attribute7;
5045     ELSE   p_out_line_rec.attribute7 := p_new_line_rec.attribute7;
5046     END IF;
5047 
5048     IF     (p_new_line_rec.attribute8 = AR_TEXT_DUMMY)
5049     THEN   p_out_line_rec.attribute8 := p_old_line_rec.attribute8;
5050     ELSE   p_out_line_rec.attribute8 := p_new_line_rec.attribute8;
5051     END IF;
5052 
5053     IF     (p_new_line_rec.attribute9 = AR_TEXT_DUMMY)
5054     THEN   p_out_line_rec.attribute9 := p_old_line_rec.attribute9;
5055     ELSE   p_out_line_rec.attribute9 := p_new_line_rec.attribute9;
5056     END IF;
5057 
5058     IF     (p_new_line_rec.attribute10 = AR_TEXT_DUMMY)
5059     THEN   p_out_line_rec.attribute10 := p_old_line_rec.attribute10;
5060     ELSE   p_out_line_rec.attribute10 := p_new_line_rec.attribute10;
5061     END IF;
5062 
5063     IF     (p_new_line_rec.attribute11 = AR_TEXT_DUMMY)
5064     THEN   p_out_line_rec.attribute11 := p_old_line_rec.attribute11;
5065     ELSE   p_out_line_rec.attribute11 := p_new_line_rec.attribute11;
5066     END IF;
5067 
5068     IF     (p_new_line_rec.attribute12 = AR_TEXT_DUMMY)
5069     THEN   p_out_line_rec.attribute12 := p_old_line_rec.attribute12;
5070     ELSE   p_out_line_rec.attribute12 := p_new_line_rec.attribute12;
5071     END IF;
5072 
5073     IF     (p_new_line_rec.attribute13 = AR_TEXT_DUMMY)
5074     THEN   p_out_line_rec.attribute13 := p_old_line_rec.attribute13;
5075     ELSE   p_out_line_rec.attribute13 := p_new_line_rec.attribute13;
5076     END IF;
5077 
5078     IF     (p_new_line_rec.attribute14 = AR_TEXT_DUMMY)
5079     THEN   p_out_line_rec.attribute14 := p_old_line_rec.attribute14;
5080     ELSE   p_out_line_rec.attribute14 := p_new_line_rec.attribute14;
5081     END IF;
5082 
5083     IF     (p_new_line_rec.attribute15 = AR_TEXT_DUMMY)
5084     THEN   p_out_line_rec.attribute15 := p_old_line_rec.attribute15;
5085     ELSE   p_out_line_rec.attribute15 := p_new_line_rec.attribute15;
5086     END IF;
5087 
5088     IF     (p_new_line_rec.global_attribute_category = AR_TEXT_DUMMY)
5089     THEN   p_out_line_rec.global_attribute_category :=
5090                        p_old_line_rec.global_attribute_category;
5091     ELSE   p_out_line_rec.global_attribute_category :=
5092                        p_new_line_rec.global_attribute_category;
5093     END IF;
5094 
5095     IF    (p_new_line_rec.global_attribute1 = AR_TEXT_DUMMY)
5096     THEN  p_out_line_rec.global_attribute1 := p_old_line_rec.global_attribute1;
5097     ELSE  p_out_line_rec.global_attribute1 := p_new_line_rec.global_attribute1;
5098     END IF;
5099 
5100     IF    (p_new_line_rec.global_attribute2 = AR_TEXT_DUMMY)
5101     THEN  p_out_line_rec.global_attribute2 := p_old_line_rec.global_attribute2;
5102     ELSE  p_out_line_rec.global_attribute2 := p_new_line_rec.global_attribute2;
5103     END IF;
5104 
5105     IF    (p_new_line_rec.global_attribute3 = AR_TEXT_DUMMY)
5106     THEN  p_out_line_rec.global_attribute3 := p_old_line_rec.global_attribute3;
5107     ELSE  p_out_line_rec.global_attribute3 := p_new_line_rec.global_attribute3;
5108     END IF;
5109 
5110     IF    (p_new_line_rec.global_attribute4 = AR_TEXT_DUMMY)
5111     THEN  p_out_line_rec.global_attribute4 := p_old_line_rec.global_attribute4;
5112     ELSE  p_out_line_rec.global_attribute4 := p_new_line_rec.global_attribute4;
5113     END IF;
5114 
5115     IF    (p_new_line_rec.global_attribute5 = AR_TEXT_DUMMY)
5116     THEN  p_out_line_rec.global_attribute5 := p_old_line_rec.global_attribute5;
5117     ELSE  p_out_line_rec.global_attribute5 := p_new_line_rec.global_attribute5;
5118     END IF;
5119 
5120     IF    (p_new_line_rec.global_attribute6 = AR_TEXT_DUMMY)
5121     THEN  p_out_line_rec.global_attribute6 := p_old_line_rec.global_attribute6;
5122     ELSE  p_out_line_rec.global_attribute6 := p_new_line_rec.global_attribute6;
5123     END IF;
5124 
5125     IF    (p_new_line_rec.global_attribute7 = AR_TEXT_DUMMY)
5126     THEN  p_out_line_rec.global_attribute7 := p_old_line_rec.global_attribute7;
5127     ELSE  p_out_line_rec.global_attribute7 := p_new_line_rec.global_attribute7;
5128     END IF;
5129 
5130     IF    (p_new_line_rec.global_attribute8 = AR_TEXT_DUMMY)
5131     THEN  p_out_line_rec.global_attribute8 := p_old_line_rec.global_attribute8;
5132     ELSE  p_out_line_rec.global_attribute8 := p_new_line_rec.global_attribute8;
5133     END IF;
5134 
5135     IF    (p_new_line_rec.global_attribute9 = AR_TEXT_DUMMY)
5136     THEN  p_out_line_rec.global_attribute9 := p_old_line_rec.global_attribute9;
5137     ELSE  p_out_line_rec.global_attribute9 := p_new_line_rec.global_attribute9;
5138     END IF;
5139 
5140     IF   (p_new_line_rec.global_attribute10 = AR_TEXT_DUMMY)
5141     THEN p_out_line_rec.global_attribute10 := p_old_line_rec.global_attribute10;
5142     ELSE p_out_line_rec.global_attribute10 := p_new_line_rec.global_attribute10;
5143     END IF;
5144 
5145     IF   (p_new_line_rec.global_attribute11 = AR_TEXT_DUMMY)
5146     THEN p_out_line_rec.global_attribute11 := p_old_line_rec.global_attribute11;
5147     ELSE p_out_line_rec.global_attribute11 := p_new_line_rec.global_attribute11;
5148     END IF;
5149 
5150     IF   (p_new_line_rec.global_attribute12 = AR_TEXT_DUMMY)
5151     THEN p_out_line_rec.global_attribute12 := p_old_line_rec.global_attribute12;
5152     ELSE p_out_line_rec.global_attribute12 := p_new_line_rec.global_attribute12;
5153     END IF;
5154 
5155     IF   (p_new_line_rec.global_attribute13 = AR_TEXT_DUMMY)
5156     THEN p_out_line_rec.global_attribute13 := p_old_line_rec.global_attribute13;
5157     ELSE p_out_line_rec.global_attribute13 := p_new_line_rec.global_attribute13;
5158     END IF;
5159 
5160     IF   (p_new_line_rec.global_attribute14 = AR_TEXT_DUMMY)
5161     THEN p_out_line_rec.global_attribute14 := p_old_line_rec.global_attribute14;
5162     ELSE p_out_line_rec.global_attribute14 := p_new_line_rec.global_attribute14;
5163     END IF;
5164 
5165     IF   (p_new_line_rec.global_attribute15 = AR_TEXT_DUMMY)
5166     THEN p_out_line_rec.global_attribute15 := p_old_line_rec.global_attribute15;
5167     ELSE p_out_line_rec.global_attribute15 := p_new_line_rec.global_attribute15;
5168     END IF;
5169 
5170     IF   (p_new_line_rec.global_attribute16 = AR_TEXT_DUMMY)
5171     THEN p_out_line_rec.global_attribute16 := p_old_line_rec.global_attribute16;
5172     ELSE p_out_line_rec.global_attribute16 := p_new_line_rec.global_attribute16;    END IF;
5173 
5174     IF   (p_new_line_rec.global_attribute17 = AR_TEXT_DUMMY)
5175     THEN p_out_line_rec.global_attribute17 := p_old_line_rec.global_attribute17;
5176     ELSE p_out_line_rec.global_attribute17 := p_new_line_rec.global_attribute17;
5177     END IF;
5178 
5179     IF   (p_new_line_rec.global_attribute18 = AR_TEXT_DUMMY)
5180     THEN p_out_line_rec.global_attribute18 := p_old_line_rec.global_attribute18;
5181     ELSE p_out_line_rec.global_attribute18 := p_new_line_rec.global_attribute18;
5182     END IF;
5183 
5184     IF   (p_new_line_rec.global_attribute19 = AR_TEXT_DUMMY)
5185     THEN p_out_line_rec.global_attribute19 := p_old_line_rec.global_attribute19;
5186     ELSE p_out_line_rec.global_attribute19 := p_new_line_rec.global_attribute19;
5187     END IF;
5188 
5189     IF   (p_new_line_rec.global_attribute20 = AR_TEXT_DUMMY)
5190     THEN p_out_line_rec.global_attribute20 := p_old_line_rec.global_attribute20;
5191     ELSE p_out_line_rec.global_attribute20 := p_new_line_rec.global_attribute20;
5192     END IF;
5193 
5194     IF     (p_new_line_rec.created_by = AR_NUMBER_DUMMY)
5195     THEN   p_out_line_rec.created_by := p_old_line_rec.created_by;
5196     ELSE   p_out_line_rec.created_by := p_new_line_rec.created_by;
5197     END IF;
5198 
5199     IF     (p_new_line_rec.creation_date = AR_DATE_DUMMY)
5200     THEN   p_out_line_rec.creation_date := p_old_line_rec.creation_date;
5201     ELSE   p_out_line_rec.creation_date := p_new_line_rec.creation_date;
5202     END IF;
5203 
5204     IF     (p_new_line_rec.last_updated_by = AR_NUMBER_DUMMY)
5205     THEN   p_out_line_rec.last_updated_by := p_old_line_rec.last_updated_by;
5206     ELSE   p_out_line_rec.last_updated_by := p_new_line_rec.last_updated_by;
5207     END IF;
5208 
5209     IF     (p_new_line_rec.last_update_date = AR_DATE_DUMMY)
5210     THEN   p_out_line_rec.last_update_date := p_old_line_rec.last_update_date;
5211     ELSE   p_out_line_rec.last_update_date := p_new_line_rec.last_update_date;
5212     END IF;
5213 
5214     IF     (p_new_line_rec.program_application_id = AR_NUMBER_DUMMY)
5215     THEN   p_out_line_rec.program_application_id :=
5216                        p_old_line_rec.program_application_id;
5217     ELSE   p_out_line_rec.program_application_id :=
5218                        p_new_line_rec.program_application_id;
5219     END IF;
5220 
5221     IF     (p_new_line_rec.last_update_login = AR_NUMBER_DUMMY)
5222     THEN   p_out_line_rec.last_update_login :=
5223                        p_old_line_rec.last_update_login;
5224     ELSE   p_out_line_rec.last_update_login :=
5225                        p_new_line_rec.last_update_login;
5226     END IF;
5227 
5228     IF     (p_new_line_rec.program_id = AR_NUMBER_DUMMY)
5229     THEN   p_out_line_rec.program_id := p_old_line_rec.program_id;
5230     ELSE   p_out_line_rec.program_id := p_new_line_rec.program_id;
5231     END IF;
5232 
5233     IF     (p_new_line_rec.program_update_date = AR_DATE_DUMMY)
5234     THEN   p_out_line_rec.program_update_date :=
5235                        p_old_line_rec.program_update_date;
5236     ELSE   p_out_line_rec.program_update_date :=
5237                        p_new_line_rec.program_update_date;
5238     END IF;
5239 
5240     IF     (p_new_line_rec.set_of_books_id = AR_NUMBER_DUMMY)
5241     THEN   p_out_line_rec.set_of_books_id := p_old_line_rec.set_of_books_id;
5242     ELSE   p_out_line_rec.set_of_books_id := p_new_line_rec.set_of_books_id;
5243     END IF;
5244 
5245     -- Rel. 11 Changes:
5246 
5247     IF     (p_new_line_rec.gross_unit_selling_price = AR_NUMBER_DUMMY)
5248     THEN   p_out_line_rec.gross_unit_selling_price :=
5249 		p_old_line_rec.gross_unit_selling_price;
5250     ELSE   p_out_line_rec.gross_unit_selling_price :=
5251 		p_new_line_rec.gross_unit_selling_price;
5252     END IF;
5253 
5254     IF     (p_new_line_rec.gross_extended_amount = AR_NUMBER_DUMMY)
5255     THEN   p_out_line_rec.gross_extended_amount :=
5256 		p_old_line_rec.gross_extended_amount;
5257     ELSE   p_out_line_rec.gross_extended_amount :=
5258 		p_new_line_rec.gross_extended_amount;
5259     END IF;
5260 
5261     IF     (p_new_line_rec.amount_includes_tax_flag = AR_FLAG_DUMMY)
5262     THEN   p_out_line_rec.amount_includes_tax_flag :=
5263 			p_old_line_rec.amount_includes_tax_flag;
5264     ELSE   p_out_line_rec.amount_includes_tax_flag :=
5265 			p_new_line_rec.amount_includes_tax_flag;
5266     END IF;
5267 
5268     /* Bug 853757 */
5269     IF     (p_new_line_rec.taxable_amount = AR_NUMBER_DUMMY)
5270     THEN   p_out_line_rec.taxable_amount :=
5271                 p_old_line_rec.taxable_amount;
5272     ELSE   p_out_line_rec.taxable_amount :=
5273                 p_new_line_rec.taxable_amount;
5274     END IF;
5275 
5276     IF     (p_new_line_rec.extended_acctd_amount = AR_NUMBER_DUMMY)
5277     THEN   p_out_line_rec.extended_acctd_amount :=
5278                 p_old_line_rec.extended_acctd_amount;
5279     ELSE   p_out_line_rec.extended_acctd_amount :=
5280                 p_new_line_rec.extended_acctd_amount;
5281     END IF;
5282 
5283     IF     (p_new_line_rec.br_ref_customer_trx_id = AR_NUMBER_DUMMY)
5284     THEN   p_out_line_rec.br_ref_customer_trx_id :=
5285                 p_old_line_rec.br_ref_customer_trx_id;
5286     ELSE   p_out_line_rec.br_ref_customer_trx_id :=
5287                 p_new_line_rec.br_ref_customer_trx_id;
5288     END IF;
5289 
5290     IF     (p_new_line_rec.br_ref_payment_schedule_id = AR_NUMBER_DUMMY)
5291     THEN   p_out_line_rec.br_ref_payment_schedule_id :=
5292                 p_old_line_rec.br_ref_payment_schedule_id;
5293     ELSE   p_out_line_rec.br_ref_payment_schedule_id :=
5294                 p_new_line_rec.br_ref_payment_schedule_id;
5295     END IF;
5296 
5297     IF     (p_new_line_rec.br_adjustment_id = AR_NUMBER_DUMMY)
5298     THEN   p_out_line_rec.br_adjustment_id :=
5299                 p_old_line_rec.br_adjustment_id;
5300     ELSE   p_out_line_rec.br_adjustment_id :=
5301                 p_new_line_rec.br_adjustment_id;
5302     END IF;
5303 
5304     IF     (p_new_line_rec.wh_update_date = AR_DATE_DUMMY)
5305     THEN   p_out_line_rec.wh_update_date :=
5306                 p_old_line_rec.wh_update_date;
5307     ELSE   p_out_line_rec.wh_update_date :=
5308                 p_new_line_rec.wh_update_date;
5309     END IF;
5310 
5311     IF     (p_new_line_rec.payment_set_id = AR_NUMBER_DUMMY)
5312     THEN   p_out_line_rec.payment_set_id := p_old_line_rec.payment_set_id;
5313     ELSE   p_out_line_rec.payment_set_id := p_new_line_rec.payment_set_id;
5314     END IF;
5315 
5316     /*  ETax - to support ship to at line level information */
5317     IF (p_new_line_rec.ship_to_customer_id = AR_NUMBER_DUMMY) THEN
5318        p_out_line_rec.ship_to_customer_id := p_old_line_rec.ship_to_customer_id;
5319     ELSE
5320        p_out_line_rec.ship_to_customer_id := p_new_line_rec.ship_to_customer_id;
5321     END IF;
5322 
5323 
5324     IF (p_new_line_rec.ship_to_site_use_id = AR_NUMBER_DUMMY) THEN
5325        p_out_line_rec.ship_to_site_use_id := p_old_line_rec.ship_to_site_use_id;
5326     ELSE
5327        p_out_line_rec.ship_to_site_use_id := p_new_line_rec.ship_to_site_use_id;    END IF;
5328 
5329     IF (p_new_line_rec.ship_to_contact_id = AR_NUMBER_DUMMY) THEN
5330        p_out_line_rec.ship_to_contact_id := p_old_line_rec.ship_to_contact_id;
5331     ELSE
5332        p_out_line_rec.ship_to_contact_id := p_new_line_rec.ship_to_contact_id;
5333     END IF;
5334 
5335     IF (p_new_line_rec.tax_classification_code = AR_TEXT_DUMMY) THEN
5336        p_out_line_rec.tax_classification_code :=
5337                  p_old_line_rec.tax_classification_code;
5338     ELSE
5339        p_out_line_rec.tax_classification_code :=
5340                  p_new_line_rec.tax_classification_code;
5341     END IF;
5342     IF     (p_new_line_rec.rule_end_date = AR_DATE_DUMMY)
5343     THEN   p_out_line_rec.rule_end_date := p_old_line_rec.rule_end_date;
5344     ELSE   p_out_line_rec.rule_end_date := p_new_line_rec.rule_end_date;
5345     END IF;
5346 
5347     IF PG_DEBUG in ('Y', 'C') THEN
5348        arp_util.debug(  'arp_ctl_pkg.merge_line_recs()-');
5349     END IF;
5350 
5351 EXCEPTION
5352   WHEN OTHERS THEN
5353       IF PG_DEBUG in ('Y', 'C') THEN
5354          arp_util.debug(  'EXCEPTION:  arp_ctl_pkg.merge_line_recs()');
5355          arp_util.debug(  '');
5356          arp_util.debug(  '-------- parameters for merge_line_recs() ------');
5357          arp_util.debug(  '  ---- old line record ----');
5358       END IF;
5359       display_line_rec(p_old_line_rec);
5360       IF PG_DEBUG in ('Y', 'C') THEN
5361          arp_util.debug(  '');
5362          arp_util.debug(  '  ---- new line record ----');
5363       END IF;
5364       display_line_rec(p_new_line_rec);
5365       IF PG_DEBUG in ('Y', 'C') THEN
5366          arp_util.debug(  '');
5367          arp_util.debug(  '  ---- merged line record ----');
5368       END IF;
5369       display_line_rec(p_out_line_rec);
5370       IF PG_DEBUG in ('Y', 'C') THEN
5371          arp_util.debug(  '');
5372       END IF;
5373 
5374       RAISE;
5375 
5376 END;
5377 
5378 /*===========================================================================+
5379  | FUNCTION                                                                  |
5380  |    insert_line_f_cm_ct_ctl_id                                             |
5381  |                                                                           |
5382  | DESCRIPTION                                                               |
5383  |    This procedure creates credit memo lines for the specified line type   |
5384  |                                                                           |
5385  | SCOPE - PUBLIC                                                            |
5386  |                                                                           |
5387  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
5388  |    arp_util.debug                                                         |
5389  |                                                                           |
5390  | ARGUMENTS  : IN:                                                          |
5391  |                    None                                                   |
5392  |              OUT:                                                         |
5393  |                    None                                                   |
5394  |                                                                           |
5395  | RETURNS    : NONE                                                         |
5396  |                                                                           |
5397  | NOTES                                                                     |
5398  |                                                                           |
5399  | MODIFICATION HISTORY                                                      |
5400  |     29-AUG-95  Subash Chadalavada  Created                                |
5401  |                                                                           |
5402  |     Rel. 11 Changes:							     |
5403  |     ----------------							     |
5404  |     07-22-97   OSTEINME		added code to handle three new       |
5405  |					database columns:                    |
5406  |					  - gross_unit_selling_price         |
5407  |					  - gross_extended_amount            |
5408  |					  - amount_includes_tax_flag         |
5409  |     08-20-97	  OSTEINME		changed procedure to populate        |
5410  |					created credit memo lines with       |
5411  |					amount_includes_tax_flag copied from |
5412  |					invoice line			     |
5413  |
5414  |                                                                           |
5415  |     10-JAN-99  Saloni Shah           added warehouse_id for global tax    |
5416  |                                      engine changes.                      |
5417  |     08-Apr-03  Veena Rao             Bug 2859668. Added field trans-      |
5418  |                                      lated_description.                   |
5419  |     26-Dec-03  Surendra Rajan        Bug-3335466 Replace the zero amount  |
5420  |                                      with 1 through decode in the Quantity|
5421  |                                      calculationugh decode in the Quantity|
5422  |     17-Feb-04  Surendra Rajan        Bug-3449586 commented the amount     |
5423  |                                      checking to correct the rounding     |
5424  |                                      errors.Ref. bug-3409173              |
5425  |     13-JUN-05  Jon Beckett		R12 eTax uptake - included ship to   |
5426  |					columns and tax classification code  |
5427  |     16-AUG-05  Jon Beckett		R12 eTax uptake - added p_tax_amount |
5428  |					to set mode for line_det_factors     |
5429  |     04-Jan-06  Surendra Rajan        Bug 3658284 : Added the code to impl-|
5430  |                                      -ement the line level rounding logic.|
5431  +===========================================================================*/
5432 PROCEDURE insert_line_f_cm_ct_ctl_id(
5433   p_customer_trx_id         IN ra_customer_trx.customer_trx_id%type,
5434   p_customer_trx_line_id    IN ra_customer_trx_lines.customer_trx_line_id%type,
5435   p_prev_customer_trx_id    IN ra_customer_trx.customer_trx_id%type,
5436   p_line_type               IN ra_customer_trx_lines.line_type%type,
5437   p_line_percent            IN number,
5438   p_uncredited_amount       IN ra_customer_trx_lines.extended_amount%type,
5439   p_credit_amount           IN ra_customer_trx_lines.extended_amount%type,
5440   p_currency_code           IN fnd_currencies.currency_code%type,
5441   p_tax_amount              IN ra_customer_trx_lines.extended_amount%type)
5442 IS
5443   l_rows_inserted           number;
5444 --{BUG#3339072
5445 l_trx_line_array  ctlrec;
5446 l_ctl_key_list    gl_ca_utility_pkg.r_key_value_arr := gl_ca_utility_pkg.r_key_value_arr();
5447 i NUMBER;
5448 --}
5449 l_mode		  VARCHAR2(30);
5450 /* Bug-3658284 */
5451 l_amt_run_total         Number ;
5452 l_amt_prev_run_total    Number ;
5453 l_rev_run_total         Number ;
5454 l_rev_prev_run_total    Number ;
5455 /* Bug Number 6790882 */
5456 l_total_tax_prorate	ra_customer_trx_lines.extended_amount%type := 0;
5457 l_tax_amount		ra_customer_trx_lines.extended_amount%type;
5458 
5459 
5460 BEGIN
5461 
5462     IF PG_DEBUG in ('Y', 'C') THEN
5463            arp_util.debug(  'arp_ctl_pkg.insert_line_f_cm_ct_ctl_id()+');
5464            -- MVKOLLA - Bug7113653 Added following debug messages
5465            arp_util.debug('-- Added below messages for bug7113653');
5466            arp_util.debug('p_customer_trx_id         '||p_customer_trx_id);
5467            arp_util.debug('p_customer_trx_line_id    '||p_customer_trx_line_id);
5468            arp_util.debug('p_prev_customer_trx_id    '||p_prev_customer_trx_id);
5469            arp_util.debug('p_line_type               '||p_line_type);
5470            arp_util.debug('p_line_percent            '||p_line_percent);
5471            arp_util.debug('p_uncredited_amount       '||p_uncredited_amount);
5472            arp_util.debug('p_credit_amount           '||p_credit_amount);
5473            arp_util.debug('p_currency_code           '||p_currency_code);
5474            arp_util.debug('p_tax_amount              '||p_tax_amount);
5475     END IF;
5476 
5477     --{BUG#3339072
5478     SELECT ra_customer_trx_lines_s.nextval,
5479            p_customer_trx_id,
5480            pg_user_id,                     /* created_by */
5481            sysdate,                        /* creation_date */
5482            pg_user_id,                     /* last_updated_by */
5483            sysdate,                        /* last_update_date */
5484            nvl(pg_conc_login_id,
5485                  pg_login_id),             /* last_update_login */
5486            inv_ctl.line_number,
5487            decode(nra.line_type,
5488                   'CB', 'LINE',
5489                   nra.line_type),          /* line_type */
5490            inv_ctl.set_of_books_id,
5491            inv_ctl.accounting_rule_id,
5492            decode(inv_ctl.accounting_rule_id,
5493              NULL, decode(inv_ctl.line_type,
5494                      'TAX', 'Y',
5495                      'FREIGHT', 'Y',
5496                      ''),
5497              'N'),                         /* autorule_complete_flag */
5498            decode(inv_ctl.line_type,
5499              'TAX', '',
5500              'FREIGHT', '',
5501              decode(cm_ct.credit_method_for_rules,
5502                'UNIT', inv_ctl.accounting_rule_duration,
5503                '')),                       /* accounting_rule_duration */
5504            inv_ctl.description,
5505            inv_ctl.initial_customer_trx_line_id,
5506            inv_ctl.inventory_item_id,
5507            inv_ctl.item_exception_rate_id,
5508            inv_ctl.memo_line_id,
5509            cm_ct.reason_code,
5510            inv_ctl.customer_trx_id,
5511            inv_ctl.customer_trx_line_id,
5512            cm_ctl.customer_trx_line_id,
5513            inv_ctl.unit_standard_price,
5514            inv_ctl.unit_selling_price,
5515            inv_ctl.gross_unit_selling_price,  -- Bug 7389126 KALYAN
5516            inv_ctl.gross_extended_amount,     -- 6882394
5517            inv_ctl.extended_amount,           -- 6882394 (original)
5518            inv_ctl.revenue_amount,            -- 6882394 (original)
5519            decode(inv_ctl.line_type,
5520              'TAX', '',
5521              'FREIGHT', '',
5522  /* Bug3658284            arpcurr.CurrRound( */
5523              /* Bug-3335466 - Replace the zero amount with 1 */
5524                               ( decode(nra.net_amount,0,1,nra.net_amount) /
5525                                 decode(p_uncredited_amount,
5526                                   0, 1,
5527                                   p_uncredited_amount
5528                                 ) *
5529                                 /* Bug 852633: revert changes for bug 583790 */
5530                                 decode(p_credit_amount, 0, decode(nvl(p_line_percent, 0), 0, 0, -1), p_credit_amount)
5531                               )
5532  /* Bug3658284  , p_currency_code) */
5533                             * inv_ctl.quantity_invoiced /
5534                             decode(inv_ctl.extended_amount, 0, 1,
5535                                    inv_ctl.extended_amount) *
5536                             decode(inv_ctl.line_type,
5537                               'CHARGES', '',
5538                               1
5539                             )
5540              ),             /* quantity */
5541              inv_ctl.quantity_invoiced,         -- Bug 6990227
5542  /* Bug3658284          arpcurr.CurrRound( */
5543                               ( nra.net_amount /
5544                                 decode(p_uncredited_amount,
5545                                        0, 1,
5546                                        p_uncredited_amount
5547                                       ) *
5548                                 /* Bug 852633: revert changes for bug 583790 */
5549                                 decode(p_credit_amount, 0, decode(nvl(p_line_percent, 0), 0, 0, -1),
5550                                        p_credit_amount)
5551                               )
5552  /* Bug3658284  , p_currency_code) */
5553                             ,             /* extended_amount */
5554            decode(inv_ctl.line_type,
5555              'TAX', '',
5556              'FREIGHT', '',
5557  /* Bug3658284    arpcurr.CurrRound( */
5558                               ( nra.net_amount /
5559                                 decode(p_uncredited_amount,
5560                                        0, 1,
5561                                        p_uncredited_amount
5562                                       ) *
5563                                 /* Bug 852633: revert changes for bug 583790 */
5564                                 decode(p_credit_amount, 0, decode(nvl(p_line_percent, 0), 0, 0, -1), p_credit_amount)
5565                               ) *
5566                               ( nvl(inv_ctl.revenue_amount,
5567                                      inv_ctl.extended_amount) /
5568                                 decode(inv_ctl.extended_amount,
5569                                        0, 1,
5570                                        inv_ctl.extended_amount)
5571                               )
5572   /* Bug3658284   , p_currency_code)  */
5573                            * decode(inv_ctl.line_type,
5574                                     'CHARGES', '',
5575                                     1)
5576              ),               /* revenue_amount */
5577            decode(inv_ctl.line_type,
5578              'TAX', '',
5579              'FREIGHT', '',
5580              inv_ctl.sales_order),
5581            decode(inv_ctl.line_type,
5582              'TAX', null,
5583              'FREIGHT', null,
5584              inv_ctl.sales_order_date),
5585            decode(inv_ctl.line_type,
5586              'TAX', '',
5587              'FREIGHT', '',
5588              inv_ctl.sales_order_line),
5589            decode(inv_ctl.line_type,
5590              'TAX', '',
5591              'FREIGHT', '',
5592              inv_ctl.sales_order_revision),
5593            decode(inv_ctl.line_type,
5594              'TAX', '',
5595              'FREIGHT', '',
5596              inv_ctl.sales_order_source),
5597            inv_ctl.tax_exemption_id,
5598            inv_ctl.tax_precedence,
5599            inv_ctl.tax_rate,
5600            inv_ctl.uom_code,
5601            cm_ct.default_ussgl_transaction_code,
5602            cm_ct.default_ussgl_trx_code_context,
5603            inv_ctl.sales_tax_id,
5604            inv_ctl.location_segment_id,
5605            inv_ctl.vat_tax_id,
5606 	   inv_ctl.amount_includes_tax_flag,
5607            inv_ctl.warehouse_id,
5608         --Fix for bug 1161592
5609            cm_ctl.extended_amount /* Taxable_amount */
5610           , inv_ctl.translated_description
5611           ,cm_ct.org_id /* SSA changes anuj */
5612           /* R12 eTax uptake - ship to and tax columns needed */
5613           ,inv_ctl.ship_to_customer_id
5614           ,inv_ctl.ship_to_address_id
5615           ,inv_ctl.ship_to_site_use_id
5616           ,inv_ctl.ship_to_contact_id
5617           ,inv_ctl.tax_classification_code
5618           /* NULL=Y N=not historical, calc tax */
5619           /* N - New CM line is created */
5620           ,NVL(inv_ctl.historical_flag,'N')
5621           ,inv_ctl_memo.line_type
5622       BULK COLLECT INTO
5623           l_trx_line_array.customer_trx_line_id,
5624           l_trx_line_array.customer_trx_id,
5625           l_trx_line_array.created_by,
5626           l_trx_line_array.creation_date,
5627           l_trx_line_array.last_updated_by,
5628           l_trx_line_array.last_update_date,
5629           l_trx_line_array.last_update_login,
5630           l_trx_line_array.line_number,
5631           l_trx_line_array.line_type,
5632           l_trx_line_array.set_of_books_id,
5633           l_trx_line_array.accounting_rule_id,
5634           l_trx_line_array.autorule_complete_flag,
5635           l_trx_line_array.last_period_to_credit,
5636           l_trx_line_array.description,
5637           l_trx_line_array.initial_customer_trx_line_id,
5638           l_trx_line_array.inventory_item_id,
5639           l_trx_line_array.item_exception_rate_id,
5640           l_trx_line_array.memo_line_id,
5641           l_trx_line_array.reason_code,
5642           l_trx_line_array.previous_customer_trx_id,
5643           l_trx_line_array.previous_customer_trx_line_id,
5644           l_trx_line_array.link_to_cust_trx_line_id,
5645           l_trx_line_array.unit_standard_price,
5646           l_trx_line_array.unit_selling_price,
5647           l_trx_line_array.gross_unit_selling_price, -- Bug 7389126 KALYAN
5648           l_trx_line_array.gross_extended_amount,    -- 6882394
5649           l_trx_line_array.original_extended_amount, -- 6882394
5650           l_trx_line_array.original_revenue_amount,  -- 6882394
5651           l_trx_line_array.quantity_credited,
5652           l_trx_line_array.quantity_invoiced,   -- Bug 6990227.
5653           l_trx_line_array.extended_amount,
5654           l_trx_line_array.revenue_amount,
5655           l_trx_line_array.sales_order,
5656           l_trx_line_array.sales_order_date,
5657           l_trx_line_array.sales_order_line,
5658           l_trx_line_array.sales_order_revision,
5659           l_trx_line_array.sales_order_source,
5660           l_trx_line_array.tax_exemption_id,
5661           l_trx_line_array.tax_precedence,
5662           l_trx_line_array.tax_rate,
5663           l_trx_line_array.uom_code,
5664           l_trx_line_array.default_ussgl_transaction_code,
5665           l_trx_line_array.default_ussgl_trx_code_context,
5666           l_trx_line_array.sales_tax_id,
5667           l_trx_line_array.location_segment_id,
5668           l_trx_line_array.vat_tax_id,
5669 	  l_trx_line_array.amount_includes_tax_flag,
5670           l_trx_line_array.warehouse_id,
5671           l_trx_line_array.taxable_amount,
5672           l_trx_line_array.translated_description,
5673           l_trx_line_array.org_id,
5674           l_trx_line_array.ship_to_customer_id,
5675           l_trx_line_array.ship_to_address_id,
5676           l_trx_line_array.ship_to_site_use_id,
5677           l_trx_line_array.ship_to_contact_id,
5678           l_trx_line_array.tax_classification_code,
5679           l_trx_line_array.historical_flag,
5680           l_trx_line_array.memo_line_type
5681           --}
5682     FROM   ra_customer_trx_lines inv_ctl,
5683            ra_customer_trx_lines cm_ctl,
5684            ra_customer_trx       cm_ct,
5685            ar_net_revenue_amount nra,
5686            ar_memo_lines_b       inv_ctl_memo
5687     WHERE  cm_ct.customer_trx_id    = p_customer_trx_id
5688       AND  inv_ctl.customer_trx_id  = cm_ct.previous_customer_trx_id
5689       AND  nra.customer_trx_id      = p_prev_customer_trx_id
5690       AND  nra.customer_trx_line_id = inv_ctl.customer_trx_line_id
5691       AND  nra.line_type            = inv_ctl.line_type
5692       AND  p_customer_trx_id        = cm_ctl.customer_trx_id(+)
5693       AND  nvl(p_customer_trx_line_id,
5694                -99)                 = decode(p_customer_trx_line_id,
5695                                       null, -99,
5696                                       cm_ctl.customer_trx_line_id)
5697       AND  inv_ctl.link_to_cust_trx_line_id =
5698                                       cm_ctl.previous_customer_trx_line_id(+)
5699       AND  decode(nra.line_type, 'CB', 'LINE',
5700                                  'CHARGES', 'LINE',
5701                                 nra.line_type) = p_line_type
5702       AND  inv_ctl.memo_line_id = inv_ctl_memo.memo_line_id (+);
5703 
5704 
5705    l_rows_inserted := l_trx_line_array.customer_trx_line_id.COUNT;
5706 
5707 /* Bug-3658284 -Start */
5708    IF (l_trx_line_array.customer_trx_line_id.COUNT = 0) Then
5709       IF PG_DEBUG in ('Y', 'C') THEN
5710          arp_util.debug(  'arp_ctl_pkg.insert_line_f_cm_ct_ctl_id : '||' 0 row  Fetch ');
5711       END IF;
5712 
5713    ELSE /*-- Bug 5098922 ---*/
5714 
5715    FOR i IN l_trx_line_array.customer_trx_line_id.FIRST ..
5716             l_trx_line_array.customer_trx_line_id.LAST
5717    LOOP
5718 
5719       /*-------------------------------------------------------------------------+
5720        | Maintain running total amounts for Revenue amounts and accounted amounts|
5721        +-------------------------------------------------------------------------*/
5722           l_amt_run_total          := Nvl(l_amt_run_total,0)
5723                                        + l_trx_line_array.extended_amount(i);
5724 
5725       /*-------------------------------------------------------------------------------+
5726        | Adjusting the rounding amount in the next line amount - revenue for cm line   |
5727        | Eg. Line 1   -> 10 * 10/100  = 1 (rounded amount)                             |
5728        |     Line 2   -> 20 * 10/100  = 2 (rounded amount)                             |
5729        |               ->  2  - Line 1 (rounded amount) -> 2 - 1 -> 1                  |
5730        |     Line ...                                                                  |
5731        +-------------------------------------------------------------------------------+ */
5732           l_trx_line_array.extended_amount(i) := arpcurr.CurrRound(l_amt_run_total
5733                              ,p_currency_code) -Nvl(l_amt_prev_run_total,0);
5734       /*------------------------------------------------------------------------------+
5735        | Running total for previous line amount - Revenue in currency                 |
5736        +------------------------------------------------------------------------------*/
5737           l_amt_prev_run_total := Nvl(l_amt_prev_run_total,0)
5738                                           + l_trx_line_array.extended_amount(i);
5739 
5740         If l_trx_line_array.line_type(i) = 'LINE' then
5741 
5742            l_rev_run_total                    := Nvl(l_rev_run_total,0)
5743                                                 + l_trx_line_array.revenue_amount(i);
5744            l_trx_line_array.revenue_amount(i) := arpcurr.CurrRound(l_rev_run_total
5745                                       ,p_currency_code) -Nvl(l_rev_prev_run_total,0);
5746            l_rev_prev_run_total               := Nvl(l_rev_prev_run_total,0)
5747                                                 + l_trx_line_array.revenue_amount(i);
5748 
5749           /* 6882394 - Handle inclusive tax if it exists and if tax is
5750               being credited at this time.  */
5751           IF l_trx_line_array.gross_extended_amount(i) IS NOT NULL AND
5752              p_tax_amount IS NOT NULL
5753           THEN
5754              IF PG_DEBUG = 'Y'
5755              THEN
5756                  arp_util.debug('Inclusive tax, adjusting extended/revenue amounts');
5757                  arp_util.debug('customer_trx_line_id = ' ||
5758                      l_trx_line_array.customer_trx_line_id(i));
5759                  arp_util.debug('  original extended_amount = ' ||
5760                      l_trx_line_array.extended_amount(i));
5761                  arp_util.debug('  original revenue_amount = ' ||
5762                      l_trx_line_array.revenue_amount(i));
5763              END IF;
5764 
5765              l_trx_line_array.extended_amount(i) :=
5766                 arpcurr.currround(
5767                   l_trx_line_array.gross_extended_amount(i) *
5768                       (l_trx_line_array.extended_amount(i) /
5769                        l_trx_line_array.original_extended_amount(i)), p_currency_code);
5770 
5771              l_trx_line_array.revenue_amount(i) :=
5772                 arpcurr.currround(
5773                   l_trx_line_array.gross_extended_amount(i) *
5774                       (l_trx_line_array.revenue_amount(i) /
5775                        l_trx_line_array.original_revenue_amount(i)), p_currency_code);
5776 
5777              IF PG_DEBUG = 'Y'
5778              THEN
5779                  arp_util.debug('  new extended_amount = ' ||
5780                      l_trx_line_array.extended_amount(i));
5781                  arp_util.debug('  new revenue_amount = ' ||
5782                      l_trx_line_array.revenue_amount(i));
5783              END IF;
5784 
5785           END IF;
5786 
5787 /*-----------------------------------------------------------------------------------+
5788 | Bug 6990227 : For 100% Credit Allocation, Invoice Quantity is copied to CM Quantity
5789 +------------------------------------------------------------------------------------*/
5790            If p_line_percent = 100 then
5791              l_trx_line_array.quantity_credited(i) :=(-1) *
5792 l_trx_line_array.quantity_invoiced(i);
5793            Else
5794           /*---------------------------------------------------------------+
5795            | Quantity_credited * Unit price is equal to extended_amount    |
5796            +---------------------------------------------------------------*/
5797            If Nvl(l_trx_line_array.unit_Selling_price(i),0) <> 0 then
5798              -- Bug 7389126 KALYAN
5799                If Nvl(l_trx_line_array.gross_unit_Selling_price(i),0) <> 0 then
5800                  l_trx_line_array.quantity_credited(i) := l_trx_line_array.extended_amount(i) /
5801                                                   l_trx_line_array.gross_unit_Selling_price(i);
5802                Else
5803                  l_trx_line_array.quantity_credited(i) := l_trx_line_array.extended_amount(i) /
5804                                                  l_trx_line_array.unit_Selling_price(i);
5805                End If;
5806            End If;
5807         End if;
5808       End if;
5809    End Loop;
5810 
5811  END IF;  /* -- Bug 5098922 ---*/
5812 /* Bug-3658284 - End  */
5813 -- MVKOLLA - Added following debug messages as part of bug7113653
5814     IF PG_DEBUG in ('Y', 'C') THEN
5815         i := l_trx_line_array.customer_trx_line_id.FIRST;
5816         WHILE l_trx_line_array.customer_trx_line_id.EXISTS(i) LOOP
5817            arp_util.debug('l_trx_line_array.customer_trx_line_id(i)    '||l_trx_line_array.customer_trx_line_id(i));
5818            arp_util.debug('l_trx_line_array.previous_customer_trx_line_id(i)    '||l_trx_line_array.previous_customer_trx_line_id(i));
5819            arp_util.debug('l_trx_line_array.extended_amount(i)    '||l_trx_line_array.extended_amount(i));
5820            arp_util.debug('l_trx_line_array.revenue_amount(i)              '||l_trx_line_array.revenue_amount(i));
5821           i := l_trx_line_array.customer_trx_line_id.NEXT(i);
5822         END LOOP;
5823     END IF;
5824 
5825   --{BUG#3339072
5826   IF l_rows_inserted <> 0 THEN
5827     FORALL indx IN l_trx_line_array.customer_trx_line_id.FIRST ..
5828                    l_trx_line_array.customer_trx_line_id.LAST
5829     INSERT INTO ra_customer_trx_lines
5830        (  customer_trx_line_id,
5831           customer_trx_id,
5832           created_by,
5833           creation_date,
5834           last_updated_by,
5835           last_update_date,
5836           last_update_login,
5837           line_number,
5838           line_type,
5839           set_of_books_id,
5840           accounting_rule_id,
5841           autorule_complete_flag,
5842           last_period_to_credit,
5843           description,
5844           initial_customer_trx_line_id,
5845           inventory_item_id,
5846           item_exception_rate_id,
5847           memo_line_id,
5848           reason_code,
5849           previous_customer_trx_id,
5850           previous_customer_trx_line_id,
5851           link_to_cust_trx_line_id,
5852           unit_standard_price,
5853           unit_selling_price,
5854           gross_unit_selling_price,  -- Bug 7389126 KALYAN
5855           quantity_credited,
5856           extended_amount,
5857           revenue_amount,
5858           sales_order,
5859           sales_order_date,
5860           sales_order_line,
5861           sales_order_revision,
5862           sales_order_source,
5863           tax_exemption_id,
5864           tax_precedence,
5865           tax_rate,
5866           uom_code,
5867           default_ussgl_transaction_code,
5868           default_ussgl_trx_code_context,
5869           sales_tax_id,
5870           location_segment_id,
5871           vat_tax_id,
5872           amount_includes_tax_flag,
5873           warehouse_id,
5874           taxable_amount,
5875           translated_description
5876           ,org_id
5877           ,ship_to_customer_id
5878           ,ship_to_address_id
5879           ,ship_to_site_use_id
5880           ,ship_to_contact_id
5881           ,tax_classification_code
5882           ,historical_flag
5883        ) VALUES
5884        (  l_trx_line_array.customer_trx_line_id(indx),
5885           l_trx_line_array.customer_trx_id(indx),
5886           l_trx_line_array.created_by(indx),
5887           l_trx_line_array.creation_date(indx),
5888           l_trx_line_array.last_updated_by(indx),
5889           l_trx_line_array.last_update_date(indx),
5890           l_trx_line_array.last_update_login(indx),
5891           l_trx_line_array.line_number(indx),
5892           l_trx_line_array.line_type(indx),
5893           l_trx_line_array.set_of_books_id(indx),
5894           l_trx_line_array.accounting_rule_id(indx),
5895           l_trx_line_array.autorule_complete_flag(indx),
5896           l_trx_line_array.last_period_to_credit(indx),
5897           l_trx_line_array.description(indx),
5898           l_trx_line_array.initial_customer_trx_line_id(indx),
5899           l_trx_line_array.inventory_item_id(indx),
5900           l_trx_line_array.item_exception_rate_id(indx),
5901           l_trx_line_array.memo_line_id(indx),
5902           l_trx_line_array.reason_code(indx),
5903           l_trx_line_array.previous_customer_trx_id(indx),
5904           l_trx_line_array.previous_customer_trx_line_id(indx),
5905           l_trx_line_array.link_to_cust_trx_line_id(indx),
5906           l_trx_line_array.unit_standard_price(indx),
5907           l_trx_line_array.unit_selling_price(indx),
5908           l_trx_line_array.gross_unit_selling_price(indx), -- Bug 7389126 KALYAN
5909           l_trx_line_array.quantity_credited(indx),
5910           l_trx_line_array.extended_amount(indx),
5911           l_trx_line_array.revenue_amount(indx),
5912           l_trx_line_array.sales_order(indx),
5913           l_trx_line_array.sales_order_date(indx),
5914           l_trx_line_array.sales_order_line(indx),
5915           l_trx_line_array.sales_order_revision(indx),
5916           l_trx_line_array.sales_order_source(indx),
5917           l_trx_line_array.tax_exemption_id(indx),
5918           l_trx_line_array.tax_precedence(indx),
5919           l_trx_line_array.tax_rate(indx),
5920           l_trx_line_array.uom_code(indx),
5921           l_trx_line_array.default_ussgl_transaction_code(indx),
5922           l_trx_line_array.default_ussgl_trx_code_context(indx),
5923           l_trx_line_array.sales_tax_id(indx),
5924           l_trx_line_array.location_segment_id(indx),
5925           l_trx_line_array.vat_tax_id(indx),
5926 	  l_trx_line_array.amount_includes_tax_flag(indx),
5927           l_trx_line_array.warehouse_id(indx),
5928           l_trx_line_array.taxable_amount(indx),
5929           l_trx_line_array.translated_description(indx),
5930           l_trx_line_array.org_id(indx),
5931           l_trx_line_array.ship_to_customer_id(indx),
5932           l_trx_line_array.ship_to_address_id(indx),
5933           l_trx_line_array.ship_to_site_use_id(indx),
5934           l_trx_line_array.ship_to_contact_id(indx),
5935 	  l_trx_line_array.tax_classification_code(indx),
5936           l_trx_line_array.historical_flag(indx));
5937 
5938         i := l_trx_line_array.customer_trx_line_id.FIRST;
5939         WHILE l_trx_line_array.customer_trx_line_id.EXISTS(i) LOOP
5940           l_ctl_key_list.EXTEND;
5941 
5942           l_ctl_key_list(i) := l_trx_line_array.customer_trx_line_id(i);
5943 
5944         /* R12 eTax uptake */
5945 
5946    /* 5402228 - clarified use of tax for line-only scenarios.  There are
5947       two to be concerned with.  They are:
5948 
5949       1) inv or cm with memo_line of type TAX -
5950              INSERT_NO_TAX       - LINE_INFO_TAX_ONLY
5951       2) inv or cm with no tax at all
5952              INSERT_NO_TAX_EVER  - RECORD_WITH_NO_TAX
5953    */
5954 
5955         IF p_line_type = 'LINE' THEN
5956            IF p_tax_amount IS NULL THEN  --bug6778519
5957               IF NVL(l_trx_line_array.memo_line_type(i), 'XXX') = 'TAX'
5958               THEN
5959                  l_mode := 'INSERT_NO_TAX';
5960               ELSE
5961                  l_mode := 'INSERT_NO_TAX_EVER';
5962               END IF;
5963            ELSIF NVL(p_credit_amount,0) = 0 THEN
5964               l_mode := 'INSERT_NO_LINE';
5965            ELSE
5966               l_mode := 'INSERT';
5967            END IF;
5968 
5969 /* Bug Number 6790882 */
5970 
5971     IF PG_DEBUG in ('Y', 'C') THEN
5972        arp_util.debug(  'i = ' || i);
5973        arp_util.debug(  'l_rows_inserted = ' || l_rows_inserted);
5974        arp_util.debug(  'l_mode = ' || l_mode);
5975     END IF;
5976 
5977      IF l_mode = 'INSERT_NO_LINE' THEN
5978 	IF i = l_rows_inserted THEN
5979 		l_tax_amount := p_tax_amount - l_total_tax_prorate;
5980 	ELSE
5981 		l_tax_amount := calculate_prorated_tax_amount(
5982                      	            p_mode => l_mode,
5983 				    p_tax_amount => p_tax_amount,
5984 				    p_customer_trx_id => p_customer_trx_id,
5985 				    p_customer_trx_line_id =>
5986                                       l_trx_line_array.customer_trx_line_id(i));
5987 
5988 		l_total_tax_prorate := l_total_tax_prorate + l_tax_amount;
5989 	END IF;
5990      ELSE
5991         l_tax_amount := p_tax_amount;
5992      END IF;
5993 
5994     IF PG_DEBUG in ('Y', 'C') THEN
5995        arp_util.debug(  'l_total_tax_prorate = ' || l_total_tax_prorate);
5996        arp_util.debug(  'l_tax_amount = ' || l_tax_amount);
5997     END IF;
5998 
5999            ARP_ETAX_SERVICES_PKG.line_det_factors(
6000                p_customer_trx_line_id => l_trx_line_array.customer_trx_line_id(i),
6001                p_customer_trx_id => p_customer_trx_id,
6002                p_mode => l_mode,
6003 	       p_tax_amount => l_tax_amount) ;
6004         END IF;
6005 
6006           i := l_trx_line_array.customer_trx_line_id.NEXT(i);
6007         END LOOP;
6008 
6009      END IF;
6010      --}
6011 
6012 
6013     IF PG_DEBUG in ('Y', 'C') THEN
6014        arp_util.debug(  'arp_ctl_pkg.insert_line_f_cm_ct_ctl_id : '||
6015                    to_char(l_rows_inserted)||' rows inserted');
6016     END IF;
6017 
6018 /* Bug 3658284 - Remove the entire rounding update statement */
6019 
6020     IF PG_DEBUG in ('Y', 'C') THEN
6021        arp_util.debug(  'arp_ctl_pkg.insert_line_f_cm_ct_ctl_id()-');
6022     END IF;
6023 
6024 EXCEPTION
6025   WHEN NO_DATA_FOUND THEN
6026     return;
6027   WHEN OTHERS THEN
6028     IF PG_DEBUG in ('Y', 'C') THEN
6029        arp_util.debug(  'EXCEPTION: arp_ctl_pkg.insert_line_f_cm_ct_ctl_id');
6030        arp_util.debug(  '');
6031        arp_util.debug(  'p_customer_trx_id         = '||p_customer_trx_id);
6032        arp_util.debug(  'p_customer_trx_line_id    = '||p_customer_trx_line_id);
6033        arp_util.debug(  'p_prev_customer_trx_id    = '||p_prev_customer_trx_id);
6034        arp_util.debug(  'p_line_type               = '||p_line_type);
6035        arp_util.debug(  'p_uncredited_amount       = '||p_uncredited_amount);
6036        arp_util.debug(  'p_credit_amount           = '||p_credit_amount);
6037        arp_util.debug(  'p_currency_code           = '||p_currency_code);
6038     END IF;
6039     RAISE;
6040 
6041 END;
6042 
6043 
6044 /*===========================================================================+
6045  | FUNCTION                                                                  |
6046  |    update_line_f_cm_ctl_id                                                |
6047  |                                                                           |
6048  | DESCRIPTION                                                               |
6049  |    This procedure updates credit memo lines for the specified line type   |
6050  |                                                                           |
6051  | SCOPE - PUBLIC                                                            |
6052  |                                                                           |
6053  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
6054  |    arp_util.debug                                                         |
6055  |                                                                           |
6056  | ARGUMENTS  : IN:                                                          |
6057  |                    None                                                   |
6058  |              OUT:                                                         |
6059  |                    None                                                   |
6060  |                                                                           |
6061  | RETURNS    : NONE                                                         |
6062  |                                                                           |
6063  | NOTES                                                                     |
6064  |                                                                           |
6065  | MODIFICATION HISTORY                                                      |
6066  |     29-AUG-95  Subash Chadalavada  Created                                |
6067  |                                                                           |
6068  +===========================================================================*/
6069 PROCEDURE update_line_f_cm_ctl_id(
6070   p_customer_trx_id         IN ra_customer_trx.customer_trx_id%type,
6071   p_customer_trx_line_id    IN ra_customer_trx_lines.customer_trx_line_id%type,
6072   p_prev_customer_trx_id    IN ra_customer_trx.customer_trx_id%type,
6073   p_line_type               IN ra_customer_trx_lines.line_type%type,
6074   p_uncredited_amount       IN ra_customer_trx_lines.extended_amount%type,
6075   p_credit_amount           IN ra_customer_trx_lines.extended_amount%type,
6076   p_currency_code           IN fnd_currencies.currency_code%type)
6077 IS
6078   l_rows_updated           number;
6079 --{BUG#3339072
6080 l_ctl_key_list  gl_ca_utility_pkg.r_key_value_arr;
6081 --}
6082 BEGIN
6083 
6084     IF PG_DEBUG in ('Y', 'C') THEN
6085        arp_util.debug(  'arp_ctl_pkg.update_line_f_cm_ctl_id()+');
6086     END IF;
6087 
6088     UPDATE ra_customer_trx_lines ctl
6089     SET    extended_amount =
6090               (SELECT ( (nra.net_amount  -
6091                          decode(cm_ct.complete_flag,
6092                            'Y', nvl(ctl.extended_amount, 0),
6093                            0)) /
6094                          decode(p_uncredited_amount,
6095                            0, 1,
6096                            p_uncredited_amount
6097                            ) * nvl(p_credit_amount, 0)
6098                       ) /* extended_amount */
6099                FROM   ar_net_revenue_amount nra,
6100                       ra_customer_trx cm_ct
6101                WHERE  nra.customer_trx_id = p_prev_customer_trx_id
6102                AND    nra.customer_trx_line_id =
6103                            ctl.previous_customer_trx_line_id
6104                AND    cm_ct.customer_trx_id = p_customer_trx_id)
6105     WHERE  ctl.customer_trx_id = p_customer_trx_id
6106     AND    ctl.link_to_cust_trx_line_id = p_customer_trx_line_id
6107     AND    ctl.line_type = p_line_type
6108     --{BUG#3339072 HYU test test test
6109     RETURNING customer_trx_line_id
6110     BULK COLLECT INTO l_ctl_key_list;
6111     --}
6112 
6113     IF PG_DEBUG in ('Y', 'C') THEN
6114        arp_util.debug(  'arp_ctl_pkg.update_line_f_cm_ctl_id : '||
6115                    'Extended Amount :'|| SQL%ROWCOUNT||' rows updated');
6116     END IF;
6117 
6118     UPDATE ra_customer_trx_lines ctl
6119     SET    extended_amount = arpcurr.CurrRound (extended_amount,
6120                                                 p_currency_code)
6121     WHERE  ctl.customer_trx_id = p_customer_trx_id
6122     AND    ctl.link_to_cust_trx_line_id = p_customer_trx_line_id
6123     AND    ctl.line_type = p_line_type
6124     --{BUG#3339072 HYU test test test
6125     RETURNING customer_trx_line_id
6126     BULK COLLECT INTO l_ctl_key_list;
6127     --}
6128 
6129     IF PG_DEBUG in ('Y', 'C') THEN
6130        arp_util.debug(  'arp_ctl_pkg.update_line_f_cm_ctl_id : '||
6131                    'Currency Rounding :'|| SQL%ROWCOUNT||' rows updated');
6132     END IF;
6133 
6134    /*----------------------------+
6135     |  correct rounding errors   |
6136     +----------------------------*/
6137 
6138     IF (SQL%ROWCOUNT > 0)
6139     THEN
6140         UPDATE ra_customer_trx_lines l
6141         SET extended_amount =
6142                (SELECT l.extended_amount +
6143                         (p_credit_amount - sum(l2.extended_amount))
6144                 FROM   ra_customer_trx_lines l2
6145                 WHERE  l2.customer_trx_id = l.customer_trx_id
6146                 AND    l2.link_to_cust_trx_line_id = p_customer_trx_line_id
6147                 AND    l2.line_type = p_line_type)
6148         WHERE l.customer_trx_id      = p_customer_trx_id
6149         AND   l.line_type            = p_line_type
6150         AND   l.customer_trx_line_id =
6151                    (SELECT min(customer_trx_line_id)
6152                     FROM   ra_customer_trx_lines l3
6153                     WHERE  l3.customer_trx_id = p_customer_trx_id
6154                     AND    l3.link_to_cust_trx_line_id = p_customer_trx_line_id
6155                     AND    l3.line_type       = p_line_type
6156                     AND    l3.extended_amount <> 0
6157                     HAVING SUM(l3.extended_amount) <> p_credit_amount)
6158         --{BUG#3339072 HYU test test test
6159         RETURNING customer_trx_line_id
6160         BULK COLLECT INTO l_ctl_key_list;
6161         --}
6162 
6163 
6164     END IF;
6165 
6166     IF PG_DEBUG in ('Y', 'C') THEN
6167        arp_util.debug(  'arp_ctl_pkg.update_line_f_cm_ctl_id()-');
6168     END IF;
6169 
6170 EXCEPTION
6171   WHEN NO_DATA_FOUND THEN
6172     return;
6173   WHEN OTHERS THEN
6174     IF PG_DEBUG in ('Y', 'C') THEN
6175        arp_util.debug(  'EXCEPTION: arp_ctl_pkg.update_line_f_cm_ctl_id');
6176        arp_util.debug(  '');
6177        arp_util.debug(  'p_customer_trx_id         = '||p_customer_trx_id);
6178        arp_util.debug(  'p_customer_trx_line_id    = '||p_customer_trx_line_id);
6179        arp_util.debug(  'p_prev_customer_trx_id    = '||p_prev_customer_trx_id);
6180        arp_util.debug(  'p_line_type               = '||p_line_type);
6181        arp_util.debug(  'p_uncredited_amount       = '||p_uncredited_amount);
6182        arp_util.debug(  'p_credit_amount           = '||p_credit_amount);
6183        arp_util.debug(  'p_currency_code           = '||p_currency_code);
6184     END IF;
6185     RAISE;
6186 
6187 END;
6188 
6189 
6190 /*===========================================================================+
6191  | FUNCTION                                                                  |
6192  |    get_text_dummy							     |
6193  |                                                                           |
6194  | DESCRIPTION                                                               |
6195  |    This function returns the value of the AR_TEXT_DUMMY constant.         |
6196  |    									     |
6197  | SCOPE - PUBLIC                                                            |
6198  |                                                                           |
6199  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
6200  |    arp_util.debug                                                         |
6201  |                                                                           |
6202  | ARGUMENTS  : IN:                                                          |
6203  |                    None						     |
6204  |              OUT:                                                         |
6205  |                    None						     |
6206  |                                                                           |
6207  | RETURNS    : value of AR_TEXT_DUMMY                                       |
6208  |                                                                           |
6209  | NOTES                                                                     |
6210  |                                                                           |
6211  | MODIFICATION HISTORY                                                      |
6212  |     09-AUG-95  Martin Johnson      Created                                |
6213  |                                                                           |
6214  +===========================================================================*/
6215 
6216 FUNCTION get_text_dummy(p_null IN NUMBER DEFAULT null) RETURN varchar2 IS
6217 
6218 BEGIN
6219 
6220 ---    arp_util.debug('arp_ctl_pkg.get_text_dummy()+');
6221 
6222 ---    arp_util.debug('arp_ctl_pkg.get_text_dummy()-');
6223 
6224     return(AR_TEXT_DUMMY);
6225 
6226 EXCEPTION
6227     WHEN OTHERS THEN
6228         IF PG_DEBUG in ('Y', 'C') THEN
6229            arp_util.debug(  'EXCEPTION:  arp_ctl_pkg.get_text_dummy()');
6230         END IF;
6231         RAISE;
6232 
6233 END;
6234 
6235 /*===========================================================================+
6236  | FUNCTION                                                                  |
6237  |    get_number_dummy							     |
6238  |                                                                           |
6239  | DESCRIPTION                                                               |
6240  |    This function returns the value of the AR_NUMBER DUMMY constant.       |
6241  |    									     |
6242  | SCOPE - PUBLIC                                                            |
6243  |                                                                           |
6244  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
6245  |    arp_util.debug                                                         |
6246  |                                                                           |
6247  | ARGUMENTS  : IN:                                                          |
6248  |                    None						     |
6249  |              OUT:                                                         |
6250  |                    None						     |
6251  |                                                                           |
6252  | RETURNS    : value of AR_NUMBER_DUMMY                                     |
6253  |                                                                           |
6254  | NOTES                                                                     |
6255  |                                                                           |
6256  | MODIFICATION HISTORY                                                      |
6257  |     09-AUG-95  Martin Johnson      Created                                |
6258  |                                                                           |
6259  +===========================================================================*/
6260 
6261 FUNCTION get_number_dummy(p_null IN NUMBER DEFAULT null) RETURN number IS
6262 
6263 BEGIN
6264 
6265 ---    arp_util.debug('arp_ctl_pkg.get_number_dummy()+');
6266 
6267 ---   arp_util.debug('arp_ctl_pkg.get_number_dummy()-');
6268 
6269     return(AR_NUMBER_DUMMY);
6270 
6271 EXCEPTION
6272     WHEN OTHERS THEN
6273         IF PG_DEBUG in ('Y', 'C') THEN
6274            arp_util.debug(  'EXCEPTION:  arp_ctl_pkg.get_number_dummy()');
6275         END IF;
6276         RAISE;
6277 
6278 END;
6279 
6280   /*---------------------------------------------+
6281    |   Package initialization section.           |
6282    |   Sets WHO column variables for later use.  |
6283    +---------------------------------------------*/
6284 
6285 BEGIN
6286 
6287   pg_user_id          := fnd_global.user_id;
6288   pg_conc_login_id    := fnd_global.conc_login_id;
6289   pg_login_id         := fnd_global.login_id;
6290   pg_prog_appl_id     := fnd_global.prog_appl_id;
6291   pg_conc_program_id  := fnd_global.conc_program_id;
6292 
6293 
6294 END ARP_CTL_PKG;