DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGI_IMP_IAC_PURGE_PKG

Source


1 PACKAGE BODY IGI_IMP_IAC_PURGE_PKG AS
2 -- $Header: igiimpub.pls 120.6.12000000.1 2007/08/01 16:21:46 npandya ship $
3 
4 --===========================FND_LOG.START=====================================
5 
6 g_state_level NUMBER	     :=	FND_LOG.LEVEL_STATEMENT;
7 g_proc_level  NUMBER	     :=	FND_LOG.LEVEL_PROCEDURE;
8 g_event_level NUMBER	     :=	FND_LOG.LEVEL_EVENT;
9 g_excep_level NUMBER	     :=	FND_LOG.LEVEL_EXCEPTION;
10 g_error_level NUMBER	     :=	FND_LOG.LEVEL_ERROR;
11 g_unexp_level NUMBER	     :=	FND_LOG.LEVEL_UNEXPECTED;
12 g_path        VARCHAR2(100)  := 'IGI.PLSQL.igiimpub.igi_imp_iac_purge_pkg.';
13 
14 --===========================FND_LOG.END=====================================
15 
16 PROCEDURE PURGE_IMP_DATA(ERRBUF OUT NOCOPY VARCHAR2,
17                          RETCODE OUT NOCOPY NUMBER,
18                          p_book_type_code IN VARCHAR2,
19 			 p_category_struct_id IN NUMBER,
20                          p_category_id IN NUMBER,
21                          p_asset_id IN NUMBER)IS
22 
23 V_COUNT NUMBER;
24 l_message VARCHAR2(300);
25 l_path_name VARCHAR2(150) := g_path||'purge_imp_data';
26 category_count NUMBER;
27 asset_count    NUMBER;
28 BEGIN
29 
30 SELECT COUNT(*)
31 INTO V_COUNT
32 FROM IGI_IMP_IAC_INTERFACE_CTRL
33 WHERE BOOK_TYPE_CODE = P_BOOK_TYPE_CODE
34 AND TRANSFER_STATUS = 'C';
35 
36 IF V_COUNT = 0 THEN
37 
38     IF p_category_id IS NOT NULL THEN
39         SELECT count(*)
40         INTO category_count
41         FROM IGI_IMP_IAC_INTERFACE_CTRL
42         WHERE BOOK_TYPE_CODE = p_book_type_code
43           AND CATEGORY_ID <> p_category_id;
44 
45         IF p_asset_id IS NOT NULL THEN
46             SELECT count(*)
47             INTO asset_count
48             FROM IGI_IMP_IAC_INTERFACE
49             WHERE BOOK_TYPE_CODE = p_book_type_code
50               AND CATEGORY_ID = p_category_id
51               AND ASSET_ID <> p_asset_id;
52         ELSE
53             asset_count := 0;
54         END IF;
55     ELSE
56         category_count := 0;
57         asset_count := 0;
58     END IF;
59 
60     IF category_count = 0 AND asset_count = 0 THEN
61 
62         DELETE FROM IGI_IMP_IAC_CONTROLS
63         WHERE BOOK_TYPE_CODE = P_BOOK_TYPE_CODE;
64 
65         DELETE FROM IGI_IMP_IAC_INTERFACE
66         WHERE BOOK_TYPE_CODE = P_BOOK_TYPE_CODE;
67 
68         DELETE FROM IGI_IMP_IAC_INTERFACE_CTRL
69         WHERE BOOK_TYPE_CODE = P_BOOK_TYPE_CODE;
70 
71         DELETE FROM IGI_IMP_IAC_INTERFACE_PY_ADD
72         WHERE BOOK_TYPE_CODE = P_BOOK_TYPE_CODE;
73 
74         DELETE FROM IGI_IMP_IAC_INTERMEDIATE
75         WHERE BOOK_TYPE_CODE = P_BOOK_TYPE_CODE;
76 
77     ELSIF category_count > 0 AND asset_count = 0 THEN
78 
79         DELETE FROM IGI_IMP_IAC_INTERFACE
80         WHERE CATEGORY_ID = p_category_id;
81 
82         DELETE FROM IGI_IMP_IAC_INTERFACE_CTRL
83         WHERE CATEGORY_ID = p_category_id;
84 
85         DELETE FROM IGI_IMP_IAC_INTERFACE_PY_ADD
86         WHERE CATEGORY_ID = p_category_id;
87 
88         DELETE FROM IGI_IMP_IAC_INTERMEDIATE
89         WHERE CATEGORY_ID = p_category_id;
90 
91     ELSE
92 
93         DELETE FROM IGI_IMP_IAC_INTERFACE
94         WHERE ASSET_ID = p_asset_id;
95 
96         DELETE FROM IGI_IMP_IAC_INTERFACE_PY_ADD
97         WHERE ASSET_ID = p_asset_id;
98 
99         DELETE FROM IGI_IMP_IAC_INTERMEDIATE
100         WHERE ASSET_ID = p_asset_id;
101 
102 
103     END IF;
104 
105 ELSE
106 
107 FND_MESSAGE.SET_NAME('IGI','IGI_IMP_IAC_ASSETS_TRF');
108 igi_iac_debug_pkg.debug_other_msg(p_level => g_state_level,
109 		  p_full_path => l_path_name,
110 		  p_remove_from_stack => FALSE);
111 l_message := fnd_message.get;
112 errbuf := l_message;
113 fnd_file.put_line(fnd_file.log, errbuf);
114 END IF;
115 
116 END;
117 END; -- package