DBA Data[Home] [Help]

PACKAGE BODY: APPS.AHL_SIMULATION_PLANS_PKG

Source


1 package body AHL_SIMULATION_PLANS_PKG as
2 /* $Header: AHLLSPNB.pls 120.0.12020000.4 2013/04/10 13:09:14 debadey ship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out NOCOPY VARCHAR2,
5   X_SIMULATION_PLAN_ID in NUMBER,
6   X_OBJECT_VERSION_NUMBER in NUMBER,
7   X_PRIMARY_PLAN_FLAG in VARCHAR2,
8   X_ATTRIBUTE_CATEGORY in VARCHAR2,
9   X_ATTRIBUTE1 in VARCHAR2,
10   X_ATTRIBUTE2 in VARCHAR2,
11   X_ATTRIBUTE3 in VARCHAR2,
12   X_ATTRIBUTE4 in VARCHAR2,
13   X_ATTRIBUTE5 in VARCHAR2,
14   X_ATTRIBUTE6 in VARCHAR2,
15   X_ATTRIBUTE7 in VARCHAR2,
16   X_ATTRIBUTE8 in VARCHAR2,
17   X_ATTRIBUTE9 in VARCHAR2,
18   X_ATTRIBUTE10 in VARCHAR2,
19   X_ATTRIBUTE11 in VARCHAR2,
20   X_ATTRIBUTE12 in VARCHAR2,
21   X_ATTRIBUTE13 in VARCHAR2,
22   X_ATTRIBUTE14 in VARCHAR2,
23   X_ATTRIBUTE15 in VARCHAR2,
24   X_SIMULATION_PLAN_NAME in VARCHAR2,
25   X_DESCRIPTION in VARCHAR2,
26   X_CREATION_DATE in DATE,
27   X_CREATED_BY in NUMBER,
28   X_LAST_UPDATE_DATE in DATE,
29   X_LAST_UPDATED_BY in NUMBER,
30   X_LAST_UPDATE_LOGIN in NUMBER,
31   X_STATUS_CODE in VARCHAR2,
32   X_SIMULATION_TYPE in VARCHAR2
33 ) is
34   cursor C is select ROWID from AHL_SIMULATION_PLANS_B
35     where SIMULATION_PLAN_ID = X_SIMULATION_PLAN_ID
36     ;
37 begin
38   insert into AHL_SIMULATION_PLANS_B (
39     SIMULATION_PLAN_ID,
40     OBJECT_VERSION_NUMBER,
41     PRIMARY_PLAN_FLAG,
42     ATTRIBUTE_CATEGORY,
43     ATTRIBUTE1,
44     ATTRIBUTE2,
45     ATTRIBUTE3,
46     ATTRIBUTE4,
47     ATTRIBUTE5,
48     ATTRIBUTE6,
49     ATTRIBUTE7,
50     ATTRIBUTE8,
51     ATTRIBUTE9,
52     ATTRIBUTE10,
53     ATTRIBUTE11,
54     ATTRIBUTE12,
55     ATTRIBUTE13,
56     ATTRIBUTE14,
57     ATTRIBUTE15,
58     CREATION_DATE,
59     CREATED_BY,
60     LAST_UPDATE_DATE,
61     LAST_UPDATED_BY,
62     LAST_UPDATE_LOGIN,
63     STATUS_CODE,
64     SIMULATION_TYPE
65   ) values (
66     X_SIMULATION_PLAN_ID,
67     X_OBJECT_VERSION_NUMBER,
68     X_PRIMARY_PLAN_FLAG,
69     X_ATTRIBUTE_CATEGORY,
70     X_ATTRIBUTE1,
71     X_ATTRIBUTE2,
72     X_ATTRIBUTE3,
73     X_ATTRIBUTE4,
74     X_ATTRIBUTE5,
75     X_ATTRIBUTE6,
76     X_ATTRIBUTE7,
77     X_ATTRIBUTE8,
78     X_ATTRIBUTE9,
79     X_ATTRIBUTE10,
80     X_ATTRIBUTE11,
81     X_ATTRIBUTE12,
82     X_ATTRIBUTE13,
83     X_ATTRIBUTE14,
84     X_ATTRIBUTE15,
85     X_CREATION_DATE,
86     X_CREATED_BY,
87     X_LAST_UPDATE_DATE,
88     X_LAST_UPDATED_BY,
89     X_LAST_UPDATE_LOGIN,
90     X_STATUS_CODE,
91     X_SIMULATION_TYPE
92   );
93 
94   insert into AHL_SIMULATION_PLANS_TL (
95     SIMULATION_PLAN_ID,
96     LAST_UPDATE_DATE,
97     LAST_UPDATED_BY,
98     CREATION_DATE,
99     CREATED_BY,
100     LAST_UPDATE_LOGIN,
101     SIMULATION_PLAN_NAME,
102     DESCRIPTION,
103     LANGUAGE,
104     SOURCE_LANG
105   ) select
106     X_SIMULATION_PLAN_ID,
107     X_LAST_UPDATE_DATE,
108     X_LAST_UPDATED_BY,
109     X_CREATION_DATE,
110     X_CREATED_BY,
111     X_LAST_UPDATE_LOGIN,
112     X_SIMULATION_PLAN_NAME,
113     X_DESCRIPTION,
114     L.LANGUAGE_CODE,
115     userenv('LANG')
116   from FND_LANGUAGES L
117   where L.INSTALLED_FLAG in ('I', 'B')
118   and not exists
119     (select NULL
120     from AHL_SIMULATION_PLANS_TL T
121     where T.SIMULATION_PLAN_ID = X_SIMULATION_PLAN_ID
122     and T.LANGUAGE = L.LANGUAGE_CODE);
123 
124   open c;
125   fetch c into X_ROWID;
126   if (c%notfound) then
127     close c;
128     raise no_data_found;
129   end if;
130   close c;
131 
132 end INSERT_ROW;
133 
134 procedure LOCK_ROW (
135   X_SIMULATION_PLAN_ID in NUMBER,
136   X_OBJECT_VERSION_NUMBER in NUMBER,
137   X_PRIMARY_PLAN_FLAG in VARCHAR2,
138   X_ATTRIBUTE_CATEGORY in VARCHAR2,
139   X_ATTRIBUTE1 in VARCHAR2,
140   X_ATTRIBUTE2 in VARCHAR2,
141   X_ATTRIBUTE3 in VARCHAR2,
142   X_ATTRIBUTE4 in VARCHAR2,
143   X_ATTRIBUTE5 in VARCHAR2,
144   X_ATTRIBUTE6 in VARCHAR2,
145   X_ATTRIBUTE7 in VARCHAR2,
146   X_ATTRIBUTE8 in VARCHAR2,
147   X_ATTRIBUTE9 in VARCHAR2,
148   X_ATTRIBUTE10 in VARCHAR2,
149   X_ATTRIBUTE11 in VARCHAR2,
150   X_ATTRIBUTE12 in VARCHAR2,
151   X_ATTRIBUTE13 in VARCHAR2,
152   X_ATTRIBUTE14 in VARCHAR2,
153   X_ATTRIBUTE15 in VARCHAR2,
154   X_SIMULATION_PLAN_NAME in VARCHAR2,
155   X_DESCRIPTION in VARCHAR2,
156   X_STATUS_CODE in VARCHAR2,
157   X_SIMULATION_TYPE in VARCHAR2
158 ) is
159   cursor c is select
160       OBJECT_VERSION_NUMBER,
161       PRIMARY_PLAN_FLAG,
162       ATTRIBUTE_CATEGORY,
163       ATTRIBUTE1,
164       ATTRIBUTE2,
165       ATTRIBUTE3,
166       ATTRIBUTE4,
167       ATTRIBUTE5,
168       ATTRIBUTE6,
169       ATTRIBUTE7,
170       ATTRIBUTE8,
171       ATTRIBUTE9,
172       ATTRIBUTE10,
173       ATTRIBUTE11,
174       ATTRIBUTE12,
175       ATTRIBUTE13,
176       ATTRIBUTE14,
177       ATTRIBUTE15,
178       STATUS_CODE,
179       SIMULATION_TYPE
180     from AHL_SIMULATION_PLANS_B
181     where SIMULATION_PLAN_ID = X_SIMULATION_PLAN_ID
182     for update of SIMULATION_PLAN_ID nowait;
183   recinfo c%rowtype;
184 
185   cursor c1 is select
186       SIMULATION_PLAN_NAME,
187       DESCRIPTION,
188       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
189     from AHL_SIMULATION_PLANS_TL
190     where SIMULATION_PLAN_ID = X_SIMULATION_PLAN_ID
191     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
192     for update of SIMULATION_PLAN_ID nowait;
193 begin
194   open c;
195   fetch c into recinfo;
196   if (c%notfound) then
197     close c;
198     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
199     app_exception.raise_exception;
200   end if;
201   close c;
202   if (    (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
203       AND (recinfo.PRIMARY_PLAN_FLAG = X_PRIMARY_PLAN_FLAG)
204       AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
205            OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
206       AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
207            OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
208       AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
209            OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
210       AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
211            OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
212       AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
213            OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
214       AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
215            OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
216       AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
217            OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
218       AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
219            OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
220       AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
221            OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
222       AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
223            OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
224       AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
225            OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
226       AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
227            OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
228       AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
229            OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
230       AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
231            OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
232       AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
233            OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
234       AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
235            OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
236       AND ((recinfo.STATUS_CODE = X_STATUS_CODE)
237            OR ((recinfo.STATUS_CODE is null) AND (X_STATUS_CODE is null)))
238       AND ((recinfo.SIMULATION_TYPE = X_SIMULATION_TYPE)
239            OR ((recinfo.SIMULATION_TYPE is null) AND (X_SIMULATION_TYPE is null)))
240   ) then
241     null;
242   else
243     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
244     app_exception.raise_exception;
245   end if;
246 
247   for tlinfo in c1 loop
248     if (tlinfo.BASELANG = 'Y') then
249       if (    (tlinfo.SIMULATION_PLAN_NAME = X_SIMULATION_PLAN_NAME)
250           AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
251                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
252       ) then
253         null;
254       else
255         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
256         app_exception.raise_exception;
257       end if;
258     end if;
259   end loop;
260   return;
261 end LOCK_ROW;
262 
263 procedure UPDATE_ROW (
264   X_SIMULATION_PLAN_ID in NUMBER,
265   X_OBJECT_VERSION_NUMBER in NUMBER,
266   X_PRIMARY_PLAN_FLAG in VARCHAR2,
267   X_ATTRIBUTE_CATEGORY in VARCHAR2,
268   X_ATTRIBUTE1 in VARCHAR2,
269   X_ATTRIBUTE2 in VARCHAR2,
270   X_ATTRIBUTE3 in VARCHAR2,
271   X_ATTRIBUTE4 in VARCHAR2,
272   X_ATTRIBUTE5 in VARCHAR2,
273   X_ATTRIBUTE6 in VARCHAR2,
274   X_ATTRIBUTE7 in VARCHAR2,
275   X_ATTRIBUTE8 in VARCHAR2,
276   X_ATTRIBUTE9 in VARCHAR2,
277   X_ATTRIBUTE10 in VARCHAR2,
278   X_ATTRIBUTE11 in VARCHAR2,
279   X_ATTRIBUTE12 in VARCHAR2,
280   X_ATTRIBUTE13 in VARCHAR2,
281   X_ATTRIBUTE14 in VARCHAR2,
282   X_ATTRIBUTE15 in VARCHAR2,
283   X_SIMULATION_PLAN_NAME in VARCHAR2,
284   X_DESCRIPTION in VARCHAR2,
285   X_LAST_UPDATE_DATE in DATE,
286   X_LAST_UPDATED_BY in NUMBER,
287   X_LAST_UPDATE_LOGIN in NUMBER,
288   X_STATUS_CODE in VARCHAR2,
289   X_SIMULATION_TYPE in VARCHAR2
290 ) is
291 begin
292   update AHL_SIMULATION_PLANS_B set
293     OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
294     PRIMARY_PLAN_FLAG = X_PRIMARY_PLAN_FLAG,
295     ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
296     ATTRIBUTE1 = X_ATTRIBUTE1,
297     ATTRIBUTE2 = X_ATTRIBUTE2,
298     ATTRIBUTE3 = X_ATTRIBUTE3,
299     ATTRIBUTE4 = X_ATTRIBUTE4,
300     ATTRIBUTE5 = X_ATTRIBUTE5,
301     ATTRIBUTE6 = X_ATTRIBUTE6,
302     ATTRIBUTE7 = X_ATTRIBUTE7,
303     ATTRIBUTE8 = X_ATTRIBUTE8,
304     ATTRIBUTE9 = X_ATTRIBUTE9,
305     ATTRIBUTE10 = X_ATTRIBUTE10,
306     ATTRIBUTE11 = X_ATTRIBUTE11,
307     ATTRIBUTE12 = X_ATTRIBUTE12,
308     ATTRIBUTE13 = X_ATTRIBUTE13,
309     ATTRIBUTE14 = X_ATTRIBUTE14,
310     ATTRIBUTE15 = X_ATTRIBUTE15,
311     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
312     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
313     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
314     STATUS_CODE = X_STATUS_CODE,
315     SIMULATION_TYPE = X_SIMULATION_TYPE
316   where SIMULATION_PLAN_ID = X_SIMULATION_PLAN_ID;
317 
318   if (sql%notfound) then
319     raise no_data_found;
320   end if;
321 
322   update AHL_SIMULATION_PLANS_TL set
323     SIMULATION_PLAN_NAME = X_SIMULATION_PLAN_NAME,
324     DESCRIPTION = X_DESCRIPTION,
325     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
326     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
327     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
328     SOURCE_LANG = userenv('LANG')
329   where SIMULATION_PLAN_ID = X_SIMULATION_PLAN_ID
330   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
331 
332   if (sql%notfound) then
333     raise no_data_found;
334   end if;
335 end UPDATE_ROW;
336 
337 procedure DELETE_ROW (
338   X_SIMULATION_PLAN_ID in NUMBER
339 ) is
340 begin
341   delete from AHL_SIMULATION_PLANS_TL
342   where SIMULATION_PLAN_ID = X_SIMULATION_PLAN_ID;
343 
344   if (sql%notfound) then
345     raise no_data_found;
346   end if;
347 
348   delete from AHL_SIMULATION_PLANS_B
349   where SIMULATION_PLAN_ID = X_SIMULATION_PLAN_ID;
350 
351   if (sql%notfound) then
352     raise no_data_found;
353   end if;
354 end DELETE_ROW;
355 
356 procedure ADD_LANGUAGE
357 is
358 begin
359   delete from AHL_SIMULATION_PLANS_TL T
360   where not exists
361     (select NULL
362     from AHL_SIMULATION_PLANS_B B
363     where B.SIMULATION_PLAN_ID = T.SIMULATION_PLAN_ID
364     );
365 
366   update AHL_SIMULATION_PLANS_TL T set (
367       SIMULATION_PLAN_NAME,
368       DESCRIPTION
369     ) = (select
370       B.SIMULATION_PLAN_NAME,
371       B.DESCRIPTION
372     from AHL_SIMULATION_PLANS_TL B
373     where B.SIMULATION_PLAN_ID = T.SIMULATION_PLAN_ID
374     and B.LANGUAGE = T.SOURCE_LANG)
375   where (
376       T.SIMULATION_PLAN_ID,
377       T.LANGUAGE
378   ) in (select
379       SUBT.SIMULATION_PLAN_ID,
380       SUBT.LANGUAGE
381     from AHL_SIMULATION_PLANS_TL SUBB, AHL_SIMULATION_PLANS_TL SUBT
382     where SUBB.SIMULATION_PLAN_ID = SUBT.SIMULATION_PLAN_ID
383     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
384     and (SUBB.SIMULATION_PLAN_NAME <> SUBT.SIMULATION_PLAN_NAME
385       or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
386       or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
387       or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
388   ));
389 
390   insert into AHL_SIMULATION_PLANS_TL (
391     SIMULATION_PLAN_ID,
392     LAST_UPDATE_DATE,
396     LAST_UPDATE_LOGIN,
393     LAST_UPDATED_BY,
394     CREATION_DATE,
395     CREATED_BY,
397     SIMULATION_PLAN_NAME,
398     DESCRIPTION,
399     LANGUAGE,
400     SOURCE_LANG
401   ) select /*+ ORDERED */
402     B.SIMULATION_PLAN_ID,
403     B.LAST_UPDATE_DATE,
404     B.LAST_UPDATED_BY,
405     B.CREATION_DATE,
406     B.CREATED_BY,
407     B.LAST_UPDATE_LOGIN,
408     B.SIMULATION_PLAN_NAME,
409     B.DESCRIPTION,
410     L.LANGUAGE_CODE,
411     B.SOURCE_LANG
412   from AHL_SIMULATION_PLANS_TL B, FND_LANGUAGES L
413   where L.INSTALLED_FLAG in ('I', 'B')
414   and B.LANGUAGE = userenv('LANG')
415   and not exists
416     (select NULL
417     from AHL_SIMULATION_PLANS_TL T
418     where T.SIMULATION_PLAN_ID = B.SIMULATION_PLAN_ID
419     and T.LANGUAGE = L.LANGUAGE_CODE);
420 end ADD_LANGUAGE;
421 
422 PROCEDURE LOAD_ROW (
423   X_SIMULATION_PLAN_ID in NUMBER,
424   X_OBJECT_VERSION_NUMBER  in NUMBER,
425   X_PRIMARY_PLAN_FLAG  in VARCHAR2,
426   X_SIMULATION_PLAN_NAME in VARCHAR2,
427   X_DESCRIPTION in VARCHAR2,
428   X_OWNER       in    VARCHAR2,
429   X_ATTRIBUTE_CATEGORY in VARCHAR2,
430   X_ATTRIBUTE1 in VARCHAR2,
431   X_ATTRIBUTE2 in VARCHAR2,
432   X_ATTRIBUTE3 in VARCHAR2,
433   X_ATTRIBUTE4 in VARCHAR2,
434   X_ATTRIBUTE5 in VARCHAR2,
435   X_ATTRIBUTE6 in VARCHAR2,
436   X_ATTRIBUTE7 in VARCHAR2,
437   X_ATTRIBUTE8 in VARCHAR2,
438   X_ATTRIBUTE9 in VARCHAR2,
439   X_ATTRIBUTE10 in VARCHAR2,
440   X_ATTRIBUTE11 in VARCHAR2,
441   X_ATTRIBUTE12 in VARCHAR2,
442   X_ATTRIBUTE13 in VARCHAR2,
443   X_ATTRIBUTE14 in VARCHAR2,
444   X_ATTRIBUTE15 in VARCHAR2,
445   X_STATUS_CODE in VARCHAR2,
446   X_SIMULATION_TYPE in VARCHAR2)
447   IS
448 
449   CURSOR  c_obj_verno IS
450    SELECT  object_version_number
451   FROM    AHL_SIMULATION_PLANS_B
452   WHERE   simulation_plan_id =  X_SIMULATION_PLAN_ID;
453   --
454   CURSOR c_chk_simulation_exists IS
455     SELECT 'x'
456    FROM   AHL_SIMULATION_PLANS_B
457   WHERE  simulation_plan_id = X_SIMULATION_PLAN_ID;
458   --
459   CURSOR c_get_simulation_id IS
460     SELECT ahl_simulation_plans_b_s.NEXTVAL
461    FROM dual;
462   --
463   CURSOR c_chk_pri_plan_exists IS
464     SELECT 'x'
465     FROM AHL_SIMULATION_PLANS_B
466     WHERE primary_plan_flag = 'Y'
467     AND simulation_type = 'UMP';
468    --
469   l_user_id     NUMBER := 0;
470   l_obj_verno   NUMBER;
471   l_dummy_char  VARCHAR2(1);
472   l_row_id      VARCHAR2(100);
473   l_plan_id      NUMBER;
474   l_primary_plan_flag  VARCHAR2(1);
475   l_simulation_plan_name VARCHAR2(30);
476 
477   BEGIN
478 
479   IF X_OWNER = 'SEED' THEN
480      l_user_id := 1;
481   END IF;
482 
483  IF (X_PRIMARY_PLAN_FLAG = 'Y' AND X_SIMULATION_TYPE = 'UMP')
484  THEN
485     OPEN c_chk_pri_plan_exists;
486     FETCH c_chk_pri_plan_exists INTO l_dummy_char;
487     IF c_chk_pri_plan_exists%NOTFOUND
488     THEN
489        CLOSE c_chk_pri_plan_exists;
490     ELSE
491        CLOSE c_chk_pri_plan_exists;
492        --app_exception.raise_exception;
493        RETURN;
494     END IF;
495  END IF;
496 
497  OPEN c_chk_simulation_exists;
498  FETCH c_chk_simulation_exists INTO l_dummy_char;
499  IF c_chk_simulation_exists%NOTFOUND
500  THEN
501     CLOSE c_chk_simulation_exists;
502 
503     IF X_SIMULATION_PLAN_ID IS NULL THEN
504         OPEN c_get_simulation_id;
505         FETCH c_get_simulation_id INTO l_plan_id;
506         CLOSE c_get_simulation_id;
507     ELSE
508        l_plan_id := X_SIMULATION_PLAN_ID;
509     END IF ;
510 
511     l_obj_verno := 1;
512 
513     AHL_SIMULATION_PLANS_PKG.INSERT_ROW(
514      X_ROWID                       => l_row_id,
515      X_SIMULATION_PLAN_ID 	   => l_plan_id,
516      X_OBJECT_VERSION_NUMBER 	   => l_obj_verno,
517      X_PRIMARY_PLAN_FLAG           => X_PRIMARY_PLAN_FLAG,
518      X_SIMULATION_PLAN_NAME        => X_SIMULATION_PLAN_NAME,
519      X_ATTRIBUTE_CATEGORY 	   => X_ATTRIBUTE_CATEGORY,
520      X_ATTRIBUTE1		   =>  X_ATTRIBUTE1,
521      X_ATTRIBUTE2		   =>  X_ATTRIBUTE2,
522      X_ATTRIBUTE3		   =>  X_ATTRIBUTE3,
523      X_ATTRIBUTE4		   =>  X_ATTRIBUTE4,
524      X_ATTRIBUTE5		   =>  X_ATTRIBUTE5,
525      X_ATTRIBUTE6		   =>  X_ATTRIBUTE6,
526      X_ATTRIBUTE7		   =>  X_ATTRIBUTE7,
527      X_ATTRIBUTE8		   =>  X_ATTRIBUTE8,
528      X_ATTRIBUTE9		   =>  X_ATTRIBUTE9,
529      X_ATTRIBUTE10		   =>  X_ATTRIBUTE10,
530      X_ATTRIBUTE11		   =>  X_ATTRIBUTE11,
531      X_ATTRIBUTE12		   =>  X_ATTRIBUTE12,
532      X_ATTRIBUTE13		   =>  X_ATTRIBUTE13,
533      X_ATTRIBUTE14		   =>  X_ATTRIBUTE14,
534      X_ATTRIBUTE15		   =>  X_ATTRIBUTE15,
535      X_DESCRIPTION 		   => X_DESCRIPTION ,
536      X_CREATION_DATE 		   => SYSDATE,
537      X_CREATED_BY                  => l_user_id,
538      X_LAST_UPDATE_DATE            => SYSDATE,
539      X_LAST_UPDATED_BY             => l_user_id,
540      X_LAST_UPDATE_LOGIN           => 0,
541      X_STATUS_CODE                 => X_STATUS_CODE,
542      X_SIMULATION_TYPE             => X_SIMULATION_TYPE);
543 
544 
545 ELSE
546    CLOSE c_chk_simulation_exists;
547    OPEN c_obj_verno;
548    FETCH c_obj_verno INTO l_obj_verno;
549    CLOSE c_obj_verno;
550 
551    AHL_SIMULATION_PLANS_PKG.UPDATE_ROW(
552 
553      X_SIMULATION_PLAN_ID 	=> X_SIMULATION_PLAN_ID,
554      X_OBJECT_VERSION_NUMBER 	=> l_obj_verno + 1,
555      X_PRIMARY_PLAN_FLAG	=> X_PRIMARY_PLAN_FLAG ,
556      X_ATTRIBUTE_CATEGORY 	=> X_ATTRIBUTE_CATEGORY,
557      X_ATTRIBUTE1		=>  X_ATTRIBUTE1,
561      X_ATTRIBUTE5		=>  X_ATTRIBUTE5,
558      X_ATTRIBUTE2		=>  X_ATTRIBUTE2,
559      X_ATTRIBUTE3		=>  X_ATTRIBUTE3,
560      X_ATTRIBUTE4		=>  X_ATTRIBUTE4,
562      X_ATTRIBUTE6		=>  X_ATTRIBUTE6,
563      X_ATTRIBUTE7		=>  X_ATTRIBUTE7,
564      X_ATTRIBUTE8		=>  X_ATTRIBUTE8,
565      X_ATTRIBUTE9		=>  X_ATTRIBUTE9,
566      X_ATTRIBUTE10		=>  X_ATTRIBUTE10,
567      X_ATTRIBUTE11		=>  X_ATTRIBUTE11,
568      X_ATTRIBUTE12		=>  X_ATTRIBUTE12,
569      X_ATTRIBUTE13		=>  X_ATTRIBUTE13,
570      X_ATTRIBUTE14		=>  X_ATTRIBUTE14,
571      X_ATTRIBUTE15		=>  X_ATTRIBUTE15,
572      X_SIMULATION_PLAN_NAME     =>  X_SIMULATION_PLAN_NAME,
573      X_DESCRIPTION 	        =>  X_DESCRIPTION ,
574      X_LAST_UPDATE_DATE         => SYSDATE,
575      X_LAST_UPDATED_BY          => l_user_id,
576      X_LAST_UPDATE_LOGIN        => 0,
577      X_STATUS_CODE     => X_STATUS_CODE,
578      X_SIMULATION_TYPE => X_SIMULATION_TYPE);
579 
580 
581 END IF;
582 END LOAD_ROW;
583 --
584 procedure TRANSLATE_ROW(
585        x_simulation_plan_id    in NUMBER
586      , x_simulation_plan_name  in VARCHAR2
587      , x_description           in VARCHAR2
588      , x_owner                 in VARCHAR2
589  ) is
590  begin
591     update AHL_SIMULATION_PLANS_TL set
592        simulation_plan_name = nvl(x_simulation_plan_name, simulation_plan_name),
593        description = nvl(x_description, description),
594        source_lang = userenv('LANG'),
595        last_update_date = sysdate,
596        last_updated_by = decode(x_owner, 'SEED', 1, 0),
597        last_update_login = 0
598     where  simulation_plan_id = x_simulation_plan_id
599     and      userenv('LANG') in (language, source_lang);
600 
601 end TRANSLATE_ROW;
602 
603 
604 end AHL_SIMULATION_PLANS_PKG;