[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;