DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PE_INCOME_TAX_PKG

Source


1 PACKAGE BODY igs_pe_income_tax_pkg AS
2 /* $Header: IGSNI53B.pls 120.3 2005/10/17 04:23:31 appldev ship $ */
3 
4   l_rowid VARCHAR2(25);
5   old_references IGS_PE_INCOME_TAX_ALL%RowType;
6   new_references IGS_PE_INCOME_TAX_ALL%RowType;
7 
8   PROCEDURE Set_Column_Values (
9     p_action IN VARCHAR2,
10     x_rowid IN VARCHAR2 DEFAULT NULL,
11     x_tax_id IN NUMBER DEFAULT NULL,
12     x_person_id IN NUMBER DEFAULT NULL,
13     x_tax_info IN VARCHAR2 DEFAULT NULL,
14     x_type_code IN VARCHAR2 DEFAULT NULL,
15     x_type_code_id IN NUMBER DEFAULT NULL,
16     x_start_date IN DATE DEFAULT NULL,
17     x_end_date IN DATE DEFAULT NULL,
18     X_ORG_ID in NUMBER 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   /*************************************************************
27   Created By :srachako
28   Date Created By :11-MAY-2000
29   Purpose :Set 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_INCOME_TAX_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.tax_id := x_tax_id;
61     new_references.person_id := x_person_id;
62     new_references.tax_info := x_tax_info;
63     new_references.type_code := x_type_code;
64     new_references.type_code_id := x_type_code_id;
65     new_references.start_date := x_start_date;
66     new_references.end_date := x_end_date;
67     new_references.org_id := x_org_id;
68     IF (p_action = 'UPDATE') THEN
69       new_references.creation_date := old_references.creation_date;
70       new_references.created_by := old_references.created_by;
71     ELSE
72       new_references.creation_date := x_creation_date;
73       new_references.created_by := x_created_by;
74     END IF;
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 Check_Constraints (
82 		 Column_Name IN VARCHAR2  DEFAULT NULL,
83 		 Column_Value IN VARCHAR2  DEFAULT NULL ) AS
84   /*************************************************************
85   Created By :
86   Date Created By :
87   Purpose :
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 :srachako
110   Date Created By :11-MAY-2000
111   Purpose : Parent Existance Checking
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      IF NOT IGS_LOOKUPS_VIEW_PKG.Get_PK_For_Validation (
121        'TAX_INFO',
122        	  new_references.TAX_INFO
123        	  ) THEN
124        	    Fnd_Message.Set_Name('FND', 'FORM_RECORD_DELETED');
125        	    IGS_GE_MSG_STACK.ADD;
126        	    App_Exception.Raise_Exception;
127      END IF;
128 
129     IF (((old_references.person_id = new_references.person_id)) OR
130         ((new_references.person_id IS NULL))) THEN
131       NULL;
132     ELSIF NOT Igs_Pe_Person_Pkg.Get_PK_For_Validation (
133         		new_references.person_id
134         )  THEN
135 	 Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
136       IGS_GE_MSG_STACK.ADD;
137  	 App_Exception.Raise_Exception;
138     END IF;
139 
140   END Check_Parent_Existance;
141 
142   FUNCTION Get_PK_For_Validation (
143     x_tax_id IN NUMBER
144     ) RETURN BOOLEAN AS
145 
146   /*************************************************************
147   Created By :srachako
148   Date Created By :11-MAY-2000
149   Purpose :Primary Key for Validation
150   Know limitations, enhancements or remarks
151   Change History
152   Who             When            What
153 
154   (reverse chronological order - newest change first)
155   ***************************************************************/
156 
157     CURSOR cur_rowid IS
158       SELECT   rowid
159       FROM     IGS_PE_INCOME_TAX_ALL
160       WHERE    tax_id = x_tax_id
161       FOR UPDATE NOWAIT;
162 
163     lv_rowid cur_rowid%RowType;
164 
165   BEGIN
166 
167     Open cur_rowid;
168     Fetch cur_rowid INTO lv_rowid;
169     IF (cur_rowid%FOUND) THEN
170       Close cur_rowid;
171       Return(TRUE);
172     ELSE
173       Close cur_rowid;
174       Return(FALSE);
175     END IF;
176   END Get_PK_For_Validation;
177 
178   PROCEDURE Get_FK_Igs_Pe_Person (
179     x_person_id IN NUMBER
180     ) AS
181 
182   /*************************************************************
183   Created By :srachako
184   Date Created By :11-MAY-2000
185   Purpose : Forign Key Check
186   Know limitations, enhancements or remarks
187   Change History
188   Who             When            What
189 
190   (reverse chronological order - newest change first)
191   ***************************************************************/
192 
193     CURSOR cur_rowid IS
194       SELECT   rowid
195       FROM     IGS_PE_INCOME_TAX_ALL
196       WHERE    person_id = x_person_id ;
197 
198     lv_rowid cur_rowid%RowType;
199 
200   BEGIN
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_PIT_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_income_tax_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 
241     lv_rowid cur_rowid%RowType;
242 
243   BEGIN
244 
245     IF (new_references.tax_info = 'COUNTRY') THEN --Then type_code_id is null
246     Open cur_rowid(x_type_code,NULL);
247     ELSE
248     Open cur_rowid(NULL,x_type_code_id);
249     END IF;
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  PROCEDURE Check_Uniqueness AS
263   /*************************************************************
264   Created By :
265   Date Created By :
266   Purpose :
267   Know limitations, enhancements or remarks
268   Change History
269   Who             When            What
270 
271   (reverse chronological order - newest change first)
272   ***************************************************************/
273 
274    begin
275      		IF Get_Uk_For_Validation (
276     		new_references.person_id
277     		,new_references.type_code,new_references.type_code_id
278     		) THEN
279  		Fnd_Message.Set_Name ('IGS', 'IGS_PE_INCTAX_DUP_EXISTS');
280       IGS_GE_MSG_STACK.ADD;
281 			app_exception.raise_exception;
282     		END IF;
283  END Check_Uniqueness ;
284 
285 
286   PROCEDURE Before_DML (
287     p_action IN VARCHAR2,
288     x_rowid IN VARCHAR2 DEFAULT NULL,
289     x_tax_id IN NUMBER DEFAULT NULL,
290     x_person_id IN NUMBER DEFAULT NULL,
291     x_tax_info IN VARCHAR2 DEFAULT NULL,
292     x_type_code IN VARCHAR2 DEFAULT NULL,
293     x_type_code_id IN NUMBER DEFAULT NULL,
294     x_start_date IN DATE DEFAULT NULL,
295     x_end_date IN DATE DEFAULT NULL,
296     X_ORG_ID in NUMBER DEFAULT NULL,
297     x_creation_date IN DATE DEFAULT NULL,
298     x_created_by IN NUMBER DEFAULT NULL,
299     x_last_update_date IN DATE DEFAULT NULL,
300     x_last_updated_by IN NUMBER DEFAULT NULL,
301     x_last_update_login IN NUMBER DEFAULT NULL
302   ) AS
303   /*************************************************************
304   Created By :
305   Date Created By :
306   Purpose :
307   Know limitations, enhancements or remarks
308   Change History
309   Who             When            What
310 
311   (reverse chronological order - newest change first)
312   ***************************************************************/
313 
314   BEGIN
315 
316     Set_Column_Values (
317       p_action,
318       x_rowid,
319       x_tax_id,
320       x_person_id,
321       x_tax_info,
322       x_type_code,
323       x_type_code_id,
324       x_start_date,
325       x_end_date,
326       x_org_id,
327       x_creation_date,
328       x_created_by,
329       x_last_update_date,
330       x_last_updated_by,
331       x_last_update_login
332     );
333 
334     IF (p_action = 'INSERT') THEN
335       -- Call all the procedures related to Before Insert.
336       Null;
337 	     IF Get_Pk_For_Validation(
338     		new_references.tax_id)  THEN
339 	       Fnd_Message.Set_name('IGS','IGS_PE_INCTAX_DUP_EXISTS');
340       IGS_GE_MSG_STACK.ADD;
341 	       App_Exception.Raise_Exception;
342 	     END IF;
343       Check_Uniqueness;
344       Check_Constraints;
345       Check_Parent_Existance;
346     ELSIF (p_action = 'UPDATE') THEN
347       -- Call all the procedures related to Before Update.
348       Null;
349       Check_Uniqueness;
350       Check_Constraints;
351       Check_Parent_Existance;
352     ELSIF (p_action = 'DELETE') THEN
353       -- Call all the procedures related to Before Delete.
354       Null;
355     ELSIF (p_action = 'VALIDATE_INSERT') THEN
356 	 -- Call all the procedures related to Before Insert.
357       IF Get_PK_For_Validation (
358     		new_references.tax_id)  THEN
359 	       Fnd_Message.Set_name('IGS','IGS_PE_INCTAX_DUP_EXISTS');
360       IGS_GE_MSG_STACK.ADD;
361 	       App_Exception.Raise_Exception;
362 	     END IF;
363       Check_Uniqueness;
364       Check_Constraints;
365     ELSIF (p_action = 'VALIDATE_UPDATE') THEN
366       Check_Uniqueness;
367       Check_Constraints;
368     ELSIF (p_action = 'VALIDATE_DELETE') THEN
369       Null;
370     END IF;
371 
372   END Before_DML;
373 
374 
375 
376   PROCEDURE After_DML (
377     p_action IN VARCHAR2,
378     x_rowid IN VARCHAR2
379   ) IS
380   /*************************************************************
384   Know limitations, enhancements or remarks
381   Created By :srachako
382   Date Created By :11-MAY-2000
383   Purpose :After DML Operations
385   Change History
386   Who             When            What
387 
388   (reverse chronological order - newest change first)
389   ***************************************************************/
390 
391   BEGIN
392 
393     l_rowid := x_rowid;
394 
395     IF (p_action = 'INSERT') THEN
396       -- Call all the procedures related to After Insert.
397       Null;
398     ELSIF (p_action = 'UPDATE') THEN
399       -- Call all the procedures related to After Update.
400       Null;
401     ELSIF (p_action = 'DELETE') THEN
402       -- Call all the procedures related to After Delete.
403       Null;
404     END IF;
405 
406   END After_DML;
407 
408  procedure INSERT_ROW (
409       X_ROWID in out NOCOPY VARCHAR2,
410        x_TAX_ID IN OUT NOCOPY NUMBER,
411        x_PERSON_ID IN NUMBER,
412        x_TAX_INFO IN VARCHAR2,
413        x_TYPE_CODE IN VARCHAR2,
414        x_TYPE_CODE_ID IN NUMBER,
415        x_START_DATE IN DATE,
416        x_END_DATE IN DATE,
417        X_ORG_ID in NUMBER,
418       X_MODE in VARCHAR2 default 'R'
419   ) AS
420   /*************************************************************
421   Created By :srachako
422   Date Created By :11-MAY-2000
423   Purpose :For Inserting Values
424   Know limitations, enhancements or remarks
425   Change History
426   Who             When            What
427 
428   (reverse chronological order - newest change first)
429   ***************************************************************/
430 
431     cursor C is select ROWID from IGS_PE_INCOME_TAX_ALL
432              where                 TAX_ID= X_TAX_ID
433 ;
434      X_LAST_UPDATE_DATE DATE ;
435      X_LAST_UPDATED_BY NUMBER ;
436      X_LAST_UPDATE_LOGIN NUMBER ;
437      l_TYPE_CODE igs_pe_income_tax_all.type_code%TYPE;
438      l_TYPE_CODE_ID igs_pe_income_tax_all.type_code_id%TYPE;
439  begin
440      X_LAST_UPDATE_DATE := SYSDATE;
441       if(X_MODE = 'I') then
442         X_LAST_UPDATED_BY := 1;
443         X_LAST_UPDATE_LOGIN := 0;
444          elsif (X_MODE IN ('R', 'S')) then
445                X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
446             if X_LAST_UPDATED_BY is NULL then
447                 X_LAST_UPDATED_BY := -1;
448             end if;
449             X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
450          if X_LAST_UPDATE_LOGIN is NULL then
451             X_LAST_UPDATE_LOGIN := -1;
452           end if;
453        else
454         FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
455       IGS_GE_MSG_STACK.ADD;
456           app_exception.raise_exception;
457        end if;
458        SELECT IGS_PE_INCOME_TAX_S.NEXTVAL
459        	    INTO X_TAX_ID
460        	   FROM Dual;
461 
462 	IF (x_TAX_INFO='COUNTRY') THEN
463         l_TYPE_CODE_ID := NULL;
464 	l_type_code :=  x_type_code;
465 	ELSE
466         l_TYPE_CODE := NULL;
467 	l_type_code_id :=  x_type_code_id;
468 	END IF;
469 
470 	 Before_DML(
471  		p_action=>'INSERT',
472  		x_rowid=>X_ROWID,
473  	       x_tax_id=>X_TAX_ID,
474  	       x_person_id=>X_PERSON_ID,
475  	       x_tax_info=>X_TAX_INFO,
476  	       x_type_code=>l_TYPE_CODE,
477 	       x_type_code_id=>l_TYPE_CODE_ID,
478  	       x_start_date=>X_START_DATE,
479  	       x_end_date=>X_END_DATE,
480                x_org_id => igs_ge_gen_003.get_org_id,
481 	       x_creation_date=>X_LAST_UPDATE_DATE,
482 	       x_created_by=>X_LAST_UPDATED_BY,
483 	       x_last_update_date=>X_LAST_UPDATE_DATE,
484 	       x_last_updated_by=>X_LAST_UPDATED_BY,
485 	       x_last_update_login=>X_LAST_UPDATE_LOGIN);
486 
487 
488 	        IF (x_mode = 'S') THEN
489     igs_sc_gen_001.set_ctx('R');
490   END IF;
491  insert into IGS_PE_INCOME_TAX_ALL (
492 		TAX_ID
493 		,PERSON_ID
494 		,TAX_INFO
495 		,TYPE_CODE
496 		,TYPE_CODE_ID
497 		,START_DATE
498 		,END_DATE
499                 ,ORG_ID
500                 ,CREATION_DATE
501 		,CREATED_BY
502 		,LAST_UPDATE_DATE
503 		,LAST_UPDATED_BY
504 		,LAST_UPDATE_LOGIN
505         ) values  (
506 	         NEW_REFERENCES.TAX_ID
507 	        ,NEW_REFERENCES.PERSON_ID
508 	        ,NEW_REFERENCES.TAX_INFO
509 	        ,NEW_REFERENCES.TYPE_CODE
510 	        ,NEW_REFERENCES.TYPE_CODE_ID
511 	        ,NEW_REFERENCES.START_DATE
512 	        ,NEW_REFERENCES.END_DATE
513                 ,NEW_REFERENCES.ORG_ID
514 	        ,X_LAST_UPDATE_DATE
515 		,X_LAST_UPDATED_BY
516 		,X_LAST_UPDATE_DATE
517 		,X_LAST_UPDATED_BY
518 		,X_LAST_UPDATE_LOGIN
519 );
520  IF (x_mode = 'S') THEN
521     igs_sc_gen_001.unset_ctx('R');
522   END IF;
523 
524 
525 
526 		open c;
527 		 fetch c into X_ROWID;
528  		if (c%notfound) then
529 		close c;
530  	     raise no_data_found;
531 		end if;
532  		close c;
533     After_DML (
534 		p_action => 'INSERT' ,
535 		x_rowid => X_ROWID );
536 EXCEPTION
540       fnd_message.set_token ('ERR_CD', SQLCODE);
537   WHEN OTHERS THEN
538     IF (SQLCODE IN (-28115, -28113, -28111)) THEN
539       fnd_message.set_name ('IGS', 'IGS_SC_POLICY_EXCEPTION');
541       igs_ge_msg_stack.add;
542       igs_sc_gen_001.unset_ctx('R');
543       app_exception.raise_exception;
544     ELSE
545       igs_sc_gen_001.unset_ctx('R');
546       RAISE;
547     END IF;
548 
549 end INSERT_ROW;
550 
551  procedure LOCK_ROW (
552       X_ROWID in  VARCHAR2,
553        x_TAX_ID IN NUMBER,
554        x_PERSON_ID IN NUMBER,
555        x_TAX_INFO IN VARCHAR2,
556        x_TYPE_CODE IN VARCHAR2,
557        x_TYPE_CODE_ID IN NUMBER,
558        x_START_DATE IN DATE,
559        x_END_DATE IN DATE  ) AS
560   /*************************************************************
561   Created By : srachako
562   Date Created By :11-MAY-2000
563   Purpose :For Locking Row
564   Know limitations, enhancements or remarks
565   Change History
566   Who             When            What
567   skpandey        23-SEP-2005     Bug: 4593149
568                                   Description: Added condition to avoid locking
569   (reverse chronological order - newest change first)
570   ***************************************************************/
571 
572    cursor c1 is select
573       PERSON_ID
574 ,      TAX_INFO
575 ,      TYPE_CODE
576 ,      TYPE_CODE_ID
577 ,      START_DATE
578 ,      END_DATE
579     from IGS_PE_INCOME_TAX_ALL
580     where ROWID = X_ROWID
581     for update nowait;
582      tlinfo c1%rowtype;
583      l_TYPE_CODE igs_pe_income_tax_all.type_code%TYPE;
584      l_TYPE_CODE_ID igs_pe_income_tax_all.type_code_id%TYPE;
585 begin
586   open c1;
587   fetch c1 into tlinfo;
588   if (c1%notfound) then
589     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
590       IGS_GE_MSG_STACK.ADD;
591     close c1;
592     app_exception.raise_exception;
593     return;
594   end if;
595   close c1;
596 
597 --skpandey.Bug#4593149
598    IF (x_TAX_INFO='COUNTRY') THEN
599      l_TYPE_CODE_ID := NULL;
600      l_type_code :=  x_type_code;
601    ELSE
602      l_TYPE_CODE := NULL;
603      l_type_code_id :=  x_type_code_id;
604    END IF;
605 
606 if ( (  tlinfo.PERSON_ID = X_PERSON_ID)
607   AND (tlinfo.TAX_INFO = X_TAX_INFO)
608   AND (NVL(tlinfo.TYPE_CODE,' ') = NVL(l_type_code,' '))
609   AND (NVL(tlinfo.TYPE_CODE_ID,-1) = NVL(l_TYPE_CODE_ID,-1))
610   AND ((tlinfo.START_DATE = X_START_DATE)
611  	    OR ((tlinfo.START_DATE is null)
612 		AND (X_START_DATE is null)))
613   AND ((tlinfo.END_DATE = X_END_DATE)
614  	    OR ((tlinfo.END_DATE is null)
615 		AND (X_END_DATE is null)))
616   ) then
617     null;
618   else
619     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
620       IGS_GE_MSG_STACK.ADD;
621     app_exception.raise_exception;
622   end if;
623   return;
624 end LOCK_ROW;
625 
626  Procedure UPDATE_ROW (
627       X_ROWID in  VARCHAR2,
628        x_TAX_ID IN NUMBER,
629        x_PERSON_ID IN NUMBER,
630        x_TAX_INFO IN VARCHAR2,
631        x_TYPE_CODE IN VARCHAR2,
632        x_TYPE_CODE_ID IN NUMBER,
633        x_START_DATE IN DATE,
634        x_END_DATE IN DATE,
635       X_MODE in VARCHAR2 default 'R'
636   ) AS
637   /*************************************************************
638   Created By :srachako
639   Date Created By :11-MAY-2000
640   Purpose :For Updation of Row
641   Know limitations, enhancements or remarks
642   Change History
643   Who             When            What
644 
645   (reverse chronological order - newest change first)
646   ***************************************************************/
647 
648      X_LAST_UPDATE_DATE DATE ;
649      X_LAST_UPDATED_BY NUMBER ;
650      X_LAST_UPDATE_LOGIN NUMBER ;
651      l_TYPE_CODE igs_pe_income_tax_all.type_code%TYPE;
652      l_TYPE_CODE_ID igs_pe_income_tax_all.type_code_id%TYPE;
653  begin
654      X_LAST_UPDATE_DATE := SYSDATE;
655       if(X_MODE = 'I') then
656         X_LAST_UPDATED_BY := 1;
657         X_LAST_UPDATE_LOGIN := 0;
658          elsif (X_MODE IN ('R', 'S')) then
659                X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
660             if X_LAST_UPDATED_BY is NULL then
661                 X_LAST_UPDATED_BY := -1;
662             end if;
663             X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
664          if X_LAST_UPDATE_LOGIN is NULL then
665             X_LAST_UPDATE_LOGIN := -1;
666           end if;
667        else
668         FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
669       IGS_GE_MSG_STACK.ADD;
670           app_exception.raise_exception;
671        end if;
672 
673        IF (x_TAX_INFO='COUNTRY') THEN
674         l_TYPE_CODE_ID := NULL;
675 	l_type_code :=  x_type_code;
676 	ELSE
677         l_TYPE_CODE := NULL;
678 	l_type_code_id :=  x_type_code_id;
679 	END IF;
680 
681    Before_DML(
682  		p_action=>'UPDATE',
683  		x_rowid=>X_ROWID,
684  	       x_tax_id=>X_TAX_ID,
685  	       x_person_id=>X_PERSON_ID,
686  	       x_tax_info=>X_TAX_INFO,
687  	       x_type_code=>l_TYPE_CODE,
688 	       x_type_code_id=>l_TYPE_CODE_ID,
689  	       x_start_date=>X_START_DATE,
690  	       x_end_date=>X_END_DATE,
691 	       x_creation_date=>X_LAST_UPDATE_DATE,
692 	       x_created_by=>X_LAST_UPDATED_BY,
693 	       x_last_update_date=>X_LAST_UPDATE_DATE,
694 	       x_last_updated_by=>X_LAST_UPDATED_BY,
695 	       x_last_update_login=>X_LAST_UPDATE_LOGIN);
696     IF (x_mode = 'S') THEN
697     igs_sc_gen_001.set_ctx('R');
698   END IF;
699  update IGS_PE_INCOME_TAX_ALL set
700       PERSON_ID =  NEW_REFERENCES.PERSON_ID,
701       TAX_INFO =  NEW_REFERENCES.TAX_INFO,
702       TYPE_CODE =  NEW_REFERENCES.TYPE_CODE,
703       TYPE_CODE_ID =  NEW_REFERENCES.TYPE_CODE_ID,
704       START_DATE =  NEW_REFERENCES.START_DATE,
705       END_DATE =  NEW_REFERENCES.END_DATE,
706 	LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
707 	LAST_UPDATED_BY = X_LAST_UPDATED_BY,
708 	LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
709 	  where ROWID = X_ROWID;
710 	if (sql%notfound) then
711      fnd_message.set_name ('IGS', 'IGS_SC_POLICY_UPD_DEL_EXCEP');
712      igs_ge_msg_stack.add;
713      igs_sc_gen_001.unset_ctx('R');
714      app_exception.raise_exception;
715 	end if;
716  IF (x_mode = 'S') THEN
717     igs_sc_gen_001.unset_ctx('R');
718   END IF;
719 
720 
721  After_DML (
722 	p_action => 'UPDATE' ,
723 	x_rowid => X_ROWID
724 	);
725 EXCEPTION
726   WHEN OTHERS THEN
727     IF (SQLCODE = (-28115)) THEN
728       fnd_message.set_name ('IGS', 'IGS_SC_UPD_POLICY_EXCP');
729       fnd_message.set_token ('ERR_CD', SQLCODE);
730       igs_ge_msg_stack.add;
731       igs_sc_gen_001.unset_ctx('R');
732       app_exception.raise_exception;
733     ELSE
734       igs_sc_gen_001.unset_ctx('R');
735       RAISE;
736     END IF;
737 
738 end UPDATE_ROW;
739  procedure ADD_ROW (
740       X_ROWID in out NOCOPY VARCHAR2,
741        x_TAX_ID IN OUT NOCOPY NUMBER,
742        x_PERSON_ID IN NUMBER,
743        x_TAX_INFO IN VARCHAR2,
744        x_TYPE_CODE IN VARCHAR2,
745        x_TYPE_CODE_ID IN NUMBER,
746        x_START_DATE IN DATE,
747        x_END_DATE IN DATE,
748        X_ORG_ID in NUMBER,
749       X_MODE in VARCHAR2 default 'R'
750   ) AS
751   /*************************************************************
752   Created By :srachako
753   Date Created By :11-MAY-2000
754   Purpose :for Insertion of Values
755   Know limitations, enhancements or remarks
756   Change History
757   Who             When            What
758 
759   (reverse chronological order - newest change first)
760   ***************************************************************/
761 
762     cursor c1 is select ROWID from IGS_PE_INCOME_TAX_ALL
763              where     TAX_ID= X_TAX_ID
764 ;
765 begin
766 	open c1;
767 		fetch c1 into X_ROWID;
768 	if (c1%notfound) then
769 	close c1;
770 
771 
772 
773     INSERT_ROW (
774        X_ROWID,
775        X_TAX_ID,
776        X_PERSON_ID,
777        X_TAX_INFO,
778        X_TYPE_CODE,
779        X_TYPE_CODE_ID,
780        X_START_DATE,
781        X_END_DATE,
782        X_ORG_ID,
783       X_MODE );
784      return;
785 	end if;
786 	   close c1;
787 UPDATE_ROW (
788       X_ROWID,
789        X_TAX_ID,
790        X_PERSON_ID,
791        X_TAX_INFO,
792        X_TYPE_CODE,
793        X_TYPE_CODE_ID,
794        X_START_DATE,
795        X_END_DATE,
796       X_MODE );
797 end ADD_ROW;
798 procedure DELETE_ROW (
799   X_ROWID in VARCHAR2,
800   x_mode IN VARCHAR2
801 ) AS
802   /*************************************************************
803   Created By :srachako
804   Date Created By :11-MAY-2000
805   Purpose :for Deletion of Rows
806   Know limitations, enhancements or remarks
807   Change History
808   Who             When            What
809 
810   (reverse chronological order - newest change first)
811   ***************************************************************/
812 
813 begin
814 Before_DML (
815 p_action => 'DELETE',
816 x_rowid => X_ROWID
817 );
818   IF (x_mode = 'S') THEN
819     igs_sc_gen_001.set_ctx('R');
820   END IF;
821  delete from IGS_PE_INCOME_TAX_ALL
822  where ROWID = X_ROWID;
823   if (sql%notfound) then
824      fnd_message.set_name ('IGS', 'IGS_SC_POLICY_UPD_DEL_EXCEP');
825      igs_ge_msg_stack.add;
826      igs_sc_gen_001.unset_ctx('R');
827      app_exception.raise_exception;
828  end if;
829  IF (x_mode = 'S') THEN
830     igs_sc_gen_001.unset_ctx('R');
831   END IF;
832 
833 After_DML (
834  p_action => 'DELETE',
835  x_rowid => X_ROWID
836 );
837 end DELETE_ROW;
838 
839 END igs_pe_income_tax_pkg;