DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_CAL_CRT_PVT

Source


1 PACKAGE BODY AMS_Cal_Crt_PVT as
2 /* $Header: amsvcctb.pls 115.13 2003/03/09 20:14:21 ptendulk noship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 --          AMS_Cal_Crt_PVT
7 -- Purpose
8 --
9 -- History
10 --
11 -- NOTE
12 --
13 -- This Api is generated with Latest version of
14 -- Rosetta, where g_miss indicates NULL and
15 -- NULL indicates missing value. Rosetta Version 1.55
16 -- End of Comments
17 -- ===============================================================
18 AMS_DEBUG_HIGH_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
19 AMS_DEBUG_LOW_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
20 AMS_DEBUG_MEDIUM_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
21 
22 G_PKG_NAME CONSTANT VARCHAR2(30):= 'AMS_Cal_Crt_PVT';
23 G_FILE_NAME CONSTANT VARCHAR2(12) := 'amsvcctb.pls';
24 -- G_USER_ID         NUMBER := FND_GLOBAL.USER_ID;
25 -- G_LOGIN_ID        NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
26 
27 PROCEDURE Default_Cal_Crt_Rec_Items (
28    p_cal_crt_rec_rec IN  cal_crt_rec_rec_type ,
29    x_cal_crt_rec_rec OUT NOCOPY cal_crt_rec_rec_type
30 ) ;
31 -- Hint: Primary key needs to be returned.
32 --   ==============================================================================
33 --    Start of Comments
34 --   ==============================================================================
35 --   API Name
36 --           Create_Cal_Crt
37 --   Type
38 --           Private
39 --   Pre-Req
40 --
41 --   Parameters
42 --
43 --   IN
44 --       p_api_version_number      IN   NUMBER     Required
45 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
46 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
47 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
48 --       p_cal_crt_rec_rec            IN   cal_crt_rec_rec_type  Required
49 --
50 --   OUT
51 --       x_return_status           OUT  VARCHAR2
52 --       x_msg_count               OUT  NUMBER
53 --       x_msg_data                OUT  VARCHAR2
54 --   Version : Current version 1.0
55 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
56 --         and basic operation, developer must manually add parameters and business logic as necessary.
57 --
58 --   History
59 --
60 --   NOTE
61 --
62 --   End of Comments
63 --   ==============================================================================
64 PROCEDURE Create_Cal_Crt(
65     p_api_version_number         IN   NUMBER,
66     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
67     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
68     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
69     x_return_status              OUT NOCOPY  VARCHAR2,
70     x_msg_count                  OUT NOCOPY  NUMBER,
71     x_msg_data                   OUT NOCOPY  VARCHAR2,
72     p_cal_crt_rec_rec            IN   cal_crt_rec_rec_type  := g_miss_cal_crt_rec_rec,
73     x_criteria_id                OUT NOCOPY  NUMBER
74     )
75  IS
76 L_API_NAME                       CONSTANT VARCHAR2(30) := 'Create_Cal_Crt';
77 L_API_VERSION_NUMBER             CONSTANT NUMBER   := 1.0;
78    l_return_status_full          VARCHAR2(1);
79    l_object_version_number       NUMBER := 1;
80 --   l_org_id                      NUMBER := FND_API.G_MISS_NUM;
81    l_criteria_id                 NUMBER;
82    l_dummy                       NUMBER;
83    l_cal_crt_rec_rec       cal_crt_rec_rec_type := p_cal_crt_rec_rec;
84 
85   CURSOR c_id IS
86       SELECT ams_calendar_criteria_s.NEXTVAL
87       FROM dual;
88    CURSOR c_id_exists (l_id IN NUMBER) IS
89       SELECT 1
90       FROM ams_calendar_criteria
91       WHERE criteria_id = l_id;
92 BEGIN
93       -- Standard Start of API savepoint
94       SAVEPOINT create_cal_crt_pvt;
95       -- Standard call to check for call compatibility.
96       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
97                                            p_api_version_number,
98                                            l_api_name,
99                                            G_PKG_NAME)
100       THEN
101           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
102       END IF;
103 
104      -- Initialize message list if p_init_msg_list is set to TRUE.
105       IF FND_API.to_Boolean( p_init_msg_list )
106       THEN
107          FND_MSG_PUB.initialize;
108       END IF;
109       -- Debug Message
110       IF (AMS_DEBUG_HIGH_ON) THEN
111 
112      AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
113       END IF;
114       -- Initialize API return status to SUCCESS
115       x_return_status := FND_API.G_RET_STS_SUCCESS;
116 
117         -- =========================================================================
118       -- Validate Environment
119       -- =========================================================================
120       IF FND_GLOBAL.USER_ID IS NULL
121       THEN
122          AMS_Utility_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
123           RAISE FND_API.G_EXC_ERROR;
124       END IF;
125 
126       IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
127       THEN
128           -- Debug message
129           IF (AMS_DEBUG_HIGH_ON) THEN
130 
131           AMS_UTILITY_PVT.debug_message('Private API: Validate_Cal_Crt');
132           END IF;
133        --  Charu: Populate the default required items.
134            l_cal_crt_rec_rec.last_update_date      := SYSDATE;
135            l_cal_crt_rec_rec.last_updated_by       := FND_GLOBAL.user_id;
136            l_cal_crt_rec_rec.creation_date         := SYSDATE;
137            l_cal_crt_rec_rec.created_by            := FND_GLOBAL.user_id;
138            l_cal_crt_rec_rec.last_update_login     := FND_GLOBAL.conc_login_id;
139            l_cal_crt_rec_rec.object_version_number := l_object_version_number;
140           -- Invoke validation procedures
141           Validate_cal_crt(
142             p_api_version_number     => 1.0,
143             p_init_msg_list    => FND_API.G_FALSE,
144             p_validation_level => p_validation_level,
145             p_validation_mode => JTF_PLSQL_API.g_create,
146             p_cal_crt_rec_rec  =>  l_cal_crt_rec_rec,
147             x_return_status    => x_return_status,
148             x_msg_count        => x_msg_count,
149             x_msg_data         => x_msg_data);
150       END IF;
151 
152       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
153           RAISE FND_API.G_EXC_ERROR;
154       END IF;
155    -- Local variable initialization
156    IF l_cal_crt_rec_rec.criteria_id IS NULL OR l_cal_crt_rec_rec.criteria_id = FND_API.g_miss_num THEN
157       LOOP
158          l_dummy := NULL;
159          OPEN c_id;
160          FETCH c_id INTO l_criteria_id;
161          CLOSE c_id;
162          OPEN c_id_exists(l_criteria_id);
163          FETCH c_id_exists INTO l_dummy;
164          CLOSE c_id_exists;
165          EXIT WHEN l_dummy IS NULL;
166       END LOOP;
167    ELSE
168          l_criteria_id := l_cal_crt_rec_rec.criteria_id;
169    END IF;
170       -- Debug Message
171       IF (AMS_DEBUG_HIGH_ON) THEN
172 
173       AMS_UTILITY_PVT.debug_message( 'Private API: Calling create table handler');
174       END IF;
175 
176       -- Invoke table handler(Ams_Cal_Crt_Pkg.Insert_Row)
177       Ams_Cal_Crt_Pkg.Insert_Row(
178           px_criteria_id  => l_criteria_id,
179           p_object_type_code  => l_cal_crt_rec_rec.object_type_code,
180           p_custom_setup_id  => l_cal_crt_rec_rec.custom_setup_id,
181           p_activity_type_code  => l_cal_crt_rec_rec.activity_type_code,
182           p_activity_id  => l_cal_crt_rec_rec.activity_id,
183           p_status_id  => l_cal_crt_rec_rec.status_id,
184           p_priority_id  => l_cal_crt_rec_rec.priority_id,
185           p_object_id  => l_cal_crt_rec_rec.object_id,
186           p_criteria_start_date  => l_cal_crt_rec_rec.criteria_start_date,
187           p_criteria_end_date  => l_cal_crt_rec_rec.criteria_end_date,
188           p_criteria_deleted  => l_cal_crt_rec_rec.criteria_deleted,
189           p_criteria_enabled  => l_cal_crt_rec_rec.criteria_enabled,
190           p_last_update_date  => SYSDATE,
191           p_last_updated_by  => FND_GLOBAL.USER_ID,
192           p_creation_date  => SYSDATE,
193           p_created_by  => FND_GLOBAL.USER_ID,
194           p_last_update_login  => FND_GLOBAL.conc_login_id,
195           px_object_version_number  => l_object_version_number
196 );
197 
198           x_criteria_id := l_criteria_id;
199       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
200           RAISE FND_API.G_EXC_ERROR;
201       END IF;
202 --
203 -- End of API body
204 --
205       -- Standard check for p_commit
206       IF FND_API.to_Boolean( p_commit )
207       THEN
208          COMMIT WORK;
209       END IF;
210       -- Debug Message
211       IF (AMS_DEBUG_HIGH_ON) THEN
212       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
213       END IF;
214       -- Standard call to get message count and if count is 1, get message info.
215       FND_MSG_PUB.Count_And_Get
216         (p_count          =>   x_msg_count,
217          p_data           =>   x_msg_data
218       );
219 EXCEPTION
220    WHEN AMS_Utility_PVT.resource_locked THEN
221      x_return_status := FND_API.g_ret_sts_error;
222          AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
223    WHEN FND_API.G_EXC_ERROR THEN
224      ROLLBACK TO CREATE_Cal_Crt_PVT;
225      x_return_status := FND_API.G_RET_STS_ERROR;
226      -- Standard call to get message count and if count=1, get the message
227      FND_MSG_PUB.Count_And_Get (
228             p_encoded => FND_API.G_FALSE,
229             p_count   => x_msg_count,
230             p_data    => x_msg_data
231      );
232    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
233      ROLLBACK TO CREATE_Cal_Crt_PVT;
234      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
235      -- Standard call to get message count and if count=1, get the message
236      FND_MSG_PUB.Count_And_Get (
237             p_encoded => FND_API.G_FALSE,
238             p_count => x_msg_count,
239             p_data  => x_msg_data
240      );
241 
242    WHEN OTHERS THEN
243      ROLLBACK TO CREATE_Cal_Crt_PVT;
244      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
245      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
246      THEN
247         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
248      END IF;
249      -- Standard call to get message count and if count=1, get the message
250      FND_MSG_PUB.Count_And_Get (
251            p_encoded => FND_API.G_FALSE,
252             p_count => x_msg_count,
253             p_data  => x_msg_data
254      );
255 End Create_Cal_Crt;
256 --   ==============================================================================
257 --    Start of Comments
258 --   ==============================================================================
259 --   API Name
260 --           Update_Cal_Crt
261 --   Type
262 --           Private
263 --   Pre-Req
264 --
265 --   Parameters
266 
267 --   IN
268 --       p_api_version_number      IN   NUMBER     Required
269 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
270 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
271 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
272 --       p_cal_crt_rec_rec            IN   cal_crt_rec_rec_type  Required
273 --
274 --   OUT
275 --       x_return_status           OUT  VARCHAR2
276 --       x_msg_count               OUT  NUMBER
277 --       x_msg_data                OUT  VARCHAR2
278 --   Version : Current version 1.0
279 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
280 --         and basic operation, developer must manually add parameters and business logic as necessary.
281 --
282 --   History
283 --
284 --   NOTE
285 --
286 --   End of Comments
287 --   ==============================================================================
288 
289 PROCEDURE Update_Cal_Crt(
290     p_api_version_number         IN   NUMBER,
291     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
292     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
293     p_validation_level           IN  NUMBER       := FND_API.G_VALID_LEVEL_FULL,
294 
295     x_return_status              OUT NOCOPY  VARCHAR2,
296     x_msg_count                  OUT NOCOPY  NUMBER,
300  IS
297     x_msg_data                   OUT NOCOPY  VARCHAR2,
298     p_cal_crt_rec_rec               IN    cal_crt_rec_rec_type
299     )
301 CURSOR c_get_cal_crt(criteria_id NUMBER) IS
302     SELECT *
303     FROM  ams_calendar_criteria
304     WHERE  criteria_id = p_cal_crt_rec_rec.criteria_id;
305     -- Hint: Developer need to provide Where clause
306 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Update_Cal_Crt';
307 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
308 -- Local Variables
309 l_object_version_number     NUMBER;
310 l_criteria_id    NUMBER;
311 l_ref_cal_crt_rec_rec  c_get_Cal_Crt%ROWTYPE ;
312 l_tar_cal_crt_rec_rec  cal_crt_rec_rec_type := P_cal_crt_rec_rec;
313 l_rowid  ROWID;
314  BEGIN
315       -- Standard Start of API savepoint
316       SAVEPOINT update_cal_crt_pvt;
317       -- Standard call to check for call compatibility.
318       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
319                                            p_api_version_number,
320                                            l_api_name,
321                                            G_PKG_NAME)
322       THEN
323           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
324       END IF;
325 
326       -- Initialize message list if p_init_msg_list is set to TRUE.
327       IF FND_API.to_Boolean( p_init_msg_list )
328       THEN
329          FND_MSG_PUB.initialize;
330       END IF;
331 
332      -- Debug Message
333       IF (AMS_DEBUG_HIGH_ON) THEN
334 
335       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
336       END IF;
337 
338      -- Charu added
339    l_tar_cal_crt_rec_rec.last_update_date      := SYSDATE;
340    l_tar_cal_crt_rec_rec.last_updated_by       := FND_GLOBAL.user_id;
341    l_tar_cal_crt_rec_rec.last_update_login     := FND_GLOBAL.conc_login_id;
342       -- Initialize API return status to SUCCESS
343       x_return_status := FND_API.G_RET_STS_SUCCESS;
344    IF (AMS_DEBUG_HIGH_ON) THEN
345    AMS_UTILITY_PVT.debug_message('l_tar_cal_crt_rec_rec.criteria_deleted: ' || l_tar_cal_crt_rec_rec.criteria_deleted);
346    END IF;
347    IF (AMS_DEBUG_HIGH_ON) THEN
348    AMS_UTILITY_PVT.debug_message('l_tar_cal_crt_rec_rec.criteria_id: ' || l_tar_cal_crt_rec_rec.criteria_id);
349    END IF;
350       -- Debug Message
351       IF (AMS_DEBUG_HIGH_ON) THEN
352       AMS_UTILITY_PVT.debug_message('Private API: - Open Cursor to Select');
353       END IF;
354       IF ( (l_tar_cal_crt_rec_rec.criteria_deleted = 'Y') AND (l_tar_cal_crt_rec_rec.criteria_enabled = 'Y') ) THEN
355    x_return_status := FND_API.g_ret_sts_error;
356 --   AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_CAL_CRT_ENABLED_DELETE');
357         IF FND_MSG_PUB.check_msg_level (FND_MSG_PUB.g_msg_lvl_error) THEN
358       FND_MESSAGE.set_name ('AMS', 'AMS_CAL_CRT_ENABLED_DELETE');
359       FND_MSG_PUB.add;
360       RAISE FND_API.G_EXC_ERROR;
361         END IF;
362       ELSE
363         OPEN c_get_Cal_Crt( l_tar_cal_crt_rec_rec.criteria_id);
364         FETCH c_get_Cal_Crt INTO l_ref_cal_crt_rec_rec  ;
365    If ( c_get_Cal_Crt%NOTFOUND) THEN
366      AMS_Utility_PVT.Error_Message(p_message_name => 'API_MISSING_UPDATE_TARGET',
367      p_token_name   => 'INFO',
368      p_token_value  => 'Cal_Crt'
369      ) ;
370      RAISE FND_API.G_EXC_ERROR;
371    END IF;
372    -- Debug Message
373    IF (AMS_DEBUG_HIGH_ON) THEN
374 
375    AMS_UTILITY_PVT.debug_message('Private API: - Close Cursor');
376    END IF;
377    CLOSE     c_get_Cal_Crt;
378 
379    If (l_tar_cal_crt_rec_rec.object_version_number is NULL or
380      l_tar_cal_crt_rec_rec.object_version_number = FND_API.G_MISS_NUM ) Then
381      AMS_Utility_PVT.Error_Message(p_message_name => 'API_VERSION_MISSING',
382     p_token_name   => 'COLUMN',
383     p_token_value  => 'Last_Update_Date') ;
384           raise FND_API.G_EXC_ERROR;
385    End if;
386    -- Check Whether record has been changed by someone else
387    If (l_tar_cal_crt_rec_rec.object_version_number <> l_ref_cal_crt_rec_rec.object_version_number) Then
388       AMS_Utility_PVT.Error_Message(p_message_name => 'API_RECORD_CHANGED',
389       p_token_name   => 'INFO',
390       p_token_value  => 'Cal_Crt') ;
391       raise FND_API.G_EXC_ERROR;
392    End if;
393 
394    IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
395    THEN
396           -- Debug message
397           IF (AMS_DEBUG_HIGH_ON) THEN
398 
399           AMS_UTILITY_PVT.debug_message('Private API: Validate_Cal_Crt');
400           END IF;
401           -- Invoke validation procedures
402           Validate_cal_crt(
403             p_api_version_number     => 1.0,
404             p_init_msg_list    => FND_API.G_FALSE,
405             p_validation_level => p_validation_level,
406             p_validation_mode => JTF_PLSQL_API.g_update,
407             p_cal_crt_rec_rec  =>  l_tar_cal_crt_rec_rec,
408             x_return_status    => x_return_status,
409             x_msg_count        => x_msg_count,
410             x_msg_data         => x_msg_data);
411    END IF;
412 
413   IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
414           RAISE FND_API.G_EXC_ERROR;
415    END IF;
416 
417   -- Debug Message
418   IF (AMS_DEBUG_HIGH_ON) THEN
419    AMS_UTILITY_PVT.debug_message('Calling Table Handler Update');
420    END IF;
421    -- Invoke table handler(Ams_Cal_Crt_Pkg.Update_Row)
422    Ams_Cal_Crt_Pkg.Update_Row(
423           p_criteria_id  => l_tar_cal_crt_rec_rec.criteria_id,
424           p_object_type_code  => l_tar_cal_crt_rec_rec.object_type_code,
425           p_custom_setup_id  => l_tar_cal_crt_rec_rec.custom_setup_id,
426           p_activity_type_code  => l_tar_cal_crt_rec_rec.activity_type_code,
427           p_activity_id  => l_tar_cal_crt_rec_rec.activity_id,
431           p_criteria_start_date  => l_tar_cal_crt_rec_rec.criteria_start_date,
428           p_status_id  => l_tar_cal_crt_rec_rec.status_id,
429           p_priority_id  => l_tar_cal_crt_rec_rec.priority_id,
430           p_object_id  => l_tar_cal_crt_rec_rec.object_id,
432           p_criteria_end_date  => l_tar_cal_crt_rec_rec.criteria_end_date,
433           p_criteria_deleted  => l_tar_cal_crt_rec_rec.criteria_deleted,
434           p_criteria_enabled  => l_tar_cal_crt_rec_rec.criteria_enabled,
435           p_last_update_date  => SYSDATE,
436           p_last_updated_by  => FND_GLOBAL.USER_ID,
437           p_last_update_login  => FND_GLOBAL.conc_login_id,
438           p_object_version_number  => l_tar_cal_crt_rec_rec.object_version_number
439      );
440    --
441    -- End of API body.
442    --
443       END IF;
444 
445      -- Standard check for p_commit
446       IF FND_API.to_Boolean( p_commit )THEN
447     COMMIT WORK;
448       END IF;
449 
450      -- Debug Message
451       IF (AMS_DEBUG_HIGH_ON) THEN
452       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
453       END IF;
454      -- Standard call to get message count and if count is 1, get message info.
455       FND_MSG_PUB.Count_And_Get
456       (p_count          =>   x_msg_count,
457        p_data           =>   x_msg_data
458       );
459 
460 EXCEPTION
461 
462   WHEN AMS_Utility_PVT.resource_locked THEN
463      x_return_status := FND_API.g_ret_sts_error;
464          AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
465 
466    WHEN FND_API.G_EXC_ERROR THEN
467      ROLLBACK TO UPDATE_Cal_Crt_PVT;
468      x_return_status := FND_API.G_RET_STS_ERROR;
469      -- Standard call to get message count and if count=1, get the message
470      FND_MSG_PUB.Count_And_Get (
471             p_encoded => FND_API.G_FALSE,
472             p_count   => x_msg_count,
473             p_data    => x_msg_data
474      );
475 
476    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
477      ROLLBACK TO UPDATE_Cal_Crt_PVT;
478      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
479      -- Standard call to get message count and if count=1, get the message
480      FND_MSG_PUB.Count_And_Get (
481             p_encoded => FND_API.G_FALSE,
482             p_count => x_msg_count,
483             p_data  => x_msg_data
484      );
485    WHEN OTHERS THEN
486      ROLLBACK TO UPDATE_Cal_Crt_PVT;
487      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
488      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
489      THEN
490         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
491      END IF;
492      -- Standard call to get message count and if count=1, get the message
493      FND_MSG_PUB.Count_And_Get (
494             p_encoded => FND_API.G_FALSE,
495             p_count => x_msg_count,
496             p_data  => x_msg_data
497      );
498 End Update_Cal_Crt;
499 --   ==============================================================================
500 --    Start of Comments
501 --   ==============================================================================
502 --   API Name
503 --           Delete_Cal_Crt
504 --   Type
505 --           Private
506 --   Pre-Req
507 --
508 --   Parameters
509 --
510 --   IN
511 --       p_api_version_number      IN   NUMBER     Required
512 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
513 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
514 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
515 --       p_criteria_id                IN   NUMBER
516 --       p_object_version_number   IN   NUMBER     Optional  Default = NULL
517 --
518 --   OUT
519 --       x_return_status           OUT  VARCHAR2
520 --       x_msg_count               OUT  NUMBER
521 --       x_msg_data                OUT  VARCHAR2
522 --   Version : Current version 1.0
523 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
524 --         and basic operation, developer must manually add parameters and business logic as necessary.
525 --
526 --   History
527 --
528 --   NOTE
529 
530 --   End of Comments
531 --   ==============================================================================
532 
533 PROCEDURE Delete_Cal_Crt(
534     p_api_version_number         IN   NUMBER,
535     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
536     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
537     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
538     x_return_status              OUT NOCOPY  VARCHAR2,
539     x_msg_count                  OUT NOCOPY  NUMBER,
540     x_msg_data                   OUT NOCOPY  VARCHAR2,
541     p_criteria_id                   IN  NUMBER,
542     p_object_version_number      IN   NUMBER
543     )
544 
545  IS
546 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Delete_Cal_Crt';
547 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
548 l_object_version_number     NUMBER;
549  BEGIN
550       -- Standard Start of API savepoint
551       SAVEPOINT delete_cal_crt_pvt;
552       -- Standard call to check for call compatibility.
553       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
554                                            p_api_version_number,
555                                            l_api_name,
556                                            G_PKG_NAME)
557       THEN
558           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
559       END IF;
560       -- Initialize message list if p_init_msg_list is set to TRUE.
561       IF FND_API.to_Boolean( p_init_msg_list )
562       THEN
566       IF (AMS_DEBUG_HIGH_ON) THEN
563          FND_MSG_PUB.initialize;
564       END IF;
565       -- Debug Message
567 
568       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
569       END IF;
570       -- Initialize API return status to SUCCESS
571       x_return_status := FND_API.G_RET_STS_SUCCESS;
572 
573       --
574       -- Api body
575       --
576       -- Debug Message
577       IF (AMS_DEBUG_HIGH_ON) THEN
578       AMS_UTILITY_PVT.debug_message( 'Private API: Calling delete table handler');
579       END IF;
580       -- Invoke table handler(Ams_Cal_Crt_Pkg.Delete_Row)
581       Ams_Cal_Crt_Pkg.Delete_Row(
582           p_criteria_id  => p_criteria_id,
583           p_object_version_number => p_object_version_number     );
584      --
585       -- End of API body
586       --
587       -- Standard check for p_commit
588       IF FND_API.to_Boolean( p_commit )
589       THEN
590          COMMIT WORK;
591       END IF;
592       -- Debug Message
593       IF (AMS_DEBUG_HIGH_ON) THEN
594 
595       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
596       END IF;
597 
598       -- Standard call to get message count and if count is 1, get message info.
599       FND_MSG_PUB.Count_And_Get
600         (p_count          =>   x_msg_count,
601          p_data           =>   x_msg_data
602       );
603 EXCEPTION
604    WHEN AMS_Utility_PVT.resource_locked THEN
605      x_return_status := FND_API.g_ret_sts_error;
606          AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
607    WHEN FND_API.G_EXC_ERROR THEN
608      ROLLBACK TO DELETE_Cal_Crt_PVT;
609      x_return_status := FND_API.G_RET_STS_ERROR;
610      -- Standard call to get message count and if count=1, get the message
611      FND_MSG_PUB.Count_And_Get (
612             p_encoded => FND_API.G_FALSE,
613             p_count   => x_msg_count,
614             p_data    => x_msg_data
615      );
616    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
617      ROLLBACK TO DELETE_Cal_Crt_PVT;
618      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
619      -- Standard call to get message count and if count=1, get the message
620      FND_MSG_PUB.Count_And_Get (
621             p_encoded => FND_API.G_FALSE,
622             p_count => x_msg_count,
623             p_data  => x_msg_data
624      );
625 
626    WHEN OTHERS THEN
627      ROLLBACK TO DELETE_Cal_Crt_PVT;
628      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
629      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
630      THEN
631         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
632      END IF;
633      -- Standard call to get message count and if count=1, get the message
634      FND_MSG_PUB.Count_And_Get (
635             p_encoded => FND_API.G_FALSE,
636             p_count => x_msg_count,
637             p_data  => x_msg_data
638      );
639 End Delete_Cal_Crt;
640 
641 -- Hint: Primary key needs to be returned.
642 --   ==============================================================================
643 --    Start of Comments
644 --   API Name
645 --           Lock_Cal_Crt
646 --   Type
647 --           Private
648 --   Pre-Req
649 --
650 --   Parameters
651 --
652 --   IN
653 --       p_api_version_number      IN   NUMBER     Required
654 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
655 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
656 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
657 --       p_cal_crt_rec_rec            IN   cal_crt_rec_rec_type  Required
658 --
659 --   OUT
660 --       x_return_status           OUT  VARCHAR2
661 --       x_msg_count               OUT  NUMBER
662 --       x_msg_data                OUT  VARCHAR2
663 --   Version : Current version 1.0
664 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
665 --         and basic operation, developer must manually add parameters and business logic as necessary.
666 --
667 --   History
668 --
669 --   NOTE
670 --
671 --   End of Comments
672 --   ==============================================================================
673 
674 
675 
676 
677 PROCEDURE Lock_Cal_Crt(
678     p_api_version_number         IN   NUMBER,
679     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
680 
681     x_return_status              OUT NOCOPY  VARCHAR2,
682     x_msg_count                  OUT NOCOPY  NUMBER,
683     x_msg_data                   OUT NOCOPY  VARCHAR2,
684 
685     p_criteria_id                   IN  NUMBER,
686     p_object_version             IN  NUMBER
687     )
688 
689  IS
690 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Lock_Cal_Crt';
691 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
692 L_FULL_NAME                 CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
693 l_criteria_id                  NUMBER;
694 
695 BEGIN
696 
697       -- Debug Message
698       IF (AMS_DEBUG_HIGH_ON) THEN
699 
700       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
701       END IF;
702 
703       -- Initialize message list if p_init_msg_list is set to TRUE.
704       IF FND_API.to_Boolean( p_init_msg_list )
705       THEN
706          FND_MSG_PUB.initialize;
707 
708       END IF;
709       -- Standard call to check for call compatibility.
710       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
711                                            p_api_version_number,
715           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
712                                            l_api_name,
713                                            G_PKG_NAME)
714       THEN
716       END IF;
717 
718       -- Initialize API return status to SUCCESS
719       x_return_status := FND_API.G_RET_STS_SUCCESS;
720 
721 
722 ------------------------ lock -------------------------
723 Ams_Cal_Crt_Pkg.Lock_Row(l_criteria_id,p_object_version);
724  -------------------- finish --------------------------
725   FND_MSG_PUB.count_and_get(
726     p_encoded => FND_API.g_false,
727     p_count   => x_msg_count,
728     p_data    => x_msg_data);
729   IF (AMS_DEBUG_HIGH_ON) THEN
730 
731   AMS_Utility_PVT.debug_message(l_full_name ||': end');
732   END IF;
733 EXCEPTION
734    WHEN AMS_Utility_PVT.resource_locked THEN
735      x_return_status := FND_API.g_ret_sts_error;
736          AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
737 
738    WHEN FND_API.G_EXC_ERROR THEN
739      ROLLBACK TO LOCK_Cal_Crt_PVT;
740      x_return_status := FND_API.G_RET_STS_ERROR;
741      -- Standard call to get message count and if count=1, get the message
742      FND_MSG_PUB.Count_And_Get (
743             p_encoded => FND_API.G_FALSE,
744             p_count   => x_msg_count,
745             p_data    => x_msg_data
746      );
747 
748    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
749      ROLLBACK TO LOCK_Cal_Crt_PVT;
750      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
751      -- Standard call to get message count and if count=1, get the message
752      FND_MSG_PUB.Count_And_Get (
753             p_encoded => FND_API.G_FALSE,
754             p_count => x_msg_count,
755             p_data  => x_msg_data
756      );
757 
758    WHEN OTHERS THEN
759      ROLLBACK TO LOCK_Cal_Crt_PVT;
760      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
761      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
762      THEN
763         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
764      END IF;
765      -- Standard call to get message count and if count=1, get the message
766      FND_MSG_PUB.Count_And_Get (
767             p_encoded => FND_API.G_FALSE,
768             p_count => x_msg_count,
769             p_data  => x_msg_data
770      );
771 End Lock_Cal_Crt;
772 -- Charu: Check for duplicate/ subset criteria --
773 PROCEDURE check_Cal_crt_rec_Dup_Items(
774       p_cal_crt_rec_rec      IN   cal_crt_rec_rec_type,
775       p_validation_mode      IN  VARCHAR2 := JTF_PLSQL_API.g_create,
776       x_return_status    OUT NOCOPY VARCHAR2)
777 IS
778       CURSOR c_criteria IS
779       SELECT 'X'
780       FROM ams_calendar_criteria
781       WHERE  ( criteria_deleted = 'N'
782         AND object_type_code = p_cal_crt_rec_rec.object_type_code
783         AND DECODE(custom_setup_id, null, 1,
784             DECODE(p_cal_crt_rec_rec.custom_setup_id, null, 0, p_cal_crt_rec_rec.custom_setup_id)) =
785             DECODE(custom_setup_id, null, 1, custom_setup_id)
786         AND DECODE(activity_type_code, null, '1',
787             DECODE(p_cal_crt_rec_rec.activity_type_code, null, 'xxx', p_cal_crt_rec_rec.activity_type_code)) =
788             DECODE(activity_type_code, null, '1', activity_type_code)
789         AND DECODE(activity_id, null, 1,
790             DECODE(p_cal_crt_rec_rec.activity_id, null, 0, p_cal_crt_rec_rec.activity_id)) =
791             DECODE(activity_id, null, 1, activity_id)
792         AND DECODE(status_id, null, 1,
793             DECODE(p_cal_crt_rec_rec.status_id, null, 0, p_cal_crt_rec_rec.status_id)) =
794             DECODE(status_id, null, 1, status_id)
795         AND DECODE(priority_id, null, '1',
796             DECODE(p_cal_crt_rec_rec.priority_id, null, 'xxx', p_cal_crt_rec_rec.priority_id)) =
797             DECODE(priority_id, null, '1', priority_id)
798         AND DECODE(object_id, null, 1,
799             DECODE(p_cal_crt_rec_rec.object_id, null, 0, p_cal_crt_rec_rec.object_id)) =
800             DECODE(object_id, null, 1, object_id)
801         AND DECODE(criteria_start_date, null, SYSDATE,
802             DECODE(p_cal_crt_rec_rec.criteria_start_date, null, (SYSDATE - 1000000), p_cal_crt_rec_rec.criteria_start_date)) >=
803             DECODE(criteria_start_date, null, SYSDATE, criteria_start_date)
804         AND DECODE(criteria_end_date, null, SYSDATE, nvl(p_cal_crt_rec_rec.criteria_end_date,
805             (SYSDATE + 1000000))) <= nvl(criteria_end_date, SYSDATE)
806 --        AND DECODE(criteria_end_date, null, SYSDATE, DECODE(p_cal_crt_rec_rec.criteria_end_date, null, (SYSDATE + 1000000),
807          --p_cal_crt_rec_rec.criteria_end_date)) <= DECODE(criteria_end_date, null, SYSDATE, criteria_end_date)
808         );
809    l_cal_crt_rec_rec c_criteria%ROWTYPE;
810    l_exist VARCHAR2(1);
811 BEGIN
812    OPEN c_criteria;
813    FETCH c_criteria INTO l_exist;
814    IF c_criteria%NOTFOUND THEN
815         x_return_status  := FND_API.g_ret_sts_success;
816    ELSE
817    x_return_status := FND_API.g_ret_sts_error;
818 --   AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_CAL_CRT_DUPLICATE');
819         IF FND_MSG_PUB.check_msg_level (FND_MSG_PUB.g_msg_lvl_error) THEN
820       FND_MESSAGE.set_name ('AMS', 'AMS_CAL_CRT_DUPLICATE');
821       FND_MSG_PUB.add;
822       RAISE FND_API.G_EXC_ERROR;
823         END IF;
824    END IF;
825 
826    CLOSE c_criteria;
827 END check_Cal_crt_rec_Dup_Items;
828 
829 PROCEDURE check_Cal_Crt_Rec_Uk_Items(
830     p_cal_crt_rec_rec               IN   cal_crt_rec_rec_type,
831     p_validation_mode            IN  VARCHAR2 := JTF_PLSQL_API.g_create,
832     x_return_status              OUT NOCOPY VARCHAR2)
833 IS
834 l_valid_flag  VARCHAR2(1);
835 BEGIN
836       x_return_status := FND_API.g_ret_sts_success;
837       IF p_validation_mode = JTF_PLSQL_API.g_create
841          'ams_calendar_criteria',
838       AND p_cal_crt_rec_rec.criteria_id IS NOT NULL
839       THEN
840          l_valid_flag := AMS_Utility_PVT.check_uniqueness(
842          'criteria_id = ''' || p_cal_crt_rec_rec.criteria_id ||''''
843          );
844       END IF;
845 
846       IF l_valid_flag = FND_API.g_false THEN
847          AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_criteria_id_DUPLICATE');
848          x_return_status := FND_API.g_ret_sts_error;
849       END IF;
850 END check_Cal_Crt_Rec_Uk_Items;
851 
852 PROCEDURE check_Cal_Crt_Rec_Req_Items(
853     p_cal_crt_rec_rec               IN  cal_crt_rec_rec_type,
854     p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
855     x_return_status            OUT NOCOPY VARCHAR2
856 )
857 IS
858 BEGIN
859    x_return_status := FND_API.g_ret_sts_success;
860    IF p_validation_mode = JTF_PLSQL_API.g_create THEN
861       IF p_cal_crt_rec_rec.object_type_code = FND_API.g_miss_char OR p_cal_crt_rec_rec.object_type_code IS NULL THEN
862                AMS_Utility_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'OBJECT_TYPE_CODE' );
863                x_return_status := FND_API.g_ret_sts_error;
864       END IF;
865 
866       IF p_cal_crt_rec_rec.last_update_login = FND_API.G_MISS_NUM OR p_cal_crt_rec_rec.last_update_login IS NULL THEN
867                AMS_Utility_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'LAST_UPDATE_LOGIN' );
868                x_return_status := FND_API.g_ret_sts_error;
869       END IF;
870    ELSE
871       IF p_cal_crt_rec_rec.criteria_id = FND_API.G_MISS_NUM THEN
872                AMS_Utility_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'CRITERIA_ID' );
873                x_return_status := FND_API.g_ret_sts_error;
874       END IF;
875 
876 /*
877       IF p_cal_crt_rec_rec.object_type_code = FND_API.g_miss_char THEN
878                AMS_Utility_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'OBJECT_TYPE_CODE' );
879                x_return_status := FND_API.g_ret_sts_error;
880       END IF;
881       IF p_cal_crt_rec_rec.last_update_login = FND_API.G_MISS_NUM THEN
882                AMS_Utility_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'LAST_UPDATE_LOGIN' );
883                x_return_status := FND_API.g_ret_sts_error;
884       END IF;
885 */
886    END IF;
887 
888 END check_Cal_Crt_Rec_Req_Items;
889 
890 PROCEDURE check_Cal_Crt_Rec_Fk_Items(
891     p_cal_crt_rec_rec IN cal_crt_rec_rec_type,
892     x_return_status OUT NOCOPY VARCHAR2
893 )
894 IS
895 BEGIN
896    x_return_status := FND_API.g_ret_sts_success;
897    -- Enter custom code here
898 END check_Cal_Crt_Rec_Fk_Items;
899 
900 PROCEDURE check_Cal_Crt_Rec_Lookup_Items(
901     p_cal_crt_rec_rec IN cal_crt_rec_rec_type,
902     x_return_status OUT NOCOPY VARCHAR2
903 )
904 IS
905 BEGIN
906    x_return_status := FND_API.g_ret_sts_success;
907    -- Enter custom code here
908 END check_Cal_Crt_Rec_Lookup_Items;
909 PROCEDURE Check_Cal_Crt_Rec_Items (
910     P_cal_crt_rec_rec     IN    cal_crt_rec_rec_type,
911     p_validation_mode  IN    VARCHAR2,
912     x_return_status    OUT NOCOPY   VARCHAR2
913     )
914 IS
915    l_return_status   VARCHAR2(1);
916 BEGIN
917 
918     l_return_status := FND_API.g_ret_sts_success;
919    -- Charu: Check if the current criteria is duplicate/ subset of an existing criteria
920    check_Cal_crt_rec_Dup_Items(
921       p_cal_crt_rec_rec => p_cal_crt_rec_rec,
922       p_validation_mode => p_validation_mode,
923       x_return_status => x_return_status);
924    IF x_return_status <> FND_API.g_ret_sts_success THEN
925       l_return_status := FND_API.g_ret_sts_error;
926    END IF;
927    -- Charu: Check if the current criteria endDate > startDate
928    IF ((p_cal_crt_rec_rec.criteria_start_date IS NOT NULL) AND (p_cal_crt_rec_rec.criteria_end_date IS NOT NULL)
929    AND (p_cal_crt_rec_rec.criteria_end_date < p_cal_crt_rec_rec.criteria_start_date)) THEN
930 --   AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_CAL_CRT_INVALID_DATES');
931         IF FND_MSG_PUB.check_msg_level (FND_MSG_PUB.g_msg_lvl_error) THEN
932       FND_MESSAGE.set_name ('AMS', 'AMS_CAL_CRT_INVALID_DATES');
933       FND_MSG_PUB.add;
934       RAISE FND_API.G_EXC_ERROR;
935         END IF;
936    l_return_status := FND_API.g_ret_sts_error;
937    END IF;
938 
939    -- Check Items Uniqueness API calls
940    check_Cal_crt_rec_Uk_Items(
941       p_cal_crt_rec_rec => p_cal_crt_rec_rec,
942       p_validation_mode => p_validation_mode,
943       x_return_status => x_return_status);
944    IF x_return_status <> FND_API.g_ret_sts_success THEN
945       l_return_status := FND_API.g_ret_sts_error;
946    END IF;
947 
948    -- Check Items Required/NOT NULL API calls
949    check_cal_crt_rec_req_items(
950       p_cal_crt_rec_rec => p_cal_crt_rec_rec,
951       p_validation_mode => p_validation_mode,
952       x_return_status => x_return_status);
953    IF x_return_status <> FND_API.g_ret_sts_success THEN
954       l_return_status := FND_API.g_ret_sts_error;
955    END IF;
956 
957    -- Check Items Foreign Keys API calls
958    check_cal_crt_rec_FK_items(
959       p_cal_crt_rec_rec => p_cal_crt_rec_rec,
960       x_return_status => x_return_status);
961    IF x_return_status <> FND_API.g_ret_sts_success THEN
962       l_return_status := FND_API.g_ret_sts_error;
963    END IF;
964    -- Check Items Lookups
965    check_cal_crt_rec_Lookup_items(
966       p_cal_crt_rec_rec => p_cal_crt_rec_rec,
967       x_return_status => x_return_status);
968    IF x_return_status <> FND_API.g_ret_sts_success THEN
972    x_return_status := l_return_status;
969       l_return_status := FND_API.g_ret_sts_error;
970    END IF;
971 
973 END Check_cal_crt_rec_Items;
974 
975 PROCEDURE Complete_Cal_Crt_Rec_Rec (
976    p_cal_crt_rec_rec IN cal_crt_rec_rec_type,
977    x_complete_rec OUT NOCOPY cal_crt_rec_rec_type)
978 IS
979    l_return_status  VARCHAR2(1);
980    CURSOR c_complete IS
981       SELECT *
982       FROM ams_calendar_criteria
983       WHERE criteria_id = p_cal_crt_rec_rec.criteria_id;
984    l_cal_crt_rec_rec c_complete%ROWTYPE;
985 BEGIN
986    x_complete_rec := p_cal_crt_rec_rec;
987    OPEN c_complete;
988    FETCH c_complete INTO l_cal_crt_rec_rec;
989    CLOSE c_complete;
990    -- criteria_id
991    IF p_cal_crt_rec_rec.criteria_id IS NULL THEN
992       x_complete_rec.criteria_id := l_cal_crt_rec_rec.criteria_id;
993    END IF;
994       IF (AMS_DEBUG_HIGH_ON) THEN
995       AMS_UTILITY_PVT.debug_message('criteria_id is: ' || x_complete_rec.criteria_id);
996       END IF;
997    -- object_type_code
998    IF p_cal_crt_rec_rec.object_type_code IS NULL THEN
999       x_complete_rec.object_type_code := l_cal_crt_rec_rec.object_type_code;
1000    END IF;
1001       IF (AMS_DEBUG_HIGH_ON) THEN
1002       AMS_UTILITY_PVT.debug_message('object_type_code is: ' || x_complete_rec.object_type_code);
1003       END IF;
1004    -- custom_setup_id
1005    IF p_cal_crt_rec_rec.custom_setup_id IS NULL THEN
1006       x_complete_rec.custom_setup_id := l_cal_crt_rec_rec.custom_setup_id;
1007    END IF;
1008    -- activity_type_code
1009    IF p_cal_crt_rec_rec.activity_type_code IS NULL THEN
1010       x_complete_rec.activity_type_code := l_cal_crt_rec_rec.activity_type_code;
1011    END IF;
1012    -- activity_id
1013    IF p_cal_crt_rec_rec.activity_id IS NULL THEN
1014       x_complete_rec.activity_id := l_cal_crt_rec_rec.activity_id;
1015    END IF;
1016    -- status_id
1017    IF p_cal_crt_rec_rec.status_id IS NULL THEN
1018       x_complete_rec.status_id := l_cal_crt_rec_rec.status_id;
1019    END IF;
1020 
1021    -- priority_id
1022    IF p_cal_crt_rec_rec.priority_id IS NULL THEN
1023       x_complete_rec.priority_id := l_cal_crt_rec_rec.priority_id;
1024    END IF;
1025 
1026    -- object_id
1027    IF p_cal_crt_rec_rec.object_id IS NULL THEN
1028       x_complete_rec.object_id := l_cal_crt_rec_rec.object_id;
1029    END IF;
1030    -- criteria_start_date
1031    IF p_cal_crt_rec_rec.criteria_start_date IS NULL THEN
1032       x_complete_rec.criteria_start_date := l_cal_crt_rec_rec.criteria_start_date;
1033    END IF;
1034    -- criteria_end_date
1035    IF p_cal_crt_rec_rec.criteria_end_date IS NULL THEN
1036       x_complete_rec.criteria_end_date := l_cal_crt_rec_rec.criteria_end_date;
1037    END IF;
1038    -- criteria_deleted
1039    IF p_cal_crt_rec_rec.criteria_deleted IS NULL THEN
1040       x_complete_rec.criteria_deleted := l_cal_crt_rec_rec.criteria_deleted;
1041    END IF;
1042    -- criteria_enabled
1043    IF p_cal_crt_rec_rec.criteria_enabled IS NULL THEN
1044       x_complete_rec.criteria_enabled := l_cal_crt_rec_rec.criteria_enabled;
1045    END IF;
1046 
1047    -- last_update_date
1048    IF p_cal_crt_rec_rec.last_update_date IS NULL THEN
1049       x_complete_rec.last_update_date := l_cal_crt_rec_rec.last_update_date;
1050    END IF;
1051    -- last_updated_by
1052    IF p_cal_crt_rec_rec.last_updated_by IS NULL THEN
1053       x_complete_rec.last_updated_by := l_cal_crt_rec_rec.last_updated_by;
1054    END IF;
1055 
1056    -- creation_date
1057    IF p_cal_crt_rec_rec.creation_date IS NULL THEN
1058       x_complete_rec.creation_date := l_cal_crt_rec_rec.creation_date;
1059    END IF;
1060    -- created_by
1061    IF p_cal_crt_rec_rec.created_by IS NULL THEN
1062       x_complete_rec.created_by := l_cal_crt_rec_rec.created_by;
1063    END IF;
1064    -- last_update_login
1065    IF p_cal_crt_rec_rec.last_update_login IS NULL THEN
1066       x_complete_rec.last_update_login := l_cal_crt_rec_rec.last_update_login;
1067    END IF;
1068    -- object_version_number
1069    IF p_cal_crt_rec_rec.object_version_number IS NULL THEN
1070       x_complete_rec.object_version_number := l_cal_crt_rec_rec.object_version_number;
1071    END IF;
1072    -- Note: Developers need to modify the procedure
1073    -- to handle any business specific requirements.
1074 END Complete_Cal_Crt_Rec_Rec;
1075 
1076 
1077 PROCEDURE Default_Cal_Crt_Rec_Items ( p_cal_crt_rec_rec IN cal_crt_rec_rec_type ,
1078                                 x_cal_crt_rec_rec OUT NOCOPY cal_crt_rec_rec_type )
1079 IS
1080    l_cal_crt_rec_rec cal_crt_rec_rec_type := p_cal_crt_rec_rec;
1081 BEGIN
1082    -- Developers should put their code to default the record type
1083    -- e.g. IF p_campaign_rec.status_code IS NULL
1084    --      OR p_campaign_rec.status_code = FND_API.G_MISS_CHAR THEN
1085    --         l_campaign_rec.status_code := 'NEW' ;
1086    --      END IF ;
1087    --
1088    NULL ;
1089 /*
1090    x_cal_crt_rec_rec := p_cal_crt_rec_rec;
1091    IF (p_cal_crt_rec_rec.criteria_enabled IS NULL) THEN
1092       x_cal_crt_rec_rec.criteria_enabled := 'Y';
1093    END IF;
1094    IF p_cal_crt_rec_rec.criteria_deleted IS NULL THEN
1095       x_cal_crt_rec_rec.criteria_enabled := 'N';
1096    END IF;
1097 */
1098 END;
1099 
1100 PROCEDURE Validate_Cal_Crt(
1101     p_api_version_number         IN   NUMBER,
1102     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
1103     p_validation_level           IN   NUMBER := FND_API.G_VALID_LEVEL_FULL,
1104     p_cal_crt_rec_rec               IN   cal_crt_rec_rec_type,
1105     p_validation_mode            IN    VARCHAR2,
1106     x_return_status              OUT NOCOPY  VARCHAR2,
1107     x_msg_count                  OUT NOCOPY  NUMBER,
1108     x_msg_data                   OUT NOCOPY  VARCHAR2
1109     )
1113 l_object_version_number     NUMBER;
1110  IS
1111 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Validate_Cal_Crt';
1112 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
1114 l_cal_crt_rec_rec  cal_crt_rec_rec_type;
1115 
1116  BEGIN
1117       -- Standard Start of API savepoint
1118       SAVEPOINT validate_cal_crt_;
1119       -- Standard call to check for call compatibility.
1120       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1121                                            p_api_version_number,
1122                                            l_api_name,
1123                                            G_PKG_NAME)
1124       THEN
1125           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1126       END IF;
1127       -- Initialize message list if p_init_msg_list is set to TRUE.
1128       IF FND_API.to_Boolean( p_init_msg_list )
1129       THEN
1130          FND_MSG_PUB.initialize;
1131       END IF;
1132       IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1133               Check_cal_crt_rec_Items(
1134                  p_cal_crt_rec_rec        => p_cal_crt_rec_rec,
1135                  p_validation_mode   => p_validation_mode,
1136 
1137                  x_return_status     => x_return_status
1138               );
1139               IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1140                   RAISE FND_API.G_EXC_ERROR;
1141               ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1142                   RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1143               END IF;
1144       END IF;
1145       IF (AMS_DEBUG_HIGH_ON) THEN
1146 
1147       AMS_UTILITY_PVT.debug_message('2');
1148       END IF;
1149       IF p_validation_mode = JTF_PLSQL_API.g_create THEN
1150          Default_Cal_Crt_Rec_Items (p_cal_crt_rec_rec => p_cal_crt_rec_rec ,
1151                                 x_cal_crt_rec_rec => l_cal_crt_rec_rec) ;
1152       END IF ;
1153 
1154       IF (AMS_DEBUG_HIGH_ON) THEN
1155       AMS_UTILITY_PVT.debug_message('3');
1156       END IF;
1157 
1158       Complete_cal_crt_rec_Rec(
1159          p_cal_crt_rec_rec        => p_cal_crt_rec_rec,
1160          x_complete_rec        => l_cal_crt_rec_rec
1161       );
1162       IF (AMS_DEBUG_HIGH_ON) THEN
1163 
1164       AMS_UTILITY_PVT.debug_message('4');
1165       END IF;
1166 
1167       IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1168          Validate_cal_crt_rec_Rec(
1169            p_api_version_number     => 1.0,
1170            p_init_msg_list          => FND_API.G_FALSE,
1171            x_return_status          => x_return_status,
1172            x_msg_count              => x_msg_count,
1173            x_msg_data               => x_msg_data,
1174            p_cal_crt_rec_rec           =>    l_cal_crt_rec_rec);
1175 
1176               IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1177                  RAISE FND_API.G_EXC_ERROR;
1178               ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1179                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1180               END IF;
1181       END IF;
1182       IF (AMS_DEBUG_HIGH_ON) THEN
1183 
1184       AMS_UTILITY_PVT.debug_message('5');
1185       END IF;
1186       -- Debug Message
1187       IF (AMS_DEBUG_HIGH_ON) THEN
1188 
1189       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1190       END IF;
1191 
1192       -- Initialize API return status to SUCCESS
1193       x_return_status := FND_API.G_RET_STS_SUCCESS;
1194       -- Debug Message
1195       IF (AMS_DEBUG_HIGH_ON) THEN
1196       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1197       END IF;
1198       -- Standard call to get message count and if count is 1, get message info.
1199       FND_MSG_PUB.Count_And_Get
1200         (p_count          =>   x_msg_count,
1201          p_data           =>   x_msg_data
1202       );
1203       IF (AMS_DEBUG_HIGH_ON) THEN
1204       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'ended fully');
1205       END IF;
1206 EXCEPTION
1207    WHEN AMS_Utility_PVT.resource_locked THEN
1208      x_return_status := FND_API.g_ret_sts_error;
1209          AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1210    WHEN FND_API.G_EXC_ERROR THEN
1211      ROLLBACK TO VALIDATE_Cal_Crt_;
1212      x_return_status := FND_API.G_RET_STS_ERROR;
1213      -- Standard call to get message count and if count=1, get the message
1214      FND_MSG_PUB.Count_And_Get (
1215             p_encoded => FND_API.G_FALSE,
1216             p_count   => x_msg_count,
1217             p_data    => x_msg_data
1218      );
1219    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1220      ROLLBACK TO VALIDATE_Cal_Crt_;
1221      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1222      -- Standard call to get message count and if count=1, get the message
1223      FND_MSG_PUB.Count_And_Get (
1224             p_encoded => FND_API.G_FALSE,
1225             p_count => x_msg_count,
1226             p_data  => x_msg_data
1227      );
1228    WHEN OTHERS THEN
1229      ROLLBACK TO VALIDATE_Cal_Crt_;
1230      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1231      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1232      THEN
1233         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1234      END IF;
1235      -- Standard call to get message count and if count=1, get the message
1236      FND_MSG_PUB.Count_And_Get (
1237             p_encoded => FND_API.G_FALSE,
1238             p_count => x_msg_count,
1239             p_data  => x_msg_data
1240      );
1241 End Validate_Cal_Crt;
1242 
1243 PROCEDURE Validate_Cal_Crt_Rec_Rec (
1244     p_api_version_number         IN   NUMBER,
1245     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
1246     x_return_status              OUT NOCOPY  VARCHAR2,
1250     )
1247     x_msg_count                  OUT NOCOPY  NUMBER,
1248     x_msg_data                   OUT NOCOPY  VARCHAR2,
1249     p_cal_crt_rec_rec               IN    cal_crt_rec_rec_type
1251 IS
1252 BEGIN
1253       -- Initialize message list if p_init_msg_list is set to TRUE.
1254       IF FND_API.to_Boolean( p_init_msg_list )
1255       THEN
1256          FND_MSG_PUB.initialize;
1257       END IF;
1258 
1259       -- Initialize API return status to SUCCESS
1260       x_return_status := FND_API.G_RET_STS_SUCCESS;
1261       -- Hint: Validate data
1262       -- If data not valid
1263       -- THEN
1264       -- x_return_status := FND_API.G_RET_STS_ERROR;
1265 
1266       -- Debug Message
1267       IF (AMS_DEBUG_HIGH_ON) THEN
1268      AMS_UTILITY_PVT.debug_message('Private API: Validate_dm_model_rec');
1269       END IF;
1270       -- Standard call to get message count and if count is 1, get message info.
1271       FND_MSG_PUB.Count_And_Get
1272         (p_count          =>   x_msg_count,
1273          p_data           =>   x_msg_data
1274       );
1275 END Validate_cal_crt_rec_Rec;
1276 END AMS_Cal_Crt_PVT;