DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSC_PROFILE_CHECK_PVT

Source


1 PACKAGE BODY CSC_PROFILE_CHECK_PVT as
2 /* $Header: cscvpckb.pls 120.2 2009/05/15 10:29:38 spamujul ship $ */
3 -- Start of Comments
4 -- Package name     : CSC_PROFILE_CHECK_PVT
5 -- Purpose          :
6 -- History          : Sudhakar 08/17/00 modified validate_check_name,
7 --                     validate_check_code and validate_select_block_id
8 --                  : 11/25/02 JAmose for the G_MISS* and NOCOPY changes
9 --                  : for performance reason
10 -- NOTE             :
11 -- End of Comments
12 
13 
14 G_PKG_NAME CONSTANT VARCHAR2(30):= 'CSC_PROFILE_CHECK_PVT';
15 G_FILE_NAME CONSTANT VARCHAR2(12) := 'cscvpckb.pls';
16 
17 G_UPDATE   CONSTANT VARCHAR2(30) := 'UPDATE';
18 G_CREATE   CONSTANT VARCHAR2(30) := 'CREATE';
19 
20 PROCEDURE Convert_Columns_to_Rec(
21    p_CHECK_ID			    IN   NUMBER DEFAULT NULL,
22    p_CHECK_NAME          IN   VARCHAR2,
23    p_CHECK_NAME_CODE     IN   VARCHAR2,
24    p_DESCRIPTION         IN   VARCHAR2 ,
25    p_START_DATE_ACTIVE   IN   DATE,
26    p_END_DATE_ACTIVE     IN   DATE,
27    p_SEEDED_FLAG         IN   VARCHAR2,
28    p_SELECT_TYPE         IN   VARCHAR2,
29    p_SELECT_BLOCK_ID     IN   NUMBER ,
30    p_DATA_TYPE           IN   VARCHAR2,
31    p_FORMAT_MASK             IN   VARCHAR2,
32    p_THRESHOLD_GRADE         IN   VARCHAR2,
33    p_THRESHOLD_RATING_CODE   IN   VARCHAR2,
34    p_CHECK_UPPER_LOWER_FLAG  IN   VARCHAR2,
35    p_THRESHOLD_COLOR_CODE    IN   VARCHAR2,
36    p_CHECK_LEVEL             IN   VARCHAR2,
37    p_CREATED_BY              IN   NUMBER ,
38    p_CREATION_DATE           IN   DATE   ,
39    p_LAST_UPDATED_BY         IN   NUMBER ,
40    p_LAST_UPDATE_DATE        IN   DATE   ,
41    p_LAST_UPDATE_LOGIN       IN   NUMBER ,
42    p_OBJECT_VERSION_NUMBER   IN   NUMBER DEFAULT NULL,
43    p_APPLICATION_ID          IN   NUMBER ,
44    X_Check_Rec     		     OUT NOCOPY  Check_Rec_Type
45    )
46 IS
47 BEGIN
48     X_Check_Rec.CHECK_ID    := p_CHECK_ID;
49     X_Check_Rec.CHECK_NAME  := p_CHECK_NAME;
50     X_Check_Rec.CHECK_NAME_CODE := p_CHECK_NAME_CODE;
51     X_Check_Rec.DESCRIPTION := p_DESCRIPTION;
52     X_Check_Rec.START_DATE_ACTIVE := p_START_DATE_ACTIVE;
53     X_Check_Rec.END_DATE_ACTIVE := p_END_DATE_ACTIVE;
54     X_Check_Rec.SEEDED_FLAG  := p_SEEDED_FLAG;
55     X_Check_Rec.SELECT_TYPE  := p_SELECT_TYPE;
56     X_Check_Rec.SELECT_BLOCK_ID  := p_SELECT_BLOCK_ID;
57     X_Check_Rec.DATA_TYPE  := p_DATA_TYPE;
58     X_Check_Rec.FORMAT_MASK := p_FORMAT_MASK;
59     X_Check_Rec.THRESHOLD_GRADE := p_THRESHOLD_GRADE;
60     X_Check_Rec.THRESHOLD_RATING_CODE := p_THRESHOLD_RATING_CODE;
61     X_Check_Rec.CHECK_UPPER_LOWER_FLAG := p_CHECK_UPPER_LOWER_FLAG;
62     X_Check_Rec.THRESHOLD_COLOR_CODE := p_THRESHOLD_COLOR_CODE;
63     X_Check_Rec.CHECK_LEVEL := p_CHECK_LEVEL;
64     X_Check_Rec.CREATED_BY := p_CREATED_BY;
65     X_Check_Rec.CREATION_DATE := p_CREATION_DATE;
66     X_Check_Rec.LAST_UPDATED_BY := p_LAST_UPDATED_BY;
67     X_Check_Rec.LAST_UPDATE_DATE := p_LAST_UPDATE_DATE;
68     X_Check_Rec.LAST_UPDATE_LOGIN :=  p_LAST_UPDATE_LOGIN;
69     X_Check_Rec.OBJECT_VERSION_NUMBER := p_OBJECT_VERSION_NUMBER;
70     X_Check_Rec.APPLICATION_ID := p_APPLICATION_ID;
71 END Convert_Columns_to_Rec;
72 
73 
74 PROCEDURE Create_Profile_Check(
75     P_Api_Version_Number         IN   NUMBER,
76     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
77     P_Commit                     IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
78     p_validation_level           IN   NUMBER       := CSC_CORE_UTILS_PVT.G_VALID_LEVEL_FULL,
79     p_CHECK_NAME                 IN   VARCHAR2 DEFAULT NULL,
80     p_CHECK_NAME_CODE            IN   VARCHAR2 DEFAULT NULL,
81     p_DESCRIPTION                IN   VARCHAR2 DEFAULT NULL,
82     p_START_DATE_ACTIVE          IN   DATE DEFAULT NULL,
83     p_END_DATE_ACTIVE            IN   DATE DEFAULT NULL,
84     p_SEEDED_FLAG                IN   VARCHAR2 DEFAULT NULL,
85     p_SELECT_TYPE                IN   VARCHAR2 DEFAULT NULL,
86     p_SELECT_BLOCK_ID            IN   NUMBER DEFAULT NULL,
87     p_DATA_TYPE                  IN   VARCHAR2 DEFAULT NULL,
88     p_FORMAT_MASK                IN   VARCHAR2 DEFAULT NULL,
89     p_THRESHOLD_GRADE            IN   VARCHAR2 DEFAULT NULL,
90     p_THRESHOLD_RATING_CODE      IN   VARCHAR2 DEFAULT NULL,
91     p_CHECK_UPPER_LOWER_FLAG     IN   VARCHAR2 DEFAULT NULL,
92     p_THRESHOLD_COLOR_CODE       IN   VARCHAR2 DEFAULT NULL,
93     p_CHECK_LEVEL                IN   VARCHAR2 DEFAULT NULL,
94     p_CREATED_BY                 IN   NUMBER DEFAULT NULL,
95     p_CREATION_DATE              IN   DATE DEFAULT NULL,
96     p_LAST_UPDATED_BY            IN   NUMBER DEFAULT NULL,
97     p_LAST_UPDATE_DATE           IN   DATE DEFAULT NULL,
98     p_LAST_UPDATE_LOGIN          IN   NUMBER DEFAULT NULL,
99     X_CHECK_ID     		   OUT NOCOPY NUMBER,
100     X_Object_Version_Number OUT NOCOPY  NUMBER,
101     p_APPLICATION_ID             IN   NUMBER  DEFAULT NULL,
102     X_Return_Status              OUT  NOCOPY VARCHAR2,
103     X_Msg_Count                  OUT  NOCOPY NUMBER,
104     X_Msg_Data                   OUT  NOCOPY VARCHAR2
105     )
106 IS
107  l_Check_Rec     Check_Rec_Type;
108 BEGIN
109 
110    Convert_Columns_to_Rec(
111     p_CHECK_NAME              => p_CHECK_NAME,
112     p_CHECK_NAME_CODE         => p_CHECK_NAME_CODE,
113     p_DESCRIPTION             => p_DESCRIPTION,
114     p_START_DATE_ACTIVE       => p_START_DATE_ACTIVE,
115     p_END_DATE_ACTIVE         => p_END_DATE_ACTIVE,
116     p_SEEDED_FLAG             => p_SEEDED_FLAG,
117     p_SELECT_TYPE             => p_SELECT_TYPE,
118     p_SELECT_BLOCK_ID         => p_SELECT_BLOCK_ID,
119     p_DATA_TYPE               => p_DATA_TYPE,
120     p_FORMAT_MASK             => p_FORMAT_MASK,
121     p_THRESHOLD_GRADE         => p_THRESHOLD_GRADE,
122     p_THRESHOLD_RATING_CODE   => p_THRESHOLD_RATING_CODE,
123     p_CHECK_UPPER_LOWER_FLAG  => p_CHECK_UPPER_LOWER_FLAG,
124     p_THRESHOLD_COLOR_CODE    => p_THRESHOLD_COLOR_CODE,
125     p_CHECK_LEVEL             => p_CHECK_LEVEL,
126     p_CREATED_BY              => p_CREATED_BY,
127     p_CREATION_DATE           => p_CREATION_DATE,
128     p_LAST_UPDATED_BY        => p_LAST_UPDATED_BY,
129     p_LAST_UPDATE_DATE       => p_LAST_UPDATE_DATE,
130     p_LAST_UPDATE_LOGIN      => p_LAST_UPDATE_LOGIN,
131     p_APPLICATION_ID         => p_APPLICATION_ID,
132     X_Check_Rec		     => l_Check_rec
133     );
134 
135 
136    Create_Profile_Check(
137     P_Api_Version_Number         => P_Api_Version_Number,
138     P_Init_Msg_List              => P_Init_Msg_List,
139     P_Commit                     => P_Commit,
140     p_validation_level           => p_validation_level,
141     P_Check_Rec     		 => l_Check_Rec,
142     X_CHECK_ID     		 => X_CHECK_ID,
143     X_OBJECT_VERSION_NUMBER      => X_OBJECT_VERSION_NUMBER,
144     X_Return_Status              => X_Return_Status,
145     X_Msg_Count                  => X_Msg_Count,
146     X_Msg_Data                   => X_Msg_Data
147     );
148 
149 END Create_Profile_Check;
150 
151 PROCEDURE Create_Profile_Check(
152     P_Api_Version_Number         IN   NUMBER,
153     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
154     P_Commit                     IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
155     p_validation_level           IN   NUMBER       := CSC_CORE_UTILS_PVT.G_VALID_LEVEL_FULL,
156     P_Check_Rec     		 IN   Check_Rec_Type := G_MISS_CHECK_REC,
157     X_CHECK_ID     		 OUT  NOCOPY NUMBER,
158     X_OBJECT_VERSION_NUMBER      OUT NOCOPY  NUMBER,
159     X_Return_Status              OUT NOCOPY VARCHAR2,
160     X_Msg_Count                  OUT NOCOPY NUMBER,
161     X_Msg_Data                   OUT NOCOPY VARCHAR2
162     )
163 
164 IS
165    l_api_name                CONSTANT VARCHAR2(30) := 'Create_Profile_Check';
166    l_api_version_number      CONSTANT NUMBER   := 1.0;
167    l_api_name_full VARCHAR2(61) := G_PKG_NAME || '.' || l_api_name ;
168 BEGIN
169 
170       -- Standard Start of API savepoint
171       SAVEPOINT CREATE_PROFILE_CHECK_PVT;
172 
173       -- Standard call to check for call compatibility.
174       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
175                          	             p_api_version_number,
176                                            l_api_name,
177                                            G_PKG_NAME)
178       THEN
179           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
180       END IF;
181 
182 
183       -- Initialize message list if p_init_msg_list is set to TRUE.
184       IF FND_API.to_Boolean( p_init_msg_list )
185       THEN
186           FND_MSG_PUB.initialize;
187       END IF;
188 
189 
190       -- Initialize API return status to SUCCESS
191       x_return_status := FND_API.G_RET_STS_SUCCESS;
192 
193 
194       IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
195       THEN
196 
197           -- Invoke validation procedures
198           Validate_check(
199               p_init_msg_list    => FND_API.G_FALSE,
200               p_Validation_Level => p_Validation_Level,
201               p_Validation_Mode  => CSC_CORE_UTILS_PVT.G_CREATE,
202               p_CHECK_REC        => p_CHECK_REC,
203               x_return_status    => x_return_status,
204               x_msg_count        => x_msg_count,
205               x_msg_data         => x_msg_data);
206       END IF;
207       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
208           RAISE FND_API.G_EXC_ERROR;
209       END IF;
210 
211 
212       -- Invoke table handler(CSC_PROF_CHECKS_PKG.Insert_Row)
213       CSC_PROF_CHECKS_PKG.Insert_Row(
214           px_CHECK_ID             => x_CHECK_ID,
215           p_CHECK_NAME            => p_Check_rec.CHECK_NAME,
216           p_CHECK_NAME_CODE       => p_Check_rec.CHECK_NAME_CODE,
217           p_DESCRIPTION           => p_Check_rec.DESCRIPTION,
218           p_START_DATE_ACTIVE     => p_Check_rec.START_DATE_ACTIVE,
219           p_END_DATE_ACTIVE       => p_Check_rec.END_DATE_ACTIVE,
220           p_SEEDED_FLAG           => p_Check_rec.SEEDED_FLAG,
221           p_SELECT_TYPE           => p_Check_rec.SELECT_TYPE,
222           p_SELECT_BLOCK_ID       => p_Check_rec.SELECT_BLOCK_ID,
223           p_DATA_TYPE             => p_Check_rec.DATA_TYPE,
224           p_FORMAT_MASK           => p_Check_rec.FORMAT_MASK,
225           p_THRESHOLD_GRADE       => p_Check_rec.THRESHOLD_GRADE,
226           p_THRESHOLD_RATING_CODE => p_Check_rec.THRESHOLD_RATING_CODE,
227           p_CHECK_UPPER_LOWER_FLAG => p_Check_rec.CHECK_UPPER_LOWER_FLAG,
228           p_THRESHOLD_COLOR_CODE  => p_Check_rec.THRESHOLD_COLOR_CODE,
229           p_CHECK_LEVEL           => p_Check_rec.CHECK_LEVEL,
230           p_CREATED_BY            => FND_GLOBAL.USER_ID,
231           p_CREATION_DATE         => SYSDATE,
232           p_LAST_UPDATED_BY       => FND_GLOBAL.USER_ID,
233           p_LAST_UPDATE_DATE      => SYSDATE,
234           p_LAST_UPDATE_LOGIN     => p_Check_rec.LAST_UPDATE_LOGIN,
235 	  x_OBJECT_VERSION_NUMBER => X_OBJECT_VERSION_NUMBER,
236           p_APPLICATION_ID        => p_Check_rec.APPLICATION_ID);
237 
238       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
239           RAISE FND_API.G_EXC_ERROR;
240       END IF;
241 
242 
243       -- Standard check for p_commit
244       IF FND_API.to_Boolean( p_commit )
245       THEN
246           COMMIT WORK;
247       END IF;
248 
249 
250       -- Standard call to get message count and if count is 1, get message info.
251       FND_MSG_PUB.Count_And_Get
252       (  p_count          =>   x_msg_count,
253          p_data           =>   x_msg_data
254       );
255 
256    EXCEPTION
257   	WHEN FND_API.G_EXC_ERROR THEN
258     		ROLLBACK TO Create_Profile_Check_PVT;
259     		x_return_status := FND_API.G_RET_STS_ERROR;
260     		FND_MSG_PUB.Count_And_Get
261       			( p_count => x_msg_count,
262         		  p_data  => x_msg_data
263       			);
264                 APP_EXCEPTION.RAISE_EXCEPTION;
265   	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
266     		ROLLBACK TO Create_Profile_Check_PVT;
267     		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
268     		FND_MSG_PUB.Count_And_Get
269       			( p_count => x_msg_count,
270         		  p_data  => x_msg_data
271       			);
272                 APP_EXCEPTION.RAISE_EXCEPTION;
273   	WHEN OTHERS THEN
274     		ROLLBACK TO Create_Profile_Check_PVT;
275     		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
276       	FND_MSG_PUB.Build_Exc_Msg(G_PKG_NAME, l_api_name);
277     		FND_MSG_PUB.Count_And_Get
278       			( p_count => x_msg_count,
279         		  p_data  => x_msg_data
280       			);
281                 APP_EXCEPTION.RAISE_EXCEPTION;
282 End Create_Profile_Check;
283 
284 
285 PROCEDURE Update_Profile_Check(
286     P_Api_Version_Number         IN   NUMBER,
287     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
288     P_Commit                     IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
289     p_validation_level           IN   NUMBER       := CSC_CORE_UTILS_PVT.G_VALID_LEVEL_FULL,
290     p_CHECK_ID     		         IN   NUMBER  DEFAULT NULL,
291     p_CHECK_NAME                 IN   VARCHAR2 DEFAULT NULL,
292     p_CHECK_NAME_CODE            IN   VARCHAR2 DEFAULT NULL,
293     p_DESCRIPTION                IN   VARCHAR2 DEFAULT NULL,
294     p_START_DATE_ACTIVE          IN   DATE DEFAULT NULL,
295     p_END_DATE_ACTIVE            IN   DATE DEFAULT NULL,
296     p_SEEDED_FLAG                IN   VARCHAR2 DEFAULT NULL,
297     p_SELECT_TYPE                IN   VARCHAR2 DEFAULT NULL,
298     p_SELECT_BLOCK_ID            IN   NUMBER DEFAULT NULL,
299     p_DATA_TYPE                  IN   VARCHAR2 DEFAULT NULL,
300     p_FORMAT_MASK                IN   VARCHAR2 DEFAULT NULL,
301     p_THRESHOLD_GRADE            IN   VARCHAR2 DEFAULT NULL,
302     p_THRESHOLD_RATING_CODE      IN   VARCHAR2 DEFAULT NULL,
303     p_CHECK_UPPER_LOWER_FLAG     IN   VARCHAR2 DEFAULT NULL,
304     p_THRESHOLD_COLOR_CODE       IN   VARCHAR2 DEFAULT NULL,
305     p_CHECK_LEVEL                IN   VARCHAR2 DEFAULT NULL,
306     p_CREATED_BY                 IN   NUMBER DEFAULT NULL,
307     p_CREATION_DATE              IN   DATE DEFAULT NULL,
308     p_LAST_UPDATED_BY            IN   NUMBER DEFAULT NULL,
309     p_LAST_UPDATE_DATE           IN   DATE DEFAULT NULL,
310     p_LAST_UPDATE_LOGIN          IN   NUMBER DEFAULT NULL,
311     px_OBJECT_VERSION_NUMBER     IN OUT NOCOPY   NUMBER,
312     p_APPLICATION_ID             IN NUMBER DEFAULT NULL,
313     X_Return_Status              OUT NOCOPY VARCHAR2,
314     X_Msg_Count                  OUT NOCOPY NUMBER,
315     X_Msg_Data                   OUT NOCOPY VARCHAR2
316     )
317 IS
318  l_Check_Rec   Check_Rec_Type;
319 BEGIN
320 
321    Convert_Columns_to_Rec(
322     p_CHECK_ID			=> p_CHECK_ID,
323     p_CHECK_NAME              => p_CHECK_NAME,
324     p_CHECK_NAME_CODE         => p_CHECK_NAME_CODE,
325     p_DESCRIPTION             => p_DESCRIPTION,
326     p_START_DATE_ACTIVE       => p_START_DATE_ACTIVE,
327     p_END_DATE_ACTIVE         => p_END_DATE_ACTIVE,
328     p_SEEDED_FLAG             => p_SEEDED_FLAG,
329     p_SELECT_TYPE             => p_SELECT_TYPE,
330     p_SELECT_BLOCK_ID         => p_SELECT_BLOCK_ID,
331     p_DATA_TYPE               => p_DATA_TYPE,
332     p_FORMAT_MASK             => p_FORMAT_MASK,
333     p_THRESHOLD_GRADE         => p_THRESHOLD_GRADE,
334     p_THRESHOLD_RATING_CODE   => p_THRESHOLD_RATING_CODE,
335     p_CHECK_UPPER_LOWER_FLAG  => p_CHECK_UPPER_LOWER_FLAG,
336     p_THRESHOLD_COLOR_CODE    => p_THRESHOLD_COLOR_CODE,
337     p_CHECK_LEVEL             => p_CHECK_LEVEL,
338     p_CREATED_BY              => p_CREATED_BY,
339     p_CREATION_DATE          => p_CREATION_DATE,
340     p_LAST_UPDATED_BY        => p_LAST_UPDATED_BY,
341     p_LAST_UPDATE_DATE       => p_LAST_UPDATE_DATE,
342     p_LAST_UPDATE_LOGIN      => p_LAST_UPDATE_LOGIN,
343     p_APPLICATION_ID         => p_APPLICATION_ID,
344     X_Check_Rec		     => l_Check_rec
345     );
346 
347 
348    Update_Profile_check(
349     P_Api_Version_Number => P_Api_Version_Number,
350     P_Init_Msg_List    => P_Init_Msg_List,
351     P_Commit           => P_Commit,
352     p_validation_level => p_validation_level,
353     P_CHECK_REC        => l_CHECK_REC,
354     PX_OBJECT_VERSION_NUMBER => px_OBJECT_VERSION_NUMBER,
355     X_Return_Status    => X_Return_Status,
356     X_Msg_Count        => X_Msg_Count,
357     X_Msg_Data         => X_Msg_Data
358     );
359 
360 END;
361 
362 
363 PROCEDURE Update_Profile_check(
364     P_Api_Version_Number         IN   NUMBER,
365     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
366     P_Commit                     IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
367     p_validation_level           IN   NUMBER       := CSC_CORE_UTILS_PVT.G_VALID_LEVEL_FULL,
368     P_Check_Rec     		   IN   Check_Rec_Type,
369     PX_Object_Version_Number     IN OUT NOCOPY NUMBER,
370     X_Return_Status              OUT NOCOPY VARCHAR2,
371     X_Msg_Count                  OUT NOCOPY NUMBER,
372     X_Msg_Data                   OUT NOCOPY VARCHAR2
373     )
374 
375  IS
376 Cursor C_Get_check(c_CHECK_ID Number,c_object_version_number NUMBER) IS
377     Select rowid,
378            CHECK_ID,
379            CHECK_NAME,
380            CHECK_NAME_CODE,
381            DESCRIPTION,
382            START_DATE_ACTIVE,
383            END_DATE_ACTIVE,
384            SEEDED_FLAG,
385            SELECT_TYPE,
386            SELECT_BLOCK_ID,
387            DATA_TYPE,
388            FORMAT_MASK,
389            THRESHOLD_GRADE,
390            THRESHOLD_RATING_CODE,
391            CHECK_UPPER_LOWER_FLAG,
392            THRESHOLD_COLOR_CODE,
393            CHECK_LEVEL,
394            CREATED_BY,
395            CREATION_DATE,
396            LAST_UPDATED_BY,
397            LAST_UPDATE_DATE,
398            LAST_UPDATE_LOGIN,
399 	   OBJECT_VERSION_NUMBER,
400            APPLICATION_ID
401     From  CSC_PROF_CHECKS_VL
402     where check_id = c_check_id
403     and object_version_number = c_object_version_number
404     For Update NOWAIT;
405 l_api_name                CONSTANT VARCHAR2(30) := 'Update_Profile_check';
406 l_api_version_number      CONSTANT NUMBER   := 1.0;
407 -- Local Variables
408 l_ref_Check_rec  CSC_Profile_check_PVT.Check_Rec_Type;
409 l_rowid  ROWID;
410  BEGIN
411       -- Standard Start of API savepoint
412       SAVEPOINT UPDATE_PROFILE_CHECK_PVT;
413 
414       -- Standard call to check for call compatibility.
415       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
416                          	             p_api_version_number,
417                                            l_api_name,
418                                            G_PKG_NAME)
419       THEN
420           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
421       END IF;
422 
423       -- Initialize message list if p_init_msg_list is set to TRUE.
424       IF FND_API.to_Boolean( p_init_msg_list )
425       THEN
426           FND_MSG_PUB.initialize;
427       END IF;
428 
429       -- Initialize API return status to SUCCESS
430       x_return_status := FND_API.G_RET_STS_SUCCESS;
431 
432       --
433       -- Api body
434       --
435 
436       Open C_Get_check( p_Check_rec.CHECK_ID, px_object_version_number);
437 
438       Fetch C_Get_check into
439                l_rowid,
440                l_ref_Check_rec.CHECK_ID,
441                l_ref_Check_rec.CHECK_NAME,
442                l_ref_Check_rec.CHECK_NAME_CODE,
443                l_ref_Check_rec.DESCRIPTION,
444                l_ref_Check_rec.START_DATE_ACTIVE,
445                l_ref_Check_rec.END_DATE_ACTIVE,
446                l_ref_Check_rec.SEEDED_FLAG,
447                l_ref_Check_rec.SELECT_TYPE,
448                l_ref_Check_rec.SELECT_BLOCK_ID,
449                l_ref_Check_rec.DATA_TYPE,
450                l_ref_Check_rec.FORMAT_MASK,
451                l_ref_Check_rec.THRESHOLD_GRADE,
452                l_ref_Check_rec.THRESHOLD_RATING_CODE,
453                l_ref_Check_rec.CHECK_UPPER_LOWER_FLAG,
454                l_ref_Check_rec.THRESHOLD_COLOR_CODE,
455                l_ref_Check_rec.CHECK_LEVEL,
456                l_ref_Check_rec.CREATED_BY,
457                l_ref_Check_rec.CREATION_DATE,
458                l_ref_Check_rec.LAST_UPDATED_BY,
459                l_ref_Check_rec.LAST_UPDATE_DATE,
460                l_ref_Check_rec.LAST_UPDATE_LOGIN,
461 	       l_ref_Check_rec.OBJECT_VERSION_NUMBER,
462                l_ref_Check_rec.APPLICATION_ID;
463 
464        If ( C_Get_check%NOTFOUND) Then
465            close C_Get_Check;
466            IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
467            THEN
468                CSC_CORE_UTILS_PVT.RECORD_IS_LOCKED_MSG(p_Api_Name => l_api_name);
469                --FND_MESSAGE.Set_Name('CSC', 'API_MISSING_UPDATE_TARGET');
470                --FND_MESSAGE.Set_Token ('INFO', 'CHECK', FALSE);
471                --FND_MSG_PUB.Add;
472            END IF;
473            raise FND_API.G_EXC_ERROR;
474        END IF;
475        IF C_Get_Check%ISOPEN THEN
476         CLOSE C_Get_Check;
477        END IF;
478 
479       IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
480       THEN
481 
482           -- Invoke validation procedures
483           Validate_check(
484               p_init_msg_list    => FND_API.G_FALSE,
485               p_validation_level => p_validation_level,
486               p_validation_mode  => CSC_CORE_UTILS_PVT.G_UPDATE,
487               P_Check_Rec  =>  P_Check_Rec,
488               x_return_status    => x_return_status,
489               x_msg_count        => x_msg_count,
490               x_msg_data         => x_msg_data);
491       END IF;
492 
493       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
494           RAISE FND_API.G_EXC_ERROR;
495       END IF;
496 
497 
498       -- Invoke table handler(CS_PROF_CHECKS_PKG.Update_Row)
499       CSC_PROF_CHECKS_PKG.Update_Row(
500           p_CHECK_ID  => csc_core_utils_pvt.get_g_miss_num(p_Check_rec.CHECK_ID,l_ref_Check_rec.CHECK_ID),
501           p_CHECK_NAME  => csc_core_utils_pvt.get_g_miss_char(p_Check_rec.CHECK_NAME,l_ref_Check_rec.CHECK_NAME),
502           p_CHECK_NAME_CODE  => csc_core_utils_pvt.get_g_miss_char(p_Check_rec.CHECK_NAME_CODE,l_ref_Check_rec.CHECK_NAME_CODE),
503           p_DESCRIPTION  => csc_core_utils_pvt.get_g_miss_char(p_Check_rec.DESCRIPTION,l_ref_Check_rec.DESCRIPTION),
504           p_START_DATE_ACTIVE  => csc_core_utils_pvt.get_g_miss_date(p_Check_rec.START_DATE_ACTIVE,l_ref_Check_rec.START_DATE_ACTIVE),
505           p_END_DATE_ACTIVE  => csc_core_utils_pvt.get_g_miss_date(p_Check_rec.END_DATE_ACTIVE,l_ref_Check_rec.END_DATE_ACTIVE),
506           p_SEEDED_FLAG  => csc_core_utils_pvt.get_g_miss_char(p_Check_rec.SEEDED_FLAG,l_ref_Check_rec.SEEDED_FLAG),
507           p_SELECT_TYPE  => csc_core_utils_pvt.get_g_miss_char(p_Check_rec.SELECT_TYPE,l_ref_Check_rec.SELECT_TYPE),
508           p_SELECT_BLOCK_ID  => csc_core_utils_pvt.get_g_miss_num(p_Check_rec.SELECT_BLOCK_ID,l_ref_Check_rec.SELECT_BLOCK_ID),
509           p_DATA_TYPE  => csc_core_utils_pvt.get_g_miss_char(p_Check_rec.DATA_TYPE,l_ref_Check_rec.DATA_TYPE),
510           p_FORMAT_MASK  => csc_core_utils_pvt.get_g_miss_char(p_Check_rec.FORMAT_MASK,l_ref_Check_rec.FORMAT_MASK),
511           p_THRESHOLD_GRADE  => csc_core_utils_pvt.get_g_miss_char(p_Check_rec.THRESHOLD_GRADE,l_ref_Check_rec.THRESHOLD_GRADE),
512           p_THRESHOLD_RATING_CODE  => csc_core_utils_pvt.get_g_miss_char(p_Check_rec.THRESHOLD_RATING_CODE,l_ref_Check_rec.THRESHOLD_RATING_CODE),
513           p_CHECK_UPPER_LOWER_FLAG  => csc_core_utils_pvt.get_g_miss_char(p_Check_rec.CHECK_UPPER_LOWER_FLAG,l_ref_Check_rec.CHECK_UPPER_LOWER_FLAG),
514           p_THRESHOLD_COLOR_CODE  => csc_core_utils_pvt.get_g_miss_char(p_Check_rec.THRESHOLD_COLOR_CODE,l_ref_Check_rec.THRESHOLD_COLOR_CODE),
515           p_CHECK_LEVEL           => csc_core_utils_pvt.get_g_miss_char(p_Check_rec.CHECK_LEVEL,l_ref_Check_rec.CHECK_LEVEL),
516           p_LAST_UPDATED_BY  => FND_GLOBAL.USER_ID,
517           p_LAST_UPDATE_DATE  => SYSDATE,
518           p_LAST_UPDATE_LOGIN  => p_Check_rec.LAST_UPDATE_LOGIN,
519 	       px_OBJECT_VERSION_NUMBER => px_OBJECT_VERSION_NUMBER,
520           p_APPLICATION_ID   => csc_core_utils_pvt.get_g_miss_num(p_Check_rec.APPLICATION_ID,l_ref_Check_rec.APPLICATION_ID));
521 
522       --
523       -- End of API body.
524       --
525 
526       -- Standard check for p_commit
527       IF FND_API.to_Boolean( p_commit )
528       THEN
529           COMMIT WORK;
530       END IF;
531 
532 
533       -- Standard call to get message count and if count is 1, get message info.
534       FND_MSG_PUB.Count_And_Get
535       (  p_count          =>   x_msg_count,
536          p_data           =>   x_msg_data
537       );
538 
539    EXCEPTION
540   	WHEN FND_API.G_EXC_ERROR THEN
541     		ROLLBACK TO Update_Profile_check_PVT;
542     		x_return_status := FND_API.G_RET_STS_ERROR;
543     		FND_MSG_PUB.Count_And_Get
544       			( p_encoded => FND_API.G_FALSE,p_count => x_msg_count,
545         		  	  p_data  => x_msg_data
546       			);
547           APP_EXCEPTION.RAISE_EXCEPTION;
548   	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
549     		ROLLBACK TO Update_Profile_check_PVT;
550     		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
551     		FND_MSG_PUB.Count_And_Get
552       			( p_count => x_msg_count,
553         		  	  p_data  => x_msg_data
554       			);
555          APP_EXCEPTION.RAISE_EXCEPTION;
556   	WHEN OTHERS THEN
557     		ROLLBACK TO Update_Profile_check_PVT;
558     		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
559       	FND_MSG_PUB.Build_Exc_Msg(G_PKG_NAME, l_api_name);
560     		FND_MSG_PUB.Count_And_Get
561       			( p_count => x_msg_count,
562         		  	  p_data  => x_msg_data
563       			);
564           APP_EXCEPTION.RAISE_EXCEPTION;
565 End Update_Profile_check;
566 
567 PROCEDURE Delete_profile_check(
568     P_Api_Version_Number         IN   NUMBER,
569     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
570     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
571     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
572     p_Check_Id			   IN   NUMBER,
573     p_OBJECT_VERSION_NUMBER      IN   NUMBER,
574     X_Return_Status              OUT NOCOPY VARCHAR2,
575     X_Msg_Count                  OUT NOCOPY NUMBER,
576     X_Msg_Data                   OUT NOCOPY VARCHAR2
577     )
578 
579  IS
580 l_api_name                CONSTANT VARCHAR2(30) := 'Delete_profile_check';
581 l_api_version_number      CONSTANT NUMBER   := 1.0;
582  BEGIN
583       -- Standard Start of API savepoint
584       SAVEPOINT DELETE_Profile_Checks_PVT;
585 
586       -- Standard call to check for call compatibility.
587       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
588                          	             p_api_version_number,
589                                            l_api_name,
590                                            G_PKG_NAME)
591       THEN
592           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
593       END IF;
594 
595 
596       -- Initialize message list if p_init_msg_list is set to TRUE.
597       IF FND_API.to_Boolean( p_init_msg_list )
598       THEN
599           FND_MSG_PUB.initialize;
600       END IF;
601 
602 
603 
604       -- Initialize API return status to SUCCESS
605       x_return_status := FND_API.G_RET_STS_SUCCESS;
606 
607       --
608       -- Api body
609       --
610       -- Invoke table handler(CSC_PROF_CHECKS_B_PKG.Delete_Row)
611       CSC_PROF_CHECKS_PKG.Delete_Row(
612           p_CHECK_ID  => p_CHECK_ID,
613           p_OBJECT_VERSION_NUMBER => p_OBJECT_VERSION_NUMBER );
614       --
615       -- End of API body
616       --
617 
618       -- Standard check for p_commit
619       IF FND_API.to_Boolean( p_commit )
620       THEN
621           COMMIT WORK;
622       END IF;
623 
624 
625       -- Standard call to get message count and if count is 1, get message info.
626       FND_MSG_PUB.Count_And_Get
627       (  p_count          =>   x_msg_count,
628          p_data           =>   x_msg_data
629       );
630 
631       EXCEPTION
632   	WHEN FND_API.G_EXC_ERROR THEN
633     		ROLLBACK TO DELETE_Profile_Checks_PVT;
634     		x_return_status := FND_API.G_RET_STS_ERROR;
635     		FND_MSG_PUB.Count_And_Get( p_encoded => FND_API.G_FALSE,p_count => x_msg_count,
636         		  	  p_data  => x_msg_data
637       			);
638           APP_EXCEPTION.RAISE_EXCEPTION;
639   	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
640     		ROLLBACK TO DELETE_Profile_Checks_PVT;
641     		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
642     		FND_MSG_PUB.Count_And_Get( p_count => x_msg_count,
643         		  	  p_data  => x_msg_data
644       			);
645          APP_EXCEPTION.RAISE_EXCEPTION;
646   	WHEN OTHERS THEN
647     		ROLLBACK TO DELETE_Profile_Checks_PVT;
648     		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
649       	FND_MSG_PUB.Build_Exc_Msg(G_PKG_NAME, l_api_name);
650     		FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
651         		  	  p_data  => x_msg_data
652       			);
653             APP_EXCEPTION.RAISE_EXCEPTION;
654 End Delete_profile_check;
655 
656 
657 
658 PROCEDURE Validate_CHECK_NAME (
659     p_Api_Name		IN	VARCHAR2,
660     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
661     P_Validation_mode            IN   VARCHAR2,
662     P_CHECK_NAME                 IN   VARCHAR2,
663     P_check_id			   IN   NUMBER,
664     X_Return_Status              OUT  NOCOPY VARCHAR2
665     )
666 IS
667 Cursor C2  is
668  Select check_id
669  from csc_prof_checks_tl
670  where check_name = p_check_name
671  and language = userenv('LANG');
672 --local variables
673 l_dummy NUMBER;
674 BEGIN
675 
676       -- Initialize API return status to SUCCESS
677       x_return_status := FND_API.G_RET_STS_SUCCESS;
678 
679       -- Initialize message list if p_init_msg_list is set to TRUE.
680       IF FND_API.to_Boolean( p_init_msg_list )
681       THEN
682           FND_MSG_PUB.initialize;
683       END IF;
684 
685       -- validate NOT NULL column
686       IF (p_CHECK_NAME is NULL)
687       THEN
688 	    --Mandatory argument error..
689           x_return_status := FND_API.G_RET_STS_ERROR;
690 	    CSC_CORE_UTILS_PVT.mandatory_arg_error(
691 			p_api_name => p_api_name,
692 			p_argument => 'p_check_name',
693 			p_argument_value => p_check_name);
694       END IF;
695 
696       IF(p_validation_mode = G_CREATE)
697       THEN
698           -- IF p_CHECK_NAME is not NULL and p_CHECK_NAME <> G_MISS_CHAR
699           -- verify if data is valid
700           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
701 	    IF (p_check_name is not NULL and p_CHECK_NAME <> CSC_CORE_UTILS_PVT.G_MISS_CHAR)
702 	    THEN
703 		Open C2;
704 		Fetch C2 into l_dummy;
705 		  IF C2%FOUND THEN
706           	x_return_status := FND_API.G_RET_STS_ERROR;
707 			CSC_CORE_UTILS_PVT.Add_Duplicate_Value_Msg(
708 		    		p_api_name	=> p_api_name,
709 		     	p_argument	=> 'p_check_name' ,
710   		     	p_argument_value => p_check_name);
711 		  END IF;
712 		Close C2;
713 	    ELSE
714           		x_return_status := FND_API.G_RET_STS_ERROR;
715 	    		CSC_CORE_UTILS_PVT.mandatory_arg_error(
716 				p_api_name => p_api_name,
717 				p_argument => 'p_check_name',
718 				p_argument_value => p_check_name);
719 
720 	    END IF;
721       ELSIF(p_validation_mode = G_UPDATE)
722       THEN
723          -- if the check name is passed in and as NULL then
724          -- its a mandatory argument error.
725          if ( p_check_name IS NULL ) then
726 	       x_return_status := FND_API.G_RET_STS_ERROR;
727 	       CSC_CORE_UTILS_PVT.mandatory_arg_error(
728 		                                   p_api_name => p_api_name,
729 									p_argument => 'p_check_name',
730 									p_argument_value => p_check_name);
731           -- IF p_CHECK_NAME <> G_MISS_CHAR
732           -- verify if data is valid
733           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
734 	    ELSIF p_CHECK_NAME <> CSC_CORE_UTILS_PVT.G_MISS_CHAR
735 	    THEN
736 		Open C2;
737 		Loop
738 		  Fetch C2 into l_dummy;
739 		  IF (l_dummy <> p_Check_id) THEN
740           	x_return_status := FND_API.G_RET_STS_ERROR;
741 	    		CSC_CORE_UTILS_PVT.mandatory_arg_error(
742 				p_api_name => p_api_name,
743 				p_argument => 'p_check_name',
744 				p_argument_value => p_check_name);
745 				exit;
746 			else
747 			  exit;
748 		  END IF;
749 		End Loop;
750 		Close C2;
751         END IF;
752       END IF;
753 
754 END Validate_CHECK_NAME;
755 
756 
757 PROCEDURE Validate_CHECK_NAME_CODE (
758     P_Api_Name			   IN	  VARCHAR2,
759     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
760     P_Validation_mode            IN   VARCHAR2,
761     P_CHECK_NAME_CODE            IN   VARCHAR2,
762     P_check_id			   IN   NUMBER,
763     X_Return_Status              OUT  NOCOPY VARCHAR2,
764     X_Msg_Count                  OUT  NOCOPY NUMBER,
765     X_Msg_Data                   OUT  NOCOPY VARCHAR2
766     )
767 IS
768 Cursor C2  is
769  Select check_id
770  from csc_prof_checks_b
771  where check_name_code = p_check_name_code;
772 --local variables
773 l_dummy NUMBER;
774 BEGIN
775 
776       -- Initialize message list if p_init_msg_list is set to TRUE.
777       IF FND_API.to_Boolean( p_init_msg_list )
778       THEN
779           FND_MSG_PUB.initialize;
780       END IF;
781 
782 
783       -- Initialize API return status to SUCCESS
784       x_return_status := FND_API.G_RET_STS_SUCCESS;
785 
786 
787       -- validate NOT NULL column
788       IF (p_CHECK_NAME_CODE is NULL)
789       THEN
790 	    --Mandatory argument error..
791           x_return_status := FND_API.G_RET_STS_ERROR;
792 	    CSC_CORE_UTILS_PVT.mandatory_arg_error(
793 			p_api_name => p_api_name,
794 			p_argument => 'p_check_name_code',
795 			p_argument_value => p_check_name_code);
796       END IF;
797 
798       IF(p_validation_mode = G_CREATE)
799       THEN
800           -- Hint: Validate data
801           -- IF p_CHECK_NAME_CODE is not NULL and p_CHECK_NAME_CODE <> G_MISS_CHAR
802           -- verify if data is valid
803           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
804 	    IF (p_CHECK_NAME_CODE is not NULL and p_CHECK_NAME_CODE <> CSC_CORE_UTILS_PVT.G_MISS_CHAR)
805 	    THEN
806 		Open C2;
807 		Fetch C2 into l_dummy;
808 		  IF C2%FOUND THEN
809           		x_return_status := FND_API.G_RET_STS_ERROR;
810 			CSC_CORE_UTILS_PVT.Add_Duplicate_Value_Msg(
811 		    		p_api_name	=> p_api_name,
812 		     		p_argument	=> 'p_check_name_code' ,
813   		     		p_argument_value => p_check_name_code);
814 		  END IF;
815 		Close C2;
816 	    ELSE
817           		x_return_status := FND_API.G_RET_STS_ERROR;
818 	    		CSC_CORE_UTILS_PVT.mandatory_arg_error(
819 				p_api_name => p_api_name,
820 				p_argument => 'p_check_name_code',
821 				p_argument_value => p_check_name_code);
822 
823 	    END IF;
824       ELSIF(p_validation_mode = G_UPDATE)
825       THEN
826          -- if the check name code is passed in and as NULL then
827          -- its a mandatory argument error.
828          if ( p_check_name_code IS NULL ) then
829 	       x_return_status := FND_API.G_RET_STS_ERROR;
830 	       CSC_CORE_UTILS_PVT.mandatory_arg_error(
831 		                              p_api_name => p_api_name,
832 								p_argument => 'p_check_name_code',
833 								p_argument_value => p_check_name_code);
834           -- Hint: Validate data
835           -- IF p_CHECK_NAME_CODE <> G_MISS_CHAR
836           -- verify if data is valid
837           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
838 	    ELSIF p_CHECK_NAME_CODE <> CSC_CORE_UTILS_PVT.G_MISS_CHAR
839 	    THEN
840 		Open C2;
841 		Loop
842 		  Fetch C2 into l_dummy;
843 		  IF (l_dummy <> p_Check_id) THEN
844           	x_return_status := FND_API.G_RET_STS_ERROR;
845 	    		CSC_CORE_UTILS_PVT.mandatory_arg_error(
846 				p_api_name => p_api_name,
847 				p_argument => 'p_check_name_code',
848 				p_argument_value => p_check_name_code);
849 				exit;
850 			else
851 				exit;
852 		  END IF;
853 		End Loop;
854 		Close C2;
855          END IF;
856       END IF;
857 
858 END Validate_CHECK_NAME_CODE;
859 
860 
861 PROCEDURE Validate_START_END_DATE(
862     P_Api_Name			   IN	  VARCHAR2,
863     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
864     P_Validation_mode            IN   VARCHAR2,
865     P_START_DATE_ACTIVE          IN   DATE,
866     P_END_DATE			   IN	  DATE,
867     X_Return_Status              OUT NOCOPY  VARCHAR2,
868     X_Msg_Count                  OUT NOCOPY NUMBER,
869     X_Msg_Data                   OUT NOCOPY VARCHAR2
870     )
871 IS
872 BEGIN
873 
874       -- Initialize message list if p_init_msg_list is set to TRUE.
875       IF FND_API.to_Boolean( p_init_msg_list )
876       THEN
877           FND_MSG_PUB.initialize;
878       END IF;
879 
880 
881       -- Initialize API return status to SUCCESS
882       x_return_status := FND_API.G_RET_STS_SUCCESS;
883 
884   	CSC_CORE_UTILS_PVT.Validate_Start_End_Dt
885    		( p_api_name 		=> p_Api_name,
886      		  p_start_date		=> p_start_date_active,
887      		  p_end_date		=> p_end_date,
888      		  x_return_status	=> x_return_status );
889   	IF (x_return_status  <> FND_API.G_RET_STS_SUCCESS) THEN
890        	x_return_status := FND_API.G_RET_STS_ERROR;
891   	END IF;
892 
893       -- Standard call to get message count and if count is 1, get message info.
894       FND_MSG_PUB.Count_And_Get
895       (  p_count          =>   x_msg_count,
896          p_data           =>   x_msg_data
897       );
898 
899 END Validate_START_END_DATE;
900 
901 
902 PROCEDURE Validate_SEEDED_FLAG (
903     P_Api_Name			 IN   VARCHAR2,
904     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
905     P_Validation_mode            IN   VARCHAR2,
906     P_SEEDED_FLAG                IN   VARCHAR2,
907     X_Return_Status              OUT NOCOPY VARCHAR2,
908     X_Msg_Count                  OUT NOCOPY NUMBER,
909     X_Msg_Data                   OUT NOCOPY VARCHAR2
910     )
911 IS
912 BEGIN
913 
914       -- Initialize message list if p_init_msg_list is set to TRUE.
915       IF FND_API.to_Boolean( p_init_msg_list )
916       THEN
917           FND_MSG_PUB.initialize;
918       END IF;
919 
920 
921       -- Initialize API return status to SUCCESS
922       x_return_status := FND_API.G_RET_STS_SUCCESS;
923 
924 
925 
926 	-- Check if the seeded flag is passed in and is not null, if passed in
927   	-- check if the lookup code exists in fnd lookups for this date, if not
928   	-- its an invalid argument.
929   	IF (( p_seeded_flag <> CSC_CORE_UTILS_PVT.G_MISS_CHAR ) AND ( p_seeded_flag IS NOT NULL ))
930 	THEN
931     		IF CSC_CORE_UTILS_PVT.lookup_code_not_exists(
932  			p_effective_date  => trunc(sysdate),
933   			p_lookup_type     => 'YES_NO',
934   			p_lookup_code     => p_seeded_flag ) <> FND_API.G_RET_STS_SUCCESS
935       	THEN
936         		x_return_status := FND_API.G_RET_STS_ERROR;
937         		CSC_CORE_UTILS_PVT.Add_Invalid_Argument_Msg(
938 					p_api_name => p_api_name,
939 			            p_argument_value  => p_seeded_flag,
940 			            p_argument  => 'p_seeded_flag');
941      		END IF;
942   	END IF;
943 
944       -- Standard call to get message count and if count is 1, get message info.
945       FND_MSG_PUB.Count_And_Get
946       (  p_count          =>   x_msg_count,
947          p_data           =>   x_msg_data
948       );
949 
950 END Validate_SEEDED_FLAG;
951 
952 PROCEDURE Validate_check_level
953 ( p_api_name        IN  VARCHAR2,
954   p_parameter_name  IN  VARCHAR2,
955   p_check_level     IN  VARCHAR2,
956   x_return_status   OUT NOCOPY VARCHAR2
957 ) IS
958   --
959  BEGIN
960   --
961   x_return_status := FND_API.G_RET_STS_SUCCESS;
962 
963   -- check if the check_level is passed in and is not
964   -- null
965 
966   IF (( p_check_level <> CSC_CORE_UTILS_PVT.G_MISS_CHAR ) AND
967         ( p_check_level IS NOT NULL )) THEN
968 -- Commented the Following condition for  ER#8473903
969  --   IF (p_check_level <> 'PARTY' AND p_check_level <> 'ACCOUNT'AND p_check_level <> 'CONTACT' AND p_check_level <> 'EMPLOYEE')
970   IF (p_check_level <> 'PARTY' AND p_check_level <> 'ACCOUNT'AND p_check_level <> 'CONTACT' AND p_check_level <> 'EMPLOYEE' AND p_check_level<> 'SITE') -- Included the 'SITE' for NCR ER#8473903
971     THEN
972         x_return_status := FND_API.G_RET_STS_ERROR;
973         CSC_CORE_UTILS_PVT.Add_Invalid_Argument_Msg(p_api_name => p_api_name,
974                                           p_argument_value  => p_check_level,
975                                              p_argument  => p_parameter_name);
976  END IF;
977   END IF;
978 END Validate_check_Level;
979 
980 
981 
982 PROCEDURE Validate_SELECT_TYPE (
983     p_Api_Name			 IN   VARCHAR2,
984     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
985     P_Validation_mode            IN   VARCHAR2,
986     P_SELECT_TYPE                IN   VARCHAR2,
987     X_Return_Status              OUT NOCOPY VARCHAR2,
988     X_Msg_Count                  OUT NOCOPY NUMBER,
989     X_Msg_Data                   OUT NOCOPY VARCHAR2
990     )
991 IS
992 BEGIN
993 
994       -- Initialize message list if p_init_msg_list is set to TRUE.
995       IF FND_API.to_Boolean( p_init_msg_list )
996       THEN
997           FND_MSG_PUB.initialize;
998       END IF;
999 
1000 
1001       -- Initialize API return status to SUCCESS
1002       x_return_status := FND_API.G_RET_STS_SUCCESS;
1003 
1004 
1005       IF NOT p_select_type in ('B','T') THEN
1006 		x_return_status := FND_API.G_RET_STS_ERROR;
1007          	CSC_CORE_UTILS_PVT.Add_Invalid_Argument_Msg(
1008 			      p_api_name => p_api_name,
1009                      p_argument => 'P_SELECT_TYPE',
1010 	                p_argument_value  => p_select_type);
1011       END IF;
1012 
1013 
1014       -- Standard call to get message count and if count is 1, get message info.
1015       FND_MSG_PUB.Count_And_Get
1016       (  p_count          =>   x_msg_count,
1017          p_data           =>   x_msg_data
1018       );
1019 
1020 END Validate_SELECT_TYPE;
1021 
1022 
1023 PROCEDURE Validate_SELECT_BLOCK_ID (
1024     P_Api_Name			   IN   VARCHAR2,
1025     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
1026     P_Validation_mode            IN   VARCHAR2,
1027     P_SELECT_BLOCK_ID            IN   NUMBER,
1028     P_SELECT_TYPE                IN   VARCHAR2,
1029     X_Return_Status              OUT NOCOPY VARCHAR2,
1030     X_Msg_Count                  OUT NOCOPY NUMBER,
1031     X_Msg_Data                   OUT NOCOPY VARCHAR2
1032     )
1033 IS
1034 Cursor C2 is
1035  Select NULL
1036  from csc_prof_blocks_b
1037  where block_id = p_select_block_id;
1038 
1039 l_dummy number;
1040 BEGIN
1041 
1042       -- Initialize message list if p_init_msg_list is set to TRUE.
1043       IF FND_API.to_Boolean( p_init_msg_list )
1044       THEN
1045           FND_MSG_PUB.initialize;
1046       END IF;
1047 
1048 
1049       -- Initialize API return status to SUCCESS
1050       x_return_status := FND_API.G_RET_STS_SUCCESS;
1051 
1052       IF p_SELECT_TYPE = 'B' THEN
1053         -- validate NOT NULL column
1054         IF(p_SELECT_BLOCK_ID is NULL)
1055         THEN
1056 	  -- Mandatory argument error..
1057           x_return_status := FND_API.G_RET_STS_ERROR;
1058 	    CSC_CORE_UTILS_PVT.mandatory_arg_error(
1059 			    p_api_name => p_api_name,
1060 			    p_argument => 'p_select_block_id',
1061 			    p_argument_value => p_select_block_id);
1062         END IF;
1063       ELSE
1064         IF (p_SELECT_BLOCK_ID IS NOT NULL) AND  (p_SELECT_BLOCK_ID <> CSC_CORE_UTILS_PVT.G_MISS_NUM)
1065         THEN
1066                x_return_status := FND_API.G_RET_STS_ERROR;
1067           	CSC_CORE_UTILS_PVT.Add_Invalid_Argument_Msg(
1068 		    	    p_api_name => p_api_name,
1069 		    	    p_argument_value  => p_select_block_id,
1070 		            p_argument  => 'p_select_block_id');
1071         END IF;
1072       END IF;
1073 
1074       IF(p_validation_mode = G_CREATE)
1075       THEN
1076           -- Hint: Validate data
1077           -- IF p_SELECT_BLOCK_ID is not NULL and p_SELECT_BLOCK_ID <> G_MISS_CHAR
1078           -- verify if data is valid
1079           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1080           IF p_SELECT_TYPE = 'B' THEN
1081 	     IF (p_SELECT_BLOCK_ID <> CSC_CORE_UTILS_PVT.G_MISS_NUM)
1082 	     THEN
1083 		Open C2;
1084 		Fetch C2 into l_dummy;
1085 		  IF C2%NOTFOUND THEN
1086           		x_return_status := FND_API.G_RET_STS_ERROR;
1087 
1088           		CSC_CORE_UTILS_PVT.Add_Invalid_Argument_Msg(
1089 			    p_api_name => p_api_name,
1090 		            p_argument_value  => p_select_block_id,
1091 		            p_argument  => 'p_select_block_id');
1092 
1093 		  END IF;
1094 		Close C2;
1095 	      ELSE
1096           		x_return_status := FND_API.G_RET_STS_ERROR;
1097 	    		CSC_CORE_UTILS_PVT.mandatory_arg_error(
1098 				p_api_name => p_api_name,
1099 				p_argument => 'p_select_block_id',
1100 				p_argument_value => p_select_block_id);
1101 
1102 	    END IF;
1103           END IF;
1104       ELSIF(p_validation_mode = G_UPDATE)
1105       THEN
1106          -- if the select block id is passed in and as NULL then
1107          -- its a mandatory argument error.
1108 	    -- added the outer if condition to fix the bug 1563264
1109 	  IF(p_SELECT_TYPE = 'B') THEN
1110          if ( p_select_block_id IS NULL ) then
1111 	       x_return_status := FND_API.G_RET_STS_ERROR;
1112 	       CSC_CORE_UTILS_PVT.mandatory_arg_error(
1113 		                              p_api_name => p_api_name,
1114 								p_argument => 'p_select_block_id',
1115 								p_argument_value => p_select_block_id);
1116           -- Hint: Validate data
1117           -- IF p_SELECT_BLOCK_ID <> G_MISS_NUM
1118           -- verify if data is valid
1119           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1120 	    ELSIF p_SELECT_BLOCK_ID <> CSC_CORE_UTILS_PVT.G_MISS_NUM
1121 	    THEN
1122 		Open C2;
1123 		Loop
1124 		  Fetch C2 into l_dummy;
1125 		    IF C2%NOTFOUND THEN
1126           		x_return_status := FND_API.G_RET_STS_ERROR;
1127           		CSC_CORE_UTILS_PVT.Add_Invalid_Argument_Msg(
1128 				p_api_name => p_api_name,
1129 		            p_argument_value  => p_select_block_id,
1130 		            p_argument  => 'p_select_block_id');
1131 				  exit;
1132 			  else
1133 				  exit;
1134 		  END IF;
1135 		End Loop;
1136 		Close C2;
1137         END IF;
1138        END IF;
1139       END IF;
1140 
1141       -- Standard call to get message count and if count is 1, get message info.
1142       FND_MSG_PUB.Count_And_Get
1143       (  p_count          =>   x_msg_count,
1144          p_data           =>   x_msg_data
1145       );
1146 
1147 END Validate_SELECT_BLOCK_ID;
1148 
1149 
1150 PROCEDURE Validate_DATA_TYPE (
1151     p_Api_Name			IN	VARCHAR2,
1152     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
1153     P_Validation_mode            IN   VARCHAR2,
1154     P_DATA_TYPE                IN   VARCHAR2,
1155     X_Return_Status              OUT NOCOPY VARCHAR2,
1156     X_Msg_Count                  OUT NOCOPY NUMBER,
1157     X_Msg_Data                   OUT NOCOPY VARCHAR2
1158     )
1159 IS
1160 BEGIN
1161 
1162       -- Initialize message list if p_init_msg_list is set to TRUE.
1163       IF FND_API.to_Boolean( p_init_msg_list )
1164       THEN
1165           FND_MSG_PUB.initialize;
1166       END IF;
1167 
1168 
1169       -- Initialize API return status to SUCCESS
1170       x_return_status := FND_API.G_RET_STS_SUCCESS;
1171 
1172 
1173 	IF p_DATA_TYPE is not NULL and p_DATA_TYPE <> CSC_CORE_UTILS_PVT.G_MISS_CHAR
1174 	THEN
1175      -- Added 'BOOLEAN' in the IN CLAUSE . Bug #1231208
1176           IF NOT p_DATA_TYPE IN ('NUMBER','VARCHAR2','DATE', 'BOOLEAN') THEN
1177                 x_return_status := FND_API.G_RET_STS_ERROR;
1178                 CSC_CORE_UTILS_PVT.Add_Invalid_Argument_Msg(
1179 			    p_api_name        => p_api_name,
1180 		            p_argument_value  => p_data_type,
1181 		            p_argument        => 'P_DATA_TYPE');
1182 
1183           END IF;
1184 
1185 	END IF;
1186 
1187       -- Standard call to get message count and if count is 1, get message info.
1188       FND_MSG_PUB.Count_And_Get
1189       (  p_count          =>   x_msg_count,
1190          p_data           =>   x_msg_data
1191       );
1192 
1193 END Validate_DATA_TYPE;
1194 
1195 PROCEDURE Validate_THRESHOLD_GRADE (
1196     p_Api_Name			IN	VARCHAR2,
1197     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
1198     P_Validation_mode            IN   VARCHAR2,
1199     P_THRESHOLD_GRADE            IN   VARCHAR2,
1200     X_Return_Status              OUT NOCOPY VARCHAR2,
1201     X_Msg_Count                  OUT NOCOPY NUMBER,
1202     X_Msg_Data                   OUT NOCOPY VARCHAR2
1203     )
1204 IS
1205 BEGIN
1206 
1207       -- Initialize message list if p_init_msg_list is set to TRUE.
1208       IF FND_API.to_Boolean( p_init_msg_list )
1209       THEN
1210           FND_MSG_PUB.initialize;
1211       END IF;
1212 
1213 
1214       -- Initialize API return status to SUCCESS
1215       x_return_status := FND_API.G_RET_STS_SUCCESS;
1216 
1217           -- IF p_THRESHOLD_GRADE is not NULL and p_THRESHOLD_GRADE <> G_MISS_CHAR
1218           -- verify if data is valid
1219           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1220 
1221 
1222       IF(p_validation_mode = CSC_CORE_UTILS_PVT.G_CREATE)
1223       THEN
1224           -- Hint: Validate data
1225           -- IF p_THRESHOLD_GRADE is not NULL and p_THRESHOLD_GRADE <> G_MISS_CHAR
1226           -- verify if data is valid
1227           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1228           NULL;
1229       ELSIF(p_validation_mode = CSC_CORE_UTILS_PVT.G_UPDATE)
1230       THEN
1231           -- Hint: Validate data
1232           -- IF p_THRESHOLD_GRADE <> G_MISS_CHAR
1233           -- verify if data is valid
1234           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1235           NULL;
1236       END IF;
1237 
1238       -- Standard call to get message count and if count is 1, get message info.
1239       FND_MSG_PUB.Count_And_Get
1240       (  p_count          =>   x_msg_count,
1241          p_data           =>   x_msg_data
1242       );
1243 
1244 END Validate_THRESHOLD_GRADE;
1245 
1246 
1247 PROCEDURE Validate_THRESHOLD_RATING_CODE (
1248     p_Api_Name			IN	VARCHAR2,
1249     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
1250     P_Validation_mode            IN   VARCHAR2,
1251     P_THRESHOLD_RATING_CODE                IN   VARCHAR2,
1252     X_Return_Status              OUT NOCOPY VARCHAR2,
1253     X_Msg_Count                  OUT NOCOPY NUMBER,
1254     X_Msg_Data                   OUT NOCOPY VARCHAR2
1255     )
1256 IS
1257 BEGIN
1258 
1259       -- Initialize message list if p_init_msg_list is set to TRUE.
1260       IF FND_API.to_Boolean( p_init_msg_list )
1261       THEN
1262           FND_MSG_PUB.initialize;
1263       END IF;
1264 
1265        -- Initialize API return status to SUCCESS
1266       x_return_status := FND_API.G_RET_STS_SUCCESS;
1267 
1268       -- Hint: Validate data
1269       -- IF p_THRESHOLD_RATING_CODE is not NULL and p_THRESHOLD_RATING_CODE <> G_MISS_CHAR
1270       -- verify if data is valid
1271       -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1272       IF (p_THRESHOLD_RATING_CODE is NOT NULL) AND (p_THRESHOLD_RATING_CODE <> CSC_CORE_UTILS_PVT.G_MISS_CHAR)
1273       THEN
1274           IF CSC_CORE_UTILS_PVT.csc_lookup_code_not_exists(
1275                  p_effective_date => trunc(sysdate),
1276                  p_lookup_type    => 'CSC_PROF_RATINGS',
1277                  p_lookup_Code    => p_threshold_rating_code ) <> FND_API.G_RET_STS_SUCCESS
1278           THEN
1279              x_return_status := FND_API.G_RET_STS_ERROR;
1280              CSC_CORE_UTILS_PVT.Add_Invalid_Argument_Msg(
1281 						p_api_name=> p_api_name,
1282                                     p_argument_value => p_threshold_rating_code,
1283 						p_argument=>'P_RATING_CODE' );
1284 	    END IF;
1285       END IF;
1286 
1287       -- Standard call to get message count and if count is 1, get message info.
1288       FND_MSG_PUB.Count_And_Get
1289       (  p_count          =>   x_msg_count,
1290          p_data           =>   x_msg_data
1291       );
1292 
1293 END Validate_THRESHOLD_RATING_CODE;
1294 
1295 
1296 PROCEDURE Validate_UPPER_LOWER_FLAG (
1297     p_Api_Name			IN   VARCHAR2,
1298     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
1299     P_Validation_mode            IN   VARCHAR2,
1300     P_CHECK_UPPER_LOWER_FLAG                IN   VARCHAR2,
1301     X_Return_Status              OUT NOCOPY  VARCHAR2,
1302     X_Msg_Count                  OUT NOCOPY NUMBER,
1303     X_Msg_Data                   OUT NOCOPY VARCHAR2
1304     )
1305 IS
1306 BEGIN
1307 
1308       -- Initialize message list if p_init_msg_list is set to TRUE.
1309       IF FND_API.to_Boolean( p_init_msg_list )
1310       THEN
1311           FND_MSG_PUB.initialize;
1312       END IF;
1313 
1314 
1315       -- Initialize API return status to SUCCESS
1316       x_return_status := FND_API.G_RET_STS_SUCCESS;
1317 
1318 	IF p_CHECK_UPPER_LOWER_FLAG NOT IN ('U','L') THEN
1319 		   x_return_status := FND_API.G_RET_STS_ERROR;
1320              CSC_CORE_UTILS_PVT.Add_Invalid_Argument_Msg(
1321 			    p_api_name => p_api_name,
1322 		            p_argument_value  => p_check_upper_lower_flag,
1323 		            p_argument  => 'P_CHECK_UPPER_LOWER_FLAG');
1324 	END IF;
1325       -- Standard call to get message count and if count is 1, get message info.
1326       FND_MSG_PUB.Count_And_Get
1327       (  p_count          =>   x_msg_count,
1328          p_data           =>   x_msg_data
1329       );
1330 
1331 END Validate_UPPER_LOWER_FLAG;
1332 
1333 
1334 PROCEDURE Validate_THRESHOLD_COLOR_CODE (
1335     p_Api_Name			IN  VARCHAR2,
1336     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
1337     P_Validation_mode            IN   VARCHAR2,
1338     P_THRESHOLD_COLOR_CODE                IN   VARCHAR2,
1339     X_Return_Status              OUT NOCOPY VARCHAR2,
1340     X_Msg_Count                  OUT NOCOPY NUMBER,
1341     X_Msg_Data                   OUT NOCOPY VARCHAR2
1342     )
1343 IS
1344 BEGIN
1345 
1346       -- Initialize message list if p_init_msg_list is set to TRUE.
1347       IF FND_API.to_Boolean( p_init_msg_list )
1348       THEN
1349           FND_MSG_PUB.initialize;
1350       END IF;
1351 
1352 
1353       -- Initialize API return status to SUCCESS
1354       x_return_status := FND_API.G_RET_STS_SUCCESS;
1355 
1356 	NULL;
1357 
1358       -- Standard call to get message count and if count is 1, get message info.
1359       FND_MSG_PUB.Count_And_Get
1360       (  p_count          =>   x_msg_count,
1361          p_data           =>   x_msg_data
1362       );
1363 
1364 END Validate_THRESHOLD_COLOR_CODE;
1365 
1366 /*
1367 PROCEDURE Validate_CATEGORY_CODE (
1368     p_Api_Name			IN VARCHAR2,
1369     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
1370     P_Validation_mode            IN   VARCHAR2,
1371     P_CATEGORY_CODE                IN   VARCHAR2,
1372     X_Return_Status              OUT  VARCHAR2,
1373     X_Msg_Count                  OUT  NUMBER,
1374     X_Msg_Data                   OUT  VARCHAR2
1375     )
1376 IS
1377 BEGIN
1378 
1379       -- Initialize message list if p_init_msg_list is set to TRUE.
1380       IF FND_API.to_Boolean( p_init_msg_list )
1381       THEN
1382           FND_MSG_PUB.initialize;
1383       END IF;
1384 
1385 
1386       -- Initialize API return status to SUCCESS
1387       x_return_status := FND_API.G_RET_STS_SUCCESS;
1388 
1389 	NULL;
1390 
1391       -- Standard call to get message count and if count is 1, get message info.
1392       FND_MSG_PUB.Count_And_Get
1393       (  p_count          =>   x_msg_count,
1394          p_data           =>   x_msg_data
1395       );
1396 
1397 END Validate_CATEGORY_CODE;
1398 */
1399 
1400 
1401 PROCEDURE Validate_check(
1402     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
1403     P_Validation_level           IN   NUMBER := CSC_CORE_UTILS_PVT.G_VALID_LEVEL_FULL,
1404     P_Validation_mode            IN   VARCHAR2,
1405     P_Check_Rec     IN    Check_Rec_Type,
1406     X_Return_Status              OUT NOCOPY VARCHAR2,
1407     X_Msg_Count                  OUT NOCOPY NUMBER,
1408     X_Msg_Data                   OUT NOCOPY VARCHAR2
1409     )
1410 IS
1411 p_api_name   CONSTANT VARCHAR2(30) := 'Validate_check';
1412  BEGIN
1413 
1414 
1415       -- Initialize API return status to SUCCESS
1416       x_return_status := FND_API.G_RET_STS_SUCCESS;
1417 
1418 
1419           Validate_CHECK_NAME(
1420 	      p_Api_Name	=> p_Api_Name,
1421               p_init_msg_list          => FND_API.G_FALSE,
1422               p_validation_mode        => p_validation_mode,
1423               p_CHECK_NAME   => P_Check_Rec.CHECK_NAME,
1424               p_CHECK_ID     => P_CHECK_REC.CHECK_ID,
1425               x_return_status          => x_return_status );
1426           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1427               raise FND_API.G_EXC_ERROR;
1428           END IF;
1429 
1430           Validate_CHECK_NAME_CODE(
1431               p_Api_Name	=> p_Api_Name,
1432               p_init_msg_list          => CSC_CORE_UTILS_PVT.G_FALSE,
1433               p_validation_mode        => p_validation_mode,
1434               p_CHECK_NAME_CODE   => P_Check_Rec.CHECK_NAME_CODE,
1435               p_CHECK_ID	=> p_CHECK_Rec.CHECK_ID,
1436               x_return_status          => x_return_status,
1437               x_msg_count              => x_msg_count,
1438               x_msg_data               => x_msg_data);
1439           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1440               raise FND_API.G_EXC_ERROR;
1441           END IF;
1442 	    -- validate start and end date
1443 	    CSC_CORE_UTILS_PVT.Validate_Start_End_Dt(
1444 	       p_api_name 		=> p_Api_name,
1445              p_start_date		=> p_check_rec.start_date_active,
1446              p_end_date		=> p_check_rec.end_date_active,
1447              x_return_status	=> x_return_status );
1448 
1449   	    IF (x_return_status  <> FND_API.G_RET_STS_SUCCESS) THEN
1450              RAISE FND_API.G_EXC_ERROR;
1451   	    END IF;
1452 
1453           Validate_SEEDED_FLAG(
1454               p_APi_Name	=> p_Api_Name,
1455               p_init_msg_list          => CSC_CORE_UTILS_PVT.G_FALSE,
1456               p_validation_mode        => p_validation_mode,
1457               p_SEEDED_FLAG   => P_Check_Rec.SEEDED_FLAG,
1458               x_return_status          => x_return_status,
1459               x_msg_count              => x_msg_count,
1460               x_msg_data               => x_msg_data);
1461           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1462               raise FND_API.G_EXC_ERROR;
1463           END IF;
1464 
1465           Validate_SELECT_TYPE(
1466 	      p_Api_Name	=> p_Api_Name,
1467               p_init_msg_list          => CSC_CORE_UTILS_PVT.G_FALSE,
1468               p_validation_mode        => p_validation_mode,
1469               p_SELECT_TYPE   => P_Check_Rec.SELECT_TYPE,
1470               x_return_status          => x_return_status,
1471               x_msg_count              => x_msg_count,
1472               x_msg_data               => x_msg_data);
1473           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1474               raise FND_API.G_EXC_ERROR;
1475           END IF;
1476 
1477 
1478           Validate_SELECT_BLOCK_ID(
1479 	     p_Api_Name		=> p_Api_Name,
1480               p_init_msg_list          => CSC_CORE_UTILS_PVT.G_FALSE,
1481               p_validation_mode        => p_validation_mode,
1482               p_SELECT_BLOCK_ID   => P_Check_Rec.SELECT_BLOCK_ID,
1483               p_SELECT_TYPE       => P_Check_Rec.SELECT_TYPE,
1484               x_return_status          => x_return_status,
1485               x_msg_count              => x_msg_count,
1486               x_msg_data               => x_msg_data);
1487           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1488               raise FND_API.G_EXC_ERROR;
1489           END IF;
1490 
1491 
1492           Validate_DATA_TYPE(
1493 	      p_Api_Name	=> p_Api_Name,
1494               p_init_msg_list          => CSC_CORE_UTILS_PVT.G_FALSE,
1495               p_validation_mode        => p_validation_mode,
1496               p_DATA_TYPE   => P_Check_Rec.DATA_TYPE,
1497               x_return_status          => x_return_status,
1498               x_msg_count              => x_msg_count,
1499               x_msg_data               => x_msg_data);
1500           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1501               raise FND_API.G_EXC_ERROR;
1502           END IF;
1503 
1504 
1505           Validate_THRESHOLD_GRADE(
1506 	     p_Api_Name		=> p_Api_Name,
1507               p_init_msg_list          => CSC_CORE_UTILS_PVT.G_FALSE,
1508               p_validation_mode        => p_validation_mode,
1509               p_THRESHOLD_GRADE   => P_Check_Rec.THRESHOLD_GRADE,
1510               x_return_status          => x_return_status,
1511               x_msg_count              => x_msg_count,
1512               x_msg_data               => x_msg_data);
1513           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1514               raise FND_API.G_EXC_ERROR;
1515           END IF;
1516 
1517           Validate_THRESHOLD_RATING_CODE(
1518 	      p_Api_Name	=> p_Api_Name,
1519               p_init_msg_list          => CSC_CORE_UTILS_PVT.G_FALSE,
1520               p_validation_mode        => p_validation_mode,
1521               p_THRESHOLD_RATING_CODE   => P_Check_Rec.THRESHOLD_RATING_CODE,
1522               x_return_status          => x_return_status,
1523               x_msg_count              => x_msg_count,
1524               x_msg_data               => x_msg_data);
1525           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1526               raise FND_API.G_EXC_ERROR;
1527           END IF;
1528 
1529           Validate_UPPER_LOWER_FLAG(
1530 	      p_Api_Name	=> p_Api_Name,
1531               p_init_msg_list          => CSC_CORE_UTILS_PVT.G_FALSE,
1532               p_validation_mode        => p_validation_mode,
1533               p_CHECK_UPPER_LOWER_FLAG   => P_Check_Rec.CHECK_UPPER_LOWER_FLAG,
1534               x_return_status          => x_return_status,
1535               x_msg_count              => x_msg_count,
1536               x_msg_data               => x_msg_data);
1537           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1538               raise FND_API.G_EXC_ERROR;
1539           END IF;
1540 
1541           Validate_THRESHOLD_COLOR_CODE(
1542 	     p_Api_Name		=> p_Api_Name,
1543               p_init_msg_list          => CSC_CORE_UTILS_PVT.G_FALSE,
1544               p_validation_mode        => p_validation_mode,
1545               p_THRESHOLD_COLOR_CODE   => P_Check_Rec.THRESHOLD_COLOR_CODE,
1546               x_return_status          => x_return_status,
1547               x_msg_count              => x_msg_count,
1548               x_msg_data               => x_msg_data);
1549           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1550               raise FND_API.G_EXC_ERROR;
1551           END IF;
1552 
1553          CSC_CORE_UTILS_PVT.Validate_APPLICATION_ID (
1554            P_Init_Msg_List              => CSC_CORE_UTILS_PVT.G_FALSE,
1555            P_Application_ID             => P_Check_Rec.application_id,
1556            p_effective_date             => SYSDATE,
1557            X_Return_Status              => x_return_status,
1558            X_Msg_Count                  => x_msg_count,
1559            X_Msg_Data                   => x_msg_data );
1560 
1561         IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1562                 RAISE FND_API.G_EXC_ERROR;
1563         END IF;
1564 
1565          --Validate Check_level
1566         Validate_Check_Level(
1567            p_api_name         => p_api_name,
1568            p_parameter_name   => 'p_Check_Level',
1569            p_check_level      => P_Check_Rec.check_level,
1570            x_return_status    => x_return_status );
1571 
1572         IF (x_return_status  <> FND_API.G_RET_STS_SUCCESS) THEN
1573          RAISE FND_API.G_EXC_ERROR;
1574         END IF;
1575 
1576 /*
1577           Validate_CATEGORY_CODE(
1578 	     p_Api_Name		=> p_Api_Name,
1579               p_init_msg_list          => CSC_CORE_UTILS_PVT.G_FALSE,
1580               p_validation_mode        => p_validation_mode,
1581               p_CATEGORY_CODE   => P_Check_Rec.CATEGORY_CODE,
1582               x_return_status          => x_return_status,
1583               x_msg_count              => x_msg_count,
1584               x_msg_data               => x_msg_data);
1585           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1586               raise FND_API.G_EXC_ERROR;
1587           END IF;
1588  */
1589 END Validate_check;
1590 
1591 End CSC_PROFILE_CHECK_PVT;