DBA Data[Home] [Help]

PACKAGE BODY: APPS.EAM_PERMIT_VALIDATE_PVT

Source


1 PACKAGE BODY EAM_PERMIT_VALIDATE_PVT AS
2 /* $Header: EAMVWPVB.pls 120.3 2011/05/25 14:07:31 vboddapa noship $ */
3 
4 g_dummy NUMBER;
5   /********************************************************************
6   * Procedure     : Check_Existence
7   * Purpose       : Procedure will query the old work permit record and return it in old record variables.
8   *********************************************************************/
9 PROCEDURE CHECK_EXISTENCE(
10               p_work_permit_header_rec IN EAM_PROCESS_SAFETY_PUB.eam_wp_header_rec_type ,
11               x_work_permit_header_rec OUT NOCOPY EAM_PROCESS_SAFETY_PUB.eam_wp_header_rec_type ,
12               x_mesg_token_Tbl OUT NOCOPY EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type ,
13               x_return_Status OUT NOCOPY VARCHAR2 )
14 IS
15   l_token_tbl EAM_ERROR_MESSAGE_PVT.Token_Tbl_Type;
16   l_Mesg_Token_Tbl EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
17   l_out_Mesg_Token_Tbl EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
18   l_return_status VARCHAR2(1);
19   l_work_permit_header_rec EAM_PROCESS_SAFETY_PUB.eam_wp_header_rec_type;
20 
21 BEGIN
22   IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Quering Permit'); END IF;
23   EAM_PERMIT_UTILITY_PVT.QUERY_ROW (
24                   p_work_permit_id => p_work_permit_header_rec.PERMIT_ID ,
25                   p_organization_id => p_work_permit_header_rec.organization_id ,
26                   x_work_permit_header_rec => l_work_permit_header_rec ,
27                   x_Return_status => l_return_status );
28 
29   IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Query Row Returned with : ' || l_return_status);
30   END IF;
31   IF l_return_status = EAM_PROCESS_WO_PVT.G_RECORD_FOUND AND p_work_permit_header_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_CREATE THEN
32     --  l_token_tbl(1).token_name  := 'EAM_WO_PERMIT';
33     -- l_token_tbl(1).token_value := p_work_permit_header_rec.direct_item_sequence_id;
34     --  l_out_mesg_token_tbl  := l_mesg_token_tbl;
35     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
36                         x_Mesg_token_tbl => l_out_Mesg_Token_Tbl ,
37                         p_Mesg_Token_Tbl => l_Mesg_Token_Tbl ,
38                         p_message_name => 'EAM_PERMIT_ALREADY_EXISTS' ,
39                         p_token_tbl => l_token_tbl );
40     l_mesg_token_tbl   := l_out_mesg_token_tbl;
41     l_return_status    := FND_API.G_RET_STS_ERROR;
42 
43   ELSIF l_return_status = EAM_PROCESS_WO_PVT.G_RECORD_NOT_FOUND AND p_work_permit_header_rec.transaction_type IN (EAM_PROCESS_WO_PVT.G_OPR_UPDATE, EAM_PROCESS_WO_PVT.G_OPR_DELETE) THEN
44         l_token_tbl(1).token_name  := 'PERMIT_NAME';
45         l_token_tbl(1).token_value :=  p_work_permit_header_rec.PERMIT_NAME;
46 
47     l_out_mesg_token_tbl  := l_mesg_token_tbl;
48     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
49                   x_Mesg_token_tbl => l_out_Mesg_Token_Tbl ,
50                   p_Mesg_Token_Tbl => l_Mesg_Token_Tbl ,
51                   p_message_name => 'EAM_PERMIT_DOESNOT_EXISTS' ,
52                   p_token_tbl => l_token_tbl );
53     l_mesg_token_tbl   := l_out_mesg_token_tbl;
54     l_return_status    := FND_API.G_RET_STS_ERROR;
55 
56   ELSIF l_Return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
57      l_out_mesg_token_tbl  := l_mesg_token_tbl;
58     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
59                 x_Mesg_token_tbl => l_out_Mesg_Token_Tbl ,
60                 p_Mesg_Token_Tbl => l_Mesg_Token_Tbl ,
61                 p_message_name => NULL ,
62                 p_message_text => 'Unexpected error' );
63     l_mesg_token_tbl := l_out_mesg_token_tbl;
64     l_return_status  := FND_API.G_RET_STS_UNEXP_ERROR;
65   ELSE
66     l_return_status          := FND_API.G_RET_STS_SUCCESS;
67     x_work_permit_header_rec :=l_work_permit_header_rec;
68   END IF;
69   x_return_status  := l_return_status;
70   x_mesg_token_tbl := l_mesg_token_tbl;
71 
72 END CHECK_EXISTENCE;
73 
74 
75 /********************************************************************
76 * Procedure: Check_Attributes
77 * Purpose: Check_Attributes procedure will validate every Revised item attribute in its entirely.
78 *********************************************************************/
79 PROCEDURE CHECK_ATTRIBUTES(
80                   p_work_permit_header_rec     IN EAM_PROCESS_SAFETY_PUB.eam_wp_header_rec_type ,
81                   p_old_work_permit_header_rec IN EAM_PROCESS_SAFETY_PUB.eam_wp_header_rec_type ,
82                   x_mesg_token_Tbl OUT NOCOPY EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type ,
83                  x_return_Status OUT NOCOPY VARCHAR2 )
84 IS
85   l_err_text VARCHAR2(2000) := NULL;
86   l_Mesg_Token_Tbl EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
87   l_out_Mesg_Token_Tbl EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
88   l_Token_Tbl EAM_ERROR_MESSAGE_PVT.Token_Tbl_Type;
89   l_permit_id number;
90 
91 BEGIN
92   IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Within Permit Check Attributes . . . '); END IF;
93 
94   /*IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Validating organization_id . . . '); END IF;
95 
96   DECLARE
97     l_disable_date DATE;
98   BEGIN
99     SELECT 1
100     INTO g_dummy
101     FROM mtl_parameters mp
102     WHERE mp.organization_id = p_work_permit_header_rec.organization_id;
103     SELECT NVL(hou.date_to,sysdate+1)
104     INTO l_disable_date
105     FROM hr_organization_units hou
106     WHERE organization_id = p_work_permit_header_rec.organization_id;
107     IF(l_disable_date     < sysdate) THEN
108       raise fnd_api.g_exc_unexpected_error;
109     END IF;
110     x_return_status := FND_API.G_RET_STS_SUCCESS;
111   EXCEPTION
112   WHEN fnd_api.g_exc_unexpected_error THEN
113     -- l_token_tbl(1).token_name  := 'Organization Id';
114     -- l_token_tbl(1).token_value :=  p_eam_wo_rec.organization_id;
115     l_out_mesg_token_tbl := l_mesg_token_tbl;
116     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
117                   p_message_name => 'EAM_PERMIT_ORGANIZATION_ID' ,
118                   p_token_tbl => l_token_tbl ,
119                   p_mesg_token_tbl => l_mesg_token_tbl ,
120                   x_mesg_token_tbl => l_out_mesg_token_tbl );
121     l_mesg_token_tbl := l_out_mesg_token_tbl;
122     x_return_status  := FND_API.G_RET_STS_ERROR;
123     x_mesg_token_tbl := l_mesg_token_tbl ;
124     RETURN;
125   WHEN no_data_found THEN
126     -- l_token_tbl(1).token_name  := 'Organization Id';
127     -- l_token_tbl(1).token_value :=  p_eam_wo_rec.organization_id;
128     l_out_mesg_token_tbl := l_mesg_token_tbl;
129     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
130                     p_message_name => 'EAM_PERMIT_ORGANIZATION_ID' ,
131                     p_token_tbl => l_token_tbl ,
132                     p_mesg_token_tbl => l_mesg_token_tbl ,
133                     x_mesg_token_tbl => l_out_mesg_token_tbl );
134     l_mesg_token_tbl := l_out_mesg_token_tbl;
135     x_return_status  := FND_API.G_RET_STS_ERROR;
136     x_mesg_token_tbl := l_mesg_token_tbl ;
137     RETURN;
138   END;
139 
140   IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Validating organization_id (EAM enabled) . . . ');
141   END IF;
142 
143   BEGIN
144     SELECT 1
145     INTO g_dummy
146     FROM wip_eam_parameters wep,
147       mtl_parameters mp
148     WHERE wep.organization_id = mp.organization_id
149     AND mp.eam_enabled_flag   = 'Y'
150     AND wep.organization_id   = p_work_permit_header_rec.organization_id;
151     x_return_status          := FND_API.G_RET_STS_SUCCESS;
152   EXCEPTION
153   WHEN no_data_found THEN
154     -- l_token_tbl(1).token_name  := 'Organization Id';
155     -- l_token_tbl(1).token_value :=  p_work_permit_header_rec.organization_id;
156     l_out_mesg_token_tbl := l_mesg_token_tbl;
157     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
158                   p_message_name => 'EAM_PERMIT_ORG_EAM_ENABLED' ,
159                   p_token_tbl => l_token_tbl ,
160                   p_mesg_token_tbl => l_mesg_token_tbl ,
161                   x_mesg_token_tbl => l_out_mesg_token_tbl );
162     l_mesg_token_tbl := l_out_mesg_token_tbl;
163     x_return_status  := FND_API.G_RET_STS_ERROR;
164     x_mesg_token_tbl := l_mesg_token_tbl ;
165     RETURN;
166   END;
167 
168 /*  IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Validating if Permit ID already exists for create . . . '); END IF;
169 
170   DECLARE
171     l_count NUMBER;
172   BEGIN
173     IF (p_work_permit_header_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_CREATE) THEN
174       SELECT COUNT(*)
175       INTO l_count
176       FROM EAM_WORK_PERMITS
177       WHERE PERMIT_ID     = p_work_permit_header_rec.PERMIT_ID
178       AND organization_id = p_work_permit_header_rec.organization_id;
179       IF(l_count          > 0) THEN
180         raise fnd_api.g_exc_unexpected_error;
181       END IF;
182     END IF;
183     x_return_status := FND_API.G_RET_STS_SUCCESS;
184   EXCEPTION
185   WHEN fnd_api.g_exc_unexpected_error THEN
186     --  l_token_tbl(1).token_name  := 'Wip Entity Name';
187     -- l_token_tbl(1).token_value :=  p_eam_wo_rec.wip_entity_name;
188     l_out_mesg_token_tbl := l_mesg_token_tbl;
189     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
190                     p_message_name => 'EAM_PERMIT_ID' ,
191                     p_token_tbl => l_token_tbl ,
192                     p_mesg_token_tbl => l_mesg_token_tbl ,
193                     x_mesg_token_tbl => l_out_mesg_token_tbl );
194     l_mesg_token_tbl := l_out_mesg_token_tbl;
195     x_return_status  := FND_API.G_RET_STS_ERROR;
196     x_mesg_token_tbl := l_mesg_token_tbl ;
197     RETURN;
198   END; */
199 
200   IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Validating if Permit ID exists for update . . . '); END IF;
201   DECLARE
202     l_count NUMBER;
203   BEGIN
204     IF (p_work_permit_header_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_UPDATE) THEN
205       SELECT COUNT(*)
206       INTO l_count
207       FROM EAM_WORK_PERMITS
208       WHERE PERMIT_ID     = p_work_permit_header_rec.PERMIT_ID
209       AND organization_id = p_work_permit_header_rec.organization_id;
210 
211       IF(l_count         <> 1) THEN
212         raise fnd_api.g_exc_unexpected_error;
213       END IF;
214     END IF;
215     x_return_status := FND_API.G_RET_STS_SUCCESS;
216   EXCEPTION
217   WHEN fnd_api.g_exc_unexpected_error THEN
218     --  l_token_tbl(1).token_name  := 'Wip Entity Name';
219     -- l_token_tbl(1).token_value :=  p_eam_wo_rec.wip_entity_name;
220     l_out_mesg_token_tbl := l_mesg_token_tbl;
221     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
222                   p_message_name => 'EAM_PERMIT_ID_NOT_EXIST' ,
223                   p_token_tbl => l_token_tbl ,
224                   p_mesg_token_tbl => l_mesg_token_tbl ,
225                   x_mesg_token_tbl => l_out_mesg_token_tbl );
226     l_mesg_token_tbl := l_out_mesg_token_tbl;
227     x_return_status  := FND_API.G_RET_STS_ERROR;
228     x_mesg_token_tbl := l_mesg_token_tbl ;
229     RETURN;
230   END;
231 
232   IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Validating Permit Name . . . '); END IF;
233   DECLARE
234     l_count NUMBER;
235   BEGIN
236     IF (p_work_permit_header_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_CREATE) THEN
237       SELECT COUNT(*)
238       INTO l_count
239       FROM EAM_WORK_PERMITS
240       WHERE PERMIT_NAME   = p_work_permit_header_rec.PERMIT_NAME
241       AND organization_id = p_work_permit_header_rec.organization_id;
242       IF(l_count          > 0) THEN
243         raise fnd_api.g_exc_unexpected_error;
244       END IF;
245     END IF;
246 
247     -- Permit name should be validated incase of copy permit,where transaction type is update.
248 
249     IF (p_work_permit_header_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_UPDATE) THEN
250       BEGIN
251         SELECT permit_id
252         INTO l_permit_id
253         FROM EAM_WORK_PERMITS
254         WHERE PERMIT_NAME   = p_work_permit_header_rec.PERMIT_NAME
255         AND organization_id = p_work_permit_header_rec.organization_id;
256       EXCEPTION
257         WHEN others THEN
258           l_permit_id := p_work_permit_header_rec.permit_id;
259       END;
260     END IF;
261 
262     IF(l_permit_id <> p_work_permit_header_rec.permit_id) THEN
263        raise fnd_api.g_exc_unexpected_error;
264     END IF;
265 
266     x_return_status := FND_API.G_RET_STS_SUCCESS;
267   EXCEPTION
268   WHEN fnd_api.g_exc_unexpected_error THEN
269         l_token_tbl(1).token_name  := 'PERMIT_NAME';
270         l_token_tbl(1).token_value :=  p_work_permit_header_rec.PERMIT_NAME;
271     l_out_mesg_token_tbl := l_mesg_token_tbl;
272     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
273                     p_message_name => 'EAM_PERMIT_NAME' ,
274                     p_token_tbl => l_token_tbl ,
275                     p_mesg_token_tbl => l_mesg_token_tbl ,
276                     x_mesg_token_tbl => l_out_mesg_token_tbl );
277     l_mesg_token_tbl := l_out_mesg_token_tbl;
278     x_return_status  := FND_API.G_RET_STS_ERROR;
279     x_mesg_token_tbl := l_mesg_token_tbl ;
280     RETURN;
281   END;
282 
283   --  status_type
284  /* IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Validating status_type. . . '); END IF;
285   BEGIN
286     IF (p_work_permit_header_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_CREATE AND p_work_permit_header_rec.status_type NOT IN (wip_constants.released, wip_constants.draft)) THEN
287       raise fnd_api.g_exc_unexpected_error;
288     elsif (p_work_permit_header_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_UPDATE AND p_work_permit_header_rec.status_type NOT IN (wip_constants.released, wip_constants.cancelled,wip_constants.comp_chrg,wip_constants.comp_nochrg )) THEN
289       raise fnd_api.g_exc_unexpected_error;
290     END IF;
291     x_return_status := FND_API.G_RET_STS_SUCCESS;
292   EXCEPTION
293   WHEN fnd_api.g_exc_unexpected_error THEN
294     --  l_token_tbl(1).token_name  := 'Status type';
295     --  l_token_tbl(1).token_value :=  p_eam_wo_rec.status_type;
296     l_out_mesg_token_tbl := l_mesg_token_tbl;
297     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
298                   p_message_name => 'EAM_PERMIT_STATUS_TYPE' ,
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     l_mesg_token_tbl := l_out_mesg_token_tbl;
303     x_return_status  := FND_API.G_RET_STS_ERROR;
304     x_mesg_token_tbl := l_mesg_token_tbl ;
305     RETURN;
306   END;
307 
308   IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Validating status_type for cancelled. . . '); END IF;
309   BEGIN
310     IF (p_work_permit_header_rec.transaction_type= EAM_PROCESS_WO_PVT.G_OPR_UPDATE AND
311     p_work_permit_header_rec.status_type = wip_constants.cancelled OR
312     p_work_permit_header_rec.PERMIT_NAME <> p_old_work_permit_header_rec.PERMIT_NAME OR
313     p_work_permit_header_rec.PERMIT_TYPE <> p_old_work_permit_header_rec.PERMIT_TYPE OR
314     p_work_permit_header_rec.DESCRIPTION <> p_old_work_permit_header_rec.DESCRIPTION OR
315     p_work_permit_header_rec.ORGANIZATION_ID <> p_old_work_permit_header_rec.ORGANIZATION_ID OR
316     p_work_permit_header_rec.VALID_FROM <> p_old_work_permit_header_rec.VALID_FROM OR
317     p_work_permit_header_rec.VALID_TO <> p_old_work_permit_header_rec.VALID_TO OR
318     p_work_permit_header_rec.PENDING_FLAG <> p_old_work_permit_header_rec.PENDING_FLAG OR
319     p_work_permit_header_rec.COMPLETION_DATE <> p_old_work_permit_header_rec.COMPLETION_DATE OR
320     p_work_permit_header_rec.USER_DEFINED_STATUS_ID <> p_old_work_permit_header_rec.USER_DEFINED_STATUS_ID OR
321     p_work_permit_header_rec.ATTRIBUTE_CATEGORY <> p_old_work_permit_header_rec.ATTRIBUTE_CATEGORY OR
322     p_work_permit_header_rec.ATTRIBUTE1 <> p_old_work_permit_header_rec.ATTRIBUTE1 OR
323     p_work_permit_header_rec.ATTRIBUTE2 <> p_old_work_permit_header_rec.ATTRIBUTE2 OR
324     p_work_permit_header_rec.ATTRIBUTE3 <> p_old_work_permit_header_rec.ATTRIBUTE3 OR
325     p_work_permit_header_rec.ATTRIBUTE4 <> p_old_work_permit_header_rec.ATTRIBUTE4 OR
326     p_work_permit_header_rec.ATTRIBUTE5 <> p_old_work_permit_header_rec.ATTRIBUTE5 OR
327     p_work_permit_header_rec.ATTRIBUTE6 <> p_old_work_permit_header_rec.ATTRIBUTE6 OR
328     p_work_permit_header_rec.ATTRIBUTE7 <> p_old_work_permit_header_rec.ATTRIBUTE7 OR
329     p_work_permit_header_rec.ATTRIBUTE8 <> p_old_work_permit_header_rec.ATTRIBUTE8 OR
330     p_work_permit_header_rec.ATTRIBUTE9 <> p_old_work_permit_header_rec.ATTRIBUTE9 OR
331     p_work_permit_header_rec.ATTRIBUTE10<> p_old_work_permit_header_rec.ATTRIBUTE10 OR
332     p_work_permit_header_rec.ATTRIBUTE11 <> p_old_work_permit_header_rec.ATTRIBUTE11 OR
333     p_work_permit_header_rec.ATTRIBUTE12 <> p_old_work_permit_header_rec.ATTRIBUTE12 OR
334     p_work_permit_header_rec.ATTRIBUTE13 <> p_old_work_permit_header_rec.ATTRIBUTE13 OR
335     p_work_permit_header_rec.ATTRIBUTE14 <> p_old_work_permit_header_rec.ATTRIBUTE14 OR
336     p_work_permit_header_rec.ATTRIBUTE15 <> p_old_work_permit_header_rec.ATTRIBUTE15 OR
337     p_work_permit_header_rec.APPROVED_BY <> p_old_work_permit_header_rec.APPROVED_BY ) THEN
338       raise fnd_api.g_exc_unexpected_error;
339     END IF;
340     x_return_status := FND_API.G_RET_STS_SUCCESS;
341   EXCEPTION
342   WHEN fnd_api.g_exc_unexpected_error THEN
343     --  l_token_tbl(1).token_name  := 'Status type';
344     --  l_token_tbl(1).token_value :=  p_eam_wo_rec.status_type;
345     l_out_mesg_token_tbl := l_mesg_token_tbl;
346     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
347                   p_message_name => 'EAM_PERMIT_STATUS_TYPE' ,
348                   p_token_tbl => l_token_tbl ,
349                   p_mesg_token_tbl => l_mesg_token_tbl ,
350                   x_mesg_token_tbl => l_out_mesg_token_tbl );
351     l_mesg_token_tbl := l_out_mesg_token_tbl;
352     x_return_status  := FND_API.G_RET_STS_ERROR;
353     x_mesg_token_tbl := l_mesg_token_tbl ;
354     RETURN;
355   END;*/
356 
357   --  user_id
358   IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Validating user_id . . . '); END IF;
359   BEGIN
360     IF (p_work_permit_header_rec.user_id IS NOT NULL) THEN
361       SELECT 1
362       INTO g_dummy
363       FROM fnd_user
364       WHERE user_id    = p_work_permit_header_rec.user_id;
365       x_return_status := FND_API.G_RET_STS_SUCCESS;
366     END IF;
367   EXCEPTION
368   WHEN no_data_found THEN
369     --l_token_tbl(1).token_name  := 'USER_ID';
370     --l_token_tbl(1).token_value :=  p_eam_wo_rec.user_id;
371     l_out_mesg_token_tbl := l_mesg_token_tbl;
372     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
373                   p_message_name => 'EAM_PERMIT_USER' ,
374                   p_token_tbl => l_token_tbl ,
375                   p_mesg_token_tbl => l_mesg_token_tbl ,
376                   x_mesg_token_tbl => l_out_mesg_token_tbl );
377     l_mesg_token_tbl := l_out_mesg_token_tbl;
378     x_return_status  := FND_API.G_RET_STS_ERROR;
379     x_mesg_token_tbl := l_mesg_token_tbl ;
380     RETURN;
381   END;
382 
383   --  responsibility_id
384   IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Validating responsibility_id . . . '); END IF;
385   BEGIN
386     IF (p_work_permit_header_rec.responsibility_id IS NOT NULL) THEN
387       SELECT 1
388       INTO g_dummy
389       FROM fnd_responsibility
390       WHERE responsibility_id = p_work_permit_header_rec.responsibility_id;
391       x_return_status        := FND_API.G_RET_STS_SUCCESS;
392     END IF;
393   EXCEPTION
394   WHEN no_data_found THEN
395     -- l_token_tbl(1).token_name  := 'RESPONSIBILITY_ID';
396     -- l_token_tbl(1).token_value :=  p_eam_wo_rec.responsibility_id;
397     l_out_mesg_token_tbl := l_mesg_token_tbl;
398     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
399                 p_message_name => 'EAM_PERMIT_RESPONSIBILITY' ,
400                 p_token_tbl => l_token_tbl ,
401                 p_mesg_token_tbl => l_mesg_token_tbl ,
402                 x_mesg_token_tbl => l_out_mesg_token_tbl );
403     l_mesg_token_tbl := l_out_mesg_token_tbl;
404     x_return_status  := FND_API.G_RET_STS_ERROR;
405     x_mesg_token_tbl := l_mesg_token_tbl ;
406     RETURN;
407   END;
408 
409 END CHECK_ATTRIBUTES;
410 
411 
412 /********************************************************************
413 * Procedure     : Check_Required
414 * Purpose       : Check_Required procedure will check the existence of mandatory attributes.
415 *********************************************************************/
416 PROCEDURE CHECK_REQUIRED(
417           p_work_permit_header_rec IN EAM_PROCESS_SAFETY_PUB.eam_wp_header_rec_type ,
418           x_mesg_token_Tbl OUT NOCOPY EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type ,
419           x_return_Status OUT NOCOPY VARCHAR2 )
420 IS
421   l_Mesg_Token_Tbl EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
422   l_out_Mesg_Token_Tbl EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
423   l_Token_Tbl EAM_ERROR_MESSAGE_PVT.Token_Tbl_Type;
424 
425 BEGIN
426   IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Checking required attributes for Permit . . . '); END IF;
427   x_return_status                       := FND_API.G_RET_STS_SUCCESS;
428   IF p_work_permit_header_rec.PERMIT_ID IS NULL THEN
429     -- l_token_tbl(1).token_name  := 'OPERATION_SEQ_NUM';
430     -- l_token_tbl(1).token_value :=  p_eam_op_rec.operation_seq_num;
431     l_out_mesg_token_tbl := l_mesg_token_tbl;
432     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
433                     p_message_name => 'EAM_PERMIT_ID_REQUIRED' ,
434                     p_token_tbl => l_Token_tbl ,
435                     p_Mesg_Token_Tbl => l_Mesg_Token_Tbl ,
436                     x_Mesg_Token_Tbl => l_out_Mesg_Token_Tbl );
437     l_mesg_token_tbl := l_out_mesg_token_tbl;
438     x_return_status  := FND_API.G_RET_STS_ERROR;
439   END IF;
440   IF p_work_permit_header_rec.PERMIT_NAME IS NULL THEN
441     -- l_token_tbl(1).token_name  := 'OPERATION_SEQ_NUM';
442     -- l_token_tbl(1).token_value :=  p_eam_op_rec.operation_seq_num;
443     l_out_mesg_token_tbl := l_mesg_token_tbl;
444     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
445                   p_message_name => 'EAM_PERMIT_NAME_REQUIRED' ,
446                   p_token_tbl => l_Token_tbl ,
447                   p_Mesg_Token_Tbl => l_Mesg_Token_Tbl ,
448                   x_Mesg_Token_Tbl => l_out_Mesg_Token_Tbl );
449     l_mesg_token_tbl := l_out_mesg_token_tbl;
450     x_return_status  := FND_API.G_RET_STS_ERROR;
451   END IF;
452   IF p_work_permit_header_rec.ORGANIZATION_ID IS NULL THEN
453     -- l_token_tbl(1).token_name  := 'OPERATION_SEQ_NUM';
454     -- l_token_tbl(1).token_value :=  p_eam_op_rec.operation_seq_num;
455     l_out_mesg_token_tbl := l_mesg_token_tbl;
456     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
457                     p_message_name => 'EAM_PERMIT_ORG_REQUIRED' ,
458                     p_token_tbl => l_Token_tbl ,
459                     p_Mesg_Token_Tbl => l_Mesg_Token_Tbl ,
460                     x_Mesg_Token_Tbl => l_out_Mesg_Token_Tbl );
461     l_mesg_token_tbl := l_out_mesg_token_tbl;
462     x_return_status  := FND_API.G_RET_STS_ERROR;
463   END IF;
464   IF p_work_permit_header_rec.STATUS_TYPE IS NULL THEN
465     -- l_token_tbl(1).token_name  := 'OPERATION_SEQ_NUM';
466     -- l_token_tbl(1).token_value :=  p_eam_op_rec.operation_seq_num;
467     l_out_mesg_token_tbl := l_mesg_token_tbl;
468     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
469                   p_message_name => 'EAM_PERMIT_STATUS_REQUIRED' ,
470                   p_token_tbl => l_Token_tbl ,
471                   p_Mesg_Token_Tbl => l_Mesg_Token_Tbl ,
472                   x_Mesg_Token_Tbl => l_out_Mesg_Token_Tbl );
473     l_mesg_token_tbl := l_out_mesg_token_tbl;
474     x_return_status  := FND_API.G_RET_STS_ERROR;
475   END IF;
476 
477   IF p_work_permit_header_rec.USER_ID IS NULL
478   THEN
479   -- l_token_tbl(1).token_name  := 'OPERATION_SEQ_NUM';
480   -- l_token_tbl(1).token_value :=  p_eam_op_rec.operation_seq_num;
481   l_out_mesg_token_tbl  := l_mesg_token_tbl;
482   EAM_ERROR_MESSAGE_PVT.Add_Error_Token
483             (  p_message_name => 'EAM_PERMIT_USERID_REQUIRED'
484               , p_token_tbl  => l_Token_tbl
485               , p_Mesg_Token_Tbl => l_Mesg_Token_Tbl
486               , x_Mesg_Token_Tbl => l_out_Mesg_Token_Tbl
487             );
488   l_mesg_token_tbl      := l_out_mesg_token_tbl;
489   x_return_status := FND_API.G_RET_STS_ERROR;
490   END IF;
491   IF p_work_permit_header_rec.RESPONSIBILITY_ID IS NULL
492   THEN
493   -- l_token_tbl(1).token_name  := 'OPERATION_SEQ_NUM';
494   -- l_token_tbl(1).token_value :=  p_eam_op_rec.operation_seq_num;
495   l_out_mesg_token_tbl  := l_mesg_token_tbl;
496   EAM_ERROR_MESSAGE_PVT.Add_Error_Token
497             (  p_message_name => 'EAM_PERMIT_RESPID_REQUIRED'
498               , p_token_tbl  => l_Token_tbl
499               , p_Mesg_Token_Tbl => l_Mesg_Token_Tbl
500               , x_Mesg_Token_Tbl => l_out_Mesg_Token_Tbl
501             );
502   l_mesg_token_tbl      := l_out_mesg_token_tbl;
503   x_return_status := FND_API.G_RET_STS_ERROR;
504   END IF;
505   x_Mesg_Token_Tbl := l_Mesg_Token_Tbl;
506   x_return_status := FND_API.G_RET_STS_SUCCESS;
507 END CHECK_REQUIRED;
508 END EAM_PERMIT_VALIDATE_PVT;