Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
221 vnguyen 1
CREATE PACKAGE BODY "RELEASE_MANAGER"."PK_PLANNED" IS
2
 
3
/*
4
------------------------------
5
||  Last Modified:  S.Vukovic
6
||  Modified Date:  6/May/2005
7
||  Body Version:   1.0
8
------------------------------
9
*/
10
 
11
 
12
/*-------------------------------------------------------------------------------------------------------*/
13
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
14
 
15
	oldPvId NUMBER;
16
	ReleaseLocation VARCHAR2(4000);
17
	IsPatch CHAR(1) := NULL;
18
	sLocation VARCHAR2(4000) := NULL;
19
	nRtagIdLocation NUMBER;
20
 
21
 
22
 
23
BEGIN
24
	/*--------------- Business Rules Here -------------------*/
25
	/*-------------------------------------------------------*/
26
 
27
	BEGIN
28
		-- Check if Exists in "Work in progress" anywhere in the world, except "Closed mode" releases
29
		SELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME, rt.RTAG_ID  INTO sLocation, nRtagIdLocation
30
		  FROM PLANNED pl,
31
		  	   RELEASE_TAGS rt,
32
			   PROJECTS proj
33
		 WHERE pl.PV_ID = newPvId
34
		   AND pl.RTAG_ID = rt.RTAG_ID
35
		   AND rt.OFFICIAL != 'Y'
36
		   AND rt.PROJ_ID = proj.PROJ_ID;
37
 
38
		EXCEPTION
39
	    	WHEN NO_DATA_FOUND THEN
40
	       		sLocation := NULL;
41
	END;	   	     
42
 
43
 
44
 
45
	IF (sLocation IS NULL) OR (nRtagIdLocation = RtagId) THEN
46
 
47
		-- Add to "Pending" area
48
		INSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID )
49
		VALUES( RtagId, newPvId, ViewId );
50
 
51
 
52
	    /* LOG ACTION */
53
		SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
54
		  FROM PROJECTS proj,
55
		  	   RELEASE_TAGS rt
56
		 WHERE rt.PROJ_ID = proj.PROJ_ID
57
		   AND rt.RTAG_ID = RtagId;
58
 
59
		Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );
60
 
61
	ELSE
62
 
63
		RAISE_APPLICATION_ERROR (-20000, 'This version is already in Pending Area at '|| sLocation ||'.' );		
64
 
65
	END IF;
66
 
67
END;
68
/*-------------------------------------------------------------------------------------------------------*/
69
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
70
 
71
	ReleaseLocation VARCHAR2(4000);
72
 
73
BEGIN
74
 
75
	/*--------------- Business Rules Here -------------------*/
76
	/*-------------------------------------------------------*/
77
 
78
 
79
	-- Get release location for logging pusposes
80
	SELECT proj.PROJ_NAME  ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
81
	  FROM PROJECTS proj,
82
	  	   RELEASE_TAGS rt
83
	 WHERE rt.PROJ_ID = proj.PROJ_ID
84
	   AND rt.RTAG_ID = RtagId;
85
 
86
 
87
	-- Delete from Work In Progress
88
	DELETE
89
	  FROM PLANNED pl
90
	 WHERE pl.RTAG_ID = RtagId
91
	   AND pl.PV_ID = PvId;
92
 
93
	Log_Action ( PvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );
94
 
95
 
96
 
97
 
98
END;
99
/*-------------------------------------------------------------------------------------------------------*/
100
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
101
 
102
	ReturnValue NUMBER;
103
 
104
BEGIN
105
	SELECT pl.VIEW_ID INTO ReturnValue
106
	  FROM PLANNED pl
107
	 WHERE pl.RTAG_ID = RtagId
108
	   AND pl.PV_ID = PvId;
109
 
110
	RETURN ReturnValue;
111
END;
112
/*-------------------------------------------------------------------------------------------------------*/
113
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
114
 
115
	IsBaseView CHAR(1);
116
 
117
BEGIN
118
 
119
	-- Check if the view is BASE VIEW
120
	SELECT vi.BASE_VIEW INTO IsBaseView
121
	  FROM VIEWS vi
122
	 WHERE vi.VIEW_ID = ViewId;
123
 
124
 
125
	IF (IsBaseView = 'Y') THEN 
126
		-- Get Base view content
127
		OPEN RecordSet FOR
128
		SELECT 0 AS PKG_STATE,
129
			   NULL AS DEPRECATED_STATE,
130
			   pv.pv_id, 
131
			   pkg.pkg_name, 
132
			   pv.pkg_version, 
133
			   pv.dlocked, 
134
			   pv.pv_description,
135
			   pv.BUILD_TYPE
136
		  FROM PLANNED rel,
137
		       packages pkg,
138
		       package_versions pv
139
		 WHERE pv.pkg_id = pkg.pkg_id
140
		   AND rel.pv_id = pv.pv_id
141
		   AND rel.VIEW_ID = ViewId
142
		   AND rel.RTAG_ID = RtagId
143
		 ORDER BY UPPER(pkg.PKG_NAME);
144
 
145
	ELSE	 
146
 
147
	 	-- Get non base view content
148
		OPEN RecordSet FOR
149
		SELECT 0 AS PKG_STATE,
150
			   NULL AS DEPRECATED_STATE,
151
			   pv.pv_id, 
152
			   pkg.pkg_name, 
153
			   pv.pkg_version, 
154
			   pv.dlocked, 
155
			   pv.pv_description,
156
			   pv.BUILD_TYPE
157
		  FROM PLANNED rel,
158
		       packages pkg,
159
		       package_versions pv,
160
			   VIEW_DEF vd
161
		 WHERE pv.pkg_id = pkg.pkg_id
162
		   AND rel.pv_id = pv.pv_id
163
		   AND rel.RTAG_ID = RtagId
164
		   AND vd.VIEW_ID = ViewId
165
		   AND vd.PKG_ID = pv.PKG_ID
166
		 ORDER BY UPPER(pkg.PKG_NAME);
167
 
168
	END IF;	 
169
 
170
 
171
END;
172
/*-------------------------------------------------------------------------------------------------------*/
173
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
174
 
175
BEGIN
176
 
177
	UPDATE PLANNED pl SET
178
	pl.VIEW_ID = NewViewId
179
	WHERE pl.PV_ID = PvId
180
	  AND pl.RTAG_ID = RtagId;
181
 
182
END;
183
/*-------------------------------------------------------------------------------------------------------*/
184
END PK_PLANNED;
185
/
186
ALTER PACKAGE "RELEASE_MANAGER"."PK_PLANNED" 
187
  COMPILE BODY 
188
    PLSQL_OPTIMIZE_LEVEL=  2
189
    PLSQL_CODE_TYPE=  INTERPRETED
190
    PLSQL_DEBUG=  FALSE
191
 REUSE SETTINGS TIMESTAMP '2007-08-23 16:29:22'
192
/