1 PACKAGE BODY igs_or_gen_012_pkg AS
2 /* $Header: IGSOR12B.pls 120.3 2006/02/06 23:40:08 pkpatel ship $ */
3
4 PROCEDURE create_organization (
5 p_institution_cd IN VARCHAR2,
6 p_name IN VARCHAR2,
7 p_status IN VARCHAR2,
8 p_attribute_category IN VARCHAR2,
9 p_attribute1 IN VARCHAR2,
10 p_attribute2 IN VARCHAR2,
11 p_attribute3 IN VARCHAR2,
12 p_attribute4 IN VARCHAR2,
13 p_attribute5 IN VARCHAR2,
14 p_attribute6 IN VARCHAR2,
15 p_attribute7 IN VARCHAR2,
16 p_attribute8 IN VARCHAR2,
17 p_attribute9 IN VARCHAR2,
18 p_attribute10 IN VARCHAR2,
19 p_attribute11 IN VARCHAR2,
20 p_attribute12 IN VARCHAR2,
21 p_attribute13 IN VARCHAR2,
22 p_attribute14 IN VARCHAR2,
23 p_attribute15 IN VARCHAR2,
24 p_attribute16 IN VARCHAR2,
25 p_attribute17 IN VARCHAR2,
26 p_attribute18 IN VARCHAR2,
27 p_attribute19 IN VARCHAR2,
28 p_attribute20 IN VARCHAR2,
29 p_return_status OUT NOCOPY VARCHAR2,
30 p_msg_data OUT NOCOPY VARCHAR2,
31 p_party_id OUT NOCOPY NUMBER,
32 p_object_version_number IN OUT NOCOPY NUMBER,
33 p_attribute21 IN VARCHAR2,
34 p_attribute22 IN VARCHAR2,
35 p_attribute23 IN VARCHAR2,
36 p_attribute24 IN VARCHAR2
37 ) AS
38 /*
39 || Created By : [email protected]
40 || Created On : 28-AUG-2000
41 || Purpose : To make the call to hz_party_pub_create_organization
42 || Known limitations, enhancements or remarks :
43 || Change History :
44 || Who When What
45 || (reverse chronological order - newest change first)
46 */
47 v_msg_count NUMBER;
48 v_party_number hz_parties.party_number%TYPE;
49 v_profile_id NUMBER;
50
51 -- record type variable
52 v_organization_rec_type hz_party_v2pub.organization_rec_type;
53 v_party_rec hz_party_v2pub.party_rec_type;
54
55 tmp_var1 VARCHAR2(2000);
56 tmp_var VARCHAR2(2000);
57 BEGIN
58 -- initialising the record type variables
59 v_party_rec.party_number := p_institution_cd;
60 v_organization_rec_type.created_by_module := 'IGS';
61 v_organization_rec_type.content_source_type := 'USER_ENTERED';
62 v_party_rec.attribute_category:= p_attribute_category;
63 v_party_rec.attribute1 := p_attribute1;
64 v_party_rec.attribute2 := p_attribute2;
65 v_party_rec.attribute3 := p_attribute3;
66 v_party_rec.attribute4 := p_attribute4;
67 v_party_rec.attribute5 := p_attribute5;
68 v_party_rec.attribute6 := p_attribute6;
69 v_party_rec.attribute7 := p_attribute7;
70 v_party_rec.attribute8 := p_attribute8;
71 v_party_rec.attribute9 := p_attribute9;
72 v_party_rec.attribute10 := p_attribute10;
73 v_party_rec.attribute11 := p_attribute11;
74 v_party_rec.attribute12 := p_attribute12;
75 v_party_rec.attribute13 := p_attribute13;
76 v_party_rec.attribute14 := p_attribute14;
77 v_party_rec.attribute15 := p_attribute15;
78 v_party_rec.attribute16 := p_attribute16;
79 v_party_rec.attribute17 := p_attribute17;
80 v_party_rec.attribute18 := p_attribute18;
81 v_party_rec.attribute19 := p_attribute19;
82 v_party_rec.attribute20 := p_attribute20;
83 v_party_rec.attribute21 := p_attribute21;
84 v_party_rec.attribute22 := p_attribute22;
85 v_party_rec.attribute23 := p_attribute23;
86 v_party_rec.attribute24 := p_attribute24;
87 v_party_rec.status := p_status;
88
89 v_organization_rec_type.organization_name := p_name;
90 v_organization_rec_type.party_rec := v_party_rec;
91
92
93 -- call to create organization
94 -- masehgal made call to hz_party_V2pub to create organisation
95 hz_party_v2pub.create_organization (
96 p_init_msg_list => FND_API.G_TRUE,
97 p_organization_rec => v_organization_rec_type,
98 x_return_status => p_return_status,
99 x_msg_count => v_msg_count,
100 x_msg_data => p_msg_data,
101 x_party_id => p_party_id,
102 x_party_number => v_party_number,
103 x_profile_id => v_profile_id
104 ) ;
105
106 IF p_return_status <> 'S' THEN
107 -- bug 2338473 logic to display more than one error modified.
108 IF v_msg_count > 1 THEN
109 FOR i IN 1..v_msg_count LOOP
110 tmp_var := fnd_msg_pub.get(p_encoded => fnd_api.g_false);
111 tmp_var1 := tmp_var1 || ' '|| tmp_var;
112 END LOOP;
113 p_msg_data := tmp_var1;
114 END IF;
115 -- if creation was UN successful then OVN should be 0
116 p_object_version_number :=0;
117 RETURN;
118 END IF;
119 -- if creation was successful then OVN should be 1
120 p_object_version_number :=1;
121 END create_organization;
122
123 PROCEDURE update_organization (
124 p_party_id IN NUMBER,
125 p_institution_cd IN VARCHAR2,
126 p_name IN VARCHAR2,
127 p_status IN VARCHAR2,
128 p_last_update IN OUT NOCOPY DATE,
129 p_attribute_category IN VARCHAR2,
130 p_attribute1 IN VARCHAR2,
131 p_attribute2 IN VARCHAR2,
132 p_attribute3 IN VARCHAR2,
133 p_attribute4 IN VARCHAR2,
134 p_attribute5 IN VARCHAR2,
135 p_attribute6 IN VARCHAR2,
136 p_attribute7 IN VARCHAR2,
137 p_attribute8 IN VARCHAR2,
138 p_attribute9 IN VARCHAR2,
139 p_attribute10 IN VARCHAR2,
140 p_attribute11 IN VARCHAR2,
141 p_attribute12 IN VARCHAR2,
142 p_attribute13 IN VARCHAR2,
143 p_attribute14 IN VARCHAR2,
144 p_attribute15 IN VARCHAR2,
145 p_attribute16 IN VARCHAR2,
146 p_attribute17 IN VARCHAR2,
147 p_attribute18 IN VARCHAR2,
148 p_attribute19 IN VARCHAR2,
149 p_attribute20 IN VARCHAR2,
150 p_return_status OUT NOCOPY VARCHAR2,
151 p_msg_data OUT NOCOPY VARCHAR2,
152 p_object_version_number IN OUT NOCOPY NUMBER,
153 p_attribute21 IN VARCHAR2,
154 p_attribute22 IN VARCHAR2,
155 p_attribute23 IN VARCHAR2,
156 p_attribute24 IN VARCHAR2
157 ) AS
158 /*
159 || Created By : [email protected]
160 || Created On : 28-AUG-2000
161 || Purpose : To call the API hz_part_pub.update_organization
162 || Known limitations, enhancements or remarks :
163 || Change History :
164 || Who When What
165 || (reverse chronological order - newest change first)
166 */
167
168 v_msg_count NUMBER;
169 v_profile_id NUMBER;
170 tmp_var1 VARCHAR2(2000);
171 tmp_var VARCHAR2(2000);
172 -- record type variable
173 v_organization_rec_type hz_party_v2pub.organization_rec_type;
174 v_party_rec hz_party_v2pub.party_rec_type;
175
176 BEGIN
177 -- initialising the record type variables
178 -- masehgal changed nullable attributes to NVL(parameter,FND_API.G_MISS_XXXX)
179 v_party_rec.party_id := p_party_id;
180 v_party_rec.status := p_status;
181 v_party_rec.party_number := p_institution_cd;
182 v_party_rec.attribute_category:= NVL(p_attribute_category,FND_API.G_MISS_CHAR);
183 v_party_rec.attribute1 := NVL(p_attribute1,FND_API.G_MISS_CHAR);
184 v_party_rec.attribute2 := NVL(p_attribute2,FND_API.G_MISS_CHAR);
185 v_party_rec.attribute3 := NVL(p_attribute3,FND_API.G_MISS_CHAR);
186 v_party_rec.attribute4 := NVL(p_attribute4,FND_API.G_MISS_CHAR);
187 v_party_rec.attribute5 := NVL(p_attribute5,FND_API.G_MISS_CHAR);
188 v_party_rec.attribute6 := NVL(p_attribute6,FND_API.G_MISS_CHAR);
189 v_party_rec.attribute7 := NVL(p_attribute7,FND_API.G_MISS_CHAR);
190 v_party_rec.attribute8 := NVL(p_attribute8,FND_API.G_MISS_CHAR);
191 v_party_rec.attribute9 := NVL(p_attribute9,FND_API.G_MISS_CHAR);
192 v_party_rec.attribute10 := NVL(p_attribute10,FND_API.G_MISS_CHAR);
193 v_party_rec.attribute11 := NVL(p_attribute11,FND_API.G_MISS_CHAR);
194 v_party_rec.attribute12 := NVL(p_attribute12,FND_API.G_MISS_CHAR);
195 v_party_rec.attribute13 := NVL(p_attribute13,FND_API.G_MISS_CHAR);
196 v_party_rec.attribute14 := NVL(p_attribute14,FND_API.G_MISS_CHAR);
197 v_party_rec.attribute15 := NVL(p_attribute15,FND_API.G_MISS_CHAR);
198 v_party_rec.attribute16 := NVL(p_attribute16,FND_API.G_MISS_CHAR);
199 v_party_rec.attribute17 := NVL(p_attribute17,FND_API.G_MISS_CHAR);
200 v_party_rec.attribute18 := NVL(p_attribute18,FND_API.G_MISS_CHAR);
201 v_party_rec.attribute19 := NVL(p_attribute19,FND_API.G_MISS_CHAR);
202 v_party_rec.attribute20 := NVL(p_attribute20,FND_API.G_MISS_CHAR);
203 v_party_rec.attribute21 := NVL(p_attribute21,FND_API.G_MISS_CHAR);
204 v_party_rec.attribute22 := NVL(p_attribute22,FND_API.G_MISS_CHAR);
205 v_party_rec.attribute23 := NVL(p_attribute23,FND_API.G_MISS_CHAR);
206 v_party_rec.attribute24 := NVL(p_attribute24,FND_API.G_MISS_CHAR);
207
208 v_organization_rec_type.organization_name := p_name;
209 v_organization_rec_type.party_rec := v_party_rec;
210
211
212 -- Update by : brajendr
213 -- Fix In Bug : In the Bug # 1882329
214 -- Fix Does : Creation of the Oraganization records need Last_Update_Date as a Mandatory Column.
215 -- If the Institutions record is getting created and without re-quering the same record
216 -- if we try to add he Govt. Institution Code, it pops-up an error that "Last Update Date"
217 -- not found. so if the column is NULL, we are explicitly fetching the data.
218
219
220 -- call to update organization
221 -- masehgal V2PUB call to hz_party
222 hz_party_v2pub.update_organization (
223 p_init_msg_list => FND_API.G_TRUE,
224 p_organization_rec => v_organization_rec_type,
225 p_party_object_version_number => p_object_version_number,
226 x_profile_id => v_profile_id,
227 x_return_status => p_return_status,
228 x_msg_count => v_msg_count,
229 x_msg_data => p_msg_data
230 ) ;
231
232 IF p_return_status <> 'S' THEN
233 -- bug 2338473 logic to display more than one error modified.
234
235 IF v_msg_count > 1 THEN
236 FOR i IN 1..v_msg_count LOOP
237 tmp_var := fnd_msg_pub.get(p_encoded => fnd_api.g_false);
238 tmp_var1 := tmp_var1 || ' '|| tmp_var;
239 END LOOP;
240 p_msg_data := tmp_var1;
241 END IF;
242 RETURN;
243
244 END IF;
245 END update_organization;
246
247 PROCEDURE get_where_clause(
248 p_function_name IN fnd_lookup_values.lookup_code%TYPE,
249 p_where_clause OUT NOCOPY VARCHAR2
250 )AS
251 /*
252 || Created By : [email protected]
253 || Created On : 28-AUG-2000
254 || Purpose : Generic API for finding the filter clause
255 || Known limitations, enhancements or remarks :
256 || Change History :
257 || Who When What
258 || vrathi 9-JUN-2003 Bug No:2940810
259 || PKM Bind variable issue (Instead of passing the hard-coded values passed the select clause)
260 || (reverse chronological order - newest change first)
261 */
262 CURSOR get_attr_type_cur IS
263 SELECT distinct attr_type
264 FROM igs_or_func_fltr
265 WHERE func_code = p_function_name;
266
267 CURSOR get_attr_val_cur IS
268 SELECT attr_val
269 FROM igs_or_func_fltr
270 WHERE func_code = p_function_name;
271
272 l_where_clause VARCHAR2(450);
273 get_attr_type_rec get_attr_type_cur%ROWTYPE;
274 get_attr_val_rec get_attr_val_cur%ROWTYPE;
275
276 BEGIN
277 -- If function name is NULL then return NULL
278 IF p_function_name IS NULL THEN
279 l_where_clause := NULL;
280 ELSE
281 -- Find the attribute type for which the setup is done. If no setup is done then return NULL
282 OPEN get_attr_type_cur;
283 FETCH get_attr_type_cur INTO get_attr_type_rec;
284 IF get_attr_type_cur%NOTFOUND THEN
285 CLOSE get_attr_type_cur;
286 p_where_clause := NULL;
287 RETURN;
288 END IF;
289 CLOSE get_attr_type_cur;
290
291 l_where_clause := get_attr_type_rec.attr_type ||' IN (SELECT attr_val FROM igs_or_func_fltr WHERE func_code = '''|| p_function_name ||''')';
292
293 END IF;
294
295 p_where_clause := l_where_clause;
296
297 EXCEPTION
298 WHEN OTHERS THEN
299 p_where_clause := NULL;
300 FND_MESSAGE.SET_NAME('IGS','IGS_GE_UNHANDLED_EXP');
301 FND_MESSAGE.SET_TOKEN('NAME','igs_or_gen_012_pkg.get_where_clause'||'-'||SQLERRM);
302 APP_EXCEPTION.RAISE_EXCEPTION;
303 END get_where_clause;
304
305
306
307 PROCEDURE get_where_clause_form(
308 p_function_name IN fnd_lookup_values.lookup_code%TYPE,
309 p_where_clause OUT NOCOPY VARCHAR2
310 )AS
311 /*
312 || Created By : [email protected]
313 || Created On : 28-AUG-2000
314 || Purpose : Generic API for finding the filter clause
315 || Known limitations, enhancements or remarks :
316 || Change History :
317 || Who When What
318 || skpandey 3-FEB-2006 Bug No:4937960
319 || Description:Added procedure get_where_clause_form as a part of Literal
320 || (reverse chronological order - newest change first)
321 */
322 CURSOR get_attr_type_cur(cp_function_name VARCHAR2) IS
323 SELECT distinct attr_type
324 FROM igs_or_func_fltr
325 WHERE func_code = p_function_name;
326
327 l_where_clause VARCHAR2(450);
328 get_attr_type_rec get_attr_type_cur%ROWTYPE;
329
330 BEGIN
331
332 -- If function name is NULL then return NULL
333 IF p_function_name IS NULL THEN
334 l_where_clause := NULL;
335 ELSE
336 -- Find the attribute type for which the setup is done. If no setup is done then return NULL
337 OPEN get_attr_type_cur(p_function_name);
338 FETCH get_attr_type_cur INTO get_attr_type_rec;
339 IF get_attr_type_cur%NOTFOUND THEN
340 CLOSE get_attr_type_cur;
341 p_where_clause := NULL;
342 RETURN;
343 END IF;
344 CLOSE get_attr_type_cur;
345
346 l_where_clause := get_attr_type_rec.attr_type ||' IN (SELECT attr_val FROM igs_or_func_fltr WHERE func_code = :PARAMETER.P_FORM_NAME)';
347 END IF;
348
349 p_where_clause := l_where_clause;
350
351 EXCEPTION
352 WHEN OTHERS THEN
353 p_where_clause := NULL;
354 FND_MESSAGE.SET_NAME('IGS','IGS_GE_UNHANDLED_EXP');
355 FND_MESSAGE.SET_TOKEN('NAME','igs_or_gen_012_pkg.get_where_clause_form'||'-'||SQLERRM);
356 APP_EXCEPTION.RAISE_EXCEPTION;
357 END get_where_clause_form;
358
359
360
361 PROCEDURE get_where_clause_api(
362 p_function_name IN fnd_lookup_values.lookup_code%TYPE,
363 p_where_clause OUT NOCOPY VARCHAR2
364 )AS
365 /*
366 || Created By : [email protected]
367 || Created On : 28-AUG-2000
368 || Purpose : Generic API for finding the filter clause
369 || Known limitations, enhancements or remarks :
370 || Change History :
371 || Who When What
372 || skpandey 3-FEB-2006 Bug No:4937960
373 || Description:Added procedure get_where_clause_form as a part of Literal
374 || (reverse chronological order - newest change first)
375 */
376 CURSOR get_attr_type_cur(cp_function_name VARCHAR2) IS
377 SELECT distinct attr_type
378 FROM igs_or_func_fltr
379 WHERE func_code = cp_function_name;
380
381 l_where_clause VARCHAR2(450);
382 get_attr_type_rec get_attr_type_cur%ROWTYPE;
383
384 BEGIN
385 -- If function name is NULL then return NULL
386 IF p_function_name IS NULL THEN
387 l_where_clause := NULL;
388 ELSE
389 -- Find the attribute type for which the setup is done. If no setup is done then return NULL
390 OPEN get_attr_type_cur(p_function_name);
391 FETCH get_attr_type_cur INTO get_attr_type_rec;
392 IF get_attr_type_cur%NOTFOUND THEN
393 CLOSE get_attr_type_cur;
394 p_where_clause := NULL;
395 RETURN;
396 END IF;
397 CLOSE get_attr_type_cur;
398
399 l_where_clause := get_attr_type_rec.attr_type ||' IN (SELECT attr_val FROM igs_or_func_fltr WHERE func_code = :p_function_name )';
400
401 END IF;
402
403 p_where_clause := l_where_clause;
404
405 EXCEPTION
406 WHEN OTHERS THEN
407 p_where_clause := NULL;
408 FND_MESSAGE.SET_NAME('IGS','IGS_GE_UNHANDLED_EXP');
409 FND_MESSAGE.SET_TOKEN('NAME','igs_or_gen_012_pkg.get_where_clause_api'||'-'||SQLERRM);
410 APP_EXCEPTION.RAISE_EXCEPTION;
411 END get_where_clause_api;
412
413 PROCEDURE get_where_clause_form1(
414 p_function_name IN fnd_lookup_values.lookup_code%TYPE,
415 p_where_clause OUT NOCOPY VARCHAR2
416 )AS
417 /*
418 || Created By : [email protected]
419 || Created On : 28-AUG-2000
420 || Purpose : Generic API for finding the filter clause
421 || Known limitations, enhancements or remarks :
422 || Change History :
423 || Who When What
424 || (reverse chronological order - newest change first)
425 */
426 CURSOR get_attr_type_cur(cp_function_name VARCHAR2) IS
427 SELECT distinct attr_type, inst_org_val
428 FROM igs_or_func_fltr
429 WHERE func_code = cp_function_name;
430
431 l_where_clause VARCHAR2(450);
432 get_attr_type_rec get_attr_type_cur%ROWTYPE;
433 l_inst_org_prefix VARCHAR2(5);
434
435 BEGIN
436
437 -- If function name is NULL then return NULL
438 IF p_function_name IS NULL THEN
439 l_where_clause := NULL;
440 ELSE
441 -- Find the attribute type for which the setup is done. If no setup is done then return NULL
442 OPEN get_attr_type_cur(p_function_name);
443 FETCH get_attr_type_cur INTO get_attr_type_rec;
444 IF get_attr_type_cur%NOTFOUND THEN
445 CLOSE get_attr_type_cur;
446 p_where_clause := NULL;
447 RETURN;
448 END IF;
449 CLOSE get_attr_type_cur;
450
451 IF get_attr_type_rec.inst_org_val = 'O' THEN
452 l_inst_org_prefix := 'OU_';
453 ELSIF get_attr_type_rec.inst_org_val = 'I' THEN
454 l_inst_org_prefix := 'OI_';
455 END IF;
456
457 l_where_clause := l_inst_org_prefix||get_attr_type_rec.attr_type ||' IN (SELECT attr_val FROM igs_or_func_fltr WHERE func_code = :PARAMETER.P_FORM_NAME)';
458 END IF;
459
460 p_where_clause := l_where_clause;
461
462 EXCEPTION
463 WHEN OTHERS THEN
464 p_where_clause := NULL;
465 FND_MESSAGE.SET_NAME('IGS','IGS_GE_UNHANDLED_EXP');
466 FND_MESSAGE.SET_TOKEN('NAME','igs_or_gen_012_pkg.get_where_clause_form1'||'-'||SQLERRM);
467 APP_EXCEPTION.RAISE_EXCEPTION;
468 END get_where_clause_form1;
469
470
471
472 PROCEDURE get_where_clause_api1(
473 p_function_name IN fnd_lookup_values.lookup_code%TYPE,
474 p_where_clause OUT NOCOPY VARCHAR2
475 )AS
476 /*
477 || Created By : [email protected]
478 || Created On : 28-AUG-2000
479 || Purpose : Generic API for finding the filter clause
480 || Known limitations, enhancements or remarks :
481 || Change History :
482 || Who When What
483 || (reverse chronological order - newest change first)
484 */
485 CURSOR get_attr_type_cur(cp_function_name VARCHAR2) IS
486 SELECT distinct attr_type, inst_org_val
487 FROM igs_or_func_fltr
488 WHERE func_code = cp_function_name;
489
490 l_where_clause VARCHAR2(450);
491 get_attr_type_rec get_attr_type_cur%ROWTYPE;
492 l_inst_org_prefix VARCHAR2(5);
493 BEGIN
494 -- If function name is NULL then return NULL
495 IF p_function_name IS NULL THEN
496 l_where_clause := NULL;
497 ELSE
498 -- Find the attribute type for which the setup is done. If no setup is done then return NULL
499 OPEN get_attr_type_cur(p_function_name);
500 FETCH get_attr_type_cur INTO get_attr_type_rec;
501 IF get_attr_type_cur%NOTFOUND THEN
502 CLOSE get_attr_type_cur;
503 p_where_clause := NULL;
504 RETURN;
505 END IF;
506 CLOSE get_attr_type_cur;
507
508 IF get_attr_type_rec.inst_org_val = 'O' THEN
509 l_inst_org_prefix := 'OU_';
510 ELSIF get_attr_type_rec.inst_org_val = 'I' THEN
511 l_inst_org_prefix := 'OI_';
512 END IF;
513
514 l_where_clause := l_inst_org_prefix||get_attr_type_rec.attr_type ||' IN (SELECT attr_val FROM igs_or_func_fltr WHERE func_code = :p_function_name )';
515
516 END IF;
517
518 p_where_clause := l_where_clause;
519
520 EXCEPTION
521 WHEN OTHERS THEN
522 p_where_clause := NULL;
523 FND_MESSAGE.SET_NAME('IGS','IGS_GE_UNHANDLED_EXP');
524 FND_MESSAGE.SET_TOKEN('NAME','igs_or_gen_012_pkg.get_where_clause_api1'||'-'||SQLERRM);
525 APP_EXCEPTION.RAISE_EXCEPTION;
526 END get_where_clause_api1;
527
528 END igs_or_gen_012_pkg;