DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PE_HEARING_DTLS_PKG

Source


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