DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PE_LANGUAGES_PKG

Source


1 PACKAGE BODY Igs_Pe_languages_Pkg AS
2 /* $Header: IGSNI75B.pls 120.2 2005/10/10 04:33:01 appldev ship $ */
3 
4 PROCEDURE Languages(
5 p_action 			            IN VARCHAR2 ,
6 P_LANGUAGE_NAME 		       IN	VARCHAR2,
7 p_DESCRIPTION			       IN	VARCHAR2,
8 p_PARTY_ID			       IN	NUMBER,
9 p_native_language		       IN	VARCHAR2,
10 p_primary_language_indicator    IN	VARCHAR2,
11 P_READS_LEVEL                   IN	VARCHAR2,
12 P_SPEAKS_LEVEL                  IN	VARCHAR2,
13 P_WRITES_LEVEL                  IN	VARCHAR2,
14 p_END_DATE                      IN	DATE,
15 p_status                        IN      VARCHAR2 DEFAULT 'A',
16 p_understand_level              IN      VARCHAR2 DEFAULT NULL,
17 p_last_update_date              IN OUT NOCOPY DATE,
18 p_return_status                 OUT NOCOPY VARCHAR2 ,
19 p_msg_count                     OUT NOCOPY VARCHAR2 ,
20 p_msg_data                      OUT NOCOPY VARCHAR2,
21 P_language_use_reference_id 	IN OUT NOCOPY NUMBER,
22 p_language_ovn                  IN OUT NOCOPY NUMBER,
23 p_source                        IN  VARCHAR2 DEFAULT NULL
24 ) AS
25 
26   --  CURSOR langcursor is SELECT IGS_PE_HZ_LANGUAGES_S.NEXTVAL S from DUAL;
27 
28     lv_init_msg_list VARCHAR2(1) := FND_API.G_FALSE;
29     lv_language_use_reference_id1  NUMBER;
30     lv_commit VARCHAR2(1)  := FND_API.G_FALSE ;
31     lv_language_use_reference_id NUMBER;
32 
33     -- V2API uptake
34 
35     lv_per_language_rec_type  HZ_PERSON_INFO_V2PUB.person_language_rec_type;
36 
37     lv_last_update_date DATE := p_last_update_date;
38 
39     lv_object_version_number  hz_person_language.OBJECT_VERSION_NUMBER%TYPE;
40 
41      tmp_var   VARCHAR2(2000);
42      tmp_var1  VARCHAR2(2000);
43     l_action  VARCHAR2(30);
44 
45     CURSOR dup_lang_cur (cp_language_name hz_person_language.language_name%TYPE,
46 	                     cp_status hz_person_language.status%TYPE,
47 						 cp_party_id hz_person_language.party_id%TYPE) IS
48 	SELECT language_use_reference_id, object_version_number
49 	FROM hz_person_language
50 	WHERE language_name = cp_language_name AND
51     status = cp_status AND
52 	party_id = cp_party_id;
53 
54     dup_lang_rec dup_lang_cur%ROWTYPE;
55    BEGIN
56 
57     lv_language_use_reference_id := p_language_use_reference_id;
58     lv_object_version_number := p_language_ovn;
59     l_action := p_action;
60 
61     IF l_action = 'INSERT' AND p_source = 'SS' THEN
62 
63     	    OPEN dup_lang_cur(P_LANGUAGE_NAME,'A',p_party_id);
64 	    FETCH dup_lang_cur INTO dup_lang_rec;
65 
66 	    IF (dup_lang_cur%FOUND) THEN
67 		     CLOSE dup_lang_cur;
68 		     FND_MESSAGE.SET_NAME('IGS','IGS_PE_DUP_LANG_CODE');
69 		     IGS_GE_MSG_STACK.ADD;
70 		     RAISE FND_API.G_EXC_ERROR;
71              END IF;
72 	     CLOSE dup_lang_cur;
73 
74 
75 	    OPEN dup_lang_cur(P_LANGUAGE_NAME,'I',p_party_id);
76 	    FETCH dup_lang_cur INTO dup_lang_rec;
77 	    CLOSE dup_lang_cur;
78 
79 	    IF dup_lang_rec.language_use_reference_id IS NOT NULL THEN
80 		  l_action := 'UPDATE';
81 		  lv_language_use_reference_id := dup_lang_rec.language_use_reference_id;
82 		  lv_object_version_number := dup_lang_rec.object_version_number;
83 	    END IF;
84     END IF;
85 
86    IF l_action='INSERT' THEN
87 
88     lv_per_language_rec_type.language_name 		           := p_language_name;
89     lv_per_language_rec_type.party_id			           := p_party_id;
90     lv_per_language_rec_type.native_language  		           := p_native_language;
91     lv_per_language_rec_type.primary_language_indicator            := p_primary_language_indicator;
92     lv_per_language_rec_type.reads_level		           := p_reads_level;
93     lv_per_language_rec_type.speaks_level  		           := p_speaks_level;
94     lv_per_language_rec_type.writes_level  		           := P_writes_level;
95     lv_per_language_rec_type.created_by_module                     := 'IGS';
96     lv_per_language_rec_type.spoken_comprehension_level            := p_understand_level;
97     lv_per_language_rec_type.status                                := p_status;
98 
99 
100     HZ_PERSON_INFO_V2PUB.create_person_language(
101                 p_init_msg_list               => lv_init_msg_list,
102                 p_person_language_rec         => lv_per_language_rec_type,
103                 x_language_use_reference_id   => P_language_use_reference_id,
104                 x_return_status               => p_return_status,
105                 x_msg_count                   => p_msg_count ,
106                 x_msg_data                    => p_msg_data );
107 
108         IF p_return_status IN ('E','U') THEN
109 
110 	   -- ssawhney bug 2338473
111 	     IF p_msg_count > 1 THEN
112 		FOR i IN 1..p_msg_count  LOOP
113 		  tmp_var := fnd_msg_pub.get(p_encoded => fnd_api.g_false);
114 		  tmp_var1 := tmp_var1 || ' '|| tmp_var;
115 		END LOOP;
116 		p_msg_data := tmp_var1;
117 	      END IF;
118 	      RETURN;
119          END IF;
120 
121 	-- after successful insert, pass OVN out as 1.
122 	 p_language_ovn :=1;
123 
124    ELSIF l_action = 'UPDATE' THEN
125 
126     lv_per_language_rec_type.language_name 		         := p_language_name;
127     lv_per_language_rec_type.party_id			         := p_party_id;
128     lv_per_language_rec_type.native_language  		    := NVL(p_native_language,FND_API.G_MISS_CHAR);
129     lv_per_language_rec_type.primary_language_indicator    := NVL(p_primary_language_indicator,FND_API.G_MISS_CHAR);
130     lv_per_language_rec_type.reads_level	              := NVL(p_reads_level,FND_API.G_MISS_CHAR);
131     lv_per_language_rec_type.speaks_level             	    := NVL(p_speaks_level,FND_API.G_MISS_CHAR);
132     lv_per_language_rec_type.writes_level                  := NVL(P_writes_level,FND_API.G_MISS_CHAR);
133     lv_per_language_rec_type.language_use_reference_id     := lv_language_use_reference_id;
134    -- lv_per_language_rec_type.created_by_module             := 'IGS';
135     lv_per_language_rec_type.spoken_comprehension_level            := NVL(p_understand_level,FND_API.G_MISS_CHAR);
136     lv_per_language_rec_type.status                                := NVL(p_status,FND_API.G_MISS_CHAR);
137 
138 
139         HZ_PERSON_INFO_V2PUB.update_person_language(
140               p_init_msg_list                  => lv_init_msg_list,
141               p_person_language_rec            => lv_per_language_rec_type,
142               p_object_version_number          => lv_object_version_number,
143               x_return_status                  => p_return_status ,
144               x_msg_count                      => p_msg_count,
145               x_msg_data                       => p_msg_data);
146 
147 
148 
149 	   IF p_return_status IN ('E','U') THEN
150 
151 	   -- ssawhney bug 2338473
152 	     IF p_msg_count > 1 THEN
153 		FOR i IN 1..p_msg_count  LOOP
154 		  tmp_var := fnd_msg_pub.get(p_encoded => fnd_api.g_false);
155 		  tmp_var1 := tmp_var1 || ' '|| tmp_var;
156 		END LOOP;
157 		p_msg_data := tmp_var1;
158 	      END IF;
159 	      RETURN;
160             END IF;
161 
162     END IF;
163 
164 
165 EXCEPTION
166  WHEN FND_API.G_EXC_ERROR THEN
167      p_return_status := FND_API.G_RET_STS_ERROR;
168      p_msg_data := SQLERRM;
169  WHEN OTHERS THEN
170      p_return_status := FND_API.G_RET_STS_ERROR;
171      p_msg_data := SQLERRM;
172      RAISE ;
173 END Languages;
174 END IGS_PE_LANGUAGES_PKG;