DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGI_DOS_TRX_SOURCES_PKG

Source


1 PACKAGE BODY igi_dos_trx_sources_pkg AS
2 /* $Header: igidostb.pls 120.7.12000000.2 2007/06/14 05:55:29 pshivara ship $ */
3 
4 l_debug_level   number;
5 
6 l_state_level   number;
7 l_proc_level    number;
8 l_event_level   number;
9 l_excep_level   number;
10 l_error_level   number;
11 l_unexp_level   number;
12 
13   l_rowid VARCHAR2(25);
14   old_references igi_dos_trx_sources%ROWTYPE;
15   new_references igi_dos_trx_sources%ROWTYPE;
16 
17   PROCEDURE set_column_values (
18     p_action                            IN     VARCHAR2,
19     x_rowid                             IN     VARCHAR2     ,
20     x_sob_id                            IN     NUMBER       ,
21     x_trx_id                            IN     NUMBER       ,
22     x_source_trx_id                     IN     NUMBER       ,
23     x_source_id                         IN     NUMBER       ,
24     x_code_combination_id               IN     NUMBER       ,
25     x_profile_code                      IN     VARCHAR2     ,
26     x_budget_org_id                     IN     NUMBER       ,
27     x_budget_entity_id                  IN     NUMBER       ,
28     x_budget_amount                     IN     NUMBER       ,
29     x_funds_available                   IN     NUMBER       ,
30     x_new_balance                       IN     NUMBER       ,
31     x_currency_code                     IN     VARCHAR2     ,
32     x_visible_segments                  IN     VARCHAR2     ,
33     x_actual_segments                   IN     VARCHAR2     ,
34     x_m_budget_amount                 IN     NUMBER       ,
35     x_m_budget_amt_exch_rate          IN     NUMBER       ,
36     x_m_budget_amt_exch_rate_type     IN     VARCHAR2     ,
37     x_m_budget_amt_exch_date          IN     DATE         ,
38     x_m_budget_amt_exch_status        IN     VARCHAR2     ,
39     x_m_funds_avail                   IN     NUMBER       ,
40     x_m_funds_avail_exch_rate         IN     NUMBER       ,
41     x_m_funds_avail_exch_rate_type    IN     VARCHAR2     ,
42     x_m_funds_avail_exch_date         IN     DATE         ,
43     x_m_funds_avail_exch_status       IN     VARCHAR2     ,
44     x_m_new_balance                   IN     NUMBER       ,
45     x_m_new_balance_exch_rate         IN     NUMBER       ,
46     x_m_new_balance_exch_rate_type    IN     VARCHAR2     ,
47     x_m_new_balance_exch_date         IN     DATE         ,
48     x_m_new_balance_exch_status       IN     VARCHAR2     ,
49     x_budget_name                       IN     VARCHAR2     ,
50     x_dossier_id                        IN     NUMBER       ,
51     x_budget_version_id                 IN     NUMBER       ,
52     x_period_name                       IN     VARCHAR2     ,
53     x_status                            IN     VARCHAR2     ,
54     x_group_id                          IN     NUMBER       ,
55     x_quarter_num                       IN     NUMBER       ,
56     x_period_year                       IN     NUMBER       ,
57     x_period_num                        IN     NUMBER       ,
58     x_line_num                          IN     NUMBER       ,
59     x_segment1                          IN     VARCHAR2     ,
60     x_segment2                          IN     VARCHAR2     ,
61     x_segment3                          IN     VARCHAR2     ,
62     x_segment4                          IN     VARCHAR2     ,
63     x_segment5                          IN     VARCHAR2     ,
64     x_segment6                          IN     VARCHAR2     ,
65     x_segment7                          IN     VARCHAR2     ,
66     x_segment8                          IN     VARCHAR2     ,
67     x_segment9                          IN     VARCHAR2     ,
68     x_segment10                         IN     VARCHAR2     ,
69     x_segment11                         IN     VARCHAR2     ,
70     x_segment12                         IN     VARCHAR2     ,
71     x_segment13                         IN     VARCHAR2     ,
72     x_segment14                         IN     VARCHAR2     ,
73     x_segment15                         IN     VARCHAR2     ,
74     x_segment16                         IN     VARCHAR2     ,
75     x_segment17                         IN     VARCHAR2     ,
76     x_segment18                         IN     VARCHAR2     ,
77     x_segment19                         IN     VARCHAR2     ,
78     x_segment20                         IN     VARCHAR2     ,
79     x_segment21                         IN     VARCHAR2     ,
80     x_segment22                         IN     VARCHAR2     ,
81     x_segment23                         IN     VARCHAR2     ,
82     x_segment24                         IN     VARCHAR2     ,
83     x_segment25                         IN     VARCHAR2     ,
84     x_segment26                         IN     VARCHAR2     ,
85     x_segment27                         IN     VARCHAR2     ,
86     x_segment28                         IN     VARCHAR2     ,
87     x_segment29                         IN     VARCHAR2     ,
88     x_segment30                         IN     VARCHAR2     ,
89     x_creation_date                     IN     DATE         ,
90     x_created_by                        IN     NUMBER       ,
91     x_last_update_date                  IN     DATE         ,
92     x_last_updated_by                   IN     NUMBER       ,
93     x_last_update_login                 IN     NUMBER
94   ) AS
95   /*
96   ||  Created By : [email protected]
97   ||  Created On : 02-MAY-2002
98   ||  Purpose : Initialises the Old and New references for the columns of the table.
99   ||  Known limitations, enhancements or remarks :
100   ||  Change History :
101   ||  Who             When            What
102   ||  (reverse chronological order - newest change first)
103   */
104 
105     CURSOR cur_old_ref_values IS
106       SELECT   *
107       FROM     igi_dos_trx_sources
108       WHERE    rowid = x_rowid;
109 
110   BEGIN
111 
112     l_rowid := x_rowid;
113 
114     -- Code for setting the Old and New Reference Values.
115     -- Populate Old Values.
116     OPEN cur_old_ref_values;
117     FETCH cur_old_ref_values INTO old_references;
118     IF ((cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT'))) THEN
119       CLOSE cur_old_ref_values;
120       fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
121 -- bug 3199481, start block
122       IF (l_unexp_level >= l_debug_level) THEN
123          FND_LOG.MESSAGE(l_unexp_level, 'igi.plsql.igi_dos_trx_sources_pkg.set_column_values.Msg1',FALSE);
124       END IF;
125 -- bug 3199481, end block
126       app_exception.raise_exception;
127       RETURN;
128     END IF;
129     CLOSE cur_old_ref_values;
130 
131     -- Populate New Values.
132     new_references.sob_id                            := x_sob_id;
133     new_references.trx_id                            := x_trx_id;
134     new_references.source_trx_id                     := x_source_trx_id;
135     new_references.source_id                         := x_source_id;
136     new_references.code_combination_id               := x_code_combination_id;
137     new_references.profile_code                      := x_profile_code;
138     new_references.budget_org_id                     := x_budget_org_id;
139     new_references.budget_entity_id                  := x_budget_entity_id;
140     new_references.budget_amount                     := x_budget_amount;
141     new_references.funds_available                   := x_funds_available;
142     new_references.new_balance                       := x_new_balance;
143     new_references.currency_code                     := x_currency_code;
144     new_references.visible_segments                  := x_visible_segments;
145     new_references.actual_segments                   := x_actual_segments;
146     new_references.mrc_budget_amount                 := x_m_budget_amount;
147     new_references.mrc_budget_amt_exch_rate          := x_m_budget_amt_exch_rate;
148     new_references.mrc_budget_amt_exch_rate_type     := x_m_budget_amt_exch_rate_type;
149     new_references.mrc_budget_amt_exch_date          := x_m_budget_amt_exch_date;
150     new_references.mrc_budget_amt_exch_status        := x_m_budget_amt_exch_status;
151     new_references.mrc_funds_avail                   := x_m_funds_avail;
152     new_references.mrc_funds_avail_exch_rate         := x_m_funds_avail_exch_rate;
153     new_references.mrc_funds_avail_exch_rate_type    := x_m_funds_avail_exch_rate_type;
154     new_references.mrc_funds_avail_exch_date         := x_m_funds_avail_exch_date;
155     new_references.mrc_funds_avail_exch_status       := x_m_funds_avail_exch_status;
156     new_references.mrc_new_balance                   := x_m_new_balance;
157     new_references.mrc_new_balance_exch_rate         := x_m_new_balance_exch_rate;
158     new_references.mrc_new_balance_exch_rate_type    := x_m_new_balance_exch_rate_type;
159     new_references.mrc_new_balance_exch_date         := x_m_new_balance_exch_date;
160     new_references.mrc_new_balance_exch_status       := x_m_new_balance_exch_status;
161     new_references.budget_name                       := x_budget_name;
162     new_references.dossier_id                        := x_dossier_id;
163     new_references.budget_version_id                 := x_budget_version_id;
164     new_references.period_name                       := x_period_name;
165     new_references.status                            := x_status;
166     new_references.group_id                          := x_group_id;
167     new_references.quarter_num                       := x_quarter_num;
168     new_references.period_year                       := x_period_year;
169     new_references.period_num                        := x_period_num;
170     new_references.line_num                          := x_line_num;
171     new_references.segment1                          := x_segment1;
172     new_references.segment2                          := x_segment2;
173     new_references.segment3                          := x_segment3;
174     new_references.segment4                          := x_segment4;
175     new_references.segment5                          := x_segment5;
176     new_references.segment6                          := x_segment6;
177     new_references.segment7                          := x_segment7;
178     new_references.segment8                          := x_segment8;
179     new_references.segment9                          := x_segment9;
180     new_references.segment10                         := x_segment10;
181     new_references.segment11                         := x_segment11;
182     new_references.segment12                         := x_segment12;
183     new_references.segment13                         := x_segment13;
184     new_references.segment14                         := x_segment14;
185     new_references.segment15                         := x_segment15;
186     new_references.segment16                         := x_segment16;
187     new_references.segment17                         := x_segment17;
188     new_references.segment18                         := x_segment18;
189     new_references.segment19                         := x_segment19;
190     new_references.segment20                         := x_segment20;
191     new_references.segment21                         := x_segment21;
192     new_references.segment22                         := x_segment22;
193     new_references.segment23                         := x_segment23;
194     new_references.segment24                         := x_segment24;
195     new_references.segment25                         := x_segment25;
196     new_references.segment26                         := x_segment26;
197     new_references.segment27                         := x_segment27;
198     new_references.segment28                         := x_segment28;
199     new_references.segment29                         := x_segment29;
200     new_references.segment30                         := x_segment30;
201 
202     IF (p_action = 'UPDATE') THEN
203       new_references.creation_date                   := old_references.creation_date;
204       new_references.created_by                      := old_references.created_by;
205     ELSE
206       new_references.creation_date                   := x_creation_date;
207       new_references.created_by                      := x_created_by;
208     END IF;
209 
210     new_references.last_update_date                  := x_last_update_date;
211     new_references.last_updated_by                   := x_last_updated_by;
212     new_references.last_update_login                 := x_last_update_login;
213 
214   END set_column_values;
215 
216 
217   PROCEDURE check_parent_existance AS
218   /*
219   ||  Created By : [email protected]
220   ||  Created On : 02-MAY-2002
221   ||  Purpose : Checks for the existance of Parent records.
222   ||  Known limitations, enhancements or remarks :
223   ||  Change History :
224   ||  Who             When            What
225   ||  (reverse chronological order - newest change first)
226   */
227   BEGIN
228 
229     IF (((old_references.dossier_id = new_references.dossier_id)) OR
230         ((new_references.dossier_id IS NULL))) THEN
231       NULL;
232     ELSIF NOT igi_dos_doc_types_pkg.get_pk_for_validation (
233                 new_references.dossier_id
234               ) THEN
235       fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
236 -- bug 3199481, start block
237       IF (l_unexp_level >= l_debug_level) THEN
238          FND_LOG.MESSAGE(l_unexp_level, 'igi.plsql.igi_dos_trx_sources_pkg.check_parent_existance.Msg1',FALSE);
239       END IF;
240 -- bug 3199481, end block
241       app_exception.raise_exception;
242     END IF;
243 
244     IF (((old_references.trx_id = new_references.trx_id)) OR
245         ((new_references.trx_id IS NULL))) THEN
246       NULL;
247     ELSIF NOT igi_dos_trx_headers_pkg.get_pk_for_validation (
248                 new_references.trx_id
249               ) THEN
250       fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
251 -- bug 3199481, start block
252       IF (l_unexp_level >= l_debug_level) THEN
253          FND_LOG.MESSAGE(l_unexp_level, 'igi.plsql.igi_dos_trx_sources_pkg.check_parent_existance.Msg2',FALSE);
254       END IF;
255 -- bug 3199481, end block
256       app_exception.raise_exception;
257     END IF;
258 
259   END check_parent_existance;
260 
261 
262   PROCEDURE check_child_existance AS
263   /*
264   ||  Created By : [email protected]
265   ||  Created On : 02-MAY-2002
266   ||  Purpose : Checks for the existance of Child records.
267   ||  Known limitations, enhancements or remarks :
268   ||  Change History :
269   ||  Who             When            What
270   ||  (reverse chronological order - newest change first)
271   */
272   BEGIN
273 
274     igi_dos_trx_dest_pkg.get_fk_igi_dos_trx_sources (
275       old_references.source_trx_id
276     );
277 
278    /* sowsubra  06-JUN-2002 start */
279    /* Commented the following code as this  igi_dos_trx_sources_hist_pkg
280    	is currently not present  */
281 
282     /*igi_dos_trx_sources_hist_pkg.get_fk_igi_dos_trx_sources (
283       old_references.source_trx_id );
284 	*/
285        /* sowsubra  06-JUN-2002 end */
286 
287 
288   END check_child_existance;
289 
290 
291   FUNCTION get_pk_for_validation (
292     x_source_trx_id                     IN     NUMBER
293   ) RETURN BOOLEAN AS
294   /*
295   ||  Created By : [email protected]
296   ||  Created On : 02-MAY-2002
297   ||  Purpose : Validates the Primary Key of the table.
298   ||  Known limitations, enhancements or remarks :
299   ||  Change History :
300   ||  Who             When            What
301   ||  (reverse chronological order - newest change first)
302   */
303     CURSOR cur_rowid IS
304       SELECT   rowid
305       FROM     igi_dos_trx_sources
306       WHERE    source_trx_id = x_source_trx_id
307       FOR UPDATE NOWAIT;
308 
309     lv_rowid cur_rowid%RowType;
310 
311   BEGIN
312 
313     OPEN cur_rowid;
314     FETCH cur_rowid INTO lv_rowid;
315     IF (cur_rowid%FOUND) THEN
316       CLOSE cur_rowid;
317       RETURN(TRUE);
318     ELSE
319       CLOSE cur_rowid;
320       RETURN(FALSE);
321     END IF;
322 
323   END get_pk_for_validation;
324 
325 
326   PROCEDURE get_fk_igi_dos_doc_types (
327     x_dossier_id                        IN     NUMBER
328   ) AS
329   /*
330   ||  Created By : [email protected]
331   ||  Created On : 02-MAY-2002
332   ||  Purpose : Validates the Foreign Keys for the table.
333   ||  Known limitations, enhancements or remarks :
334   ||  Change History :
335   ||  Who             When            What
336   ||  (reverse chronological order - newest change first)
337   */
338     CURSOR cur_rowid IS
339       SELECT   rowid
340       FROM     igi_dos_trx_sources
341       WHERE   ((dossier_id = x_dossier_id));
342 
343     lv_rowid cur_rowid%RowType;
344 
345   BEGIN
346 
347     OPEN cur_rowid;
348     FETCH cur_rowid INTO lv_rowid;
349     IF (cur_rowid%FOUND) THEN
350       CLOSE cur_rowid;
351       fnd_message.set_name ('FND', 'FND-CANNOT DELETE MASTER');
352 -- bug 3199481, start block
353       IF (l_unexp_level >= l_debug_level) THEN
354          FND_LOG.MESSAGE(l_unexp_level, 'igi.plsql.igi_dos_trx_sources_pkg.get_fk_igi_dos_doc_types.Msg1',FALSE);
355       END IF;
356 -- bug 3199481, end block
357       app_exception.raise_exception;
358       RETURN;
359     END IF;
360     CLOSE cur_rowid;
361 
362   END get_fk_igi_dos_doc_types;
363 
364 
365   PROCEDURE get_fk_igi_dos_trx_headers (
366     x_trx_id                            IN     NUMBER
367   ) AS
368   /*
369   ||  Created By : [email protected]
370   ||  Created On : 02-MAY-2002
371   ||  Purpose : Validates the Foreign Keys for the table.
372   ||  Known limitations, enhancements or remarks :
373   ||  Change History :
374   ||  Who             When            What
375   ||  (reverse chronological order - newest change first)
376   */
377     CURSOR cur_rowid IS
378       SELECT   rowid
379       FROM     igi_dos_trx_sources
380       WHERE   ((trx_id = x_trx_id));
381 
382     lv_rowid cur_rowid%RowType;
383 
384   BEGIN
385 
386     OPEN cur_rowid;
387     FETCH cur_rowid INTO lv_rowid;
388     IF (cur_rowid%FOUND) THEN
389       CLOSE cur_rowid;
390       fnd_message.set_name ('FND', 'FND-CANNOT DELETE MASTER');
391 -- bug 3199481, start block
392       IF (l_unexp_level >= l_debug_level) THEN
393          FND_LOG.MESSAGE(l_unexp_level, 'igi.plsql.igi_dos_trx_sources_pkg.get_fk_igi_dos_trx_headers.Msg1',FALSE);
394       END IF;
395 -- bug 3199481, end block
396       app_exception.raise_exception;
397       RETURN;
398     END IF;
399     CLOSE cur_rowid;
400 
401   END get_fk_igi_dos_trx_headers;
402 
403 
404   PROCEDURE before_dml (
405     p_action                            IN     VARCHAR2,
406     x_rowid                             IN     VARCHAR2     ,
407     x_sob_id                            IN     NUMBER       ,
408     x_trx_id                            IN     NUMBER       ,
409     x_source_trx_id                     IN     NUMBER       ,
410     x_source_id                         IN     NUMBER       ,
411     x_code_combination_id               IN     NUMBER       ,
412     x_profile_code                      IN     VARCHAR2     ,
413     x_budget_org_id                     IN     NUMBER       ,
414     x_budget_entity_id                  IN     NUMBER       ,
415     x_budget_amount                     IN     NUMBER       ,
416     x_funds_available                   IN     NUMBER       ,
417     x_new_balance                       IN     NUMBER       ,
418     x_currency_code                     IN     VARCHAR2     ,
419     x_visible_segments                  IN     VARCHAR2     ,
420     x_actual_segments                   IN     VARCHAR2     ,
421     x_m_budget_amount                 IN     NUMBER       ,
422     x_m_budget_amt_exch_rate          IN     NUMBER       ,
423     x_m_budget_amt_exch_rate_type     IN     VARCHAR2     ,
424     x_m_budget_amt_exch_date          IN     DATE         ,
425     x_m_budget_amt_exch_status        IN     VARCHAR2     ,
426     x_m_funds_avail                   IN     NUMBER       ,
427     x_m_funds_avail_exch_rate         IN     NUMBER       ,
428     x_m_funds_avail_exch_rate_type    IN     VARCHAR2     ,
429     x_m_funds_avail_exch_date         IN     DATE         ,
430     x_m_funds_avail_exch_status       IN     VARCHAR2     ,
431     x_m_new_balance                   IN     NUMBER       ,
432     x_m_new_balance_exch_rate         IN     NUMBER       ,
433     x_m_new_balance_exch_rate_type    IN     VARCHAR2     ,
434     x_m_new_balance_exch_date         IN     DATE         ,
435     x_m_new_balance_exch_status       IN     VARCHAR2     ,
436     x_budget_name                       IN     VARCHAR2     ,
437     x_dossier_id                        IN     NUMBER       ,
438     x_budget_version_id                 IN     NUMBER       ,
439     x_period_name                       IN     VARCHAR2     ,
440     x_status                            IN     VARCHAR2     ,
441     x_group_id                          IN     NUMBER       ,
442     x_quarter_num                       IN     NUMBER       ,
443     x_period_year                       IN     NUMBER       ,
444     x_period_num                        IN     NUMBER       ,
445     x_line_num                          IN     NUMBER       ,
446     x_segment1                          IN     VARCHAR2     ,
447     x_segment2                          IN     VARCHAR2     ,
448     x_segment3                          IN     VARCHAR2     ,
449     x_segment4                          IN     VARCHAR2     ,
450     x_segment5                          IN     VARCHAR2     ,
451     x_segment6                          IN     VARCHAR2     ,
452     x_segment7                          IN     VARCHAR2     ,
453     x_segment8                          IN     VARCHAR2     ,
454     x_segment9                          IN     VARCHAR2     ,
455     x_segment10                         IN     VARCHAR2     ,
456     x_segment11                         IN     VARCHAR2     ,
457     x_segment12                         IN     VARCHAR2     ,
458     x_segment13                         IN     VARCHAR2     ,
459     x_segment14                         IN     VARCHAR2     ,
460     x_segment15                         IN     VARCHAR2     ,
461     x_segment16                         IN     VARCHAR2     ,
462     x_segment17                         IN     VARCHAR2     ,
463     x_segment18                         IN     VARCHAR2     ,
464     x_segment19                         IN     VARCHAR2     ,
465     x_segment20                         IN     VARCHAR2     ,
466     x_segment21                         IN     VARCHAR2     ,
467     x_segment22                         IN     VARCHAR2     ,
468     x_segment23                         IN     VARCHAR2     ,
469     x_segment24                         IN     VARCHAR2     ,
470     x_segment25                         IN     VARCHAR2     ,
471     x_segment26                         IN     VARCHAR2     ,
472     x_segment27                         IN     VARCHAR2     ,
473     x_segment28                         IN     VARCHAR2     ,
474     x_segment29                         IN     VARCHAR2     ,
475     x_segment30                         IN     VARCHAR2     ,
476     x_creation_date                     IN     DATE         ,
477     x_created_by                        IN     NUMBER       ,
478     x_last_update_date                  IN     DATE         ,
479     x_last_updated_by                   IN     NUMBER       ,
480     x_last_update_login                 IN     NUMBER
481   ) AS
482   /*
483   ||  Created By : [email protected]
484   ||  Created On : 02-MAY-2002
485   ||  Purpose : Initialises the columns, Checks Constraints, Calls the
486   ||            Trigger Handlers for the table, before any DML operation.
487   ||  Known limitations, enhancements or remarks :
488   ||  Change History :
489   ||  Who             When            What
490   ||  (reverse chronological order - newest change first)
491   */
492   BEGIN
493 
494     set_column_values (
495       p_action,
496       x_rowid,
497       x_sob_id,
498       x_trx_id,
499       x_source_trx_id,
500       x_source_id,
501       x_code_combination_id,
502       x_profile_code,
503       x_budget_org_id,
504       x_budget_entity_id,
505       x_budget_amount,
506       x_funds_available,
507       x_new_balance,
508       x_currency_code,
509       x_visible_segments,
510       x_actual_segments,
511       x_m_budget_amount,
512       x_m_budget_amt_exch_rate,
513       x_m_budget_amt_exch_rate_type,
514       x_m_budget_amt_exch_date,
515       x_m_budget_amt_exch_status,
516       x_m_funds_avail,
517       x_m_funds_avail_exch_rate,
518       x_m_funds_avail_exch_rate_type,
519       x_m_funds_avail_exch_date,
520       x_m_funds_avail_exch_status,
521       x_m_new_balance,
522       x_m_new_balance_exch_rate,
523       x_m_new_balance_exch_rate_type,
524       x_m_new_balance_exch_date,
525       x_m_new_balance_exch_status,
526       x_budget_name,
527       x_dossier_id,
528       x_budget_version_id,
529       x_period_name,
530       x_status,
531       x_group_id,
532       x_quarter_num,
533       x_period_year,
534       x_period_num,
535       x_line_num,
536       x_segment1,
537       x_segment2,
538       x_segment3,
539       x_segment4,
540       x_segment5,
541       x_segment6,
542       x_segment7,
543       x_segment8,
544       x_segment9,
545       x_segment10,
546       x_segment11,
547       x_segment12,
548       x_segment13,
549       x_segment14,
550       x_segment15,
551       x_segment16,
552       x_segment17,
553       x_segment18,
554       x_segment19,
555       x_segment20,
556       x_segment21,
557       x_segment22,
558       x_segment23,
559       x_segment24,
560       x_segment25,
561       x_segment26,
562       x_segment27,
563       x_segment28,
564       x_segment29,
565       x_segment30,
566       x_creation_date,
567       x_created_by,
568       x_last_update_date,
569       x_last_updated_by,
570       x_last_update_login
571     );
572 
573     IF (p_action = 'INSERT') THEN
574       -- Call all the procedures related to Before Insert.
575       IF ( get_pk_for_validation(
576              new_references.source_trx_id
577            )
578          ) THEN
579         fnd_message.set_name('FND','FORM_DUPLICATE_KEY_IN_INDEX');
580 -- bug 3199481, start block
581         IF (l_unexp_level >= l_debug_level) THEN
582            FND_LOG.MESSAGE(l_unexp_level, 'igi.plsql.igi_dos_trx_sources_pkg.before_dml.Msg1',FALSE);
583         END IF;
584 -- bug 3199481, end block
585         app_exception.raise_exception;
586       END IF;
587       check_parent_existance;
588     ELSIF (p_action = 'UPDATE') THEN
589       -- Call all the procedures related to Before Update.
590       check_parent_existance;
591     ELSIF (p_action = 'DELETE') THEN
592       -- Call all the procedures related to Before Delete.
593       check_child_existance;
594     ELSIF (p_action = 'VALIDATE_INSERT') THEN
595       -- Call all the procedures related to Before Insert.
596       IF ( get_pk_for_validation (
597              new_references.source_trx_id
598            )
599          ) THEN
600         fnd_message.set_name('FND','FORM_DUPLICATE_KEY_IN_INDEX');
601 -- bug 3199481, start block
602         IF (l_unexp_level >= l_debug_level) THEN
603            FND_LOG.MESSAGE(l_unexp_level, 'igi.plsql.igi_dos_trx_sources_pkg.before_dml.Msg2',FALSE);
604         END IF;
605 -- bug 3199481, end block
606         app_exception.raise_exception;
607       END IF;
608     ELSIF (p_action = 'VALIDATE_DELETE') THEN
609       check_child_existance;
610     END IF;
611 
612   END before_dml;
613 
614 
615   PROCEDURE insert_row (
616     x_rowid                             IN OUT NOCOPY VARCHAR2,
617     x_sob_id                            IN     NUMBER,
618     x_trx_id                            IN     NUMBER,
619     x_source_trx_id                     IN OUT NOCOPY NUMBER,
620     x_source_id                         IN     NUMBER,
621     x_code_combination_id               IN     NUMBER,
622     x_profile_code                      IN     VARCHAR2,
623     x_budget_org_id                     IN     NUMBER,
624     x_budget_entity_id                  IN     NUMBER,
625     x_budget_amount                     IN     NUMBER,
626     x_funds_available                   IN     NUMBER,
627     x_new_balance                       IN     NUMBER,
628     x_currency_code                     IN     VARCHAR2,
629     x_visible_segments                  IN     VARCHAR2,
630     x_actual_segments                   IN     VARCHAR2,
631     x_m_budget_amount                 IN     NUMBER,
632     x_m_budget_amt_exch_rate          IN     NUMBER,
633     x_m_budget_amt_exch_rate_type     IN     VARCHAR2,
634     x_m_budget_amt_exch_date          IN     DATE,
635     x_m_budget_amt_exch_status        IN     VARCHAR2,
636     x_m_funds_avail                   IN     NUMBER,
637     x_m_funds_avail_exch_rate         IN     NUMBER,
638     x_m_funds_avail_exch_rate_type    IN     VARCHAR2,
639     x_m_funds_avail_exch_date         IN     DATE,
640     x_m_funds_avail_exch_status       IN     VARCHAR2,
641     x_m_new_balance                   IN     NUMBER,
642     x_m_new_balance_exch_rate         IN     NUMBER,
643     x_m_new_balance_exch_rate_type    IN     VARCHAR2,
644     x_m_new_balance_exch_date         IN     DATE,
645     x_m_new_balance_exch_status       IN     VARCHAR2,
646     x_budget_name                       IN     VARCHAR2,
647     x_dossier_id                        IN     NUMBER,
648     x_budget_version_id                 IN     NUMBER,
649     x_period_name                       IN     VARCHAR2,
650     x_status                            IN     VARCHAR2,
651     x_group_id                          IN     NUMBER,
652     x_quarter_num                       IN     NUMBER,
653     x_period_year                       IN     NUMBER,
654     x_period_num                        IN     NUMBER,
655     x_line_num                          IN     NUMBER,
656     x_segment1                          IN     VARCHAR2,
657     x_segment2                          IN     VARCHAR2,
658     x_segment3                          IN     VARCHAR2,
659     x_segment4                          IN     VARCHAR2,
660     x_segment5                          IN     VARCHAR2,
661     x_segment6                          IN     VARCHAR2,
662     x_segment7                          IN     VARCHAR2,
663     x_segment8                          IN     VARCHAR2,
664     x_segment9                          IN     VARCHAR2,
665     x_segment10                         IN     VARCHAR2,
666     x_segment11                         IN     VARCHAR2,
667     x_segment12                         IN     VARCHAR2,
668     x_segment13                         IN     VARCHAR2,
669     x_segment14                         IN     VARCHAR2,
670     x_segment15                         IN     VARCHAR2,
671     x_segment16                         IN     VARCHAR2,
672     x_segment17                         IN     VARCHAR2,
673     x_segment18                         IN     VARCHAR2,
674     x_segment19                         IN     VARCHAR2,
675     x_segment20                         IN     VARCHAR2,
676     x_segment21                         IN     VARCHAR2,
677     x_segment22                         IN     VARCHAR2,
678     x_segment23                         IN     VARCHAR2,
679     x_segment24                         IN     VARCHAR2,
680     x_segment25                         IN     VARCHAR2,
681     x_segment26                         IN     VARCHAR2,
682     x_segment27                         IN     VARCHAR2,
683     x_segment28                         IN     VARCHAR2,
684     x_segment29                         IN     VARCHAR2,
685     x_segment30                         IN     VARCHAR2,
686     x_mode                              IN     VARCHAR2 ) AS
687   /*
688   ||  Created By : [email protected]
689   ||  Created On : 02-MAY-2002
690   ||  Purpose : Handles the INSERT DML logic for the table.
691   ||  Known limitations, enhancements or remarks :
692   ||  Change History :
693   ||  Who             When            What
694   ||  (reverse chronological order - newest change first)
695   */
696     CURSOR c IS
697       SELECT   rowid
698       FROM     igi_dos_trx_sources
699       WHERE    source_trx_id                     = x_source_trx_id;
700 
701     x_last_update_date           DATE;
702     x_last_updated_by            NUMBER;
703     x_last_update_login          NUMBER;
704 
705   l_mode VARCHAR2(1);
706   BEGIN
707  IF X_mode is NULL then
708    l_mode :='R';
709   ELSE
710    l_mode := X_mode;
711   END IF;
712 
713 
714     x_last_update_date := SYSDATE;
715     IF (l_mode = 'I') THEN
716       x_last_updated_by := 1;
717       x_last_update_login := 0;
718     ELSIF (l_mode = 'R') THEN
719       x_last_updated_by := fnd_global.user_id;
720       IF (x_last_updated_by IS NULL) THEN
721         x_last_updated_by := -1;
722       END IF;
723       x_last_update_login := fnd_global.login_id;
724       IF (x_last_update_login IS NULL) THEN
725         x_last_update_login := -1;
726       END IF;
727     ELSE
728       fnd_message.set_name ('FND', 'SYSTEM-INVALID ARGS');
729 -- bug 3199481, start block
730       IF (l_unexp_level >= l_debug_level) THEN
731          FND_LOG.MESSAGE(l_unexp_level, 'igi.plsql.igi_dos_trx_sources_pkg.insert_row.Msg1',FALSE);
732       END IF;
733 -- bug 3199481, end block
734       app_exception.raise_exception;
735     END IF;
736 
737     SELECT    igi_dos_trx_sources_s.NEXTVAL
738     INTO      x_source_trx_id
739     FROM      dual;
740 
741     before_dml(
742       p_action                            => 'INSERT',
743       x_rowid                             => x_rowid,
744       x_sob_id                            => x_sob_id,
745       x_trx_id                            => x_trx_id,
746       x_source_trx_id                     => x_source_trx_id,
747       x_source_id                         => x_source_id,
748       x_code_combination_id               => x_code_combination_id,
749       x_profile_code                      => x_profile_code,
750       x_budget_org_id                     => x_budget_org_id,
751       x_budget_entity_id                  => x_budget_entity_id,
752       x_budget_amount                     => x_budget_amount,
753       x_funds_available                   => x_funds_available,
754       x_new_balance                       => x_new_balance,
755       x_currency_code                     => x_currency_code,
756       x_visible_segments                  => x_visible_segments,
757       x_actual_segments                   => x_actual_segments,
758       x_m_budget_amount                 => x_m_budget_amount,
759       x_m_budget_amt_exch_rate          => x_m_budget_amt_exch_rate,
760       x_m_budget_amt_exch_rate_type     => x_m_budget_amt_exch_rate_type,
761       x_m_budget_amt_exch_date          => x_m_budget_amt_exch_date,
762       x_m_budget_amt_exch_status        => x_m_budget_amt_exch_status,
763       x_m_funds_avail                   => x_m_funds_avail,
764       x_m_funds_avail_exch_rate         => x_m_funds_avail_exch_rate,
765       x_m_funds_avail_exch_rate_type    => x_m_funds_avail_exch_rate_type,
766       x_m_funds_avail_exch_date         => x_m_funds_avail_exch_date,
767       x_m_funds_avail_exch_status       => x_m_funds_avail_exch_status,
768       x_m_new_balance                   => x_m_new_balance,
769       x_m_new_balance_exch_rate         => x_m_new_balance_exch_rate,
770       x_m_new_balance_exch_rate_type    => x_m_new_balance_exch_rate_type,
771       x_m_new_balance_exch_date         => x_m_new_balance_exch_date,
772       x_m_new_balance_exch_status       => x_m_new_balance_exch_status,
773       x_budget_name                       => x_budget_name,
774       x_dossier_id                        => x_dossier_id,
775       x_budget_version_id                 => x_budget_version_id,
776       x_period_name                       => x_period_name,
777       x_status                            => x_status,
778       x_group_id                          => x_group_id,
779       x_quarter_num                       => x_quarter_num,
780       x_period_year                       => x_period_year,
781       x_period_num                        => x_period_num,
782       x_line_num                          => x_line_num,
783       x_segment1                          => x_segment1,
784       x_segment2                          => x_segment2,
785       x_segment3                          => x_segment3,
786       x_segment4                          => x_segment4,
787       x_segment5                          => x_segment5,
788       x_segment6                          => x_segment6,
789       x_segment7                          => x_segment7,
790       x_segment8                          => x_segment8,
791       x_segment9                          => x_segment9,
792       x_segment10                         => x_segment10,
793       x_segment11                         => x_segment11,
794       x_segment12                         => x_segment12,
795       x_segment13                         => x_segment13,
796       x_segment14                         => x_segment14,
797       x_segment15                         => x_segment15,
798       x_segment16                         => x_segment16,
799       x_segment17                         => x_segment17,
800       x_segment18                         => x_segment18,
801       x_segment19                         => x_segment19,
802       x_segment20                         => x_segment20,
803       x_segment21                         => x_segment21,
804       x_segment22                         => x_segment22,
805       x_segment23                         => x_segment23,
806       x_segment24                         => x_segment24,
807       x_segment25                         => x_segment25,
808       x_segment26                         => x_segment26,
809       x_segment27                         => x_segment27,
810       x_segment28                         => x_segment28,
811       x_segment29                         => x_segment29,
812       x_segment30                         => x_segment30,
813       x_creation_date                     => x_last_update_date,
814       x_created_by                        => x_last_updated_by,
815       x_last_update_date                  => x_last_update_date,
816       x_last_updated_by                   => x_last_updated_by,
817       x_last_update_login                 => x_last_update_login
818     );
819 
820     INSERT INTO igi_dos_trx_sources (
821       sob_id,
822       trx_id,
823       source_trx_id,
824       source_id,
825       code_combination_id,
826       profile_code,
827       budget_org_id,
828       budget_entity_id,
829       budget_amount,
830       funds_available,
831       new_balance,
832       currency_code,
833       visible_segments,
834       actual_segments,
835       mrc_budget_amount,
836       mrc_budget_amt_exch_rate,
837       mrc_budget_amt_exch_rate_type,
838       mrc_budget_amt_exch_date,
839       mrc_budget_amt_exch_status,
840       mrc_funds_avail,
841       mrc_funds_avail_exch_rate,
842       mrc_funds_avail_exch_rate_type,
843       mrc_funds_avail_exch_date,
844       mrc_funds_avail_exch_status,
845       mrc_new_balance,
846       mrc_new_balance_exch_rate,
847       mrc_new_balance_exch_rate_type,
848       mrc_new_balance_exch_date,
849       mrc_new_balance_exch_status,
850       budget_name,
851       dossier_id,
852       budget_version_id,
853       period_name,
854       status,
855       group_id,
856       quarter_num,
857       period_year,
858       period_num,
859       line_num,
860       segment1,
861       segment2,
862       segment3,
863       segment4,
864       segment5,
865       segment6,
866       segment7,
867       segment8,
868       segment9,
869       segment10,
870       segment11,
871       segment12,
872       segment13,
873       segment14,
874       segment15,
875       segment16,
876       segment17,
877       segment18,
878       segment19,
879       segment20,
880       segment21,
881       segment22,
882       segment23,
883       segment24,
884       segment25,
885       segment26,
886       segment27,
887       segment28,
888       segment29,
889       segment30,
890       creation_date,
891       created_by,
892       last_update_date,
893       last_updated_by,
894       last_update_login
895     ) VALUES (
896       new_references.sob_id,
897       new_references.trx_id,
898       new_references.source_trx_id,
899       new_references.source_id,
900       new_references.code_combination_id,
901       new_references.profile_code,
902       new_references.budget_org_id,
903       new_references.budget_entity_id,
904       new_references.budget_amount,
905       new_references.funds_available,
906       new_references.new_balance,
907       new_references.currency_code,
908       new_references.visible_segments,
909       new_references.actual_segments,
910       new_references.mrc_budget_amount,
911       new_references.mrc_budget_amt_exch_rate,
912       new_references.mrc_budget_amt_exch_rate_type,
913       new_references.mrc_budget_amt_exch_date,
914       new_references.mrc_budget_amt_exch_status,
915       new_references.mrc_funds_avail,
916       new_references.mrc_funds_avail_exch_rate,
917       new_references.mrc_funds_avail_exch_rate_type,
918       new_references.mrc_funds_avail_exch_date,
919       new_references.mrc_funds_avail_exch_status,
920       new_references.mrc_new_balance,
921       new_references.mrc_new_balance_exch_rate,
922       new_references.mrc_new_balance_exch_rate_type,
923       new_references.mrc_new_balance_exch_date,
924       new_references.mrc_new_balance_exch_status,
925       new_references.budget_name,
926       new_references.dossier_id,
927       new_references.budget_version_id,
928       new_references.period_name,
929       new_references.status,
930       new_references.group_id,
931       new_references.quarter_num,
932       new_references.period_year,
933       new_references.period_num,
934       new_references.line_num,
935       new_references.segment1,
936       new_references.segment2,
937       new_references.segment3,
938       new_references.segment4,
939       new_references.segment5,
940       new_references.segment6,
941       new_references.segment7,
942       new_references.segment8,
943       new_references.segment9,
944       new_references.segment10,
945       new_references.segment11,
946       new_references.segment12,
947       new_references.segment13,
948       new_references.segment14,
949       new_references.segment15,
950       new_references.segment16,
951       new_references.segment17,
952       new_references.segment18,
953       new_references.segment19,
954       new_references.segment20,
955       new_references.segment21,
956       new_references.segment22,
957       new_references.segment23,
958       new_references.segment24,
959       new_references.segment25,
960       new_references.segment26,
961       new_references.segment27,
962       new_references.segment28,
963       new_references.segment29,
964       new_references.segment30,
965       x_last_update_date,
966       x_last_updated_by,
967       x_last_update_date,
968       x_last_updated_by,
969       x_last_update_login
970     );
971 
972     OPEN c;
973     FETCH c INTO x_rowid;
974     IF (c%NOTFOUND) THEN
975       CLOSE c;
976       RAISE NO_DATA_FOUND;
977     END IF;
978     CLOSE c;
979 
980   END insert_row;
981 
982 
983   PROCEDURE lock_row (
984     x_rowid                             IN     VARCHAR2,
985     x_sob_id                            IN     NUMBER,
986     x_trx_id                            IN     NUMBER,
987     x_source_trx_id                     IN     NUMBER,
988     x_source_id                         IN     NUMBER,
989     x_code_combination_id               IN     NUMBER,
990     x_profile_code                      IN     VARCHAR2,
991     x_budget_org_id                     IN     NUMBER,
992     x_budget_entity_id                  IN     NUMBER,
993     x_budget_amount                     IN     NUMBER,
994     x_funds_available                   IN     NUMBER,
995     x_new_balance                       IN     NUMBER,
996     x_currency_code                     IN     VARCHAR2,
997     x_visible_segments                  IN     VARCHAR2,
998     x_actual_segments                   IN     VARCHAR2,
999     x_m_budget_amount                 IN     NUMBER,
1000     x_m_budget_amt_exch_rate          IN     NUMBER,
1001     x_m_budget_amt_exch_rate_type     IN     VARCHAR2,
1002     x_m_budget_amt_exch_date          IN     DATE,
1003     x_m_budget_amt_exch_status        IN     VARCHAR2,
1004     x_m_funds_avail                   IN     NUMBER,
1005     x_m_funds_avail_exch_rate         IN     NUMBER,
1006     x_m_funds_avail_exch_rate_type    IN     VARCHAR2,
1007     x_m_funds_avail_exch_date         IN     DATE,
1008     x_m_funds_avail_exch_status       IN     VARCHAR2,
1009     x_m_new_balance                   IN     NUMBER,
1010     x_m_new_balance_exch_rate         IN     NUMBER,
1011     x_m_new_balance_exch_rate_type    IN     VARCHAR2,
1012     x_m_new_balance_exch_date         IN     DATE,
1013     x_m_new_balance_exch_status       IN     VARCHAR2,
1014     x_budget_name                       IN     VARCHAR2,
1015     x_dossier_id                        IN     NUMBER,
1016     x_budget_version_id                 IN     NUMBER,
1017     x_period_name                       IN     VARCHAR2,
1018     x_status                            IN     VARCHAR2,
1019     x_group_id                          IN     NUMBER,
1020     x_quarter_num                       IN     NUMBER,
1021     x_period_year                       IN     NUMBER,
1022     x_period_num                        IN     NUMBER,
1023     x_line_num                          IN     NUMBER,
1024     x_segment1                          IN     VARCHAR2,
1025     x_segment2                          IN     VARCHAR2,
1026     x_segment3                          IN     VARCHAR2,
1027     x_segment4                          IN     VARCHAR2,
1028     x_segment5                          IN     VARCHAR2,
1029     x_segment6                          IN     VARCHAR2,
1030     x_segment7                          IN     VARCHAR2,
1031     x_segment8                          IN     VARCHAR2,
1032     x_segment9                          IN     VARCHAR2,
1033     x_segment10                         IN     VARCHAR2,
1034     x_segment11                         IN     VARCHAR2,
1035     x_segment12                         IN     VARCHAR2,
1036     x_segment13                         IN     VARCHAR2,
1037     x_segment14                         IN     VARCHAR2,
1038     x_segment15                         IN     VARCHAR2,
1039     x_segment16                         IN     VARCHAR2,
1040     x_segment17                         IN     VARCHAR2,
1041     x_segment18                         IN     VARCHAR2,
1042     x_segment19                         IN     VARCHAR2,
1043     x_segment20                         IN     VARCHAR2,
1044     x_segment21                         IN     VARCHAR2,
1045     x_segment22                         IN     VARCHAR2,
1046     x_segment23                         IN     VARCHAR2,
1047     x_segment24                         IN     VARCHAR2,
1048     x_segment25                         IN     VARCHAR2,
1049     x_segment26                         IN     VARCHAR2,
1050     x_segment27                         IN     VARCHAR2,
1051     x_segment28                         IN     VARCHAR2,
1052     x_segment29                         IN     VARCHAR2,
1053     x_segment30                         IN     VARCHAR2
1054   ) AS
1055   /*
1056   ||  Created By : [email protected]
1057   ||  Created On : 02-MAY-2002
1058   ||  Purpose : Handles the LOCK mechanism for the table.
1059   ||  Known limitations, enhancements or remarks :
1060   ||  Change History :
1061   ||  Who             When            What
1062   ||  (reverse chronological order - newest change first)
1063   */
1064     CURSOR c1 IS
1065       SELECT
1066         sob_id,
1067         trx_id,
1068         source_id,
1069         code_combination_id,
1070         profile_code,
1071         budget_org_id,
1072         budget_entity_id,
1073         budget_amount,
1074         funds_available,
1075         new_balance,
1076         currency_code,
1077         visible_segments,
1078         actual_segments,
1079         mrc_budget_amount,
1080         mrc_budget_amt_exch_rate,
1081         mrc_budget_amt_exch_rate_type,
1082         mrc_budget_amt_exch_date,
1083         mrc_budget_amt_exch_status,
1084         mrc_funds_avail,
1085         mrc_funds_avail_exch_rate,
1086         mrc_funds_avail_exch_rate_type,
1087         mrc_funds_avail_exch_date,
1088         mrc_funds_avail_exch_status,
1089         mrc_new_balance,
1090         mrc_new_balance_exch_rate,
1091         mrc_new_balance_exch_rate_type,
1092         mrc_new_balance_exch_date,
1093         mrc_new_balance_exch_status,
1094         budget_name,
1095         dossier_id,
1096         budget_version_id,
1097         period_name,
1098         status,
1099         group_id,
1100         quarter_num,
1101         period_year,
1102         period_num,
1103         line_num,
1104         segment1,
1105         segment2,
1106         segment3,
1107         segment4,
1108         segment5,
1109         segment6,
1110         segment7,
1111         segment8,
1112         segment9,
1113         segment10,
1114         segment11,
1115         segment12,
1116         segment13,
1117         segment14,
1118         segment15,
1119         segment16,
1120         segment17,
1121         segment18,
1122         segment19,
1123         segment20,
1124         segment21,
1125         segment22,
1126         segment23,
1127         segment24,
1128         segment25,
1129         segment26,
1130         segment27,
1131         segment28,
1132         segment29,
1133         segment30
1134       FROM  igi_dos_trx_sources
1135       WHERE rowid = x_rowid
1136       FOR UPDATE NOWAIT;
1137 
1138     tlinfo c1%ROWTYPE;
1139 
1140   BEGIN
1141 
1142     OPEN c1;
1143     FETCH c1 INTO tlinfo;
1144     IF (c1%notfound) THEN
1145       fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
1146 -- bug 3199481, start block
1147       IF (l_unexp_level >= l_debug_level) THEN
1148          FND_LOG.MESSAGE(l_unexp_level, 'igi.plsql.igi_dos_trx_sources_pkg.lock_row.Msg1',FALSE);
1149       END IF;
1150 -- bug 3199481, end block
1151       CLOSE c1;
1152       app_exception.raise_exception;
1153       RETURN;
1154     END IF;
1155     CLOSE c1;
1156 
1157     IF (
1158         ((tlinfo.sob_id = x_sob_id) OR ((tlinfo.sob_id IS NULL) AND (X_sob_id IS NULL)))
1159         AND ((tlinfo.trx_id = x_trx_id) OR ((tlinfo.trx_id IS NULL) AND (X_trx_id IS NULL)))
1160         AND ((tlinfo.source_id = x_source_id) OR ((tlinfo.source_id IS NULL) AND (X_source_id IS NULL)))
1161         AND ((tlinfo.code_combination_id = x_code_combination_id) OR ((tlinfo.code_combination_id IS NULL) AND (X_code_combination_id IS NULL)))
1162         AND ((tlinfo.profile_code = x_profile_code) OR ((tlinfo.profile_code IS NULL) AND (X_profile_code IS NULL)))
1163         AND ((tlinfo.budget_org_id = x_budget_org_id) OR ((tlinfo.budget_org_id IS NULL) AND (X_budget_org_id IS NULL)))
1164         AND ((tlinfo.budget_entity_id = x_budget_entity_id) OR ((tlinfo.budget_entity_id IS NULL) AND (X_budget_entity_id IS NULL)))
1165         AND ((tlinfo.budget_amount = x_budget_amount) OR ((tlinfo.budget_amount IS NULL) AND (X_budget_amount IS NULL)))
1166         AND ((tlinfo.funds_available = x_funds_available) OR ((tlinfo.funds_available IS NULL) AND (X_funds_available IS NULL)))
1167         AND ((tlinfo.new_balance = x_new_balance) OR ((tlinfo.new_balance IS NULL) AND (X_new_balance IS NULL)))
1168         AND ((tlinfo.currency_code = x_currency_code) OR ((tlinfo.currency_code IS NULL) AND (X_currency_code IS NULL)))
1169         AND ((tlinfo.visible_segments = x_visible_segments) OR ((tlinfo.visible_segments IS NULL) AND (X_visible_segments IS NULL)))
1170         AND ((tlinfo.actual_segments = x_actual_segments) OR ((tlinfo.actual_segments IS NULL) AND (X_actual_segments IS NULL)))
1171         AND ((tlinfo.mrc_budget_amount = x_m_budget_amount) OR ((tlinfo.mrc_budget_amount IS NULL) AND (x_m_budget_amount IS NULL)))
1172         AND ((tlinfo.mrc_budget_amt_exch_rate = x_m_budget_amt_exch_rate) OR ((tlinfo.mrc_budget_amt_exch_rate IS NULL) AND (x_m_budget_amt_exch_rate IS NULL)))
1173         AND ((tlinfo.mrc_budget_amt_exch_rate_type = x_m_budget_amt_exch_rate_type) OR ((tlinfo.mrc_budget_amt_exch_rate_type IS NULL) AND (x_m_budget_amt_exch_rate_type IS NULL)))
1174         AND ((tlinfo.mrc_budget_amt_exch_date = x_m_budget_amt_exch_date) OR ((tlinfo.mrc_budget_amt_exch_date IS NULL) AND (x_m_budget_amt_exch_date IS NULL)))
1175         AND ((tlinfo.mrc_budget_amt_exch_status = x_m_budget_amt_exch_status) OR ((tlinfo.mrc_budget_amt_exch_status IS NULL) AND (x_m_budget_amt_exch_status IS NULL)))
1176         AND ((tlinfo.mrc_funds_avail = x_m_funds_avail) OR ((tlinfo.mrc_funds_avail IS NULL) AND (x_m_funds_avail IS NULL)))
1177         AND ((tlinfo.mrc_funds_avail_exch_rate = x_m_funds_avail_exch_rate) OR ((tlinfo.mrc_funds_avail_exch_rate IS NULL) AND (x_m_funds_avail_exch_rate IS NULL)))
1178         AND ((tlinfo.mrc_funds_avail_exch_rate_type = x_m_funds_avail_exch_rate_type) OR ((tlinfo.mrc_funds_avail_exch_rate_type IS NULL) AND (x_m_funds_avail_exch_rate_type IS NULL)))
1179         AND ((tlinfo.mrc_funds_avail_exch_date = x_m_funds_avail_exch_date) OR ((tlinfo.mrc_funds_avail_exch_date IS NULL) AND (x_m_funds_avail_exch_date IS NULL)))
1180         AND ((tlinfo.mrc_funds_avail_exch_status = x_m_funds_avail_exch_status) OR ((tlinfo.mrc_funds_avail_exch_status IS NULL) AND (x_m_funds_avail_exch_status IS NULL)))
1181         AND ((tlinfo.mrc_new_balance = x_m_new_balance) OR ((tlinfo.mrc_new_balance IS NULL) AND (x_m_new_balance IS NULL)))
1182         AND ((tlinfo.mrc_new_balance_exch_rate = x_m_new_balance_exch_rate) OR ((tlinfo.mrc_new_balance_exch_rate IS NULL) AND (x_m_new_balance_exch_rate IS NULL)))
1183         AND ((tlinfo.mrc_new_balance_exch_rate_type = x_m_new_balance_exch_rate_type) OR ((tlinfo.mrc_new_balance_exch_rate_type IS NULL) AND (x_m_new_balance_exch_rate_type IS NULL)))
1184         AND ((tlinfo.mrc_new_balance_exch_date = x_m_new_balance_exch_date) OR ((tlinfo.mrc_new_balance_exch_date IS NULL) AND (x_m_new_balance_exch_date IS NULL)))
1185         AND ((tlinfo.mrc_new_balance_exch_status = x_m_new_balance_exch_status) OR ((tlinfo.mrc_new_balance_exch_status IS NULL) AND (x_m_new_balance_exch_status IS NULL)))
1186         AND ((tlinfo.budget_name = x_budget_name) OR ((tlinfo.budget_name IS NULL) AND (X_budget_name IS NULL)))
1187         AND ((tlinfo.dossier_id = x_dossier_id) OR ((tlinfo.dossier_id IS NULL) AND (X_dossier_id IS NULL)))
1188         AND ((tlinfo.budget_version_id = x_budget_version_id) OR ((tlinfo.budget_version_id IS NULL) AND (X_budget_version_id IS NULL)))
1189         AND ((tlinfo.period_name = x_period_name) OR ((tlinfo.period_name IS NULL) AND (X_period_name IS NULL)))
1190         AND ((tlinfo.status = x_status) OR ((tlinfo.status IS NULL) AND (X_status IS NULL)))
1191         AND ((tlinfo.group_id = x_group_id) OR ((tlinfo.group_id IS NULL) AND (X_group_id IS NULL)))
1192         AND ((tlinfo.quarter_num = x_quarter_num) OR ((tlinfo.quarter_num IS NULL) AND (X_quarter_num IS NULL)))
1193         AND ((tlinfo.period_year = x_period_year) OR ((tlinfo.period_year IS NULL) AND (X_period_year IS NULL)))
1194         AND ((tlinfo.period_num = x_period_num) OR ((tlinfo.period_num IS NULL) AND (X_period_num IS NULL)))
1195         AND ((tlinfo.line_num = x_line_num) OR ((tlinfo.line_num IS NULL) AND (X_line_num IS NULL)))
1196         AND ((tlinfo.segment1 = x_segment1) OR ((tlinfo.segment1 IS NULL) AND (X_segment1 IS NULL)))
1197         AND ((tlinfo.segment2 = x_segment2) OR ((tlinfo.segment2 IS NULL) AND (X_segment2 IS NULL)))
1198         AND ((tlinfo.segment3 = x_segment3) OR ((tlinfo.segment3 IS NULL) AND (X_segment3 IS NULL)))
1199         AND ((tlinfo.segment4 = x_segment4) OR ((tlinfo.segment4 IS NULL) AND (X_segment4 IS NULL)))
1200         AND ((tlinfo.segment5 = x_segment5) OR ((tlinfo.segment5 IS NULL) AND (X_segment5 IS NULL)))
1201         AND ((tlinfo.segment6 = x_segment6) OR ((tlinfo.segment6 IS NULL) AND (X_segment6 IS NULL)))
1202         AND ((tlinfo.segment7 = x_segment7) OR ((tlinfo.segment7 IS NULL) AND (X_segment7 IS NULL)))
1203         AND ((tlinfo.segment8 = x_segment8) OR ((tlinfo.segment8 IS NULL) AND (X_segment8 IS NULL)))
1204         AND ((tlinfo.segment9 = x_segment9) OR ((tlinfo.segment9 IS NULL) AND (X_segment9 IS NULL)))
1205         AND ((tlinfo.segment10 = x_segment10) OR ((tlinfo.segment10 IS NULL) AND (X_segment10 IS NULL)))
1206         AND ((tlinfo.segment11 = x_segment11) OR ((tlinfo.segment11 IS NULL) AND (X_segment11 IS NULL)))
1207         AND ((tlinfo.segment12 = x_segment12) OR ((tlinfo.segment12 IS NULL) AND (X_segment12 IS NULL)))
1208         AND ((tlinfo.segment13 = x_segment13) OR ((tlinfo.segment13 IS NULL) AND (X_segment13 IS NULL)))
1209         AND ((tlinfo.segment14 = x_segment14) OR ((tlinfo.segment14 IS NULL) AND (X_segment14 IS NULL)))
1210         AND ((tlinfo.segment15 = x_segment15) OR ((tlinfo.segment15 IS NULL) AND (X_segment15 IS NULL)))
1211         AND ((tlinfo.segment16 = x_segment16) OR ((tlinfo.segment16 IS NULL) AND (X_segment16 IS NULL)))
1212         AND ((tlinfo.segment17 = x_segment17) OR ((tlinfo.segment17 IS NULL) AND (X_segment17 IS NULL)))
1213         AND ((tlinfo.segment18 = x_segment18) OR ((tlinfo.segment18 IS NULL) AND (X_segment18 IS NULL)))
1214         AND ((tlinfo.segment19 = x_segment19) OR ((tlinfo.segment19 IS NULL) AND (X_segment19 IS NULL)))
1215         AND ((tlinfo.segment20 = x_segment20) OR ((tlinfo.segment20 IS NULL) AND (X_segment20 IS NULL)))
1216         AND ((tlinfo.segment21 = x_segment21) OR ((tlinfo.segment21 IS NULL) AND (X_segment21 IS NULL)))
1217         AND ((tlinfo.segment22 = x_segment22) OR ((tlinfo.segment22 IS NULL) AND (X_segment22 IS NULL)))
1218         AND ((tlinfo.segment23 = x_segment23) OR ((tlinfo.segment23 IS NULL) AND (X_segment23 IS NULL)))
1219         AND ((tlinfo.segment24 = x_segment24) OR ((tlinfo.segment24 IS NULL) AND (X_segment24 IS NULL)))
1220         AND ((tlinfo.segment25 = x_segment25) OR ((tlinfo.segment25 IS NULL) AND (X_segment25 IS NULL)))
1221         AND ((tlinfo.segment26 = x_segment26) OR ((tlinfo.segment26 IS NULL) AND (X_segment26 IS NULL)))
1222         AND ((tlinfo.segment27 = x_segment27) OR ((tlinfo.segment27 IS NULL) AND (X_segment27 IS NULL)))
1223         AND ((tlinfo.segment28 = x_segment28) OR ((tlinfo.segment28 IS NULL) AND (X_segment28 IS NULL)))
1224         AND ((tlinfo.segment29 = x_segment29) OR ((tlinfo.segment29 IS NULL) AND (X_segment29 IS NULL)))
1225         AND ((tlinfo.segment30 = x_segment30) OR ((tlinfo.segment30 IS NULL) AND (X_segment30 IS NULL)))
1226        ) THEN
1227       NULL;
1228     ELSE
1229       fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
1230 -- bug 3199481, start block
1231       IF (l_unexp_level >= l_debug_level) THEN
1232          FND_LOG.MESSAGE(l_unexp_level, 'igi.plsql.igi_dos_trx_sources_pkg.lock_row.Msg2',FALSE);
1233       END IF;
1234 -- bug 3199481, end block
1235       app_exception.raise_exception;
1236     END IF;
1237 
1238     RETURN;
1239 
1240   END lock_row;
1241 
1242 
1243   PROCEDURE update_row (
1244     x_rowid                             IN     VARCHAR2,
1245     x_sob_id                            IN     NUMBER,
1246     x_trx_id                            IN     NUMBER,
1247     x_source_trx_id                     IN     NUMBER,
1248     x_source_id                         IN     NUMBER,
1249     x_code_combination_id               IN     NUMBER,
1250     x_profile_code                      IN     VARCHAR2,
1251     x_budget_org_id                     IN     NUMBER,
1252     x_budget_entity_id                  IN     NUMBER,
1253     x_budget_amount                     IN     NUMBER,
1254     x_funds_available                   IN     NUMBER,
1255     x_new_balance                       IN     NUMBER,
1256     x_currency_code                     IN     VARCHAR2,
1257     x_visible_segments                  IN     VARCHAR2,
1258     x_actual_segments                   IN     VARCHAR2,
1259     x_m_budget_amount                 IN     NUMBER,
1260     x_m_budget_amt_exch_rate          IN     NUMBER,
1261     x_m_budget_amt_exch_rate_type     IN     VARCHAR2,
1262     x_m_budget_amt_exch_date          IN     DATE,
1263     x_m_budget_amt_exch_status        IN     VARCHAR2,
1264     x_m_funds_avail                   IN     NUMBER,
1265     x_m_funds_avail_exch_rate         IN     NUMBER,
1266     x_m_funds_avail_exch_rate_type    IN     VARCHAR2,
1267     x_m_funds_avail_exch_date         IN     DATE,
1268     x_m_funds_avail_exch_status       IN     VARCHAR2,
1269     x_m_new_balance                   IN     NUMBER,
1270     x_m_new_balance_exch_rate         IN     NUMBER,
1271     x_m_new_balance_exch_rate_type    IN     VARCHAR2,
1272     x_m_new_balance_exch_date         IN     DATE,
1273     x_m_new_balance_exch_status       IN     VARCHAR2,
1274     x_budget_name                       IN     VARCHAR2,
1275     x_dossier_id                        IN     NUMBER,
1276     x_budget_version_id                 IN     NUMBER,
1277     x_period_name                       IN     VARCHAR2,
1278     x_status                            IN     VARCHAR2,
1279     x_group_id                          IN     NUMBER,
1280     x_quarter_num                       IN     NUMBER,
1281     x_period_year                       IN     NUMBER,
1282     x_period_num                        IN     NUMBER,
1283     x_line_num                          IN     NUMBER,
1284     x_segment1                          IN     VARCHAR2,
1285     x_segment2                          IN     VARCHAR2,
1286     x_segment3                          IN     VARCHAR2,
1287     x_segment4                          IN     VARCHAR2,
1288     x_segment5                          IN     VARCHAR2,
1289     x_segment6                          IN     VARCHAR2,
1290     x_segment7                          IN     VARCHAR2,
1291     x_segment8                          IN     VARCHAR2,
1292     x_segment9                          IN     VARCHAR2,
1293     x_segment10                         IN     VARCHAR2,
1294     x_segment11                         IN     VARCHAR2,
1295     x_segment12                         IN     VARCHAR2,
1296     x_segment13                         IN     VARCHAR2,
1297     x_segment14                         IN     VARCHAR2,
1298     x_segment15                         IN     VARCHAR2,
1299     x_segment16                         IN     VARCHAR2,
1300     x_segment17                         IN     VARCHAR2,
1301     x_segment18                         IN     VARCHAR2,
1302     x_segment19                         IN     VARCHAR2,
1303     x_segment20                         IN     VARCHAR2,
1304     x_segment21                         IN     VARCHAR2,
1305     x_segment22                         IN     VARCHAR2,
1306     x_segment23                         IN     VARCHAR2,
1307     x_segment24                         IN     VARCHAR2,
1308     x_segment25                         IN     VARCHAR2,
1309     x_segment26                         IN     VARCHAR2,
1310     x_segment27                         IN     VARCHAR2,
1311     x_segment28                         IN     VARCHAR2,
1312     x_segment29                         IN     VARCHAR2,
1313     x_segment30                         IN     VARCHAR2,
1314     x_mode                              IN     VARCHAR2 ) AS
1315   /*
1316   ||  Created By : [email protected]
1317   ||  Created On : 02-MAY-2002
1318   ||  Purpose : Handles the UPDATE DML logic for the table.
1319   ||  Known limitations, enhancements or remarks :
1320   ||  Change History :
1321   ||  Who             When            What
1322   ||  (reverse chronological order - newest change first)
1323   */
1324     x_last_update_date           DATE ;
1325     x_last_updated_by            NUMBER;
1326     x_last_update_login          NUMBER;
1327 
1328     l_mode VARCHAR2(1);
1329 
1330   BEGIN
1331  IF X_mode is NULL then
1332    l_mode :='R';
1333   ELSE
1334    l_mode := X_mode;
1335   END IF;
1336 
1337 
1338     x_last_update_date := SYSDATE;
1339     IF (l_MODE = 'I') THEN
1340       x_last_updated_by := 1;
1341       x_last_update_login := 0;
1342     ELSIF (l_mode = 'R') THEN
1343       x_last_updated_by := fnd_global.user_id;
1344       IF x_last_updated_by IS NULL THEN
1345         x_last_updated_by := -1;
1346       END IF;
1347       x_last_update_login := fnd_global.login_id;
1348       IF (x_last_update_login IS NULL) THEN
1349         x_last_update_login := -1;
1350       END IF;
1351     ELSE
1352       fnd_message.set_name( 'FND', 'SYSTEM-INVALID ARGS');
1353 -- bug 3199481, start block
1354       IF (l_unexp_level >= l_debug_level) THEN
1355          FND_LOG.MESSAGE(l_unexp_level, 'igi.plsql.igi_dos_trx_sources_pkg.update_row.Msg1',FALSE);
1356       END IF;
1357 -- bug 3199481, end block
1358       app_exception.raise_exception;
1359     END IF;
1360 
1361     before_dml(
1362       p_action                            => 'UPDATE',
1363       x_rowid                             => x_rowid,
1364       x_sob_id                            => x_sob_id,
1365       x_trx_id                            => x_trx_id,
1366       x_source_trx_id                     => x_source_trx_id,
1367       x_source_id                         => x_source_id,
1368       x_code_combination_id               => x_code_combination_id,
1369       x_profile_code                      => x_profile_code,
1370       x_budget_org_id                     => x_budget_org_id,
1371       x_budget_entity_id                  => x_budget_entity_id,
1372       x_budget_amount                     => x_budget_amount,
1373       x_funds_available                   => x_funds_available,
1374       x_new_balance                       => x_new_balance,
1375       x_currency_code                     => x_currency_code,
1376       x_visible_segments                  => x_visible_segments,
1377       x_actual_segments                   => x_actual_segments,
1378       x_m_budget_amount                 => x_m_budget_amount,
1379       x_m_budget_amt_exch_rate          => x_m_budget_amt_exch_rate,
1380       x_m_budget_amt_exch_rate_type     => x_m_budget_amt_exch_rate_type,
1381       x_m_budget_amt_exch_date          => x_m_budget_amt_exch_date,
1382       x_m_budget_amt_exch_status        => x_m_budget_amt_exch_status,
1383       x_m_funds_avail                   => x_m_funds_avail,
1384       x_m_funds_avail_exch_rate         => x_m_funds_avail_exch_rate,
1385       x_m_funds_avail_exch_rate_type    => x_m_funds_avail_exch_rate_type,
1386       x_m_funds_avail_exch_date         => x_m_funds_avail_exch_date,
1387       x_m_funds_avail_exch_status       => x_m_funds_avail_exch_status,
1388       x_m_new_balance                   => x_m_new_balance,
1389       x_m_new_balance_exch_rate         => x_m_new_balance_exch_rate,
1390       x_m_new_balance_exch_rate_type    => x_m_new_balance_exch_rate_type,
1391       x_m_new_balance_exch_date         => x_m_new_balance_exch_date,
1392       x_m_new_balance_exch_status       => x_m_new_balance_exch_status,
1393       x_budget_name                       => x_budget_name,
1394       x_dossier_id                        => x_dossier_id,
1395       x_budget_version_id                 => x_budget_version_id,
1396       x_period_name                       => x_period_name,
1397       x_status                            => x_status,
1398       x_group_id                          => x_group_id,
1399       x_quarter_num                       => x_quarter_num,
1400       x_period_year                       => x_period_year,
1401       x_period_num                        => x_period_num,
1402       x_line_num                          => x_line_num,
1403       x_segment1                          => x_segment1,
1404       x_segment2                          => x_segment2,
1405       x_segment3                          => x_segment3,
1406       x_segment4                          => x_segment4,
1407       x_segment5                          => x_segment5,
1408       x_segment6                          => x_segment6,
1409       x_segment7                          => x_segment7,
1410       x_segment8                          => x_segment8,
1411       x_segment9                          => x_segment9,
1412       x_segment10                         => x_segment10,
1413       x_segment11                         => x_segment11,
1414       x_segment12                         => x_segment12,
1415       x_segment13                         => x_segment13,
1416       x_segment14                         => x_segment14,
1417       x_segment15                         => x_segment15,
1418       x_segment16                         => x_segment16,
1419       x_segment17                         => x_segment17,
1420       x_segment18                         => x_segment18,
1421       x_segment19                         => x_segment19,
1422       x_segment20                         => x_segment20,
1423       x_segment21                         => x_segment21,
1424       x_segment22                         => x_segment22,
1425       x_segment23                         => x_segment23,
1426       x_segment24                         => x_segment24,
1427       x_segment25                         => x_segment25,
1428       x_segment26                         => x_segment26,
1429       x_segment27                         => x_segment27,
1430       x_segment28                         => x_segment28,
1431       x_segment29                         => x_segment29,
1432       x_segment30                         => x_segment30,
1433       x_creation_date                     => x_last_update_date,
1434       x_created_by                        => x_last_updated_by,
1435       x_last_update_date                  => x_last_update_date,
1436       x_last_updated_by                   => x_last_updated_by,
1437       x_last_update_login                 => x_last_update_login
1438     );
1439 
1440     UPDATE igi_dos_trx_sources
1441       SET
1442         sob_id                            = new_references.sob_id,
1443         trx_id                            = new_references.trx_id,
1444         source_id                         = new_references.source_id,
1445         code_combination_id               = new_references.code_combination_id,
1446         profile_code                      = new_references.profile_code,
1447         budget_org_id                     = new_references.budget_org_id,
1448         budget_entity_id                  = new_references.budget_entity_id,
1449         budget_amount                     = new_references.budget_amount,
1450         funds_available                   = new_references.funds_available,
1451         new_balance                       = new_references.new_balance,
1452         currency_code                     = new_references.currency_code,
1453         visible_segments                  = new_references.visible_segments,
1454         actual_segments                   = new_references.actual_segments,
1455         mrc_budget_amount                 = new_references.mrc_budget_amount,
1456         mrc_budget_amt_exch_rate          = new_references.mrc_budget_amt_exch_rate,
1457         mrc_budget_amt_exch_rate_type     = new_references.mrc_budget_amt_exch_rate_type,
1458         mrc_budget_amt_exch_date          = new_references.mrc_budget_amt_exch_date,
1459         mrc_budget_amt_exch_status        = new_references.mrc_budget_amt_exch_status,
1460         mrc_funds_avail                   = new_references.mrc_funds_avail,
1461         mrc_funds_avail_exch_rate         = new_references.mrc_funds_avail_exch_rate,
1462         mrc_funds_avail_exch_rate_type    = new_references.mrc_funds_avail_exch_rate_type,
1463         mrc_funds_avail_exch_date         = new_references.mrc_funds_avail_exch_date,
1464         mrc_funds_avail_exch_status       = new_references.mrc_funds_avail_exch_status,
1465         mrc_new_balance                   = new_references.mrc_new_balance,
1466         mrc_new_balance_exch_rate         = new_references.mrc_new_balance_exch_rate,
1467         mrc_new_balance_exch_rate_type    = new_references.mrc_new_balance_exch_rate_type,
1468         mrc_new_balance_exch_date         = new_references.mrc_new_balance_exch_date,
1469         mrc_new_balance_exch_status       = new_references.mrc_new_balance_exch_status,
1470         budget_name                       = new_references.budget_name,
1471         dossier_id                        = new_references.dossier_id,
1472         budget_version_id                 = new_references.budget_version_id,
1473         period_name                       = new_references.period_name,
1474         status                            = new_references.status,
1475         group_id                          = new_references.group_id,
1476         quarter_num                       = new_references.quarter_num,
1477         period_year                       = new_references.period_year,
1478         period_num                        = new_references.period_num,
1479         line_num                          = new_references.line_num,
1480         segment1                          = new_references.segment1,
1481         segment2                          = new_references.segment2,
1482         segment3                          = new_references.segment3,
1483         segment4                          = new_references.segment4,
1484         segment5                          = new_references.segment5,
1485         segment6                          = new_references.segment6,
1486         segment7                          = new_references.segment7,
1487         segment8                          = new_references.segment8,
1488         segment9                          = new_references.segment9,
1489         segment10                         = new_references.segment10,
1490         segment11                         = new_references.segment11,
1491         segment12                         = new_references.segment12,
1492         segment13                         = new_references.segment13,
1493         segment14                         = new_references.segment14,
1494         segment15                         = new_references.segment15,
1495         segment16                         = new_references.segment16,
1496         segment17                         = new_references.segment17,
1497         segment18                         = new_references.segment18,
1498         segment19                         = new_references.segment19,
1499         segment20                         = new_references.segment20,
1500         segment21                         = new_references.segment21,
1501         segment22                         = new_references.segment22,
1502         segment23                         = new_references.segment23,
1503         segment24                         = new_references.segment24,
1504         segment25                         = new_references.segment25,
1505         segment26                         = new_references.segment26,
1506         segment27                         = new_references.segment27,
1507         segment28                         = new_references.segment28,
1508         segment29                         = new_references.segment29,
1509         segment30                         = new_references.segment30,
1510         last_update_date                  = x_last_update_date,
1511         last_updated_by                   = x_last_updated_by,
1512         last_update_login                 = x_last_update_login
1513       WHERE rowid = x_rowid;
1514 
1515     IF (SQL%NOTFOUND) THEN
1516       RAISE NO_DATA_FOUND;
1517     END IF;
1518 
1519   END update_row;
1520 
1521 
1522   PROCEDURE add_row (
1523     x_rowid                             IN OUT NOCOPY VARCHAR2,
1524     x_sob_id                            IN     NUMBER,
1525     x_trx_id                            IN     NUMBER,
1526     x_source_trx_id                     IN OUT NOCOPY NUMBER,
1527     x_source_id                         IN     NUMBER,
1528     x_code_combination_id               IN     NUMBER,
1529     x_profile_code                      IN     VARCHAR2,
1530     x_budget_org_id                     IN     NUMBER,
1531     x_budget_entity_id                  IN     NUMBER,
1532     x_budget_amount                     IN     NUMBER,
1533     x_funds_available                   IN     NUMBER,
1534     x_new_balance                       IN     NUMBER,
1535     x_currency_code                     IN     VARCHAR2,
1536     x_visible_segments                  IN     VARCHAR2,
1537     x_actual_segments                   IN     VARCHAR2,
1538     x_m_budget_amount                 IN     NUMBER,
1539     x_m_budget_amt_exch_rate          IN     NUMBER,
1540     x_m_budget_amt_exch_rate_type     IN     VARCHAR2,
1541     x_m_budget_amt_exch_date          IN     DATE,
1542     x_m_budget_amt_exch_status        IN     VARCHAR2,
1543     x_m_funds_avail                   IN     NUMBER,
1544     x_m_funds_avail_exch_rate         IN     NUMBER,
1545     x_m_funds_avail_exch_rate_type    IN     VARCHAR2,
1546     x_m_funds_avail_exch_date         IN     DATE,
1547     x_m_funds_avail_exch_status       IN     VARCHAR2,
1548     x_m_new_balance                   IN     NUMBER,
1549     x_m_new_balance_exch_rate         IN     NUMBER,
1550     x_m_new_balance_exch_rate_type    IN     VARCHAR2,
1551     x_m_new_balance_exch_date         IN     DATE,
1552     x_m_new_balance_exch_status       IN     VARCHAR2,
1553     x_budget_name                       IN     VARCHAR2,
1554     x_dossier_id                        IN     NUMBER,
1555     x_budget_version_id                 IN     NUMBER,
1556     x_period_name                       IN     VARCHAR2,
1557     x_status                            IN     VARCHAR2,
1558     x_group_id                          IN     NUMBER,
1559     x_quarter_num                       IN     NUMBER,
1560     x_period_year                       IN     NUMBER,
1561     x_period_num                        IN     NUMBER,
1562     x_line_num                          IN     NUMBER,
1563     x_segment1                          IN     VARCHAR2,
1564     x_segment2                          IN     VARCHAR2,
1565     x_segment3                          IN     VARCHAR2,
1566     x_segment4                          IN     VARCHAR2,
1567     x_segment5                          IN     VARCHAR2,
1568     x_segment6                          IN     VARCHAR2,
1569     x_segment7                          IN     VARCHAR2,
1570     x_segment8                          IN     VARCHAR2,
1571     x_segment9                          IN     VARCHAR2,
1572     x_segment10                         IN     VARCHAR2,
1573     x_segment11                         IN     VARCHAR2,
1574     x_segment12                         IN     VARCHAR2,
1575     x_segment13                         IN     VARCHAR2,
1576     x_segment14                         IN     VARCHAR2,
1577     x_segment15                         IN     VARCHAR2,
1578     x_segment16                         IN     VARCHAR2,
1579     x_segment17                         IN     VARCHAR2,
1580     x_segment18                         IN     VARCHAR2,
1581     x_segment19                         IN     VARCHAR2,
1582     x_segment20                         IN     VARCHAR2,
1583     x_segment21                         IN     VARCHAR2,
1584     x_segment22                         IN     VARCHAR2,
1585     x_segment23                         IN     VARCHAR2,
1586     x_segment24                         IN     VARCHAR2,
1587     x_segment25                         IN     VARCHAR2,
1588     x_segment26                         IN     VARCHAR2,
1589     x_segment27                         IN     VARCHAR2,
1590     x_segment28                         IN     VARCHAR2,
1591     x_segment29                         IN     VARCHAR2,
1592     x_segment30                         IN     VARCHAR2,
1593     x_mode                              IN     VARCHAR2 ) AS
1594   /*
1595   ||  Created By : [email protected]
1596   ||  Created On : 02-MAY-2002
1597   ||  Purpose : Adds a row if there is no existing row, otherwise updates existing row in the table.
1598   ||  Known limitations, enhancements or remarks :
1599   ||  Change History :
1600   ||  Who             When            What
1601   ||  (reverse chronological order - newest change first)
1602   */
1603     CURSOR c1 IS
1604       SELECT   rowid
1605       FROM     igi_dos_trx_sources
1606       WHERE    source_trx_id                     = x_source_trx_id;
1607 
1608    l_mode VARCHAR2(1);
1609   BEGIN
1610  IF X_mode is NULL then
1611    l_mode :='R';
1612   ELSE
1613    l_mode := X_mode;
1614   END IF;
1615 
1616 
1617     OPEN c1;
1618     FETCH c1 INTO x_rowid;
1619     IF (c1%NOTFOUND) THEN
1620       CLOSE c1;
1621 
1622       insert_row (
1623         x_rowid,
1624         x_sob_id,
1625         x_trx_id,
1626         x_source_trx_id,
1627         x_source_id,
1628         x_code_combination_id,
1629         x_profile_code,
1630         x_budget_org_id,
1631         x_budget_entity_id,
1632         x_budget_amount,
1633         x_funds_available,
1634         x_new_balance,
1635         x_currency_code,
1636         x_visible_segments,
1637         x_actual_segments,
1638         x_m_budget_amount,
1639         x_m_budget_amt_exch_rate,
1640         x_m_budget_amt_exch_rate_type,
1641         x_m_budget_amt_exch_date,
1642         x_m_budget_amt_exch_status,
1643         x_m_funds_avail,
1644         x_m_funds_avail_exch_rate,
1645         x_m_funds_avail_exch_rate_type,
1646         x_m_funds_avail_exch_date,
1647         x_m_funds_avail_exch_status,
1648         x_m_new_balance,
1649         x_m_new_balance_exch_rate,
1650         x_m_new_balance_exch_rate_type,
1651         x_m_new_balance_exch_date,
1652         x_m_new_balance_exch_status,
1653         x_budget_name,
1654         x_dossier_id,
1655         x_budget_version_id,
1656         x_period_name,
1657         x_status,
1658         x_group_id,
1659         x_quarter_num,
1660         x_period_year,
1661         x_period_num,
1662         x_line_num,
1663         x_segment1,
1664         x_segment2,
1665         x_segment3,
1666         x_segment4,
1667         x_segment5,
1668         x_segment6,
1669         x_segment7,
1670         x_segment8,
1671         x_segment9,
1672         x_segment10,
1673         x_segment11,
1674         x_segment12,
1675         x_segment13,
1676         x_segment14,
1677         x_segment15,
1678         x_segment16,
1679         x_segment17,
1680         x_segment18,
1681         x_segment19,
1682         x_segment20,
1683         x_segment21,
1684         x_segment22,
1685         x_segment23,
1686         x_segment24,
1687         x_segment25,
1688         x_segment26,
1689         x_segment27,
1690         x_segment28,
1691         x_segment29,
1692         x_segment30,
1693         l_mode
1694       );
1695       RETURN;
1696     END IF;
1697     CLOSE c1;
1698 
1699     update_row (
1700       x_rowid,
1701       x_sob_id,
1702       x_trx_id,
1703       x_source_trx_id,
1704       x_source_id,
1705       x_code_combination_id,
1706       x_profile_code,
1707       x_budget_org_id,
1708       x_budget_entity_id,
1709       x_budget_amount,
1710       x_funds_available,
1711       x_new_balance,
1712       x_currency_code,
1713       x_visible_segments,
1714       x_actual_segments,
1715       x_m_budget_amount,
1716       x_m_budget_amt_exch_rate,
1717       x_m_budget_amt_exch_rate_type,
1718       x_m_budget_amt_exch_date,
1719       x_m_budget_amt_exch_status,
1720       x_m_funds_avail,
1721       x_m_funds_avail_exch_rate,
1722       x_m_funds_avail_exch_rate_type,
1723       x_m_funds_avail_exch_date,
1724       x_m_funds_avail_exch_status,
1725       x_m_new_balance,
1726       x_m_new_balance_exch_rate,
1727       x_m_new_balance_exch_rate_type,
1728       x_m_new_balance_exch_date,
1729       x_m_new_balance_exch_status,
1730       x_budget_name,
1731       x_dossier_id,
1732       x_budget_version_id,
1733       x_period_name,
1734       x_status,
1735       x_group_id,
1736       x_quarter_num,
1737       x_period_year,
1738       x_period_num,
1739       x_line_num,
1740       x_segment1,
1741       x_segment2,
1742       x_segment3,
1743       x_segment4,
1744       x_segment5,
1745       x_segment6,
1746       x_segment7,
1747       x_segment8,
1748       x_segment9,
1749       x_segment10,
1750       x_segment11,
1751       x_segment12,
1752       x_segment13,
1753       x_segment14,
1754       x_segment15,
1755       x_segment16,
1756       x_segment17,
1757       x_segment18,
1758       x_segment19,
1759       x_segment20,
1760       x_segment21,
1761       x_segment22,
1762       x_segment23,
1763       x_segment24,
1764       x_segment25,
1765       x_segment26,
1766       x_segment27,
1767       x_segment28,
1768       x_segment29,
1769       x_segment30,
1770       l_mode
1771     );
1772 
1773   END add_row;
1774 
1775 
1776   PROCEDURE delete_row (
1777     x_rowid IN VARCHAR2
1778   ) AS
1779   /*
1780   ||  Created By : [email protected]
1781   ||  Created On : 02-MAY-2002
1782   ||  Purpose : Handles the DELETE DML logic for the table.
1783   ||  Known limitations, enhancements or remarks :
1784   ||  Change History :
1785   ||  Who             When            What
1786   ||  (reverse chronological order - newest change first)
1787   */
1788   BEGIN
1789 
1790 
1791    -- before_dml (
1792      -- p_action => 'DELETE',
1793      -- x_rowid => x_rowid
1794     --);
1795 
1796     DELETE FROM igi_dos_trx_sources
1797     WHERE rowid = x_rowid;
1798 
1799     ----IF (SQL%NOTFOUND) THEN
1800       --RAISE NO_DATA_FOUND;
1801    -- END IF;
1802 
1803   END delete_row;
1804 BEGIN
1805 l_debug_level    := FND_LOG.G_CURRENT_RUNTIME_LEVEL ;
1806 
1807 l_state_level    := FND_LOG.LEVEL_STATEMENT ;
1808 l_proc_level     := FND_LOG.LEVEL_PROCEDURE ;
1809 l_event_level    := FND_LOG.LEVEL_EVENT ;
1810 l_excep_level    := FND_LOG.LEVEL_EXCEPTION ;
1811 l_error_level    := FND_LOG.LEVEL_ERROR ;
1812 l_unexp_level    := FND_LOG.LEVEL_UNEXPECTED ;
1813 
1814 END igi_dos_trx_sources_pkg;