DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PE_VOTE_INFO_PKG

Source


1 PACKAGE BODY igs_pe_vote_info_pkg AS
2 /* $Header: IGSNI50B.pls 120.3 2005/10/17 04:23:52 appldev ship $ */
3 
4   l_rowid VARCHAR2(25);
5   old_references igs_pe_vote_info_all%RowType;
6   new_references igs_pe_vote_info_all%RowType;
7 
8   PROCEDURE Set_Column_Values (
9     p_action IN VARCHAR2,
10     x_rowid IN VARCHAR2 DEFAULT NULL,
11     x_voter_id IN NUMBER DEFAULT NULL,
12     x_person_id IN NUMBER DEFAULT NULL,
13     x_voter_info IN VARCHAR2 DEFAULT NULL,
14     x_type_code IN VARCHAR2 DEFAULT NULL,
15     x_type_code_id IN NUMBER DEFAULT NULL,
16     x_voter_regn_st_date IN DATE DEFAULT NULL,
17     x_voter_regn_end_date IN DATE DEFAULT NULL,
18     x_creation_date IN DATE DEFAULT NULL,
19     x_created_by IN NUMBER DEFAULT NULL,
20     x_last_update_date IN DATE DEFAULT NULL,
21     x_last_updated_by IN NUMBER DEFAULT NULL,
22     x_last_update_login IN NUMBER DEFAULT NULL,
23     x_org_id IN NUMBER DEFAULT NULL
24   ) AS
25 
26   /*************************************************************
27   Created By : svenkata
28   Date Created By :15-MAY-200
29   Purpose : SETS COLUMN VALUES
30   Know limitations, enhancements or remarks
31   Change History
32   Who             When            What
33 
34   (reverse chronological order - newest change first)
35   ***************************************************************/
36 
37     CURSOR cur_old_ref_values IS
38       SELECT   *
39       FROM     igs_pe_vote_info_all
40       WHERE    rowid = x_rowid;
41 
42   BEGIN
43 
44     l_rowid := x_rowid;
45 
46     -- Code for setting the Old and New Reference Values.
47     -- Populate Old Values.
48     Open cur_old_ref_values;
49     Fetch cur_old_ref_values INTO old_references;
50     IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT','VALIDATE_INSERT')) THEN
51       Close cur_old_ref_values;
52       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
53       IGS_GE_MSG_STACK.ADD;
54       App_Exception.Raise_Exception;
55       Return;
56     END IF;
57     Close cur_old_ref_values;
58 
59     -- Populate New Values.
60     new_references.voter_id := x_voter_id;
61     new_references.person_id := x_person_id;
62     new_references.voter_info := x_voter_info;
63     new_references.type_code := x_type_code;
64     new_references.type_code_id := x_type_code_id;
65     new_references.voter_regn_st_date := x_voter_regn_st_date;
66     new_references.voter_regn_end_date := x_voter_regn_end_date;
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     new_references.last_update_date := x_last_update_date;
75     new_references.last_updated_by := x_last_updated_by;
76     new_references.last_update_login := x_last_update_login;
77     new_references.org_id := x_org_id;
78 
79   END Set_Column_Values;
80 
81   PROCEDURE Check_Constraints (
82 		 Column_Name IN VARCHAR2  DEFAULT NULL,
83 		 Column_Value IN VARCHAR2  DEFAULT NULL ) AS
84   /*************************************************************
85   Created By : svenkata
86   Date Created By :15-MAY-200
87   Purpose : CHECKS CONSTRAINTS
88   Know limitations, enhancements or remarks
89   Change History
90   Who             When            What
91 
92   (reverse chronological order - newest change first)
93   ***************************************************************/
94 
95   BEGIN
96 
97       IF column_name IS NULL THEN
98         NULL;
99         NULL;
100       END IF;
101 
102 
103 
104 
105   END Check_Constraints;
106 
107   PROCEDURE Check_Parent_Existance AS
108   /*************************************************************
109   Created By : svenkata
110   Date Created By :15-MAY-200
111   Purpose : CHECKS FOR PARENT EXISTANCE
112   Know limitations, enhancements or remarks
113   Change History
114   Who             When            What
115 
116   (reverse chronological order - newest change first)
117   ***************************************************************/
118 
119   BEGIN
120 
121     IF (((old_references.person_id = new_references.person_id)) OR
122         ((new_references.person_id IS NULL))) THEN
123       NULL;
124     ELSIF NOT Igs_Pe_Person_Pkg.Get_PK_For_Validation (
125         		new_references.person_id
126         )  THEN
127 	 Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
128       IGS_GE_MSG_STACK.ADD;
129  	 App_Exception.Raise_Exception;
130     END IF;
131 
132     If NOT igs_lookups_view_pkg.get_pk_for_validation('VOTER_INFO' , new_references.voter_info) then
133     	 Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
134 	 IGS_GE_MSG_STACK.ADD;
135  	 App_Exception.Raise_Exception;
136     end if;
137 
138 
139   END Check_Parent_Existance;
140 
141   FUNCTION Get_PK_For_Validation (
142     x_voter_id IN NUMBER
143     ) RETURN BOOLEAN AS
144 
145   /*************************************************************
146   Created By : svenkata
147   Date Created By :15-MAY-200
148   Purpose : checks primary key
149   Know limitations, enhancements or remarks
150   Change History
151   Who             When            What
152 
153   (reverse chronological order - newest change first)
154   ***************************************************************/
155 
156     CURSOR cur_rowid IS
157       SELECT   rowid
158       FROM     igs_pe_vote_info_all
159       WHERE    voter_id = x_voter_id
160       FOR UPDATE NOWAIT;
161 
162     lv_rowid cur_rowid%RowType;
163 
164   BEGIN
165 
166     Open cur_rowid;
167     Fetch cur_rowid INTO lv_rowid;
168     IF (cur_rowid%FOUND) THEN
169       Close cur_rowid;
170       Return(TRUE);
171     ELSE
172       Close cur_rowid;
173       Return(FALSE);
174     END IF;
175   END Get_PK_For_Validation;
176 
177   PROCEDURE Get_FK_Igs_Pe_Person (
178     x_person_id IN NUMBER
179     ) AS
180 
181   /*************************************************************
182   Created By : svenkata
183   Date Created By :15-MAY-200
184   Purpose : CHECKS FOREIGN KEY
185   Know limitations, enhancements or remarks
186   Change History
187   Who             When            What
188 
189   (reverse chronological order - newest change first)
190   ***************************************************************/
191 
192     CURSOR cur_rowid IS
193       SELECT   rowid
194       FROM     igs_pe_vote_info_all
195       WHERE    person_id = x_person_id ;
196 
197     lv_rowid cur_rowid%RowType;
198 
199   BEGIN
200 
201     Open cur_rowid;
202     Fetch cur_rowid INTO lv_rowid;
203     IF (cur_rowid%FOUND) THEN
204       Close cur_rowid;
205       Fnd_Message.Set_Name ('IGS', 'IGS_PE_PPT_PP_FK');
206       IGS_GE_MSG_STACK.ADD;
207       App_Exception.Raise_Exception;
208       Return;
209     END IF;
210     Close cur_rowid;
211 
212   END Get_FK_Igs_Pe_Person;
213 
214 
215 FUNCTION Get_UK_For_Validation (
216     x_person_id IN NUMBER,
217     x_type_code IN VARCHAR2,
218     x_type_code_id IN NUMBER
219     ) RETURN BOOLEAN AS
220 
221   /*************************************************************
222   Created By :
223   Date Created By :
224   Purpose :
225   Know limitations, enhancements or remarks
226   Change History
227   Who             When            What
228 
229   (reverse chronological order - newest change first)
230   ***************************************************************/
231 
232     CURSOR cur_rowid(cp_type_code varchar2,cp_type_code_id number) IS
233     SELECT   rowid
234       FROM     igs_pe_vote_info_all
235       WHERE    person_id = x_person_id
236       AND     ((cp_type_code is null and cp_type_code_id is not null and NVL(type_code_id,-1) = cp_type_code_id)
237       OR      (cp_type_code is not null and cp_type_code_id is null and NVL(type_code,' ') = cp_type_code))
238       AND      ((l_rowid is null) or (rowid <> l_rowid))
239       ;
240     lv_rowid cur_rowid%RowType;
241 
242   BEGIN
243 
244     IF new_references.voter_info='COUNTRY' THEN --Then type_code_id is null
245     Open cur_rowid(x_type_code,NULL);
246     ELSE
247     Open cur_rowid(NULL,x_type_code_id);
248     END IF;
249 
250 
251     Fetch cur_rowid INTO lv_rowid;
252     IF (cur_rowid%FOUND) THEN
253       Close cur_rowid;
254         return (true);
255         ELSE
256        close cur_rowid;
257       return(false);
258     END IF;
259   END Get_UK_For_Validation ;
260 
261 
262 
263 
264 PROCEDURE Check_Uniqueness AS
265   /*************************************************************
266   Created By :
267   Date Created By :
268   Purpose :
269   Know limitations, enhancements or remarks
270   Change History
271   Who             When            What
272 
273   (reverse chronological order - newest change first)
274   ***************************************************************/
275 
276    begin
277      		IF Get_Uk_For_Validation (
278     		new_references.person_id
279     		,new_references.type_code
280 		,new_references.type_code_id
281     		) THEN
282  		Fnd_Message.Set_Name ('IGS', 'IGS_PE_VOTE_DUP_EXISTS');
283       IGS_GE_MSG_STACK.ADD;
284 			app_exception.raise_exception;
285     		END IF;
286  END Check_Uniqueness ;
287 
288 
289 PROCEDURE Before_DML (
290     p_action IN VARCHAR2,
291     x_rowid IN VARCHAR2 DEFAULT NULL,
292     x_voter_id IN NUMBER DEFAULT NULL,
293     x_person_id IN NUMBER DEFAULT NULL,
294     x_voter_info IN VARCHAR2 DEFAULT NULL,
295     x_type_code IN VARCHAR2 DEFAULT NULL,
296     x_type_code_id IN NUMBER DEFAULT NULL,
297     x_voter_regn_st_date IN DATE DEFAULT NULL,
298     x_voter_regn_end_date IN DATE DEFAULT NULL,
299     x_creation_date IN DATE DEFAULT NULL,
300     x_created_by IN NUMBER DEFAULT NULL,
301     x_last_update_date IN DATE DEFAULT NULL,
302     x_last_updated_by IN NUMBER DEFAULT NULL,
303     x_last_update_login IN NUMBER DEFAULT NULL,
304     x_org_id IN NUMBER DEFAULT NULL
305   ) AS
306   /*************************************************************
307   Created By :
308   Date Created By :
309   Purpose :
310   Know limitations, enhancements or remarks
311   Change History
312   Who             When            What
313 
314   (reverse chronological order - newest change first)
315   ***************************************************************/
316 
317   BEGIN
318 
319     Set_Column_Values (
320       p_action,
321       x_rowid,
322       x_voter_id,
323       x_person_id,
324       x_voter_info,
325       x_type_code,
326       x_type_code_id,
327       x_voter_regn_st_date,
328       x_voter_regn_end_date,
329       x_creation_date,
330       x_created_by,
331       x_last_update_date,
332       x_last_updated_by,
333       x_last_update_login,
334       x_org_id
335     );
336 
337     IF (p_action = 'INSERT') THEN
338       -- Call all the procedures related to Before Insert.
339       Null;
340 	     IF Get_Pk_For_Validation(
341     		new_references.voter_id)  THEN
342 	       Fnd_Message.Set_name('IGS','IGS_PE_VOTE_DUP_EXISTS');
343       IGS_GE_MSG_STACK.ADD;
344 	       App_Exception.Raise_Exception;
345 	     END IF;
346       Check_Uniqueness;
347       Check_Constraints;
348       Check_Parent_Existance;
349     ELSIF (p_action = 'UPDATE') THEN
350       -- Call all the procedures related to Before Update.
351       Null;
352       Check_Uniqueness;
353       Check_Constraints;
354       Check_Parent_Existance;
355     ELSIF (p_action = 'DELETE') THEN
356       -- Call all the procedures related to Before Delete.
357       Null;
358     ELSIF (p_action = 'VALIDATE_INSERT') THEN
359 	 -- Call all the procedures related to Before Insert.
360       IF Get_PK_For_Validation (
361     		new_references.voter_id)  THEN
362 	       Fnd_Message.Set_name('IGS','IGS_PE_VOTE_DUP_EXISTS');
363       IGS_GE_MSG_STACK.ADD;
364 	       App_Exception.Raise_Exception;
365 	     END IF;
366       Check_Uniqueness;
367       Check_Constraints;
368     ELSIF (p_action = 'VALIDATE_UPDATE') THEN
369       Check_Uniqueness;
370       Check_Constraints;
371     ELSIF (p_action = 'VALIDATE_DELETE') THEN
372       Null;
373     END IF;
374 
375   END Before_DML;
376 
377 
378 
379 
380 
381   PROCEDURE After_DML (
382     p_action IN VARCHAR2,
383     x_rowid IN VARCHAR2
384   ) IS
385   /*************************************************************
386   Created By : svenkata
387   Date Created By :15-MAY-200
388   Purpose : DOES AFTER DML VALIDATIONS
389   Know limitations, enhancements or remarks
390   Change History
391   Who             When            What
392 
393   (reverse chronological order - newest change first)
394   ***************************************************************/
395 
396   BEGIN
397 
398     l_rowid := x_rowid;
399 
400     IF (p_action = 'INSERT') THEN
401       -- Call all the procedures related to After Insert.
402       Null;
403     ELSIF (p_action = 'UPDATE') THEN
404       -- Call all the procedures related to After Update.
405       Null;
406     ELSIF (p_action = 'DELETE') THEN
407       -- Call all the procedures related to After Delete.
408       Null;
409     END IF;
410 
411   END After_DML;
412 
413  procedure INSERT_ROW (
414       X_ROWID in out NOCOPY VARCHAR2,
415        x_VOTER_ID IN OUT NOCOPY NUMBER,
416        x_PERSON_ID IN NUMBER,
417        x_VOTER_INFO IN VARCHAR2,
418        x_TYPE_CODE IN VARCHAR2,
419        x_VOTER_REGN_ST_DATE IN DATE,
420        x_VOTER_REGN_END_DATE IN DATE,
421       X_MODE in VARCHAR2 default 'R',
422       X_ORG_ID in NUMBER ,
423       x_TYPE_CODE_ID IN NUMBER DEFAULT NULL
424   ) AS
425   /*************************************************************
426   Created By : svenkata
427   Date Created By :15-MAY-200
428   Purpose : INSERTS A ROW
429   Know limitations, enhancements or remarks
430   Change History
431   Who             When            What
432 
433   (reverse chronological order - newest change first)
434   ***************************************************************/
435 
436     cursor C is select ROWID from igs_pe_vote_info_all
437              where   VOTER_ID= X_VOTER_ID;
438      X_LAST_UPDATE_DATE DATE ;
439      X_LAST_UPDATED_BY NUMBER ;
440      X_LAST_UPDATE_LOGIN NUMBER ;
441      l_TYPE_CODE igs_pe_vote_info_all.type_code%TYPE;
442      l_TYPE_CODE_ID igs_pe_vote_info_all.type_code_id%TYPE;
443 
444  begin
445      X_LAST_UPDATE_DATE := SYSDATE;
446       if(X_MODE = 'I') then
447         X_LAST_UPDATED_BY := 1;
448         X_LAST_UPDATE_LOGIN := 0;
449          elsif (X_MODE IN ('R', 'S')) then
450                X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
451             if X_LAST_UPDATED_BY is NULL then
452                 X_LAST_UPDATED_BY := -1;
453             end if;
454             X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
455            if X_LAST_UPDATE_LOGIN is NULL then
456                X_LAST_UPDATE_LOGIN := -1;
457            end if;
458        else
459         FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
460       IGS_GE_MSG_STACK.ADD;
461           app_exception.raise_exception;
462        end if;
463 
464        SELECT IGS_PE_VOTE_INFO_S.NEXTVAL
465        INTO x_voter_id
466        FROM  DUAL;
467 
468        --l_type_code :=  x_type_code;
469        --l_type_code_id :=  x_type_code_id;
470 
471         IF (x_VOTER_INFO='COUNTRY') THEN
472             l_TYPE_CODE_ID := NULL;
473 	    l_type_code :=  x_type_code;
474 	ELSE
475             l_TYPE_CODE := NULL;
476 	    l_type_code_id :=  x_type_code_id;
477 	END IF;
478 
479    Before_DML(
480  		p_action=>'INSERT',
481  		x_rowid=>X_ROWID,
482  	       x_voter_id=>X_VOTER_ID,
483  	       x_person_id=>X_PERSON_ID,
484  	       x_voter_info=>X_VOTER_INFO,
485  	       x_type_code=>l_TYPE_CODE,
486 	       x_type_code_id=>l_TYPE_CODE_ID,
487  	       x_voter_regn_st_date=>X_VOTER_REGN_ST_DATE,
488  	       x_voter_regn_end_date=>X_VOTER_REGN_END_DATE,
489 	       x_creation_date=>X_LAST_UPDATE_DATE,
490 	       x_created_by=>X_LAST_UPDATED_BY,
491 	       x_last_update_date=>X_LAST_UPDATE_DATE,
492 	       x_last_updated_by=>X_LAST_UPDATED_BY,
493 	       x_last_update_login=>X_LAST_UPDATE_LOGIN,
494 	       x_org_id=>igs_ge_gen_003.get_org_id
495 	);
496       IF (x_mode = 'S') THEN
497     igs_sc_gen_001.set_ctx('R');
498   END IF;
499  insert into igs_pe_vote_info_all (
500 		VOTER_ID
501 		,PERSON_ID
502 		,VOTER_INFO
503 		,TYPE_CODE
504 		,TYPE_CODE_ID
505 		,VOTER_REGN_ST_DATE
506 		,VOTER_REGN_END_DATE
507 	        ,CREATION_DATE
508 		,CREATED_BY
509 		,LAST_UPDATE_DATE
510 		,LAST_UPDATED_BY
511 		,LAST_UPDATE_LOGIN
512 		,ORG_ID
513         ) values  (
514 	        NEW_REFERENCES.VOTER_ID
515 	        ,NEW_REFERENCES.PERSON_ID
516 	        ,NEW_REFERENCES.VOTER_INFO
517 	        ,NEW_REFERENCES.TYPE_CODE
518 		,NEW_REFERENCES.TYPE_CODE_ID
519 	        ,NEW_REFERENCES.VOTER_REGN_ST_DATE
520 	        ,NEW_REFERENCES.VOTER_REGN_END_DATE
521 	        ,X_LAST_UPDATE_DATE
522 		,X_LAST_UPDATED_BY
523 		,X_LAST_UPDATE_DATE
524 		,X_LAST_UPDATED_BY
525 		,X_LAST_UPDATE_LOGIN
526 	        ,NEW_REFERENCES.ORG_ID
527 );
528  IF (x_mode = 'S') THEN
529     igs_sc_gen_001.unset_ctx('R');
530   END IF;
531 
532 		open c;
533 		 fetch c into X_ROWID;
534  		if (c%notfound) then
535 		close c;
536  	     raise no_data_found;
537 		end if;
538  		close c;
539     After_DML (
540 		p_action => 'INSERT' ,
541 		x_rowid => X_ROWID );
542 EXCEPTION
543   WHEN OTHERS THEN
544     IF (SQLCODE IN (-28115, -28113, -28111)) THEN
545       fnd_message.set_name ('IGS', 'IGS_SC_POLICY_EXCEPTION');
546       fnd_message.set_token ('ERR_CD', SQLCODE);
547       igs_ge_msg_stack.add;
548       igs_sc_gen_001.unset_ctx('R');
549       app_exception.raise_exception;
550     ELSE
551       igs_sc_gen_001.unset_ctx('R');
552       RAISE;
553     END IF;
554 
555 end INSERT_ROW;
556 
557  procedure LOCK_ROW (
558       X_ROWID in  VARCHAR2,
559        x_VOTER_ID IN NUMBER,
560        x_PERSON_ID IN NUMBER,
561        x_VOTER_INFO IN VARCHAR2,
562        x_TYPE_CODE IN VARCHAR2,
563        x_VOTER_REGN_ST_DATE IN DATE,
564        x_VOTER_REGN_END_DATE IN DATE ,
565       x_TYPE_CODE_ID IN NUMBER DEFAULT NULL
566   ) AS
567   /*************************************************************
568    Created By : svenkata
569   Date Created By :15-MAY-200
570   Purpose : LOCKS A ROW
571   Know limitations, enhancements or remarks
572   Change History
573   Who             When            What
574   skpandey        08-SEP-2005     Bug: 4593149
575                                   Description: Modified lock_row parameters
576   (reverse chronological order - newest change first)
577   ***************************************************************/
578 
579    cursor c1 is select
580       PERSON_ID
581 ,      VOTER_INFO
582 ,      TYPE_CODE
583 ,      TYPE_CODE_ID
584 ,      VOTER_REGN_ST_DATE
585 ,      VOTER_REGN_END_DATE
586     from igs_pe_vote_info_all
587     where ROWID = X_ROWID
588     for update nowait;
589      tlinfo c1%rowtype;
590 
591    l_TYPE_CODE igs_pe_vote_info_all.type_code%TYPE;
592    l_TYPE_CODE_ID igs_pe_vote_info_all.type_code_id%TYPE;
593 
594 BEGIN
595   open c1;
596   fetch c1 into tlinfo;
597   if (c1%notfound) then
598     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
599       IGS_GE_MSG_STACK.ADD;
600     close c1;
601     app_exception.raise_exception;
602     return;
603   end if;
604   close c1;
605   --skpandey. Bug: 4593149
606   IF (x_VOTER_INFO='COUNTRY') THEN
607       l_TYPE_CODE_ID := NULL;
608       l_type_code :=  x_type_code;
609   ELSE
610       l_TYPE_CODE := NULL;
611       l_type_code_id :=  x_type_code_id;
612   END IF;
613 
614   IF ( (  tlinfo.PERSON_ID = X_PERSON_ID)
615       AND (tlinfo.VOTER_INFO = X_VOTER_INFO)
616       AND (NVL(tlinfo.TYPE_CODE,'  ') = NVL(l_type_code,'  '))
617       AND (NVL(tlinfo.TYPE_CODE_ID,-1) = NVL(l_TYPE_CODE_ID,-1))
618       AND ((tlinfo.VOTER_REGN_ST_DATE = X_VOTER_REGN_ST_DATE)
619       OR ((tlinfo.VOTER_REGN_ST_DATE is null)
620       AND (X_VOTER_REGN_ST_DATE is null)))
621       AND ((tlinfo.VOTER_REGN_END_DATE = X_VOTER_REGN_END_DATE)
622       OR ((tlinfo.VOTER_REGN_END_DATE is null)
623       AND (X_VOTER_REGN_END_DATE is null)))
624       ) THEN
625       NULL;
626   ELSE
627       fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
628       IGS_GE_MSG_STACK.ADD;
629       app_exception.raise_exception;
630   END IF;
631   RETURN;
632 END LOCK_ROW;
633 
634  Procedure UPDATE_ROW (
635       X_ROWID in  VARCHAR2,
636        x_VOTER_ID IN NUMBER,
637        x_PERSON_ID IN NUMBER,
638        x_VOTER_INFO IN VARCHAR2,
639        x_TYPE_CODE IN VARCHAR2,
640        x_VOTER_REGN_ST_DATE IN DATE,
641        x_VOTER_REGN_END_DATE IN DATE,
642       X_MODE in VARCHAR2 default 'R' ,
643       x_TYPE_CODE_ID IN NUMBER DEFAULT NULL
644   ) AS
645   /*************************************************************
646   Created By : svenkata
647   Date Created By :15-MAY-200
648   Purpose : UPDATES A ROW
649   Know limitations, enhancements or remarks
650   Change History
651   Who             When            What
652 
653   (reverse chronological order - newest change first)
654   ***************************************************************/
655 
656      X_LAST_UPDATE_DATE DATE ;
657      X_LAST_UPDATED_BY NUMBER ;
658      X_LAST_UPDATE_LOGIN NUMBER ;
659      l_TYPE_CODE igs_pe_vote_info_all.type_code%TYPE;
660      l_TYPE_CODE_ID igs_pe_vote_info_all.type_code_id%TYPE;
661 
662  begin
663      X_LAST_UPDATE_DATE := SYSDATE;
664       if(X_MODE = 'I') then
665         X_LAST_UPDATED_BY := 1;
666         X_LAST_UPDATE_LOGIN := 0;
667          elsif (X_MODE IN ('R', 'S')) then
668                X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
669             if X_LAST_UPDATED_BY is NULL then
670                 X_LAST_UPDATED_BY := -1;
671             end if;
672             X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
673          if X_LAST_UPDATE_LOGIN is NULL then
674             X_LAST_UPDATE_LOGIN := -1;
675           end if;
676        else
677         FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
678       IGS_GE_MSG_STACK.ADD;
679           app_exception.raise_exception;
680        end if;
681 
682      IF (x_VOTER_INFO='COUNTRY') THEN
683         l_TYPE_CODE_ID := NULL;
684 	l_type_code :=  x_type_code;
685 	ELSE
686         l_TYPE_CODE := NULL;
687 	l_type_code_id :=  x_type_code_id;
688 	END IF;
689 
690    Before_DML(
691  		p_action=>'UPDATE',
692  		x_rowid=>X_ROWID,
693  	       x_voter_id=>X_VOTER_ID,
694  	       x_person_id=>X_PERSON_ID,
695  	       x_voter_info=>X_VOTER_INFO,
696  	       x_type_code=>l_TYPE_CODE,
697                x_type_code_id=>l_TYPE_CODE_ID,
698  	       x_voter_regn_st_date=>X_VOTER_REGN_ST_DATE,
699  	       x_voter_regn_end_date=>X_VOTER_REGN_END_DATE,
700 	       x_creation_date=>X_LAST_UPDATE_DATE,
701 	       x_created_by=>X_LAST_UPDATED_BY,
702 	       x_last_update_date=>X_LAST_UPDATE_DATE,
703 	       x_last_updated_by=>X_LAST_UPDATED_BY,
704 	       x_last_update_login=>X_LAST_UPDATE_LOGIN);
705     IF (x_mode = 'S') THEN
706     igs_sc_gen_001.set_ctx('R');
707   END IF;
708  update igs_pe_vote_info_all set
709       PERSON_ID =  NEW_REFERENCES.PERSON_ID,
710       VOTER_INFO =  NEW_REFERENCES.VOTER_INFO,
711       TYPE_CODE =  NEW_REFERENCES.TYPE_CODE,
712       TYPE_CODE_ID =  NEW_REFERENCES.TYPE_CODE_ID,
713       VOTER_REGN_ST_DATE =  NEW_REFERENCES.VOTER_REGN_ST_DATE,
714       VOTER_REGN_END_DATE =  NEW_REFERENCES.VOTER_REGN_END_DATE,
715 	LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
716 	LAST_UPDATED_BY = X_LAST_UPDATED_BY,
717 	LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
718 	  where ROWID = X_ROWID;
719 	if (sql%notfound) then
720      fnd_message.set_name ('IGS', 'IGS_SC_POLICY_UPD_DEL_EXCEP');
721      igs_ge_msg_stack.add;
722      igs_sc_gen_001.unset_ctx('R');
723      app_exception.raise_exception;
724 	end if;
725  IF (x_mode = 'S') THEN
726     igs_sc_gen_001.unset_ctx('R');
727   END IF;
728 
729 
730  After_DML (
731 	p_action => 'UPDATE' ,
732 	x_rowid => X_ROWID
733 	);
734 EXCEPTION
735   WHEN OTHERS THEN
736     IF (SQLCODE = (-28115)) THEN
737       fnd_message.set_name ('IGS', 'IGS_SC_UPD_POLICY_EXCP');
738       fnd_message.set_token ('ERR_CD', SQLCODE);
739       igs_ge_msg_stack.add;
740       igs_sc_gen_001.unset_ctx('R');
741       app_exception.raise_exception;
742     ELSE
743       igs_sc_gen_001.unset_ctx('R');
744       RAISE;
745     END IF;
746 
747 end UPDATE_ROW;
748 
749  procedure ADD_ROW (
750       X_ROWID in out NOCOPY VARCHAR2,
751        x_VOTER_ID IN OUT NOCOPY NUMBER,
752        x_PERSON_ID IN NUMBER,
753        x_VOTER_INFO IN VARCHAR2,
754        x_TYPE_CODE IN VARCHAR2,
755        x_VOTER_REGN_ST_DATE IN DATE,
756        x_VOTER_REGN_END_DATE IN DATE,
757       X_MODE in VARCHAR2 default 'R',
758       X_ORG_ID in NUMBER ,
759        x_TYPE_CODE_ID IN NUMBER DEFAULT NULL
760   ) AS
761   /*************************************************************
762    Created By : svenkata
763   Date Created By :15-MAY-200
764   Purpose : ADDS A ROW
765   Know limitations, enhancements or remarks
766   Change History
767   Who             When            What
768 
769   (reverse chronological order - newest change first)
770   ***************************************************************/
771 
772     cursor c1 is select ROWID from igs_pe_vote_info_all
773              where VOTER_ID= X_VOTER_ID;
774 begin
775 	open c1;
776 		fetch c1 into X_ROWID;
777 	if (c1%notfound) then
778 	close c1;
779     INSERT_ROW (
780       X_ROWID,
781        X_VOTER_ID,
782        X_PERSON_ID,
783        X_VOTER_INFO,
784        X_TYPE_CODE,
785        X_VOTER_REGN_ST_DATE,
786        X_VOTER_REGN_END_DATE,
787       X_MODE,
788       X_ORG_ID,  X_TYPE_CODE_ID );
789      return;
790 	end if;
791 	   close c1;
792 UPDATE_ROW (
793       X_ROWID,
794        X_VOTER_ID,
795        X_PERSON_ID,
796        X_VOTER_INFO,
797        X_TYPE_CODE,
798        X_VOTER_REGN_ST_DATE,
799        X_VOTER_REGN_END_DATE,
800       X_MODE ,  X_TYPE_CODE_ID);
801 end ADD_ROW;
802 
803 procedure DELETE_ROW (
804   X_ROWID in VARCHAR2,
805   x_mode IN VARCHAR2
806 ) AS
807   /*************************************************************
808   Created By : svenkata
809   Date Created By :15-MAY-200
810   Purpose : DELETES A ROW
811   Know limitations, enhancements or remarks
812   Change History
813   Who             When            What
814 
815   (reverse chronological order - newest change first)
816   ***************************************************************/
817 
818 begin
819 Before_DML (
820 p_action => 'DELETE',
821 x_rowid => X_ROWID
822 );
823   IF (x_mode = 'S') THEN
824     igs_sc_gen_001.set_ctx('R');
825   END IF;
826  delete from igs_pe_vote_info_all
827  where ROWID = X_ROWID;
828   if (sql%notfound) then
829      fnd_message.set_name ('IGS', 'IGS_SC_POLICY_UPD_DEL_EXCEP');
830      igs_ge_msg_stack.add;
831      igs_sc_gen_001.unset_ctx('R');
832      app_exception.raise_exception;
833  end if;
834  IF (x_mode = 'S') THEN
835     igs_sc_gen_001.unset_ctx('R');
836   END IF;
837 
838 After_DML (
839  p_action => 'DELETE',
840  x_rowid => X_ROWID
841 );
842 end DELETE_ROW;
843 END igs_pe_vote_info_pkg;