DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_UC_COM_SCSICNTS_PKG

Source


1 PACKAGE BODY igs_uc_com_scsicnts_pkg AS
2 /* $Header: IGSXI12B.pls 115.7 2003/06/11 10:34:42 smaddali noship $ */
3 
4   l_rowid VARCHAR2(25);
5   old_references igs_uc_com_scsicnts%ROWTYPE;
6   new_references igs_uc_com_scsicnts%ROWTYPE;
7 
8   PROCEDURE set_column_values (
9     p_action                            IN     VARCHAR2,
10     x_rowid                             IN     VARCHAR2,
11     x_school                            IN     NUMBER  ,
12     x_sitecode                          IN     VARCHAR2,
13     x_contact_code                      IN     NUMBER  ,
14     x_contact_post                      IN     VARCHAR2,
15     x_contact_name                      IN     VARCHAR2,
16     x_telephone                         IN     VARCHAR2,
17     x_fax                               IN     VARCHAR2,
18     x_email                             IN     VARCHAR2,
19     x_principal                         IN     VARCHAR2,
20     x_lists                             IN     VARCHAR2,
21     x_orders                            IN     VARCHAR2,
22     x_forms                             IN     VARCHAR2,
23     x_referee                           IN     VARCHAR2,
24     x_careers                           IN     VARCHAR2,
25     x_eas_contact                       IN     VARCHAR2,
26     x_imported                          IN     VARCHAR2,
27     x_creation_date                     IN     DATE    ,
28     x_created_by                        IN     NUMBER  ,
29     x_last_update_date                  IN     DATE    ,
30     x_last_updated_by                   IN     NUMBER  ,
31     x_last_update_login                 IN     NUMBER
32   ) AS
33   /*
34   ||  Created By : rgopalan
35   ||  Created On : 01-OCT-2001
36   ||  Purpose : Initialises the Old and New references for the columns of the table.
37   ||  Known limitations, enhancements or remarks :
38   ||  Change History :
39   ||  Who             When            What
40   || smaddali  10-jun-03    obsoleting timestamp column for ucfd203 - multiple cycles build , bug#2669208
41   ||  (reverse chronological order - newest change first)
42   */
43 
44     CURSOR cur_old_ref_values IS
45       SELECT   *
46       FROM     IGS_UC_COM_SCSICNTS
47       WHERE    rowid = x_rowid;
48 
49   BEGIN
50 
51     l_rowid := x_rowid;
52 
53     -- Code for setting the Old and New Reference Values.
54     -- Populate Old Values.
55     OPEN cur_old_ref_values;
56     FETCH cur_old_ref_values INTO old_references;
57     IF ((cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT'))) THEN
58       CLOSE cur_old_ref_values;
59       fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
60       igs_ge_msg_stack.add;
61       app_exception.raise_exception;
62       RETURN;
63     END IF;
64     CLOSE cur_old_ref_values;
65 
66     -- Populate New Values.
67     new_references.school                            := x_school;
68     new_references.sitecode                          := x_sitecode;
69     new_references.contact_code                      := x_contact_code;
70     new_references.contact_post                      := x_contact_post;
71     new_references.contact_name                      := x_contact_name;
72     new_references.telephone                         := x_telephone;
73     new_references.fax                               := x_fax;
74     new_references.email                             := x_email;
75     new_references.principal                         := x_principal;
76     new_references.lists                             := x_lists;
77     new_references.orders                            := x_orders;
78     new_references.forms                             := x_forms;
79     new_references.referee                           := x_referee;
80     new_references.careers                           := x_careers;
81     new_references.eas_contact                       := x_eas_contact;
82     new_references.imported                          := x_imported;
83 
84     IF (p_action = 'UPDATE') THEN
85       new_references.creation_date                   := old_references.creation_date;
86       new_references.created_by                      := old_references.created_by;
87     ELSE
88       new_references.creation_date                   := x_creation_date;
89       new_references.created_by                      := x_created_by;
90     END IF;
91 
92     new_references.last_update_date                  := x_last_update_date;
93     new_references.last_updated_by                   := x_last_updated_by;
94     new_references.last_update_login                 := x_last_update_login;
95 
96   END set_column_values;
97 
98 
99   PROCEDURE check_parent_existance AS
100   /*
101   ||  Created By : rgopalan
102   ||  Created On : 01-OCT-2001
103   ||  Purpose : Checks for the existance of Parent records.
104   ||  Known limitations, enhancements or remarks :
105   ||  Change History :
106   ||  Who             When            What
107   ||  (reverse chronological order - newest change first)
108   */
109   BEGIN
110 
111     IF (((old_references.school = new_references.school) AND
112          (old_references.sitecode = new_references.sitecode)) OR
113         ((new_references.school IS NULL) OR
114          (new_references.sitecode IS NULL))) THEN
115       NULL;
116     ELSIF NOT igs_uc_com_schsites_pkg.get_pk_for_validation (
117                 new_references.school,
118                 new_references.sitecode
119               ) THEN
120       fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
121       igs_ge_msg_stack.add;
122       app_exception.raise_exception;
123     END IF;
124 
125   END check_parent_existance;
126 
127 
128   FUNCTION get_pk_for_validation (
129     x_school                            IN     NUMBER,
130     x_sitecode                          IN     VARCHAR2,
131     x_contact_code                      IN     NUMBER
132   ) RETURN BOOLEAN AS
133   /*
134   ||  Created By : rgopalan
135   ||  Created On : 01-OCT-2001
136   ||  Purpose : Validates the Primary Key of the table.
137   ||  Known limitations, enhancements or remarks :
138   ||  Change History :
139   ||  Who             When            What
140   ||  (reverse chronological order - newest change first)
141   */
142     CURSOR cur_rowid IS
143       SELECT   rowid
144       FROM     igs_uc_com_scsicnts
145       WHERE    school = x_school
146       AND      sitecode = x_sitecode
147       AND      contact_code = x_contact_code ;
148 
149     lv_rowid cur_rowid%RowType;
150 
151   BEGIN
152 
153     OPEN cur_rowid;
154     FETCH cur_rowid INTO lv_rowid;
155     IF (cur_rowid%FOUND) THEN
156       CLOSE cur_rowid;
157       RETURN(TRUE);
158     ELSE
159       CLOSE cur_rowid;
160       RETURN(FALSE);
161     END IF;
162 
163   END get_pk_for_validation;
164 
165 
166   PROCEDURE get_fk_igs_uc_com_schsites (
167     x_school                            IN     NUMBER,
168     x_sitecode                          IN     VARCHAR2
169   ) AS
170   /*
171   ||  Created By : rgopalan
172   ||  Created On : 01-OCT-2001
173   ||  Purpose : Validates the Foreign Keys for the table.
174   ||  Known limitations, enhancements or remarks :
175   ||  Change History :
176   ||  Who             When            What
177   ||  (reverse chronological order - newest change first)
178   */
179     CURSOR cur_rowid IS
180       SELECT   rowid
181       FROM     igs_uc_com_scsicnts
182       WHERE   ((school = x_school) AND
183                (sitecode = x_sitecode));
184 
185     lv_rowid cur_rowid%RowType;
186 
187   BEGIN
188 
189     OPEN cur_rowid;
190     FETCH cur_rowid INTO lv_rowid;
191     IF (cur_rowid%FOUND) THEN
192       CLOSE cur_rowid;
193       fnd_message.set_name ('IGS', 'IGS_UC_UCCOSC_UCCOSS_FK');
194       igs_ge_msg_stack.add;
195       app_exception.raise_exception;
196       RETURN;
197     END IF;
198     CLOSE cur_rowid;
199 
200   END get_fk_igs_uc_com_schsites;
201 
202 
203   PROCEDURE before_dml (
204     p_action                            IN     VARCHAR2,
205     x_rowid                             IN     VARCHAR2,
206     x_school                            IN     NUMBER  ,
207     x_sitecode                          IN     VARCHAR2,
208     x_contact_code                      IN     NUMBER  ,
209     x_contact_post                      IN     VARCHAR2,
210     x_contact_name                      IN     VARCHAR2,
211     x_telephone                         IN     VARCHAR2,
212     x_fax                               IN     VARCHAR2,
213     x_email                             IN     VARCHAR2,
214     x_principal                         IN     VARCHAR2,
215     x_lists                             IN     VARCHAR2,
216     x_orders                            IN     VARCHAR2,
217     x_forms                             IN     VARCHAR2,
218     x_referee                           IN     VARCHAR2,
219     x_careers                           IN     VARCHAR2,
220     x_eas_contact                       IN     VARCHAR2,
221     x_imported                          IN     VARCHAR2,
222     x_creation_date                     IN     DATE    ,
223     x_created_by                        IN     NUMBER  ,
224     x_last_update_date                  IN     DATE    ,
225     x_last_updated_by                   IN     NUMBER  ,
226     x_last_update_login                 IN     NUMBER
227   ) AS
228   /*
229   ||  Created By : rgopalan
230   ||  Created On : 01-OCT-2001
231   ||  Purpose : Initialises the columns, Checks Constraints, Calls the
232   ||            Trigger Handlers for the table, before any DML operation.
233   ||  Known limitations, enhancements or remarks :
234   ||  Change History :
235   ||  Who             When            What
236   || smaddali  10-jun-03    obsoleting timestamp column for ucfd203 - multiple cycles build , bug#2669208
237   ||  (reverse chronological order - newest change first)
238   */
239   BEGIN
240 
241     set_column_values (
242       p_action,
243       x_rowid,
244       x_school,
245       x_sitecode,
246       x_contact_code,
247       x_contact_post,
248       x_contact_name,
249       x_telephone,
250       x_fax,
251       x_email,
252       x_principal,
253       x_lists,
254       x_orders,
255       x_forms,
256       x_referee,
257       x_careers,
258       x_eas_contact,
259       x_imported,
260       x_creation_date,
261       x_created_by,
262       x_last_update_date,
263       x_last_updated_by,
264       x_last_update_login
265     );
266 
267     IF (p_action = 'INSERT') THEN
268       -- Call all the procedures related to Before Insert.
269       IF ( get_pk_for_validation(
270              new_references.school,
271              new_references.sitecode,
272              new_references.contact_code
273            )
274          ) THEN
275         fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
276         igs_ge_msg_stack.add;
277         app_exception.raise_exception;
278       END IF;
279       check_parent_existance;
280     ELSIF (p_action = 'UPDATE') THEN
281       -- Call all the procedures related to Before Update.
282       check_parent_existance;
283     ELSIF (p_action = 'VALIDATE_INSERT') THEN
284       -- Call all the procedures related to Before Insert.
285       IF ( get_pk_for_validation (
286              new_references.school,
287              new_references.sitecode,
288              new_references.contact_code
289            )
290          ) THEN
291         fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
292         igs_ge_msg_stack.add;
293         app_exception.raise_exception;
294       END IF;
295     END IF;
296 
297   END before_dml;
298 
299 
300   PROCEDURE insert_row (
301     x_rowid                             IN OUT NOCOPY VARCHAR2,
302     x_school                            IN     NUMBER,
303     x_sitecode                          IN     VARCHAR2,
304     x_contact_code                      IN     NUMBER,
305     x_contact_post                      IN     VARCHAR2,
306     x_contact_name                      IN     VARCHAR2,
307     x_telephone                         IN     VARCHAR2,
308     x_fax                               IN     VARCHAR2,
309     x_email                             IN     VARCHAR2,
310     x_principal                         IN     VARCHAR2,
311     x_lists                             IN     VARCHAR2,
312     x_orders                            IN     VARCHAR2,
313     x_forms                             IN     VARCHAR2,
314     x_referee                           IN     VARCHAR2,
315     x_careers                           IN     VARCHAR2,
316     x_eas_contact                       IN     VARCHAR2,
317     x_imported                          IN     VARCHAR2,
318     x_mode                              IN     VARCHAR2
319   ) AS
320   /*
321   ||  Created By : rgopalan
322   ||  Created On : 01-OCT-2001
323   ||  Purpose : Handles the INSERT DML logic for the table.
324   ||  Known limitations, enhancements or remarks :
325   ||  Change History :
326   ||  Who             When            What
327   || smaddali  10-jun-03    obsoleting timestamp column for ucfd203 - multiple cycles build , bug#2669208
328   ||  (reverse chronological order - newest change first)
329   */
330     CURSOR c IS
331       SELECT   rowid
332       FROM     igs_uc_com_scsicnts
333       WHERE    school                            = x_school
334       AND      sitecode                          = x_sitecode
335       AND      contact_code                      = x_contact_code;
336 
337     x_last_update_date           DATE;
338     x_last_updated_by            NUMBER;
339     x_last_update_login          NUMBER;
340 
341   BEGIN
342 
343     x_last_update_date := SYSDATE;
344     IF (x_mode = 'I') THEN
345       x_last_updated_by := 1;
346       x_last_update_login := 0;
347     ELSIF (x_mode = 'R') THEN
348       x_last_updated_by := fnd_global.user_id;
349       IF (x_last_updated_by IS NULL) THEN
350         x_last_updated_by := -1;
351       END IF;
352       x_last_update_login := fnd_global.login_id;
353       IF (x_last_update_login IS NULL) THEN
354         x_last_update_login := -1;
355       END IF;
356     ELSE
357       fnd_message.set_name ('FND', 'SYSTEM-INVALID ARGS');
358       igs_ge_msg_stack.add;
359       app_exception.raise_exception;
360     END IF;
361 
362     before_dml(
363       p_action                            => 'INSERT',
364       x_rowid                             => x_rowid,
365       x_school                            => x_school,
366       x_sitecode                          => x_sitecode,
367       x_contact_code                      => x_contact_code,
368       x_contact_post                      => x_contact_post,
369       x_contact_name                      => x_contact_name,
370       x_telephone                         => x_telephone,
371       x_fax                               => x_fax,
372       x_email                             => x_email,
373       x_principal                         => x_principal,
374       x_lists                             => x_lists,
375       x_orders                            => x_orders,
376       x_forms                             => x_forms,
377       x_referee                           => x_referee,
378       x_careers                           => x_careers,
379       x_eas_contact                       => x_eas_contact,
380       x_imported                          => x_imported,
381       x_creation_date                     => x_last_update_date,
382       x_created_by                        => x_last_updated_by,
383       x_last_update_date                  => x_last_update_date,
384       x_last_updated_by                   => x_last_updated_by,
385       x_last_update_login                 => x_last_update_login
386     );
387 
388     INSERT INTO igs_uc_com_scsicnts (
389       school,
390       sitecode,
391       contact_code,
392       contact_post,
393       contact_name,
394       telephone,
395       fax,
396       email,
397       principal,
398       lists,
399       orders,
400       forms,
401       referee,
402       careers,
403       eas_contact,
404       imported,
405       creation_date,
406       created_by,
407       last_update_date,
408       last_updated_by,
409       last_update_login
410     ) VALUES (
411       new_references.school,
412       new_references.sitecode,
413       new_references.contact_code,
414       new_references.contact_post,
415       new_references.contact_name,
416       new_references.telephone,
417       new_references.fax,
418       new_references.email,
419       new_references.principal,
420       new_references.lists,
421       new_references.orders,
422       new_references.forms,
423       new_references.referee,
424       new_references.careers,
425       new_references.eas_contact,
426       new_references.imported,
427       x_last_update_date,
428       x_last_updated_by,
429       x_last_update_date,
430       x_last_updated_by,
431       x_last_update_login
432     );
433 
434     OPEN c;
435     FETCH c INTO x_rowid;
436     IF (c%NOTFOUND) THEN
437       CLOSE c;
438       RAISE NO_DATA_FOUND;
439     END IF;
440     CLOSE c;
441 
442   END insert_row;
443 
444 
445   PROCEDURE lock_row (
446     x_rowid                             IN     VARCHAR2,
447     x_school                            IN     NUMBER,
448     x_sitecode                          IN     VARCHAR2,
449     x_contact_code                      IN     NUMBER,
450     x_contact_post                      IN     VARCHAR2,
451     x_contact_name                      IN     VARCHAR2,
452     x_telephone                         IN     VARCHAR2,
453     x_fax                               IN     VARCHAR2,
454     x_email                             IN     VARCHAR2,
455     x_principal                         IN     VARCHAR2,
456     x_lists                             IN     VARCHAR2,
457     x_orders                            IN     VARCHAR2,
458     x_forms                             IN     VARCHAR2,
459     x_referee                           IN     VARCHAR2,
460     x_careers                           IN     VARCHAR2,
461     x_eas_contact                       IN     VARCHAR2,
462     x_imported                          IN     VARCHAR2
463   ) AS
464   /*
465   ||  Created By : rgopalan
466   ||  Created On : 01-OCT-2001
467   ||  Purpose : Handles the LOCK mechanism for the table.
468   ||  Known limitations, enhancements or remarks :
469   ||  Change History :
470   ||  Who             When            What
471   || smaddali  10-jun-03    obsoleting timestamp column for ucfd203 - multiple cycles build , bug#2669208
472   ||  (reverse chronological order - newest change first)
473   */
474     CURSOR c1 IS
475       SELECT
476         contact_post,
477         contact_name,
478         telephone,
479         fax,
480         email,
481         principal,
482         lists,
483         orders,
484         forms,
485         referee,
486         careers,
487         eas_contact,
488         imported
489       FROM  igs_uc_com_scsicnts
490       WHERE rowid = x_rowid
491       FOR UPDATE NOWAIT;
492 
493     tlinfo c1%ROWTYPE;
494 
495   BEGIN
496 
497     OPEN c1;
498     FETCH c1 INTO tlinfo;
499     IF (c1%notfound) THEN
503       app_exception.raise_exception;
500       fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
501       igs_ge_msg_stack.add;
502       CLOSE c1;
504       RETURN;
505     END IF;
506     CLOSE c1;
507 
508     IF (
509         ((tlinfo.contact_post = x_contact_post) OR ((tlinfo.contact_post IS NULL) AND (X_contact_post IS NULL)))
510         AND ((tlinfo.contact_name = x_contact_name) OR ((tlinfo.contact_name IS NULL) AND (X_contact_name IS NULL)))
511         AND ((tlinfo.telephone = x_telephone) OR ((tlinfo.telephone IS NULL) AND (X_telephone IS NULL)))
512         AND ((tlinfo.fax = x_fax) OR ((tlinfo.fax IS NULL) AND (X_fax IS NULL)))
513         AND ((tlinfo.email = x_email) OR ((tlinfo.email IS NULL) AND (X_email IS NULL)))
514         AND (tlinfo.principal = x_principal)
515         AND (tlinfo.lists = x_lists)
516         AND (tlinfo.orders = x_orders)
517         AND (tlinfo.forms = x_forms)
518         AND (tlinfo.referee = x_referee)
519         AND (tlinfo.careers = x_careers)
520         AND (tlinfo.eas_contact = x_eas_contact)
521         AND (tlinfo.imported = x_imported)
522        ) THEN
523       NULL;
524     ELSE
525       fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
526       igs_ge_msg_stack.add;
527       app_exception.raise_exception;
528     END IF;
529 
530     RETURN;
531 
532   END lock_row;
533 
534 
535   PROCEDURE update_row (
536     x_rowid                             IN     VARCHAR2,
537     x_school                            IN     NUMBER,
538     x_sitecode                          IN     VARCHAR2,
539     x_contact_code                      IN     NUMBER,
540     x_contact_post                      IN     VARCHAR2,
541     x_contact_name                      IN     VARCHAR2,
542     x_telephone                         IN     VARCHAR2,
543     x_fax                               IN     VARCHAR2,
544     x_email                             IN     VARCHAR2,
545     x_principal                         IN     VARCHAR2,
546     x_lists                             IN     VARCHAR2,
547     x_orders                            IN     VARCHAR2,
548     x_forms                             IN     VARCHAR2,
549     x_referee                           IN     VARCHAR2,
550     x_careers                           IN     VARCHAR2,
551     x_eas_contact                       IN     VARCHAR2,
552     x_imported                          IN     VARCHAR2,
553     x_mode                              IN     VARCHAR2
554   ) AS
555   /*
556   ||  Created By : rgopalan
557   ||  Created On : 01-OCT-2001
558   ||  Purpose : Handles the UPDATE DML logic for the table.
559   ||  Known limitations, enhancements or remarks :
560   ||  Change History :
561   ||  Who             When            What
562   || smaddali  10-jun-03    obsoleting timestamp column for ucfd203 - multiple cycles build , bug#2669208
563   ||  (reverse chronological order - newest change first)
564   */
565     x_last_update_date           DATE ;
566     x_last_updated_by            NUMBER;
567     x_last_update_login          NUMBER;
568 
569   BEGIN
570 
571     x_last_update_date := SYSDATE;
572     IF (X_MODE = 'I') THEN
573       x_last_updated_by := 1;
574       x_last_update_login := 0;
575     ELSIF (x_mode = 'R') THEN
576       x_last_updated_by := fnd_global.user_id;
577       IF x_last_updated_by IS NULL THEN
578         x_last_updated_by := -1;
579       END IF;
580       x_last_update_login := fnd_global.login_id;
581       IF (x_last_update_login IS NULL) THEN
582         x_last_update_login := -1;
583       END IF;
584     ELSE
585       fnd_message.set_name( 'FND', 'SYSTEM-INVALID ARGS');
586       igs_ge_msg_stack.add;
587       app_exception.raise_exception;
588     END IF;
589 
590     before_dml(
591       p_action                            => 'UPDATE',
592       x_rowid                             => x_rowid,
593       x_school                            => x_school,
594       x_sitecode                          => x_sitecode,
595       x_contact_code                      => x_contact_code,
596       x_contact_post                      => x_contact_post,
597       x_contact_name                      => x_contact_name,
598       x_telephone                         => x_telephone,
599       x_fax                               => x_fax,
600       x_email                             => x_email,
601       x_principal                         => x_principal,
602       x_lists                             => x_lists,
603       x_orders                            => x_orders,
604       x_forms                             => x_forms,
605       x_referee                           => x_referee,
606       x_careers                           => x_careers,
607       x_eas_contact                       => x_eas_contact,
608       x_imported                          => x_imported,
609       x_creation_date                     => x_last_update_date,
610       x_created_by                        => x_last_updated_by,
611       x_last_update_date                  => x_last_update_date,
612       x_last_updated_by                   => x_last_updated_by,
613       x_last_update_login                 => x_last_update_login
614     );
615 
616     UPDATE igs_uc_com_scsicnts
617       SET
618         contact_post                      = new_references.contact_post,
622         email                             = new_references.email,
619         contact_name                      = new_references.contact_name,
620         telephone                         = new_references.telephone,
621         fax                               = new_references.fax,
623         principal                         = new_references.principal,
624         lists                             = new_references.lists,
625         orders                            = new_references.orders,
626         forms                             = new_references.forms,
627         referee                           = new_references.referee,
628         careers                           = new_references.careers,
629         eas_contact                       = new_references.eas_contact,
630         imported                          = new_references.imported,
631         last_update_date                  = x_last_update_date,
632         last_updated_by                   = x_last_updated_by,
633         last_update_login                 = x_last_update_login
634       WHERE rowid = x_rowid;
635 
636     IF (SQL%NOTFOUND) THEN
637       RAISE NO_DATA_FOUND;
638     END IF;
639 
640   END update_row;
641 
642 
643   PROCEDURE add_row (
644     x_rowid                             IN OUT NOCOPY VARCHAR2,
645     x_school                            IN     NUMBER,
646     x_sitecode                          IN     VARCHAR2,
647     x_contact_code                      IN     NUMBER,
648     x_contact_post                      IN     VARCHAR2,
649     x_contact_name                      IN     VARCHAR2,
650     x_telephone                         IN     VARCHAR2,
651     x_fax                               IN     VARCHAR2,
652     x_email                             IN     VARCHAR2,
653     x_principal                         IN     VARCHAR2,
654     x_lists                             IN     VARCHAR2,
655     x_orders                            IN     VARCHAR2,
656     x_forms                             IN     VARCHAR2,
657     x_referee                           IN     VARCHAR2,
658     x_careers                           IN     VARCHAR2,
659     x_eas_contact                       IN     VARCHAR2,
660     x_imported                          IN     VARCHAR2,
661     x_mode                              IN     VARCHAR2
662   ) AS
663   /*
664   ||  Created By : rgopalan
665   ||  Created On : 01-OCT-2001
666   ||  Purpose : Adds a row if there is no existing row, otherwise updates existing row in the table.
667   ||  Known limitations, enhancements or remarks :
668   ||  Change History :
669   ||  Who             When            What
670   || smaddali  10-jun-03    obsoleting timestamp column for ucfd203 - multiple cycles build , bug#2669208
671   ||  (reverse chronological order - newest change first)
672   */
673     CURSOR c1 IS
674       SELECT   rowid
675       FROM     igs_uc_com_scsicnts
676       WHERE    school                            = x_school
677       AND      sitecode                          = x_sitecode
678       AND      contact_code                      = x_contact_code;
679 
680   BEGIN
681 
682     OPEN c1;
683     FETCH c1 INTO x_rowid;
684     IF (c1%NOTFOUND) THEN
685       CLOSE c1;
686 
687       insert_row (
688         x_rowid,
689         x_school,
690         x_sitecode,
691         x_contact_code,
692         x_contact_post,
693         x_contact_name,
694         x_telephone,
695         x_fax,
696         x_email,
697         x_principal,
698         x_lists,
699         x_orders,
700         x_forms,
701         x_referee,
702         x_careers,
703         x_eas_contact,
704         x_imported,
705         x_mode
706       );
707       RETURN;
708     END IF;
709     CLOSE c1;
710 
711     update_row (
712       x_rowid,
713       x_school,
714       x_sitecode,
715       x_contact_code,
716       x_contact_post,
717       x_contact_name,
718       x_telephone,
719       x_fax,
720       x_email,
721       x_principal,
722       x_lists,
723       x_orders,
724       x_forms,
725       x_referee,
726       x_careers,
727       x_eas_contact,
728       x_imported,
729       x_mode
730     );
731 
732   END add_row;
733 
734 
735   PROCEDURE delete_row (
736     x_rowid IN VARCHAR2
737   ) AS
738   /*
739   ||  Created By : rgopalan
740   ||  Created On : 01-OCT-2001
741   ||  Purpose : Handles the DELETE DML logic for the table.
742   ||  Known limitations, enhancements or remarks :
743   ||  Change History :
744   ||  Who             When            What
745   ||  (reverse chronological order - newest change first)
746   */
747   BEGIN
748 
749     before_dml (
750       p_action => 'DELETE',
751       x_rowid => x_rowid
752     );
753 
754     DELETE FROM igs_uc_com_scsicnts
755     WHERE rowid = x_rowid;
756 
757     IF (SQL%NOTFOUND) THEN
758       RAISE NO_DATA_FOUND;
759     END IF;
760 
761   END delete_row;
762 
763 
764 END igs_uc_com_scsicnts_pkg;