DBA Data[Home] [Help]

PACKAGE BODY: APPS.FND_ATTACHED_DOCUMENTS3_PKG

Source


1 PACKAGE BODY fnd_attached_documents3_pkg as
2 /* $Header: AFAKAD3B.pls 115.9 2003/12/17 18:16:27 blash ship $ */
3 
4 
5 PROCEDURE check_unique(X_rowid VARCHAR2,
6 		       X_entity_name VARCHAR2,
7 			X_seq_num NUMBER,
8 			X_pkey1 VARCHAR2,
9 			X_pkey2 VARCHAR2,
10 			X_pkey3 VARCHAR2,
11 			X_pkey4 VARCHAR2,
12 			X_pkey5 VARCHAR2) IS
13  dummy number;
14 BEGIN
15 
16  IF (X_pkey2 is not null) and (X_pkey3 is not null) THEN
17        SELECT COUNT(1) INTO DUMMY
18 	 FROM fnd_attached_documents
19 	  WHERE seq_num = X_seq_num
20    	    AND entity_name = X_entity_name
21 	    AND pk1_value = X_pkey1
22 	    AND pk2_value = X_pkey2
23 	    AND pk3_value = X_pkey3
24 	    AND (X_pkey4 IS NULL
25 		 OR pk4_value = X_pkey4)
26 	    AND (X_pkey5 IS NULL
27 		 OR pk5_value = X_pkey5)
28 	    AND ( (X_rowid IS NULL) OR (rowid <> X_rowid) );
29 
30  ELSE IF (X_pkey2 is not null) THEN
31 
32        SELECT COUNT(1) INTO DUMMY
33 	 FROM fnd_attached_documents
34 	  WHERE seq_num = X_seq_num
35    	    AND entity_name = X_entity_name
36 	    AND pk1_value = X_pkey1
37 	    AND pk2_value = X_pkey2
38 	    AND pk3_value IS NULL
39 	    AND (X_pkey4 IS NULL
40 		 OR pk4_value = X_pkey4)
41 	    AND (X_pkey5 IS NULL
42 		 OR pk5_value = X_pkey5)
43 	    AND ( (X_rowid IS NULL) OR (rowid <> X_rowid) );
44   ELSE
45 
46 	SELECT COUNT(1) INTO DUMMY
47 	 FROM fnd_attached_documents
48 	  WHERE seq_num = X_seq_num
49    	    AND entity_name = X_entity_name
50 	    AND pk1_value = X_pkey1
51 	    AND (X_pkey2 IS NULL)
52 	    AND (X_pkey3 IS NULL)
53 	    AND (X_pkey4 IS NULL
54 		 OR pk4_value = X_pkey4)
55 	    AND (X_pkey5 IS NULL
56 		 OR pk5_value = X_pkey5)
57 	    AND ( (X_rowid IS NULL) OR (rowid <> X_rowid) );
58  END IF;
59 END IF;
60 
61  IF (dummy >= 1) THEN
62 	FND_MESSAGE.set_name('FND', 'ATCHMT-DUPLICATE SEQ_NUM');
63 	APP_EXCEPTION.RAISE_EXCEPTION;
64  END IF;
65 
66 END check_unique;
67 
68 
69 FUNCTION check_document_references(X_Document_id NUMBER)
70 RETURN BOOLEAN IS
71  reference_count NUMBER;
72 BEGIN
73 
74   SELECT count(*)
75     INTO reference_count
76     FROM fnd_attached_documents
77    WHERE document_id = X_document_id;
78 
79   IF (reference_count > 0) THEN
80 	RETURN(TRUE);
81   ELSE
82 	RETURN(FALSE);
83   END IF;
84 
85 END check_document_references;
86 
87 PROCEDURE delete_row (X_attached_document_id NUMBER,
88 		      X_datatype_id NUMBER,
89 		      delete_document_flag VARCHAR2 DEFAULT 'N' ) IS
90 
91  X_document_id NUMBER;
92 
93 BEGIN
94 -- Get the Document Id before deleting the reference.
95 
96   IF (delete_document_flag = 'Y') THEN
97 	-- Get the document_id from fnd_attached_documents.
98 
99 	SELECT document_id
100 	INTO   X_document_id
101 	FROM fnd_attached_documents
102 	WHERE attached_document_id = X_attached_document_id;
103 
104   END IF;
105 
106 
107 -- Delete the reference
108   DELETE FROM fnd_attached_documents
109    WHERE attached_document_id = X_attached_document_id;
110 
111 -- Delete the document if the delete document flag is Y.
112   IF (delete_document_flag = 'Y') THEN
113 
114 	-- Delete the document
115         IF (X_document_id > 0) THEN
116 		fnd_documents_pkg.delete_row (X_document_id,
117 					      X_datatype_id,
118 					      'N');
119 	END IF;
120 
121   END IF; /* Delete Document */
122 
123 END delete_row ;
124 
125 END fnd_attached_documents3_pkg;