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;