DBA Data[Home] [Help]

PACKAGE BODY: APPS.EAM_REQUEST_VALIDATE_PVT

Source


1 PACKAGE BODY EAM_REQUEST_VALIDATE_PVT AS
2 /* $Header: EAMVRQVB.pls 120.2.12020000.2 2012/07/05 10:42:27 vpasupur ship $ */
3 /***************************************************************************
4 --
5 --  Copyright (c) 2002 Oracle Corporation, Redwood Shores, CA, USA
6 --  All rights reserved.
7 --
8 --  FILENAME
9 --
10 --      EAMVRQVB.pls
11 --
12 --  DESCRIPTION
13 --
14 --      Body of package EAM_REQUEST_VALIDATE_PVT
15 --
16 --  NOTES
17 --
18 --  HISTORY
19 --
20 --  14-FEB-2005    mmaduska     Initial Creation
21 ***************************************************************************/
22 
23  PROCEDURE CHECK_REQUIRED
24   (     p_eam_request_rec         IN  EAM_PROCESS_WO_PUB.eam_request_rec_type
25        , x_return_status           OUT NOCOPY  VARCHAR2
26        , x_mesg_token_tbl          OUT NOCOPY EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type
27   )
28   IS
29 
30             l_Mesg_Token_Tbl        EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
31             l_out_Mesg_Token_Tbl    EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
32             l_Token_Tbl             EAM_ERROR_MESSAGE_PVT.Token_Tbl_Type;
33   BEGIN
34 
35 	IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Work Request/Service Request processing Check Required'); END IF;
36 
37   	x_return_status := FND_API.G_RET_STS_SUCCESS;
38 
39 	 IF p_eam_request_rec.organization_id IS NULL
40 		THEN
41 		    l_token_tbl(1).token_name  := 'WIP_ENTITY_ID';
42 		    l_token_tbl(1).token_value :=  p_eam_request_rec.wip_entity_id;
43 
44 		    l_out_mesg_token_tbl  := l_mesg_token_tbl;
45 		    EAM_ERROR_MESSAGE_PVT.Add_Error_Token
46 		    (  p_message_name	=> 'EAM_WRSR_ORG_REQUIRED'
47 		     , p_token_tbl	=> l_Token_tbl
48 		     , p_Mesg_Token_Tbl	=> l_Mesg_Token_Tbl
49 		     , x_Mesg_Token_Tbl	=> l_out_Mesg_Token_Tbl
50 		     );
51 		    l_mesg_token_tbl      := l_out_mesg_token_tbl;
52 		    x_return_status	  := FND_API.G_RET_STS_ERROR;
53       	            return;
54            END IF;
55 
56 	   IF p_eam_request_rec.request_type IS NULL
57 		THEN
58 		    l_token_tbl(1).token_name  := 'WIP_ENTITY_ID';
59 		    l_token_tbl(1).token_value :=  p_eam_request_rec.wip_entity_id;
60 
61 		    l_out_mesg_token_tbl  := l_mesg_token_tbl;
62 		    EAM_ERROR_MESSAGE_PVT.Add_Error_Token
63 		    (  p_message_name	=> 'EAM_WRSR_REQTYPE_REQUIRED'
64 		     , p_token_tbl	=> l_Token_tbl
65 		     , p_Mesg_Token_Tbl	=> l_Mesg_Token_Tbl
66 		     , x_Mesg_Token_Tbl	=> l_out_Mesg_Token_Tbl
67 		     );
68 		    l_mesg_token_tbl      := l_out_mesg_token_tbl;
69 		    x_return_status	  := FND_API.G_RET_STS_ERROR;
70       	            return;
71            END IF;
72 
73 	   IF p_eam_request_rec.request_id IS NULL AND p_eam_request_rec.request_number IS NULL
74 		THEN
75 		    l_token_tbl(1).token_name  := 'WIP_ENTITY_ID';
76 		    l_token_tbl(1).token_value :=  p_eam_request_rec.wip_entity_id;
77 
78 		    l_out_mesg_token_tbl  := l_mesg_token_tbl;
79 		    EAM_ERROR_MESSAGE_PVT.Add_Error_Token
80 		    (  p_message_name	=> 'EAM_WRSR_REQID_REQUIRED'
81 		     , p_token_tbl	=> l_Token_tbl
82 		     , p_Mesg_Token_Tbl	=> l_Mesg_Token_Tbl
83 		     , x_Mesg_Token_Tbl	=> l_out_Mesg_Token_Tbl
84 		     );
85 		    l_mesg_token_tbl      := l_out_mesg_token_tbl;
86 		    x_return_status	  := FND_API.G_RET_STS_ERROR;
87       	            return;
88            END IF;
89 
90   END CHECK_REQUIRED;
91 
92  PROCEDURE CHECK_ATTRIBUTES
93  (      p_eam_request_rec         IN  EAM_PROCESS_WO_PUB.eam_request_rec_type
94         , x_return_status         OUT NOCOPY  VARCHAR2
95         , x_mesg_token_tbl        OUT NOCOPY EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type
96  )
97   IS
98 	    l_Mesg_Token_Tbl        EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
99             l_out_Mesg_Token_Tbl    EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
100             l_Token_Tbl             EAM_ERROR_MESSAGE_PVT.Token_Tbl_Type;
101 	    g_dummy		    NUMBER;
102   BEGIN
103 
104 	IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Work Request/Service Request processing Check Attributes'); END IF;
105 
106 	x_return_status := FND_API.G_RET_STS_SUCCESS;
107 
108 	  IF p_eam_request_rec.request_number IS NULL
109 		THEN
110 		    l_token_tbl(1).token_name  := 'WIP_ENTITY_ID';
111 		    l_token_tbl(1).token_value :=  p_eam_request_rec.wip_entity_id;
112 
113 		    l_out_mesg_token_tbl  := l_mesg_token_tbl;
114 		    EAM_ERROR_MESSAGE_PVT.Add_Error_Token
115 		    (  p_message_name	=> 'EAM_WRSR_REQNUM_REQUIRED'
116 		     , p_token_tbl	=> l_Token_tbl
117 		     , p_Mesg_Token_Tbl	=> l_Mesg_Token_Tbl
118 		     , x_Mesg_Token_Tbl	=> l_out_Mesg_Token_Tbl
119 		     );
120 		    l_mesg_token_tbl      := l_out_mesg_token_tbl;
121 		    x_return_status	  := FND_API.G_RET_STS_ERROR;
122        	            return;
123            END IF;
124 
125 	   IF p_eam_request_rec.request_id IS NULL
126 		THEN
127 		    l_token_tbl(1).token_name  := 'WIP_ENTITY_ID';
128 		    l_token_tbl(1).token_value :=  p_eam_request_rec.wip_entity_id;
129 
130 		    l_out_mesg_token_tbl  := l_mesg_token_tbl;
131 		    EAM_ERROR_MESSAGE_PVT.Add_Error_Token
132 		    (  p_message_name	=> 'EAM_WRSR_REQID_REQUIRED'
133 		     , p_token_tbl	=> l_Token_tbl
134 		     , p_Mesg_Token_Tbl	=> l_Mesg_Token_Tbl
135 		     , x_Mesg_Token_Tbl	=> l_out_Mesg_Token_Tbl
136 		     );
137 		    l_mesg_token_tbl      := l_out_mesg_token_tbl;
138 		    x_return_status	  := FND_API.G_RET_STS_ERROR;
139       	            return;
140            END IF;
141 
142 	--  organization_id
143 
144 	  DECLARE
145 	    l_disable_date date;
146 	  BEGIN
147 
148 	    SELECT 1
149 	      INTO g_dummy
150 	      FROM mtl_parameters mp
151 	     WHERE mp.organization_id = p_eam_request_rec.organization_id;
152 
153 	    SELECT nvl(hou.date_to,sysdate+1)
154 	      INTO l_disable_date
155 	      FROM hr_organization_units hou
156 	      WHERE organization_id =  p_eam_request_rec.organization_id;
157 
158 	    IF(l_disable_date < sysdate) THEN
159 	      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
160 	    END IF;
161 
162 	    x_return_status := FND_API.G_RET_STS_SUCCESS;
163 
164 	  EXCEPTION
165 	    WHEN OTHERS THEN
166 
167 	      l_token_tbl(1).token_name  := 'WIP_ENTITY_ID';
168 	      l_token_tbl(1).token_value :=  p_eam_request_rec.wip_entity_id;
169 
170 	      l_out_mesg_token_tbl  := l_mesg_token_tbl;
171 	      EAM_ERROR_MESSAGE_PVT.Add_Error_Token
172 	      (  p_message_name		=> 'EAM_WRSR_INVALID_ORGID'
173 	       , p_token_tbl		=> l_token_tbl
174 	       , p_mesg_token_tbl       => l_mesg_token_tbl
175 	       , x_mesg_token_tbl       => l_out_mesg_token_tbl
176 	      );
177 	      l_mesg_token_tbl      := l_out_mesg_token_tbl;
178 	      x_return_status	    := FND_API.G_RET_STS_ERROR;
179 	      x_mesg_token_tbl	    := l_mesg_token_tbl ;
180 	      RETURN;
181 	  END;
182 
183 
184 	--  organization_id (EAM enabled)
185 
186 	  BEGIN
187 
188 	    SELECT 1
189 	      INTO g_dummy
190 	      FROM wip_eam_parameters wep, mtl_parameters mp
191 	     WHERE wep.organization_id = mp.organization_id
192 	       AND mp.eam_enabled_flag = 'Y'
193 	       AND wep.organization_id = p_eam_request_rec.organization_id;
194 
195 	       x_return_status := FND_API.G_RET_STS_SUCCESS;
196 
197 	  EXCEPTION
198 	    WHEN OTHERS THEN
199 
200 	      l_token_tbl(1).token_name  := 'WIP_ENTITY_ID';
201 	      l_token_tbl(1).token_value :=  p_eam_request_rec.wip_entity_id;
202 
203 	      l_out_mesg_token_tbl  := l_mesg_token_tbl;
204 	      EAM_ERROR_MESSAGE_PVT.Add_Error_Token
205 	      (  p_message_name  => 'EAM_WRSR_EAMINVALID_ORGID'
206 	       , p_token_tbl     => l_token_tbl
207 	       , p_mesg_token_tbl     => l_mesg_token_tbl
208 	       , x_mesg_token_tbl     => l_out_mesg_token_tbl
209 	      );
210 	      l_mesg_token_tbl      := l_out_mesg_token_tbl;
211 	      x_return_status       := FND_API.G_RET_STS_ERROR;
212 	      x_mesg_token_tbl      := l_mesg_token_tbl ;
213 	      return;
214 
215 	  END;
216 
217 	IF p_eam_request_rec.transaction_type = 1 AND p_eam_request_rec.request_type =1  THEN
218 	  begin
219 	     SELECT 1
220 	       INTO g_dummy
221 	       FROM WIP_DISCRETE_JOBS wdj
222               WHERE wdj.STATUS_TYPE IN (WIP_CONSTANTS.DRAFT,WIP_CONSTANTS.UNRELEASED,WIP_CONSTANTS.RELEASED,
223   	            WIP_CONSTANTS.HOLD,WIP_CONSTANTS.COMP_CHRG,WIP_CONSTANTS.COMP_NOCHRG)
224   	        AND wdj.wip_entity_id = p_eam_request_rec.wip_entity_id ;
225 
226 		 x_return_status := FND_API.G_RET_STS_SUCCESS;
227 	  exception
228 	  when others then
229 
230 	      l_token_tbl(1).token_name  := 'WIP_ENTITY_ID';
231 	      l_token_tbl(1).token_value :=  p_eam_request_rec.wip_entity_id;
232 
233 	      l_out_mesg_token_tbl  := l_mesg_token_tbl;
234 	      EAM_ERROR_MESSAGE_PVT.Add_Error_Token
235 	      (  p_message_name  => 'EAM_WR_INVALID_WORKORDER'
236 	       , p_token_tbl     => l_token_tbl
237 	       , p_mesg_token_tbl     => l_mesg_token_tbl
238 	       , x_mesg_token_tbl     => l_out_mesg_token_tbl
239 	      );
240 	      l_mesg_token_tbl      := l_out_mesg_token_tbl;
241 	      x_return_status	    := FND_API.G_RET_STS_ERROR;
242 	      x_mesg_token_tbl := l_mesg_token_tbl ;
243 	      return;
244 	  end;
245 
246 	END IF;
247 
248 	IF p_eam_request_rec.transaction_type = 1 AND p_eam_request_rec.request_type =2  THEN
249 	  begin
250 	     SELECT 1
251 	       INTO g_dummy
252 	       FROM WIP_DISCRETE_JOBS wdj
253               WHERE wdj.STATUS_TYPE IN (WIP_CONSTANTS.DRAFT,WIP_CONSTANTS.UNRELEASED,WIP_CONSTANTS.RELEASED,
254 				       WIP_CONSTANTS.HOLD,WIP_CONSTANTS.COMP_CHRG,WIP_CONSTANTS.COMP_NOCHRG)
255     	        AND wdj.wip_entity_id = p_eam_request_rec.wip_entity_id ;
256 
257 	       x_return_status := FND_API.G_RET_STS_SUCCESS;
258 
259 	  exception
260 	  when others then
261 
262 	      l_token_tbl(1).token_name  := 'WIP_ENTITY_ID';
263 	      l_token_tbl(1).token_value :=  p_eam_request_rec.wip_entity_id;
264 
265 	      l_out_mesg_token_tbl  := l_mesg_token_tbl;
266 	      EAM_ERROR_MESSAGE_PVT.Add_Error_Token
267 	      (  p_message_name  => 'EAM_WO_NOT_ASSOC_WR'
268 	       , p_token_tbl     => l_token_tbl
269 	       , p_mesg_token_tbl     => l_mesg_token_tbl
270 	       , x_mesg_token_tbl     => l_out_mesg_token_tbl
271 	      );
272 	      l_mesg_token_tbl      := l_out_mesg_token_tbl;
273 
274 	      x_return_status := FND_API.G_RET_STS_ERROR;
275 	      x_mesg_token_tbl := l_mesg_token_tbl ;
276 	      return;
277 	  end;
278 	END IF;
279 
280 	 IF p_eam_request_rec.transaction_type = 1 AND p_eam_request_rec.request_type =1  THEN
281 	  begin
282 	     SELECT 1
283 	       INTO g_dummy
284 	       FROM WIP_EAM_WORK_REQUESTS wewr
285               WHERE wewr.work_request_id = p_eam_request_rec.request_id
286 	        AND WORK_REQUEST_STATUS_ID = 3 ;
287 
288 		 x_return_status := FND_API.G_RET_STS_SUCCESS;
289 
290 	  exception
291 	  when others then
292 
293 	      l_token_tbl(1).token_name  := 'WIP_ENTITY_ID';
294 	      l_token_tbl(1).token_value :=  p_eam_request_rec.wip_entity_id;
295 
296 	      l_out_mesg_token_tbl  := l_mesg_token_tbl;
297 	      EAM_ERROR_MESSAGE_PVT.Add_Error_Token
298 	      (  p_message_name  => 'EAM_WO_REQID_INVALID'
299 	       , p_token_tbl     => l_token_tbl
300 	       , p_mesg_token_tbl     => l_mesg_token_tbl
301 	       , x_mesg_token_tbl     => l_out_mesg_token_tbl
302 	      );
303 	      l_mesg_token_tbl      := l_out_mesg_token_tbl;
304 
305 	      x_return_status := FND_API.G_RET_STS_ERROR;
306 	      x_mesg_token_tbl := l_mesg_token_tbl ;
307 	      return;
308 	  end;
309 
310 	END IF;
311 
312 	IF p_eam_request_rec.transaction_type = 1 AND p_eam_request_rec.request_type =2  THEN
313 	  begin
314 	     SELECT 1
315 	       INTO g_dummy
316 	       FROM CS_INCIDENTS_ALL_B ciab ,CS_INCIDENT_TYPES_B citb
317               WHERE ciab.status_flag='O'
318 	        AND ciab.MAINT_ORGANIZATION_ID  = p_eam_request_rec.ORGANIZATION_ID
319 		AND ciab.INCIDENT_TYPE_ID = citb.INCIDENT_TYPE_ID
320 		AND nvl(citb.MAINTENANCE_FLAG,'N')   = 'Y'
321 		AND ciab.INCIDENT_ID = p_eam_request_rec.request_id;
322 
323 
324 		 x_return_status := FND_API.G_RET_STS_SUCCESS;
325 
326 	  exception
327 	  when others then
328 
329 	      l_token_tbl(1).token_name  := 'WIP_ENTITY_ID';
330 	      l_token_tbl(1).token_value :=  p_eam_request_rec.wip_entity_id;
331 
332 	      l_out_mesg_token_tbl  := l_mesg_token_tbl;
333 	      EAM_ERROR_MESSAGE_PVT.Add_Error_Token
334 	      (  p_message_name  => 'EAM_SR_REQ_ID_NOT_OPEN'
335 	       , p_token_tbl     => l_token_tbl
336 	       , p_mesg_token_tbl     => l_mesg_token_tbl
337 	       , x_mesg_token_tbl     => l_out_mesg_token_tbl
338 	      );
339 	      l_mesg_token_tbl      := l_out_mesg_token_tbl;
340 
341 	      x_return_status := FND_API.G_RET_STS_ERROR;
342 	      x_mesg_token_tbl := l_mesg_token_tbl ;
343 	      return;
344 	  end;
345 	END IF;
346 
347 	IF p_eam_request_rec.transaction_type = 1 AND p_eam_request_rec.request_type =1  THEN
348 	BEGIN
349 
350 		SELECT COUNT(wip_entity_id) INTO g_dummy
351 		  FROM WIP_EAM_WORK_REQUESTS
352 		 WHERE work_request_id	 = p_eam_request_rec.request_id
353 		   AND organization_id  = p_eam_request_rec.organization_id;
354 
355 		   IF g_dummy > 0 THEN
356 		      l_token_tbl(1).token_name  := 'REQUEST_ID';
357 		      l_token_tbl(1).token_value :=  p_eam_request_rec.request_id;
358 
359 		      l_out_mesg_token_tbl  := l_mesg_token_tbl;
360 		      EAM_ERROR_MESSAGE_PVT.Add_Error_Token
361 		      (  p_message_name  => 'EAM_WR_ALD_ASSO_WO'
362 		       , p_token_tbl     => l_token_tbl
363 		       , p_mesg_token_tbl     => l_mesg_token_tbl
364 		       , x_mesg_token_tbl     => l_out_mesg_token_tbl
365 		      );
366 		      l_mesg_token_tbl      := l_out_mesg_token_tbl;
367 
368 		      x_return_status := FND_API.G_RET_STS_ERROR;
369 		      x_mesg_token_tbl := l_mesg_token_tbl ;
370 		      return;
371 		   END IF;
372 
373 	END;
374 	END IF;
375 
376 	IF p_eam_request_rec.transaction_type = 1 AND p_eam_request_rec.request_type =2  THEN
377 	BEGIN
378 
379 		SELECT	COUNT(1)
380 	   	  INTO 	g_dummy
381        	          FROM  EAM_WO_SERVICE_ASSOCIATION
382         	 WHERE  maintenance_organization_id = p_eam_request_rec.organization_id
383         	   AND 	wip_entity_id	  	    = p_eam_request_rec.wip_entity_id
384 	           AND  (enable_flag IS NULL OR enable_flag = 'Y');      -- Fix for 3773450
385 
386 
387 		   IF g_dummy > 0 THEN
388 		      l_token_tbl(1).token_name  := 'REQUEST_ID';
389 		      l_token_tbl(1).token_value :=  p_eam_request_rec.request_id;
390 
391 		      l_out_mesg_token_tbl  := l_mesg_token_tbl;
392 		      EAM_ERROR_MESSAGE_PVT.Add_Error_Token
393 		      (  p_message_name  => 'EAM_SR_ALD_ASS_WO'
394 		       , p_token_tbl     => l_token_tbl
395 		       , p_mesg_token_tbl     => l_mesg_token_tbl
396 		       , x_mesg_token_tbl     => l_out_mesg_token_tbl
397 		      );
398 		      l_mesg_token_tbl      := l_out_mesg_token_tbl;
399 
400 		      x_return_status := FND_API.G_RET_STS_ERROR;
401 		      x_mesg_token_tbl := l_mesg_token_tbl ;
402 		      return;
403 		   END IF;
404 
405 	END;
406 	END IF;
407 
408 
409   END CHECK_ATTRIBUTES;
410 
411 
412 END EAM_REQUEST_VALIDATE_PVT;