DBA Data[Home] [Help]

PACKAGE BODY: APPS.CCT_UTIL_PUB

Source


1 PACKAGE BODY CCT_UTIL_PUB AS
2 /* $Header: cctpub.pls 120.0 2005/06/02 09:20:42 appldev noship $ */
3 
4 G_PKG_NAME 	CONSTANT VARCHAR2(30) := 'CCT_UTIL_PUB';
5 
6 
7 
8 PROCEDURE GET_MIDDLEWARE_ID
9 ( 	p_api_version           IN	NUMBER				,
10   	p_init_msg_list		IN	VARCHAR2 ,
11 	p_commit	    	IN  	VARCHAR2 ,
12 	p_agent_id IN NUMBER,
13 	x_return_status		OUT NOCOPY	VARCHAR2		  	,
14 	x_msg_count		OUT NOCOPY	NUMBER				,
15 	x_msg_data		OUT NOCOPY	VARCHAR2			,
16 	x_middleware_id OUT NOCOPY NUMBER
17 )
18 IS
19 l_api_name			CONSTANT VARCHAR2(30)	:= 'GET_MIDDLEWARE_ID';
20 l_api_version           	CONSTANT NUMBER 		:= 1.0;
21 
22 BEGIN
23 	-- Standard Start of API savepoint
24     SAVEPOINT	GET_MIDDLEWARE_ID_PUB;
25     -- Standard call to check for call compatibility.
26     IF NOT FND_API.Compatible_API_Call ( 	l_api_version        	,
27         	    	    	    	 	p_api_version        	,
28    	       	    	 			l_api_name 	    	,
29 		    	    	    	    	G_PKG_NAME )
30 	THEN
31 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
32 	END IF;
33 	-- Initialize message list if p_init_msg_list is set to TRUE.
34 	IF FND_API.To_Boolean( p_init_msg_list ) THEN
35 		FND_MSG_PUB.initialize;
36 	END IF;
37 	--  Initialize API return status to success
38     	x_return_status := FND_API.G_RET_STS_SUCCESS;
39 	-- API body
40 
41 	x_middleware_id := -1;
42 
43     select middleware_id into x_middleware_id from cct_telesets where teleset_id =
44     (select client_id from cct_agent_rt_stats where attribute1='T' and agent_id = p_agent_id);
45 
46 	-- End of API body.
47 	-- Standard check of p_commit.
48 	IF FND_API.To_Boolean( p_commit ) THEN
49 		COMMIT WORK;
50 	END IF;
51 	-- Standard call to get message count and if count is 1, get message info.
52 	FND_MSG_PUB.Count_And_Get
53     	(  	p_count         	=>      x_msg_count     	,
54         		p_data          	=>      x_msg_data
55     	);
56 EXCEPTION
57 
58     WHEN FND_API.G_EXC_ERROR THEN
59 		ROLLBACK TO GET_MIDDLEWARE_ID_PUB;
60 		x_return_status := FND_API.G_RET_STS_ERROR ;
61 		FND_MSG_PUB.Count_And_Get
62     		(  	p_count         	=>      x_msg_count     	,
63         			p_data          	=>      x_msg_data
64     		);
65 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
66 		ROLLBACK TO GET_MIDDLEWARE_ID_PUB;
67 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
68 		FND_MSG_PUB.Count_And_Get
69     		(  	p_count         	=>      x_msg_count     	,
70         			p_data          	=>      x_msg_data
71     		);
72 	WHEN OTHERS THEN
73 		ROLLBACK TO GET_MIDDLEWARE_ID_PUB;
74 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
75   		IF 	FND_MSG_PUB.Check_Msg_Level
76 			(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
77 		THEN
78         		FND_MSG_PUB.Add_Exc_Msg
79     	    		(	G_PKG_NAME  	    ,
80     	    			l_api_name
81 	    		);
82 		END IF;
83 		FND_MSG_PUB.Count_And_Get
84     		(  	p_count         	=>      x_msg_count     	,
85         			p_data          	=>      x_msg_data
86     		);
87 END GET_MIDDLEWARE_ID;
88 
89 
90 
91 PROCEDURE CLOSE_MILCS
92 ( 	p_api_version           IN	NUMBER				,
93   	p_init_msg_list		IN	VARCHAR2 ,
94 	p_commit	    	IN  	VARCHAR2,
95 	p_milcs_type_id IN NUMBER,
96     p_media_item_id IN NUMBER,
97     p_end_date_time IN DATE,
98 	x_return_status		OUT NOCOPY	VARCHAR2		  	,
99 	x_msg_count		OUT NOCOPY	NUMBER				,
100 	x_msg_data		OUT NOCOPY	VARCHAR2
101 )
102 IS
103 l_api_name			CONSTANT VARCHAR2(30)	:= 'CLOSE_MILCS';
104 l_api_version           	CONSTANT NUMBER 		:= 1.0;
105 l_milcs_id NUMBER := -1;
106 l_start_date_time DATE ;
107 l_milcs_duration NUMBER;
108 
109 BEGIN
110 	-- Standard Start of API savepoint
111     SAVEPOINT	CLOSE_MILCS_PUB;
112     -- Standard call to check for call compatibility.
113     IF NOT FND_API.Compatible_API_Call ( 	l_api_version        	,
114         	    	    	    	 	p_api_version        	,
115    	       	    	 			l_api_name 	    	,
116 		    	    	    	    	G_PKG_NAME )
117 	THEN
118 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
119 	END IF;
120 
121    	x_return_status := FND_API.G_RET_STS_SUCCESS;
122 	-- API body
123 
124 	select milcs_id, start_date_time into l_milcs_id, l_start_date_time
125     from jtf_ih_media_item_lc_segs
126     where media_id = p_media_item_id and milcs_type_id = p_milcs_type_id
127     and end_date_time is null;
128 
129 	if sql%notfound then raise NO_DATA_FOUND;
130   	end if;
131 
132     l_milcs_duration := p_end_date_time - l_start_date_time;
133     l_milcs_duration := round(24*60*60*l_milcs_duration);
134 
135         JTF_IH_PUB_W.Update_MediaLifecycle
136         (p_api_version=>1.0
137         ,p_init_msg_list=>FND_API.G_FALSE
138         ,p_commit=>FND_API.G_TRUE
139         ,p_resp_appl_id=>1 	-- IN  RESP APPL ID
140         ,p_resp_id=>1  		-- IN  RESP ID
141         ,p_user_id=>FND_GLOBAL.USER_ID -- IN  USER ID
142         ,p_login_id=>NULL	-- IN  LOGIN ID
143         ,p10_a3=>l_milcs_duration	-- IN duration
144         ,p10_a4=>p_end_date_time		-- IN end date time
145         ,p10_a5=>l_milcs_id		-- IN milcs id
146         ,p10_a7=>p_media_item_id	-- IN media id
147         ,p10_a8=>CCT_IH_PUB.G_IH_CCT_HANDLER_ID		-- IN handler id
148         ,x_return_status=>x_return_status
149         ,x_msg_count=>x_msg_count
150         ,x_msg_data=>x_msg_data );
151 
152 
153 	-- End of API body.
154 	-- Standard check of p_commit.
155 	IF FND_API.To_Boolean( p_commit ) THEN
156 		COMMIT WORK;
157 	END IF;
158 EXCEPTION
159 	WHEN NO_DATA_FOUND THEN
160       	x_return_status := FND_API.G_RET_STS_SUCCESS;
161         x_msg_data := 'CCT_NO_DATA_FOUND';
162         x_msg_count := 1;
163     WHEN FND_API.G_EXC_ERROR THEN
164 		ROLLBACK TO CLOSE_MILCS_PUB;
165 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
166         x_msg_data := 'CCT_UNEXPECTED_ERROR';
167         x_msg_count := 1;
168 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
169 		ROLLBACK TO CLOSE_MILCS_PUB;
170 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
171         x_msg_data := 'CCT_UNEXPECTED_ERROR';
172         x_msg_count := 1;
173     WHEN OTHERS THEN
174 		ROLLBACK TO CLOSE_MILCS_PUB;
175 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
176         x_msg_data := 'CCT_UNEXPECTED_ERROR';
177         x_msg_count := 1;
178 END CLOSE_MILCS;
179 
180 
181 -- return value = 0 => media item can be closed.
182 -- return value = 1 => media item cannot be closed.
183 
184 PROCEDURE CAN_CLOSE_MEDIA_ITEM
185 ( 	p_api_version           IN	NUMBER				,
186   	p_init_msg_list		IN	VARCHAR2 ,
187 	p_commit	    	IN  	VARCHAR2,
188     p_media_item_id IN NUMBER,
189     x_can_close_media_item OUT NOCOPY NUMBER,
190 	x_return_status		OUT NOCOPY	VARCHAR2		  	,
191 	x_msg_count		OUT NOCOPY	NUMBER				,
192 	x_msg_data		OUT NOCOPY	VARCHAR2
193 )
194 IS
195 l_api_name			CONSTANT VARCHAR2(30)	:= 'CAN_CLOSE_MEDIA_ITEM';
196 l_api_version           	CONSTANT NUMBER 		:= 1.0;
197 IH_MILCS_TYPE_WITH_AGENT	CONSTANT NUMBER := 5;
198 IH_MILCS_TYPE_IN_QUEUE      CONSTANT NUMBER := 3;
199 l_end_date_time DATE;
200 l_start_date_time DATE Default null;
201 l_in_queue_start_date_time DATE Default null;
202 l_nwa_count NUMBER ;
203 media_item_at_route_point_ex EXCEPTION;
204 no_data_found_ex EXCEPTION;
205 
206 BEGIN
207 	-- Standard Start of API savepoint
208     SAVEPOINT	CAN_CLOSE_MEDIA_ITEM_PUB;
209     -- Standard call to check for call compatibility.
210     IF NOT FND_API.Compatible_API_Call ( 	l_api_version        	,
211         	    	    	    	 	p_api_version        	,
212    	       	    	 			l_api_name 	    	,
213 		    	    	    	    	G_PKG_NAME )
214 	THEN
215 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
216 	END IF;
217 
218 	-- API body
219 
220    	  -- dbms_output.put_line('Processing media item id ' || p_media_item_id);
221 
222     x_return_status := FND_API.G_RET_STS_SUCCESS;
223       x_can_close_media_item := 1; -- initialize to cannot close.
224 
225       select max(c.end_date_time) into l_end_date_time from jtf_ih_media_item_lc_segs c
226       where c.media_id = p_media_item_id and c.milcs_type_id = IH_MILCS_TYPE_WITH_AGENT;
227 
228     if l_end_date_time is null then raise NO_DATA_FOUND;
229       end if;
230 
231       select count(*) into l_nwa_count from jtf_ih_media_item_lc_segs c
232 	 where c.media_id = p_media_item_id and c.milcs_type_id = IH_MILCS_TYPE_WITH_AGENT
233 	 and c.end_date_time IS NULL ;
234 
235     if ( l_nwa_count > 0 ) then raise NO_DATA_FOUND ;
236 	 end if;
237 
238       select max(c.start_date_time) into l_start_date_time from jtf_ih_media_item_lc_segs c
239       where c.media_id = p_media_item_id and c.milcs_type_id = IH_MILCS_TYPE_WITH_AGENT;
240       l_in_queue_start_date_time := null;
241       select max(c.start_date_time) into l_in_queue_start_date_time from jtf_ih_media_item_lc_segs c
242       where c.media_id = p_media_item_id and c.milcs_type_id = IH_MILCS_TYPE_IN_QUEUE;
243 
244       if (l_in_queue_start_date_time is not null) and
245         (l_start_date_time is not null) and
246         (l_start_date_time < l_in_queue_start_date_time)
247       then raise media_item_at_route_point_ex;
248        -- dbms_output.put_line('media item id transferred');
249       end if;
250 
251       -- dbms_output.put_line('media item is a candidate for closure');
252       x_can_close_media_item := 0;
253 
254 	-- End of API body.
255 	-- Standard check of p_commit.
256 	IF FND_API.To_Boolean( p_commit ) THEN
257 		COMMIT WORK;
258 	END IF;
259 
260 EXCEPTION
261     WHEN media_item_at_route_point_ex then
262         begin
263             fnd_file.put_line(fnd_file.log,'media item is at route point, cannot close.');
264             -- dbms_output.put_line('media item is at route point, cannot close.');
265         x_return_status := FND_API.G_RET_STS_SUCCESS;
266         x_msg_data := 'CCT_MEDIA_ITEM_AT_ROUTE_POINT';
267         x_msg_count := 1;
268         end;
269 	WHEN NO_DATA_FOUND THEN
270       	x_return_status := FND_API.G_RET_STS_SUCCESS;
271         x_msg_data := 'CCT_NO_DATA_FOUND';
272         x_msg_count := 1;
273     WHEN OTHERS THEN
274 		ROLLBACK TO CAN_CLOSE_MEDIA_ITEM_PUB;
275 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
276         x_msg_data := 'CCT_UNEXPECTED_ERROR';
277         x_msg_count := 1;
278 END CAN_CLOSE_MEDIA_ITEM;
279 
280 
281 
282 END CCT_UTIL_PUB;