DBA Data[Home] [Help]

PACKAGE BODY: APPS.OZF_OFFER_ADJ_TIER_PVT

Source


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