DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMW_CONTROLS_PKG

Source


1 package body AMW_CONTROLS_PKG as
2 /* $Header: amwcnthb.pls 120.0 2005/05/31 19:34:11 appldev noship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out NOCOPY VARCHAR2,
5   X_CONTROL_REV_ID in NUMBER,
6   X_OBJECT_VERSION_NUMBER in NUMBER,
7   X_ORIG_SYSTEM_REFERENCE in VARCHAR2,
8   X_LATEST_REVISION_FLAG in VARCHAR2,
9   X_REQUESTOR_ID in NUMBER,
10   X_CONTROL_ID in NUMBER,
11   X_APPROVAL_STATUS in VARCHAR2,
12   X_AUTOMATION_TYPE in VARCHAR2,
13   X_APPLICATION_ID in NUMBER,
14   X_JOB_ID in NUMBER,
15   X_CREATED_BY_MODULE in VARCHAR2,
16   X_ATTRIBUTE14 in VARCHAR2,
17   X_ATTRIBUTE13 in VARCHAR2,
18   X_ATTRIBUTE15 in VARCHAR2,
19   X_SECURITY_GROUP_ID in NUMBER,
20   X_CONTROL_LOCATION in VARCHAR2,
21   X_REV_NUM in NUMBER,
22   X_APPROVAL_DATE in DATE,
23   X_CONTROL_TYPE in VARCHAR2,
24   X_CATEGORY in VARCHAR2,
25   X_SOURCE in VARCHAR2,
26   X_ATTRIBUTE_CATEGORY in VARCHAR2,
27   X_ATTRIBUTE1 in VARCHAR2,
28   X_ATTRIBUTE2 in VARCHAR2,
29   X_ATTRIBUTE3 in VARCHAR2,
30   X_ATTRIBUTE4 in VARCHAR2,
31   X_ATTRIBUTE5 in VARCHAR2,
32   X_ATTRIBUTE6 in VARCHAR2,
33   X_ATTRIBUTE7 in VARCHAR2,
34   X_ATTRIBUTE8 in VARCHAR2,
35   X_ATTRIBUTE9 in VARCHAR2,
36   X_ATTRIBUTE10 in VARCHAR2,
37   X_ATTRIBUTE11 in VARCHAR2,
38   X_ATTRIBUTE12 in VARCHAR2,
39   X_END_DATE in DATE,
40   X_CURR_APPROVED_FLAG in VARCHAR2,
41   X_NAME in VARCHAR2,
42   X_DESCRIPTION in VARCHAR2,
43   X_PHYSICAL_EVIDENCE in VARCHAR2,
44   X_CREATION_DATE in DATE,
45   X_CREATED_BY in NUMBER,
46   X_LAST_UPDATE_DATE in DATE,
47   X_LAST_UPDATED_BY in NUMBER,
48   X_LAST_UPDATE_LOGIN in NUMBER,
49   x_preventive_control in varchar2 := null,
50   x_detective_control in varchar2 := null,
51   x_disclosure_control in varchar2 := null,
52   x_key_mitigating in varchar2 := null,
53   x_verification_source in varchar2 := null,
54   x_verification_source_name in varchar2 := null,
55   x_verification_instruction in varchar2 := null,
56   x_uom_code in varchar2 := null,
57   x_control_frequency in number := NULL,
58   ---NPANANDI 12.10.2004: ADDED BELOW FOR CTRL CLASSIFICATION
59   x_classification IN NUMBER DEFAULT NULL
60 ) is
61   cursor C is select ROWID from AMW_CONTROLS_B
62     where CONTROL_REV_ID = X_CONTROL_REV_ID
63     ;
64 begin
65   insert into AMW_CONTROLS_B (
66     OBJECT_VERSION_NUMBER,
67     CONTROL_REV_ID,
68     ORIG_SYSTEM_REFERENCE,
69     LATEST_REVISION_FLAG,
70     REQUESTOR_ID,
71     CONTROL_ID,
72     APPROVAL_STATUS,
73     AUTOMATION_TYPE,
74     APPLICATION_ID,
75     JOB_ID,
76     CREATED_BY_MODULE,
77     ATTRIBUTE14,
78     ATTRIBUTE13,
79     ATTRIBUTE15,
80     SECURITY_GROUP_ID,
81     CONTROL_LOCATION,
82     REV_NUM,
83     APPROVAL_DATE,
84     CONTROL_TYPE,
85     CATEGORY,
86     SOURCE,
87     ATTRIBUTE_CATEGORY,
88     ATTRIBUTE1,
89     ATTRIBUTE2,
90     ATTRIBUTE3,
91     ATTRIBUTE4,
92     ATTRIBUTE5,
93     ATTRIBUTE6,
94     ATTRIBUTE7,
95     ATTRIBUTE8,
96     ATTRIBUTE9,
97     ATTRIBUTE10,
98     ATTRIBUTE11,
99     ATTRIBUTE12,
100     END_DATE,
101     CURR_APPROVED_FLAG,
102     CREATION_DATE,
103     CREATED_BY,
104     LAST_UPDATE_DATE,
105     LAST_UPDATED_BY,
106     LAST_UPDATE_LOGIN,
107 	preventive_control,
108 	detective_control,
109 	disclosure_control,
110     key_mitigating,
111 	verification_source,
112 	uom_code,
113 	control_frequency,
114 	---npanandi 12.10.2004: added below for Ctrl Classification
115     classification
116   ) values (
117     X_OBJECT_VERSION_NUMBER,
118     X_CONTROL_REV_ID,
119     X_ORIG_SYSTEM_REFERENCE,
120     X_LATEST_REVISION_FLAG,
121     X_REQUESTOR_ID,
122     X_CONTROL_ID,
123     X_APPROVAL_STATUS,
124     X_AUTOMATION_TYPE,
125     X_APPLICATION_ID,
126     X_JOB_ID,
127     X_CREATED_BY_MODULE,
128     X_ATTRIBUTE14,
129     X_ATTRIBUTE13,
130     X_ATTRIBUTE15,
131     X_SECURITY_GROUP_ID,
132     X_CONTROL_LOCATION,
133     X_REV_NUM,
134     X_APPROVAL_DATE,
135     X_CONTROL_TYPE,
136     X_CATEGORY,
137     X_SOURCE,
138     X_ATTRIBUTE_CATEGORY,
139     X_ATTRIBUTE1,
140     X_ATTRIBUTE2,
141     X_ATTRIBUTE3,
142     X_ATTRIBUTE4,
143     X_ATTRIBUTE5,
144     X_ATTRIBUTE6,
145     X_ATTRIBUTE7,
146     X_ATTRIBUTE8,
147     X_ATTRIBUTE9,
148     X_ATTRIBUTE10,
149     X_ATTRIBUTE11,
150     X_ATTRIBUTE12,
151     X_END_DATE,
152     X_CURR_APPROVED_FLAG,
153     X_CREATION_DATE,
154     X_CREATED_BY,
155     X_LAST_UPDATE_DATE,
156     X_LAST_UPDATED_BY,
157     X_LAST_UPDATE_LOGIN,
158 	x_preventive_control,
159 	x_detective_control,
160 	x_disclosure_control,
161     x_key_mitigating,
162 	x_verification_source,
163 	X_UOM_CODE,
164 	X_CONTROL_FREQUENCY,
165 	---npanandi 12.10.2004: added below for Ctrl Classification
166     x_classification
167   );
168 
169   insert into AMW_CONTROLS_TL (
170     CONTROL_REV_ID,
171     NAME,
172     DESCRIPTION,
173     PHYSICAL_EVIDENCE,
174     LAST_UPDATE_DATE,
175     LAST_UPDATED_BY,
176     CREATION_DATE,
177     CREATED_BY,
178     LAST_UPDATE_LOGIN,
179     SECURITY_GROUP_ID,
180     OBJECT_VERSION_NUMBER,
181     LANGUAGE,
182     SOURCE_LANG,
183     verification_source_name,
184     verification_instruction
185   ) select
186     X_CONTROL_REV_ID,
187     X_NAME,
188     X_DESCRIPTION,
189     X_PHYSICAL_EVIDENCE,
190     X_LAST_UPDATE_DATE,
191     X_LAST_UPDATED_BY,
192     X_CREATION_DATE,
193     X_CREATED_BY,
194     X_LAST_UPDATE_LOGIN,
195     X_SECURITY_GROUP_ID,
196     X_OBJECT_VERSION_NUMBER,
197     L.LANGUAGE_CODE,
198     userenv('LANG'),
199     x_verification_source_name,
200     x_verification_instruction
201   from FND_LANGUAGES L
202   where L.INSTALLED_FLAG in ('I', 'B')
203   and not exists
204     (select NULL
205     from AMW_CONTROLS_TL T
206     where T.CONTROL_REV_ID = X_CONTROL_REV_ID
207     and T.LANGUAGE = L.LANGUAGE_CODE);
208 
209   open c;
210   fetch c into X_ROWID;
211   if (c%notfound) then
212     close c;
213     raise no_data_found;
214   end if;
215   close c;
216 
217 end INSERT_ROW;
218 
219 procedure LOCK_ROW (
220   X_CONTROL_REV_ID in NUMBER,
221   X_OBJECT_VERSION_NUMBER in NUMBER,
222   X_ORIG_SYSTEM_REFERENCE in VARCHAR2,
223   X_LATEST_REVISION_FLAG in VARCHAR2,
224   X_REQUESTOR_ID in NUMBER,
225   X_CONTROL_ID in NUMBER,
226   X_APPROVAL_STATUS in VARCHAR2,
227   X_AUTOMATION_TYPE in VARCHAR2,
228   X_APPLICATION_ID in NUMBER,
229   X_JOB_ID in NUMBER,
230   X_CREATED_BY_MODULE in VARCHAR2,
231   X_ATTRIBUTE14 in VARCHAR2,
232   X_ATTRIBUTE13 in VARCHAR2,
233   X_ATTRIBUTE15 in VARCHAR2,
234   X_SECURITY_GROUP_ID in NUMBER,
235   X_CONTROL_LOCATION in VARCHAR2,
236   X_REV_NUM in NUMBER,
237   X_APPROVAL_DATE in DATE,
238   X_CONTROL_TYPE in VARCHAR2,
239   X_CATEGORY in VARCHAR2,
240   X_SOURCE in VARCHAR2,
241   X_ATTRIBUTE_CATEGORY in VARCHAR2,
242   X_ATTRIBUTE1 in VARCHAR2,
243   X_ATTRIBUTE2 in VARCHAR2,
244   X_ATTRIBUTE3 in VARCHAR2,
245   X_ATTRIBUTE4 in VARCHAR2,
246   X_ATTRIBUTE5 in VARCHAR2,
247   X_ATTRIBUTE6 in VARCHAR2,
248   X_ATTRIBUTE7 in VARCHAR2,
249   X_ATTRIBUTE8 in VARCHAR2,
250   X_ATTRIBUTE9 in VARCHAR2,
251   X_ATTRIBUTE10 in VARCHAR2,
252   X_ATTRIBUTE11 in VARCHAR2,
253   X_ATTRIBUTE12 in VARCHAR2,
254   X_END_DATE in DATE,
255   X_CURR_APPROVED_FLAG in VARCHAR2,
256   X_NAME in VARCHAR2,
257   X_DESCRIPTION in VARCHAR2,
258   X_PHYSICAL_EVIDENCE in VARCHAR2,
259   x_preventive_control in varchar2,
260   x_detective_control in varchar2,
261   x_disclosure_control in varchar2,
262   x_key_mitigating in varchar2,
263   x_verification_source in varchar2,
264   x_verification_source_name in varchar2,
265   x_verification_instruction in varchar2,
266   x_uom_code in varchar2,
267   x_control_frequency in number,
268   ---npanandi 12.10.2004: added below for Ctrl Classification
269   x_classification in number
270 ) is
271   cursor c is select
272       OBJECT_VERSION_NUMBER,
273       ORIG_SYSTEM_REFERENCE,
274       LATEST_REVISION_FLAG,
275       REQUESTOR_ID,
276       CONTROL_ID,
277       APPROVAL_STATUS,
278       AUTOMATION_TYPE,
279       APPLICATION_ID,
280       JOB_ID,
281       CREATED_BY_MODULE,
282       ATTRIBUTE14,
283       ATTRIBUTE13,
284       ATTRIBUTE15,
285       SECURITY_GROUP_ID,
286       CONTROL_LOCATION,
287       REV_NUM,
288       APPROVAL_DATE,
289       CONTROL_TYPE,
290       CATEGORY,
291       SOURCE,
292       ATTRIBUTE_CATEGORY,
293       ATTRIBUTE1,
294       ATTRIBUTE2,
295       ATTRIBUTE3,
296       ATTRIBUTE4,
297       ATTRIBUTE5,
298       ATTRIBUTE6,
299       ATTRIBUTE7,
300       ATTRIBUTE8,
301       ATTRIBUTE9,
302       ATTRIBUTE10,
303       ATTRIBUTE11,
304       ATTRIBUTE12,
305       END_DATE,
306       CURR_APPROVED_FLAG,
307 	  preventive_control,
308   	  detective_control,
309 	  disclosure_control,
310       key_mitigating,
311 	  verification_source,
312 	  UOM_CODE,
313 	  CONTROL_FREQUENCY,
314 	  ---npanandi 12.10.2004: added below for Ctrl Classification
315       classification
316     from AMW_CONTROLS_B
317     where CONTROL_REV_ID = X_CONTROL_REV_ID
318     for update of CONTROL_REV_ID nowait;
319   recinfo c%rowtype;
320 
321   cursor c1 is select
322       NAME,
323       DESCRIPTION,
324       PHYSICAL_EVIDENCE,
325       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG,
326       verification_source_name,
327       verification_instruction
328     from AMW_CONTROLS_TL
329     where CONTROL_REV_ID = X_CONTROL_REV_ID
330     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
331     for update of CONTROL_REV_ID nowait;
332 begin
333   open c;
334   fetch c into recinfo;
335   if (c%notfound) then
336     close c;
337     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
338     app_exception.raise_exception;
339   end if;
340   close c;
341   if (    ((recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
342            OR ((recinfo.OBJECT_VERSION_NUMBER is null) AND (X_OBJECT_VERSION_NUMBER is null)))
343       AND ((recinfo.ORIG_SYSTEM_REFERENCE = X_ORIG_SYSTEM_REFERENCE)
344            OR ((recinfo.ORIG_SYSTEM_REFERENCE is null) AND (X_ORIG_SYSTEM_REFERENCE is null)))
345       AND ((recinfo.LATEST_REVISION_FLAG = X_LATEST_REVISION_FLAG)
346            OR ((recinfo.LATEST_REVISION_FLAG is null) AND (X_LATEST_REVISION_FLAG is null)))
347       AND ((recinfo.REQUESTOR_ID = X_REQUESTOR_ID)
348            OR ((recinfo.REQUESTOR_ID is null) AND (X_REQUESTOR_ID is null)))
349       AND (recinfo.CONTROL_ID = X_CONTROL_ID)
350       AND ((recinfo.APPROVAL_STATUS = X_APPROVAL_STATUS)
351            OR ((recinfo.APPROVAL_STATUS is null) AND (X_APPROVAL_STATUS is null)))
352       AND ((recinfo.AUTOMATION_TYPE = X_AUTOMATION_TYPE)
353            OR ((recinfo.AUTOMATION_TYPE is null) AND (X_AUTOMATION_TYPE is null)))
354       AND ((recinfo.APPLICATION_ID = X_APPLICATION_ID)
355            OR ((recinfo.APPLICATION_ID is null) AND (X_APPLICATION_ID is null)))
356       AND ((recinfo.JOB_ID = X_JOB_ID)
357            OR ((recinfo.JOB_ID is null) AND (X_JOB_ID is null)))
358       AND ((recinfo.CREATED_BY_MODULE = X_CREATED_BY_MODULE)
359            OR ((recinfo.CREATED_BY_MODULE is null) AND (X_CREATED_BY_MODULE is null)))
360       AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
361            OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
362       AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
363            OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
364       AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
365            OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
366       AND ((recinfo.SECURITY_GROUP_ID = X_SECURITY_GROUP_ID)
367            OR ((recinfo.SECURITY_GROUP_ID is null) AND (X_SECURITY_GROUP_ID is null)))
368       AND ((recinfo.CONTROL_LOCATION = X_CONTROL_LOCATION)
369            OR ((recinfo.CONTROL_LOCATION is null) AND (X_CONTROL_LOCATION is null)))
370       AND (recinfo.REV_NUM = X_REV_NUM)
371       AND ((recinfo.APPROVAL_DATE = X_APPROVAL_DATE)
372            OR ((recinfo.APPROVAL_DATE is null) AND (X_APPROVAL_DATE is null)))
373       AND ((recinfo.CONTROL_TYPE = X_CONTROL_TYPE)
374            OR ((recinfo.CONTROL_TYPE is null) AND (X_CONTROL_TYPE is null)))
375       AND ((recinfo.CATEGORY = X_CATEGORY)
376            OR ((recinfo.CATEGORY is null) AND (X_CATEGORY is null)))
377       AND ((recinfo.SOURCE = X_SOURCE)
378            OR ((recinfo.SOURCE is null) AND (X_SOURCE is null)))
379       AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
380            OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
381       AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
382            OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
383       AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
384            OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
385       AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
386            OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
387       AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
388            OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
389       AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
390            OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
391       AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
392            OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
393       AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
394            OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
395       AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
396            OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
397       AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
398            OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
399       AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
400            OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
401       AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
402            OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
403       AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
404            OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
405       AND ((recinfo.END_DATE = X_END_DATE)
406            OR ((recinfo.END_DATE is null) AND (X_END_DATE is null)))
407 	  AND ((recinfo.preventive_control = X_preventive_control)
408            OR ((recinfo.preventive_control is null) AND (X_preventive_control is null)))
409       AND ((recinfo.detective_control = X_detective_control)
410            OR ((recinfo.detective_control is null) AND (X_detective_control is null)))
411  	  AND ((recinfo.disclosure_control = X_disclosure_control)
412            OR ((recinfo.disclosure_control is null) AND (X_disclosure_control is null)))
413       AND ((recinfo.key_mitigating = X_key_mitigating)
414            OR ((recinfo.key_mitigating is null) AND (X_key_mitigating is null)))
415       AND ((recinfo.verification_source = X_verification_source)
416            OR ((recinfo.verification_source is null) AND (X_verification_source is null)))
417       AND ((recinfo.UOM_CODE = X_UOM_CODE)
418            OR ((recinfo.UOM_CODE is null) AND (X_UOM_CODE is null)))
419 	  AND ((recinfo.CONTROL_FREQUENCY = X_CONTROL_FREQUENCY)
420            OR ((recinfo.CONTROL_FREQUENCY is null) AND (X_CONTROL_FREQUENCY is null)))
421       ---npanandi 12.10.2004: added below AND clause for Ctrl Classification
422       AND ((recinfo.CLASSIFICATION = X_CLASSIFICATION)
423            OR ((recinfo.CLASSIFICATION is null) AND (X_CLASSIFICATION is null)))
424       AND ((recinfo.CURR_APPROVED_FLAG = X_CURR_APPROVED_FLAG)
425            OR ((recinfo.CURR_APPROVED_FLAG is null) AND (X_CURR_APPROVED_FLAG is null)))
426   ) then
427     null;
428   else
429     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
430     app_exception.raise_exception;
431   end if;
432 
433   for tlinfo in c1 loop
434     if (tlinfo.BASELANG = 'Y') then
435       if (    (tlinfo.NAME = X_NAME)
436           AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
437                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
438           AND ((tlinfo.PHYSICAL_EVIDENCE = X_PHYSICAL_EVIDENCE)
439                OR ((tlinfo.PHYSICAL_EVIDENCE is null) AND (X_PHYSICAL_EVIDENCE is null)))
440  		  AND ((tlinfo.verification_source_name = X_verification_source_name)
441                OR ((tlinfo.verification_source_name is null) AND (X_verification_source_name is null)))
442  		  AND ((tlinfo.verification_instruction = X_verification_instruction)
443                OR ((tlinfo.verification_instruction is null) AND (X_verification_instruction is null)))
444       ) then
445         null;
446       else
447         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
448         app_exception.raise_exception;
449       end if;
450     end if;
451   end loop;
452   return;
453 end LOCK_ROW;
454 
455 procedure UPDATE_ROW (
456   X_CONTROL_REV_ID in NUMBER,
457   X_OBJECT_VERSION_NUMBER in NUMBER,
458   X_ORIG_SYSTEM_REFERENCE in VARCHAR2,
459   X_LATEST_REVISION_FLAG in VARCHAR2,
460   X_REQUESTOR_ID in NUMBER,
461   X_CONTROL_ID in NUMBER,
462   X_APPROVAL_STATUS in VARCHAR2,
463   X_AUTOMATION_TYPE in VARCHAR2,
464   X_APPLICATION_ID in NUMBER,
465   X_JOB_ID in NUMBER,
466   X_CREATED_BY_MODULE in VARCHAR2,
467   X_ATTRIBUTE14 in VARCHAR2,
468   X_ATTRIBUTE13 in VARCHAR2,
469   X_ATTRIBUTE15 in VARCHAR2,
470   X_SECURITY_GROUP_ID in NUMBER,
471   X_CONTROL_LOCATION in VARCHAR2,
472   X_REV_NUM in NUMBER,
473   X_APPROVAL_DATE in DATE,
474   X_CONTROL_TYPE in VARCHAR2,
475   X_CATEGORY in VARCHAR2,
476   X_SOURCE in VARCHAR2,
477   X_ATTRIBUTE_CATEGORY in VARCHAR2,
478   X_ATTRIBUTE1 in VARCHAR2,
479   X_ATTRIBUTE2 in VARCHAR2,
480   X_ATTRIBUTE3 in VARCHAR2,
481   X_ATTRIBUTE4 in VARCHAR2,
482   X_ATTRIBUTE5 in VARCHAR2,
483   X_ATTRIBUTE6 in VARCHAR2,
484   X_ATTRIBUTE7 in VARCHAR2,
485   X_ATTRIBUTE8 in VARCHAR2,
486   X_ATTRIBUTE9 in VARCHAR2,
487   X_ATTRIBUTE10 in VARCHAR2,
488   X_ATTRIBUTE11 in VARCHAR2,
489   X_ATTRIBUTE12 in VARCHAR2,
490   X_END_DATE in DATE,
491   X_CURR_APPROVED_FLAG in VARCHAR2,
492   X_NAME in VARCHAR2,
493   X_DESCRIPTION in VARCHAR2,
494   X_PHYSICAL_EVIDENCE in VARCHAR2,
495   X_LAST_UPDATE_DATE in DATE,
496   X_LAST_UPDATED_BY in NUMBER,
497   X_LAST_UPDATE_LOGIN in NUMBER,
498   x_preventive_control in varchar2 := null,
499   x_detective_control in varchar2 := null,
500   x_disclosure_control in varchar2 := null,
501   x_key_mitigating in varchar2 := null,
502   x_verification_source in varchar2 := null,
503   x_verification_source_name in varchar2 := null,
504   x_verification_instruction in varchar2 := null,
505   X_UOM_CODE IN VARCHAR2 := NULL,
506   X_CONTROL_FREQUENCY IN NUMBER := NULL,
507   ---npanandi 12.10.2004: added below AND clause for Ctrl Classification
508   X_classification IN NUMBER default null
509 ) is
510 begin
511   update AMW_CONTROLS_B set
512     OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
513     ORIG_SYSTEM_REFERENCE = X_ORIG_SYSTEM_REFERENCE,
514     LATEST_REVISION_FLAG = X_LATEST_REVISION_FLAG,
515     REQUESTOR_ID = X_REQUESTOR_ID,
516     CONTROL_ID = X_CONTROL_ID,
517     APPROVAL_STATUS = X_APPROVAL_STATUS,
518     AUTOMATION_TYPE = X_AUTOMATION_TYPE,
519     APPLICATION_ID = X_APPLICATION_ID,
520     JOB_ID = X_JOB_ID,
521     CREATED_BY_MODULE = X_CREATED_BY_MODULE,
522     ATTRIBUTE14 = X_ATTRIBUTE14,
523     ATTRIBUTE13 = X_ATTRIBUTE13,
524     ATTRIBUTE15 = X_ATTRIBUTE15,
525     SECURITY_GROUP_ID = X_SECURITY_GROUP_ID,
526     CONTROL_LOCATION = X_CONTROL_LOCATION,
527     REV_NUM = X_REV_NUM,
528     APPROVAL_DATE = X_APPROVAL_DATE,
529     CONTROL_TYPE = X_CONTROL_TYPE,
530     CATEGORY = X_CATEGORY,
531     SOURCE = X_SOURCE,
532     ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
533     ATTRIBUTE1 = X_ATTRIBUTE1,
534     ATTRIBUTE2 = X_ATTRIBUTE2,
535     ATTRIBUTE3 = X_ATTRIBUTE3,
536     ATTRIBUTE4 = X_ATTRIBUTE4,
537     ATTRIBUTE5 = X_ATTRIBUTE5,
538     ATTRIBUTE6 = X_ATTRIBUTE6,
539     ATTRIBUTE7 = X_ATTRIBUTE7,
540     ATTRIBUTE8 = X_ATTRIBUTE8,
541     ATTRIBUTE9 = X_ATTRIBUTE9,
542     ATTRIBUTE10 = X_ATTRIBUTE10,
543     ATTRIBUTE11 = X_ATTRIBUTE11,
544     ATTRIBUTE12 = X_ATTRIBUTE12,
545     END_DATE = X_END_DATE,
546     CURR_APPROVED_FLAG = X_CURR_APPROVED_FLAG,
547     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
548     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
549     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
550 	preventive_control = x_preventive_control,
551 	detective_control = x_detective_control,
552 	disclosure_control = x_disclosure_control,
556 	CONTROL_FREQUENCY = X_CONTROL_FREQUENCY,
553 	key_mitigating = x_key_mitigating,
554 	verification_source = x_verification_source,
555 	UOM_CODE = X_UOM_CODE,
557 	---npanandi 12.10.2004: added below for Ctrl Classification
558     classification = X_classification
559   where CONTROL_REV_ID = X_CONTROL_REV_ID;
560 
561   if (sql%notfound) then
562     raise no_data_found;
563   end if;
564 
565   update AMW_CONTROLS_TL set
566     NAME = X_NAME,
567     DESCRIPTION = X_DESCRIPTION,
568     PHYSICAL_EVIDENCE = X_PHYSICAL_EVIDENCE,
569     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
570     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
571     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
572     SOURCE_LANG = userenv('LANG'),
573 	verification_source_name = x_verification_source_name,
574 	verification_instruction = x_verification_instruction
575   where CONTROL_REV_ID = X_CONTROL_REV_ID
576   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
577 
578   if (sql%notfound) then
579     raise no_data_found;
580   end if;
581 end UPDATE_ROW;
582 
583 procedure DELETE_ROW (
584   X_CONTROL_REV_ID in NUMBER
585 ) is
586 begin
587   delete from AMW_CONTROLS_TL
588   where CONTROL_REV_ID = X_CONTROL_REV_ID;
589 
590   if (sql%notfound) then
591     raise no_data_found;
592   end if;
593 
594   delete from AMW_CONTROLS_B
595   where CONTROL_REV_ID = X_CONTROL_REV_ID;
596 
597   if (sql%notfound) then
598     raise no_data_found;
599   end if;
600 end DELETE_ROW;
601 
602 procedure ADD_LANGUAGE
603 is
604 begin
605   delete from AMW_CONTROLS_TL T
606   where not exists
607     (select NULL
608     from AMW_CONTROLS_B B
609     where B.CONTROL_REV_ID = T.CONTROL_REV_ID
610     );
611 
612   update AMW_CONTROLS_TL T set (
613       NAME,
614       DESCRIPTION,
615       PHYSICAL_EVIDENCE,
616 	  verification_source_name,
617 	  verification_instruction
618     ) = (select
619       B.NAME,
620       B.DESCRIPTION,
621       B.PHYSICAL_EVIDENCE,
622 	  B.verification_source_name,
623 	  B.verification_instruction
624     from AMW_CONTROLS_TL B
625     where B.CONTROL_REV_ID = T.CONTROL_REV_ID
626     and B.LANGUAGE = T.SOURCE_LANG)
627   where (
628       T.CONTROL_REV_ID,
629       T.LANGUAGE
630   ) in (select
631       SUBT.CONTROL_REV_ID,
632       SUBT.LANGUAGE
633     from AMW_CONTROLS_TL SUBB, AMW_CONTROLS_TL SUBT
634     where SUBB.CONTROL_REV_ID = SUBT.CONTROL_REV_ID
635     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
636     and (SUBB.NAME <> SUBT.NAME
637       or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
638       or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
639       or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
640       or SUBB.PHYSICAL_EVIDENCE <> SUBT.PHYSICAL_EVIDENCE
641       or (SUBB.PHYSICAL_EVIDENCE is null and SUBT.PHYSICAL_EVIDENCE is not null)
642       or (SUBB.PHYSICAL_EVIDENCE is not null and SUBT.PHYSICAL_EVIDENCE is null)
643 	  or SUBB.verification_source_name <> SUBT.verification_source_name
644       or (SUBB.verification_source_name is null and SUBT.verification_source_name is not null)
645       or (SUBB.verification_source_name is not null and SUBT.verification_source_name is null)
646 	  or SUBB.verification_instruction <> SUBT.verification_instruction
647       or (SUBB.verification_instruction is null and SUBT.verification_instruction is not null)
648       or (SUBB.verification_instruction is not null and SUBT.verification_instruction is null)
649   ));
650 
651   insert into AMW_CONTROLS_TL (
652     CONTROL_REV_ID,
653     NAME,
654     DESCRIPTION,
655     PHYSICAL_EVIDENCE,
656     LAST_UPDATE_DATE,
657     LAST_UPDATED_BY,
658     CREATION_DATE,
659     CREATED_BY,
660     LAST_UPDATE_LOGIN,
661     SECURITY_GROUP_ID,
662     OBJECT_VERSION_NUMBER,
663     LANGUAGE,
664     SOURCE_LANG,
665 	verification_source_name,
666 	verification_instruction
667   ) select
668     B.CONTROL_REV_ID,
669     B.NAME,
670     B.DESCRIPTION,
671     B.PHYSICAL_EVIDENCE,
672     B.LAST_UPDATE_DATE,
673     B.LAST_UPDATED_BY,
674     B.CREATION_DATE,
675     B.CREATED_BY,
676     B.LAST_UPDATE_LOGIN,
677     B.SECURITY_GROUP_ID,
678     B.OBJECT_VERSION_NUMBER,
679     L.LANGUAGE_CODE,
680     B.SOURCE_LANG,
681 	B.verification_source_name,
682 	B.verification_instruction
683   from AMW_CONTROLS_TL B, FND_LANGUAGES L
684   where L.INSTALLED_FLAG in ('I', 'B')
685   and B.LANGUAGE = userenv('LANG')
686   and not exists
687     (select NULL
688     from AMW_CONTROLS_TL T
689     where T.CONTROL_REV_ID = B.CONTROL_REV_ID
690     and T.LANGUAGE = L.LANGUAGE_CODE);
691 end ADD_LANGUAGE;
692 
693 end AMW_CONTROLS_PKG;