DBA Data[Home] [Help]

PACKAGE BODY: APPS.OZF_OFFER_BACK_CREATE_PVT

Source


1 PACKAGE BODY OZF_Offer_Back_Create_PVT as
2 /* $Header: ozfvobcb.pls 120.0 2005/06/01 02:12:15 appldev noship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 --          OZF_Offer_Back_Create_PVT
7 -- Purpose
8 --
9 -- History
10 --
11 -- NOTE
12 --
13 -- End of Comments
14 -- ===============================================================
15 
16 
17 G_PKG_NAME CONSTANT VARCHAR2(30):= 'OZF_Offer_Back_Create_PVT';
18 G_FILE_NAME CONSTANT VARCHAR2(12) := 'ozfvobcb.pls';
19 
20 -- Hint: Primary key needs to be returned.
21 PROCEDURE Create_Offer_Back(
22     p_api_version_number         IN   NUMBER,
23     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
24     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
25     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
26 
27     x_return_status              OUT NOCOPY  VARCHAR2,
28     x_msg_count                  OUT NOCOPY  NUMBER,
29     x_msg_data                   OUT NOCOPY  VARCHAR2,
30 
31     p_offer_back_create_rec               IN   offer_back_create_rec_type  := g_miss_offer_back_create_rec,
32     x_offer_adjustment_line_id                   OUT NOCOPY  NUMBER
33      )
34 
35  IS
36 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Create_Offer_Back';
37 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
38    l_return_status_full        VARCHAR2(1);
39    l_object_version_number     NUMBER := 1;
40    l_org_id                    NUMBER := FND_API.G_MISS_NUM;
41    l_OFFER_ADJUSTMENT_LINE_ID                  NUMBER;
42    l_dummy       NUMBER;
43 
44    CURSOR c_id IS
45       SELECT OZF_OFFER_ADJUSTMENT_LINES_s.NEXTVAL
46       FROM dual;
47 
48    CURSOR c_id_exists (l_id IN NUMBER) IS
49       SELECT 1
50       FROM OZF_OFFER_ADJUSTMENT_LINES
51       WHERE OFFER_ADJUSTMENT_LINE_ID = l_id;
52 
53 BEGIN
54       -- Standard Start of API savepoint
55       SAVEPOINT CREATE_Offer_Back_PVT;
56 
57       -- Standard call to check for call compatibility.
58       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
59                                            p_api_version_number,
60                                            l_api_name,
61                                            G_PKG_NAME)
62       THEN
63           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
64       END IF;
65 
66       -- Initialize message list if p_init_msg_list is set to TRUE.
67       IF FND_API.to_Boolean( p_init_msg_list )
68       THEN
69          FND_MSG_PUB.initialize;
70       END IF;
71 
72       -- Debug Message
73       OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
74 
75 
76       -- Initialize API return status to SUCCESS
77       x_return_status := FND_API.G_RET_STS_SUCCESS;
78 
79    -- Local variable initialization
80 
81    IF p_offer_back_create_rec.OFFER_ADJUSTMENT_LINE_ID IS NULL OR p_offer_back_create_rec.OFFER_ADJUSTMENT_LINE_ID = FND_API.g_miss_num THEN
82       LOOP
83          l_dummy := NULL;
84          OPEN c_id;
85          FETCH c_id INTO l_OFFER_ADJUSTMENT_LINE_ID;
86          CLOSE c_id;
87 
88          OPEN c_id_exists(l_OFFER_ADJUSTMENT_LINE_ID);
89          FETCH c_id_exists INTO l_dummy;
90          CLOSE c_id_exists;
91          EXIT WHEN l_dummy IS NULL;
92    --ELSE
93         -- p_offer_back_create_rec.offer_adjustment_line_id = l_offer_adjustment_line_id;
94       END LOOP;
95    END IF;
96 
97       -- =========================================================================
98       -- Validate Environment
99       -- =========================================================================
100 
101       IF FND_GLOBAL.User_Id IS NULL
102       THEN
103  OZF_Utility_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
104           RAISE FND_API.G_EXC_ERROR;
105       END IF;
106 
107       IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
108       THEN
109           -- Debug message
110           OZF_UTILITY_PVT.debug_message('Private API: Validate_Offer_Back_Create');
111 
112           -- Invoke validation procedures
113           Validate_offer_back(
114             p_api_version_number     => 1.0,
115             p_init_msg_list    => FND_API.G_FALSE,
116             p_validation_level => p_validation_level,
117             p_validation_mode => JTF_PLSQL_API.g_create,
118             p_offer_back_create_rec  =>  p_offer_back_create_rec,
119             x_return_status    => x_return_status,
120             x_msg_count        => x_msg_count,
121             x_msg_data         => x_msg_data);
122       END IF;
123 
124       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
125           RAISE FND_API.G_EXC_ERROR;
126       END IF;
127 
128 
129       -- Debug Message
130       OZF_UTILITY_PVT.debug_message( 'Private API: Calling create table handler');
131 
132       -- Invoke table handler(OZF_OFFER_ADJUSTMENT_LINES_PKG.Insert_Row)
133       OZF_OFFER_ADJUSTMENT_LINES_PKG.Insert_Row(
134           px_offer_adjustment_line_id  => l_offer_adjustment_line_id,
135           p_offer_adjustment_id  => p_offer_back_create_rec.offer_adjustment_id,
136           p_list_line_id  => p_offer_back_create_rec.list_line_id,
137           p_arithmetic_operator  => p_offer_back_create_rec.arithmetic_operator,
138           p_original_discount  => p_offer_back_create_rec.original_discount,
139           p_modified_discount  => p_offer_back_create_rec.modified_discount,
140           p_last_update_date  => SYSDATE,
141           p_last_updated_by  => FND_GLOBAL.USER_ID,
142           p_creation_date  => SYSDATE,
143           p_created_by  => FND_GLOBAL.USER_ID,
144           p_last_update_login  => FND_GLOBAL.CONC_LOGIN_ID,
145           px_object_version_number  => l_object_version_number,
146           p_security_group_id  => p_offer_back_create_rec.security_group_id);
147 
148           x_offer_adjustment_line_id := l_offer_adjustment_line_id;
149       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
150           RAISE FND_API.G_EXC_ERROR;
151       END IF;
152 --
153 -- End of API body
154 --
155 
156       -- Standard check for p_commit
157       IF FND_API.to_Boolean( p_commit )
158       THEN
159          COMMIT WORK;
160       END IF;
161 
162 
163       -- Debug Message
164       OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
165 
166       -- Standard call to get message count and if count is 1, get message info.
167       FND_MSG_PUB.Count_And_Get
168         (p_count          =>   x_msg_count,
169          p_data           =>   x_msg_data
170       );
171 EXCEPTION
172 
173    WHEN OZF_Utility_PVT.resource_locked THEN
174      x_return_status := FND_API.g_ret_sts_error;
175  OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
176 
177    WHEN FND_API.G_EXC_ERROR THEN
178      ROLLBACK TO CREATE_Offer_Back_PVT;
179      x_return_status := FND_API.G_RET_STS_ERROR;
180      -- Standard call to get message count and if count=1, get the message
181      FND_MSG_PUB.Count_And_Get (
182             p_encoded => FND_API.G_FALSE,
183             p_count   => x_msg_count,
184             p_data    => x_msg_data
185      );
186 
187    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
188      ROLLBACK TO CREATE_Offer_Back_PVT;
189      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
190      -- Standard call to get message count and if count=1, get the message
191      FND_MSG_PUB.Count_And_Get (
192             p_encoded => FND_API.G_FALSE,
193             p_count => x_msg_count,
194             p_data  => x_msg_data
195      );
196 
197    WHEN OTHERS THEN
198      ROLLBACK TO CREATE_Offer_Back_PVT;
199      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
200      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
201      THEN
202         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
203      END IF;
204      -- Standard call to get message count and if count=1, get the message
205      FND_MSG_PUB.Count_And_Get (
206             p_encoded => FND_API.G_FALSE,
207             p_count => x_msg_count,
208             p_data  => x_msg_data
209      );
210 End Create_Offer_Back;
211 
212 
213 PROCEDURE Update_Offer_Back(
214     p_api_version_number         IN   NUMBER,
215     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
216     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
217     p_validation_level           IN  NUMBER       := FND_API.G_VALID_LEVEL_FULL,
218 
219     x_return_status              OUT NOCOPY  VARCHAR2,
220     x_msg_count                  OUT NOCOPY  NUMBER,
221     x_msg_data                   OUT NOCOPY  VARCHAR2,
222 
223     p_offer_back_create_rec      IN    offer_back_create_rec_type,
224     x_object_version_number      OUT NOCOPY  NUMBER
225     )
226 
227  IS
228 
229 CURSOR c_get_offer_back_create(offer_adjustment_line_id NUMBER) IS
230     SELECT *
231     FROM  OZF_OFFER_ADJUSTMENT_LINES
232     WHERE offer_adjustment_line_id = p_offer_back_create_rec.offer_adjustment_line_id;
233     -- Hint: Developer need to provide Where clause
234 
235 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Update_Offer_Back';
236 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
237 -- Local Variables
238 l_object_version_number     NUMBER;
239 l_OFFER_ADJUSTMENT_LINE_ID    NUMBER;
240 l_ref_offer_back_create_rec  c_get_Offer_Back_Create%ROWTYPE ;
241 l_tar_offer_back_create_rec  OZF_Offer_Back_Create_PVT.offer_back_create_rec_type := P_offer_back_create_rec;
242 l_rowid  ROWID;
243 
244  BEGIN
245       -- Standard Start of API savepoint
246       SAVEPOINT UPDATE_Offer_Back_PVT;
247 
248       -- Standard call to check for call compatibility.
249       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
250                                            p_api_version_number,
251                                            l_api_name,
252                                            G_PKG_NAME)
253       THEN
254           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
255       END IF;
256 
257       -- Initialize message list if p_init_msg_list is set to TRUE.
258       IF FND_API.to_Boolean( p_init_msg_list )
259       THEN
260          FND_MSG_PUB.initialize;
261       END IF;
262 
263       -- Debug Message
264       OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
265 
266 
267       -- Initialize API return status to SUCCESS
268       x_return_status := FND_API.G_RET_STS_SUCCESS;
269 
270       -- Debug Message
271       OZF_UTILITY_PVT.debug_message('Private API: - Open Cursor to Select');
272 
273 
274       OPEN c_get_Offer_Back_Create( l_tar_offer_back_create_rec.offer_adjustment_line_id);
275 
276       FETCH c_get_Offer_Back_Create INTO l_ref_offer_back_create_rec  ;
277 
278        If ( c_get_Offer_Back_Create%NOTFOUND) THEN
279   OZF_Utility_PVT.Error_Message(p_message_name => 'API_MISSING_UPDATE_TARGET',
280    p_token_name   => 'INFO',
281  p_token_value  => 'Offer_Back_Create') ;
282            RAISE FND_API.G_EXC_ERROR;
283        END IF;
284        -- Debug Message
285        OZF_UTILITY_PVT.debug_message('Private API: - Close Cursor');
286        CLOSE     c_get_Offer_Back_Create;
287 
288 
289 
290       If (l_tar_offer_back_create_rec.object_version_number is NULL or
291           l_tar_offer_back_create_rec.object_version_number = FND_API.G_MISS_NUM ) Then
292   OZF_Utility_PVT.Error_Message(p_message_name => 'API_VERSION_MISSING',
293    p_token_name   => 'COLUMN',
294  p_token_value  => 'Last_Update_Date') ;
295           raise FND_API.G_EXC_ERROR;
296       End if;
297       -- Check Whether record has been changed by someone else
298       If (l_tar_offer_back_create_rec.object_version_number <> l_ref_offer_back_create_rec.object_version_number) Then
299   OZF_Utility_PVT.Error_Message(p_message_name => 'API_RECORD_CHANGED',
300    p_token_name   => 'INFO',
301  p_token_value  => 'Offer_Back_Create') ;
302           raise FND_API.G_EXC_ERROR;
303       End if;
304       IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
305       THEN
306           -- Debug message
307           OZF_UTILITY_PVT.debug_message('Private API: Validate_Offer_Back_Create');
308 
309           -- Invoke validation procedures
310           Validate_offer_back(
311             p_api_version_number     => 1.0,
312             p_init_msg_list    => FND_API.G_FALSE,
313             p_validation_level => p_validation_level,
314             p_validation_mode => JTF_PLSQL_API.g_update,
315             p_offer_back_create_rec  => p_offer_back_create_rec,
316             x_return_status    => x_return_status,
317             x_msg_count        => x_msg_count,
318             x_msg_data         => x_msg_data);
319       END IF;
320 
321       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
322           RAISE FND_API.G_EXC_ERROR;
323       END IF;
324 
325 
326       -- Debug Message
327       OZF_UTILITY_PVT.debug_message('Invoking Update Table Handler: ' );
328       OZF_UTILITY_PVT.debug_message('p_offer_adjustment_line_id: '|| p_offer_back_create_rec.offer_adjustment_line_id);
329       OZF_UTILITY_PVT.debug_message('p_offer_adjustment_id: '|| p_offer_back_create_rec.offer_adjustment_id);
330       OZF_UTILITY_PVT.debug_message('p_list_line_id: '|| p_offer_back_create_rec.list_line_id);
331       OZF_UTILITY_PVT.debug_message('p_arithmetic_operator '|| p_offer_back_create_rec.arithmetic_operator);
332       OZF_UTILITY_PVT.debug_message('p_original_discount '|| p_offer_back_create_rec.original_discount);
333       OZF_UTILITY_PVT.debug_message('p_modified_discount '|| p_offer_back_create_rec.modified_discount);
334            -- Invoke table handler(OZF_OFFER_ADJUSTMENT_LINES_PKG.Update_Row)
335 
336       OZF_OFFER_ADJUSTMENT_LINES_PKG.Update_Row(
337           p_offer_adjustment_line_id  => p_offer_back_create_rec.offer_adjustment_line_id,
338           p_offer_adjustment_id  => p_offer_back_create_rec.offer_adjustment_id,
339           p_list_line_id  => p_offer_back_create_rec.list_line_id,
340           p_arithmetic_operator  => p_offer_back_create_rec.arithmetic_operator,
341           p_original_discount  => p_offer_back_create_rec.original_discount,
342           p_modified_discount  => p_offer_back_create_rec.modified_discount,
343           p_last_update_date  => SYSDATE,
344           p_last_updated_by  => FND_GLOBAL.USER_ID,
345           p_last_update_login  => FND_GLOBAL.CONC_LOGIN_ID,
346           p_object_version_number  => p_offer_back_create_rec.object_version_number,
347           p_security_group_id  => p_offer_back_create_rec.security_group_id);
348     OZF_UTILITY_PVT.debug_message('Aftyer Invoking Update Table Handler: ' );
349           --x_object_version_number :=
350        -- p_offer_back_create_rec.object_version_number + 1;
351 
352       --
353       -- End of API body.
354       --
355 
356       -- Standard check for p_commit
357       IF FND_API.to_Boolean( p_commit )
358       THEN
359          COMMIT WORK;
360       END IF;
361 
362 
363       -- Debug Message
364       OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
365 
366       -- Standard call to get message count and if count is 1, get message info.
367       FND_MSG_PUB.Count_And_Get
368         (p_count          =>   x_msg_count,
369          p_data           =>   x_msg_data
370       );
371 EXCEPTION
372 
373    WHEN OZF_Utility_PVT.resource_locked THEN
374      x_return_status := FND_API.g_ret_sts_error;
375  OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
376 
377    WHEN FND_API.G_EXC_ERROR THEN
378      ROLLBACK TO UPDATE_Offer_Back_PVT;
379      x_return_status := FND_API.G_RET_STS_ERROR;
380      -- Standard call to get message count and if count=1, get the message
381      FND_MSG_PUB.Count_And_Get (
382             p_encoded => FND_API.G_FALSE,
383             p_count   => x_msg_count,
384             p_data    => x_msg_data
385      );
386 
387    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
388      ROLLBACK TO UPDATE_Offer_Back_PVT;
389      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
390      -- Standard call to get message count and if count=1, get the message
391      FND_MSG_PUB.Count_And_Get (
392             p_encoded => FND_API.G_FALSE,
393             p_count => x_msg_count,
394             p_data  => x_msg_data
395      );
396 
397    WHEN OTHERS THEN
398      ROLLBACK TO UPDATE_Offer_Back_PVT;
399      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
400      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
401      THEN
402         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
403      END IF;
404      -- Standard call to get message count and if count=1, get the message
405      FND_MSG_PUB.Count_And_Get (
406             p_encoded => FND_API.G_FALSE,
407             p_count => x_msg_count,
408             p_data  => x_msg_data
409      );
410 End Update_Offer_Back;
411 
412 
413 PROCEDURE Delete_Offer_Back(
414     p_api_version_number         IN   NUMBER,
415     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
416     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
417     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
418     x_return_status              OUT NOCOPY  VARCHAR2,
419     x_msg_count                  OUT NOCOPY  NUMBER,
420     x_msg_data                   OUT NOCOPY  VARCHAR2,
421     p_offer_adjustment_line_id                   IN  NUMBER,
422     p_object_version_number      IN   NUMBER
423     )
424 
425  IS
426 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Delete_Offer_Back';
427 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
428 l_object_version_number     NUMBER;
429 
430  BEGIN
431       -- Standard Start of API savepoint
432       SAVEPOINT DELETE_Offer_Back_Create_PVT;
433 
434       -- Standard call to check for call compatibility.
435       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
436                                            p_api_version_number,
437                                            l_api_name,
438                                            G_PKG_NAME)
439       THEN
440           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
441       END IF;
442 
443       -- Initialize message list if p_init_msg_list is set to TRUE.
444       IF FND_API.to_Boolean( p_init_msg_list )
445       THEN
446          FND_MSG_PUB.initialize;
447       END IF;
448 
449       -- Debug Message
450       OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
451 
452 
453       -- Initialize API return status to SUCCESS
454       x_return_status := FND_API.G_RET_STS_SUCCESS;
455 
456       --
457       -- Api body
458       --
459       -- Debug Message
460       OZF_UTILITY_PVT.debug_message( 'Private API: Calling delete table handler');
461 
462       -- Invoke table handler(OZF_OFFER_ADJUSTMENT_LINES_PKG.Delete_Row)
463       OZF_OFFER_ADJUSTMENT_LINES_PKG.Delete_Row(
464           p_OFFER_ADJUSTMENT_LINE_ID  => p_OFFER_ADJUSTMENT_LINE_ID);
465       --
466       -- End of API body
467       --
468 
469       -- Standard check for p_commit
470       IF FND_API.to_Boolean( p_commit )
471       THEN
472          COMMIT WORK;
473       END IF;
474 
475 
476       -- Debug Message
477       OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
478 
479       -- Standard call to get message count and if count is 1, get message info.
480       FND_MSG_PUB.Count_And_Get
481         (p_count          =>   x_msg_count,
482          p_data           =>   x_msg_data
483       );
484 EXCEPTION
485 
486    WHEN OZF_Utility_PVT.resource_locked THEN
487      x_return_status := FND_API.g_ret_sts_error;
488  OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
489 
490    WHEN FND_API.G_EXC_ERROR THEN
491      ROLLBACK TO DELETE_Offer_Back_PVT;
492      x_return_status := FND_API.G_RET_STS_ERROR;
493      -- Standard call to get message count and if count=1, get the message
494      FND_MSG_PUB.Count_And_Get (
495             p_encoded => FND_API.G_FALSE,
496             p_count   => x_msg_count,
497             p_data    => x_msg_data
498      );
499 
500    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
501      ROLLBACK TO DELETE_Offer_Back_PVT;
502      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
503      -- Standard call to get message count and if count=1, get the message
504      FND_MSG_PUB.Count_And_Get (
505             p_encoded => FND_API.G_FALSE,
506             p_count => x_msg_count,
507             p_data  => x_msg_data
508      );
509 
510    WHEN OTHERS THEN
511      ROLLBACK TO DELETE_Offer_Back_PVT;
512      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
513      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
514      THEN
515         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
516      END IF;
517      -- Standard call to get message count and if count=1, get the message
518      FND_MSG_PUB.Count_And_Get (
519             p_encoded => FND_API.G_FALSE,
520             p_count => x_msg_count,
521             p_data  => x_msg_data
522      );
523 End Delete_Offer_Back;
524 
525 
526 
527 -- Hint: Primary key needs to be returned.
528 PROCEDURE Lock_Offer_Back(
529     p_api_version_number         IN   NUMBER,
530     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
531 
532     x_return_status              OUT NOCOPY  VARCHAR2,
533     x_msg_count                  OUT NOCOPY  NUMBER,
534     x_msg_data                   OUT NOCOPY  VARCHAR2,
535 
536     p_offer_adjustment_line_id                   IN  NUMBER,
537     p_object_version             IN  NUMBER
538     )
539 
540  IS
541 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Lock_Offer_Back';
542 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
543 L_FULL_NAME                 CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
544 l_OFFER_ADJUSTMENT_LINE_ID                  NUMBER;
545 
546 CURSOR c_Offer_Back_Create IS
547    SELECT OFFER_ADJUSTMENT_LINE_ID
548    FROM OZF_OFFER_ADJUSTMENT_LINES
549    WHERE OFFER_ADJUSTMENT_LINE_ID = p_OFFER_ADJUSTMENT_LINE_ID
550    AND object_version_number = p_object_version
551    FOR UPDATE NOWAIT;
552 
553 BEGIN
554 
555       -- Debug Message
556       OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
557 
558       -- Initialize message list if p_init_msg_list is set to TRUE.
559       IF FND_API.to_Boolean( p_init_msg_list )
560       THEN
561          FND_MSG_PUB.initialize;
562       END IF;
563 
564       -- Standard call to check for call compatibility.
565       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
566                                            p_api_version_number,
567                                            l_api_name,
568                                            G_PKG_NAME)
569       THEN
570           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
571       END IF;
572 
573 
574       -- Initialize API return status to SUCCESS
575       x_return_status := FND_API.G_RET_STS_SUCCESS;
576 
577 
578 ------------------------ lock -------------------------
579 
580   OZF_Utility_PVT.debug_message(l_full_name||': start');
581   OPEN c_Offer_Back_Create;
582 
583   FETCH c_Offer_Back_Create INTO l_OFFER_ADJUSTMENT_LINE_ID;
584 
585   IF (c_Offer_Back_Create%NOTFOUND) THEN
586     CLOSE c_Offer_Back_Create;
587     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
588        FND_MESSAGE.set_name('OZF', 'OZF_API_RECORD_NOT_FOUND');
589        FND_MSG_PUB.add;
590     END IF;
591     RAISE FND_API.g_exc_error;
592   END IF;
593 
594   CLOSE c_Offer_Back_Create;
595 
596  -------------------- finish --------------------------
597   FND_MSG_PUB.count_and_get(
598     p_encoded => FND_API.g_false,
599     p_count   => x_msg_count,
600     p_data    => x_msg_data);
601   OZF_Utility_PVT.debug_message(l_full_name ||': end');
602 EXCEPTION
603 
604    WHEN OZF_Utility_PVT.resource_locked THEN
605      x_return_status := FND_API.g_ret_sts_error;
606  OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
607 
608    WHEN FND_API.G_EXC_ERROR THEN
609      ROLLBACK TO LOCK_Offer_Back_PVT;
610      x_return_status := FND_API.G_RET_STS_ERROR;
611      -- Standard call to get message count and if count=1, get the message
612      FND_MSG_PUB.Count_And_Get (
613             p_encoded => FND_API.G_FALSE,
614             p_count   => x_msg_count,
615             p_data    => x_msg_data
616      );
617 
618    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
619      ROLLBACK TO LOCK_Offer_Back_PVT;
620      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
621      -- Standard call to get message count and if count=1, get the message
622      FND_MSG_PUB.Count_And_Get (
623             p_encoded => FND_API.G_FALSE,
624             p_count => x_msg_count,
625             p_data  => x_msg_data
626      );
627 
628    WHEN OTHERS THEN
629      ROLLBACK TO LOCK_Offer_Back_PVT;
630      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
631      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
632      THEN
633         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
634      END IF;
635      -- Standard call to get message count and if count=1, get the message
636      FND_MSG_PUB.Count_And_Get (
637             p_encoded => FND_API.G_FALSE,
638             p_count => x_msg_count,
639             p_data  => x_msg_data
640      );
641 End Lock_Offer_Back;
642 
643 
644 PROCEDURE check_offer_back_uk_items(
645     p_offer_back_create_rec               IN   offer_back_create_rec_type,
646     p_validation_mode            IN  VARCHAR2 := JTF_PLSQL_API.g_create,
647     x_return_status              OUT NOCOPY VARCHAR2)
648 IS
649 l_valid_flag  VARCHAR2(1);
650 
651 BEGIN
652       x_return_status := FND_API.g_ret_sts_success;
653       IF p_validation_mode = JTF_PLSQL_API.g_create THEN
654          l_valid_flag := OZF_Utility_PVT.check_uniqueness(
655          'OZF_OFFER_ADJUSTMENT_LINES',
656          'OFFER_ADJUSTMENT_LINE_ID = ''' || p_offer_back_create_rec.OFFER_ADJUSTMENT_LINE_ID ||''''
657          );
658       ELSE
659          l_valid_flag := OZF_Utility_PVT.check_uniqueness(
660          'OZF_OFFER_ADJUSTMENT_LINES',
661          'OFFER_ADJUSTMENT_LINE_ID = ''' || p_offer_back_create_rec.OFFER_ADJUSTMENT_LINE_ID ||
662          ''' AND OFFER_ADJUSTMENT_LINE_ID <> ' || p_offer_back_create_rec.OFFER_ADJUSTMENT_LINE_ID
663          );
664       END IF;
665 
666       IF l_valid_flag = FND_API.g_false THEN
667  OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_OFFER_ADJUSTMENT_LINE_ID_DUPLICATE');
668          x_return_status := FND_API.g_ret_sts_error;
669          RETURN;
670       END IF;
671 
672 END check_offer_back_uk_items;
673 
674 PROCEDURE check_offer_back_req_items(
675     p_offer_back_create_rec               IN  offer_back_create_rec_type,
676     p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
677     x_return_status	         OUT NOCOPY VARCHAR2
678 )
679 IS
680 BEGIN
681    x_return_status := FND_API.g_ret_sts_success;
682 
683    /*IF p_validation_mode = JTF_PLSQL_API.g_create THEN
684    ELSE
685    END IF;*/
686 
687 END check_offer_back_req_items;
688 
689 PROCEDURE check_offer_back_FK_items(
690     p_offer_back_create_rec IN offer_back_create_rec_type,
691     x_return_status OUT NOCOPY VARCHAR2
692 )
693 IS
694 BEGIN
695    x_return_status := FND_API.g_ret_sts_success;
696 
697    -- Enter custom code here
698 
699 END check_offer_back_FK_items;
700 
701 PROCEDURE check_offer_back_Lookup_items(
702     p_offer_back_create_rec IN offer_back_create_rec_type,
703     x_return_status OUT NOCOPY VARCHAR2
704 )
705 IS
706 BEGIN
707    x_return_status := FND_API.g_ret_sts_success;
708 
709    -- Enter custom code here
710 
711 END check_offer_back_Lookup_items;
712 
713 PROCEDURE Check_offer_back_Items (
714     P_offer_back_create_rec     IN    offer_back_create_rec_type,
715     p_validation_mode  IN    VARCHAR2,
716     x_return_status    OUT NOCOPY   VARCHAR2
717     )
718 IS
719 BEGIN
720 
721    -- Check Items Uniqueness API calls
722 
723    check_offer_back_uk_items(
724       p_offer_back_create_rec => p_offer_back_create_rec,
725       p_validation_mode => p_validation_mode,
726       x_return_status => x_return_status);
727    IF x_return_status <> FND_API.g_ret_sts_success THEN
728       RETURN;
729    END IF;
730 
731    -- Check Items Required/NOT NULL API calls
732 
733    check_offer_back_req_items(
734       p_offer_back_create_rec => p_offer_back_create_rec,
735       p_validation_mode => p_validation_mode,
736       x_return_status => x_return_status);
737    IF x_return_status <> FND_API.g_ret_sts_success THEN
738       RETURN;
739    END IF;
740    -- Check Items Foreign Keys API calls
741 
742    check_offer_back_FK_items(
743       p_offer_back_create_rec => p_offer_back_create_rec,
744       x_return_status => x_return_status);
745    IF x_return_status <> FND_API.g_ret_sts_success THEN
746       RETURN;
747    END IF;
748    -- Check Items Lookups
749 
750    check_offer_back_Lookup_items(
751       p_offer_back_create_rec => p_offer_back_create_rec,
752       x_return_status => x_return_status);
753    IF x_return_status <> FND_API.g_ret_sts_success THEN
754       RETURN;
755    END IF;
756 
757 END Check_offer_back_Items;
758 
759 
760 
761 PROCEDURE Complete_offer_back_Rec (
762    p_offer_back_create_rec IN offer_back_create_rec_type,
763    x_complete_rec OUT NOCOPY offer_back_create_rec_type)
764 IS
765    l_return_status  VARCHAR2(1);
766 
767    CURSOR c_complete IS
768       SELECT *
769       FROM ozf_offer_adjustment_lines
770       WHERE offer_adjustment_line_id = p_offer_back_create_rec.offer_adjustment_line_id;
771    l_offer_back_create_rec c_complete%ROWTYPE;
772 BEGIN
773    x_complete_rec := p_offer_back_create_rec;
774 
775 
776    OPEN c_complete;
777    FETCH c_complete INTO l_offer_back_create_rec;
778    CLOSE c_complete;
779 
780    -- offer_adjustment_line_id
781    IF p_offer_back_create_rec.offer_adjustment_line_id = FND_API.g_miss_num THEN
782       x_complete_rec.offer_adjustment_line_id := l_offer_back_create_rec.offer_adjustment_line_id;
783    END IF;
784 
785    -- offer_adjustment_id
786    IF p_offer_back_create_rec.offer_adjustment_id = FND_API.g_miss_num THEN
787       x_complete_rec.offer_adjustment_id := l_offer_back_create_rec.offer_adjustment_id;
788    END IF;
789 
790    -- list_line_id
791    IF p_offer_back_create_rec.list_line_id = FND_API.g_miss_num THEN
792       x_complete_rec.list_line_id := l_offer_back_create_rec.list_line_id;
793    END IF;
794 
795    -- arithmetic_operator
796    IF p_offer_back_create_rec.arithmetic_operator = FND_API.g_miss_char THEN
797       x_complete_rec.arithmetic_operator := l_offer_back_create_rec.arithmetic_operator;
798    END IF;
799 
800    -- original_discount
801    IF p_offer_back_create_rec.original_discount = FND_API.g_miss_num THEN
802       x_complete_rec.original_discount := l_offer_back_create_rec.original_discount;
803    END IF;
804 
805    -- modified_discount
806    IF p_offer_back_create_rec.modified_discount = FND_API.g_miss_num THEN
807       x_complete_rec.modified_discount := l_offer_back_create_rec.modified_discount;
808    END IF;
809 
810    -- last_update_date
811    IF p_offer_back_create_rec.last_update_date = FND_API.g_miss_date THEN
812       x_complete_rec.last_update_date := l_offer_back_create_rec.last_update_date;
813    END IF;
814 
815    -- last_updated_by
816    IF p_offer_back_create_rec.last_updated_by = FND_API.g_miss_num THEN
817       x_complete_rec.last_updated_by := l_offer_back_create_rec.last_updated_by;
818    END IF;
819 
820    -- creation_date
821    IF p_offer_back_create_rec.creation_date = FND_API.g_miss_date THEN
822       x_complete_rec.creation_date := l_offer_back_create_rec.creation_date;
823    END IF;
824 
825    -- created_by
826    IF p_offer_back_create_rec.created_by = FND_API.g_miss_num THEN
827       x_complete_rec.created_by := l_offer_back_create_rec.created_by;
828    END IF;
829 
830    -- last_update_login
831    IF p_offer_back_create_rec.last_update_login = FND_API.g_miss_num THEN
832       x_complete_rec.last_update_login := l_offer_back_create_rec.last_update_login;
833    END IF;
834 
835    -- object_version_number
836    IF p_offer_back_create_rec.object_version_number = FND_API.g_miss_num THEN
837       x_complete_rec.object_version_number := l_offer_back_create_rec.object_version_number;
838    END IF;
839 
840    -- security_group_id
841    IF p_offer_back_create_rec.security_group_id = FND_API.g_miss_num THEN
842       x_complete_rec.security_group_id := l_offer_back_create_rec.security_group_id;
843    END IF;
844    -- Note: Developers need to modify the procedure
845    -- to handle any business specific requirements.
846 END Complete_offer_back_Rec;
847 PROCEDURE Validate_offer_back(
848     p_api_version_number         IN   NUMBER,
849     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
850     p_validation_level           IN   NUMBER := FND_API.G_VALID_LEVEL_FULL,
851     p_offer_back_create_rec               IN   offer_back_create_rec_type,
852     p_validation_mode            IN    VARCHAR2,
853     x_return_status              OUT NOCOPY  VARCHAR2,
854     x_msg_count                  OUT NOCOPY  NUMBER,
855     x_msg_data                   OUT NOCOPY  VARCHAR2
856     )
857  IS
858 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Validate_Offer_Back';
859 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
860 l_object_version_number     NUMBER;
861 l_offer_back_create_rec  OZF_Offer_Back_Create_PVT.offer_back_create_rec_type;
862 
863  BEGIN
864       -- Standard Start of API savepoint
865       SAVEPOINT VALIDATE_Offer_Back_;
866 
867       -- Standard call to check for call compatibility.
868       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
869                                            p_api_version_number,
870                                            l_api_name,
871                                            G_PKG_NAME)
872       THEN
873           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
874       END IF;
875 
876       -- Initialize message list if p_init_msg_list is set to TRUE.
877       IF FND_API.to_Boolean( p_init_msg_list )
878       THEN
879          FND_MSG_PUB.initialize;
880       END IF;
881       IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
882               Check_offer_back_Items(
883                  p_offer_back_create_rec        => p_offer_back_create_rec,
884                  p_validation_mode   => p_validation_mode,
885                  x_return_status     => x_return_status
886               );
887 
888               IF x_return_status = FND_API.G_RET_STS_ERROR THEN
889                   RAISE FND_API.G_EXC_ERROR;
890               ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
891                   RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
892               END IF;
893       END IF;
894 
895       Complete_offer_back_Rec(
896          p_offer_back_create_rec        => p_offer_back_create_rec,
897          x_complete_rec        => l_offer_back_create_rec
898       );
899 
900       IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
901          Validate_offer_back_Rec(
902            p_api_version_number     => 1.0,
903            p_init_msg_list          => FND_API.G_FALSE,
904            x_return_status          => x_return_status,
905            x_msg_count              => x_msg_count,
906            x_msg_data               => x_msg_data,
907            p_offer_back_create_rec           =>    l_offer_back_create_rec);
908 
909               IF x_return_status = FND_API.G_RET_STS_ERROR THEN
910                  RAISE FND_API.G_EXC_ERROR;
911               ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
912                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
913               END IF;
914       END IF;
915 
916 
917       -- Debug Message
918       OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
919 
920 
921       -- Initialize API return status to SUCCESS
922       x_return_status := FND_API.G_RET_STS_SUCCESS;
923 
924 
925       -- Debug Message
926       OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
927 
928       -- Standard call to get message count and if count is 1, get message info.
929       FND_MSG_PUB.Count_And_Get
930         (p_count          =>   x_msg_count,
931          p_data           =>   x_msg_data
932       );
933 EXCEPTION
934 
935    WHEN OZF_Utility_PVT.resource_locked THEN
936      x_return_status := FND_API.g_ret_sts_error;
937  OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
938 
939    WHEN FND_API.G_EXC_ERROR THEN
940      ROLLBACK TO VALIDATE_Offer_Back_;
941      x_return_status := FND_API.G_RET_STS_ERROR;
942      -- Standard call to get message count and if count=1, get the message
943      FND_MSG_PUB.Count_And_Get (
944             p_encoded => FND_API.G_FALSE,
945             p_count   => x_msg_count,
946             p_data    => x_msg_data
947      );
948 
949    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
950      ROLLBACK TO VALIDATE_Offer_Back_;
951      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
952      -- Standard call to get message count and if count=1, get the message
953      FND_MSG_PUB.Count_And_Get (
954             p_encoded => FND_API.G_FALSE,
955             p_count => x_msg_count,
956             p_data  => x_msg_data
957      );
958 
959    WHEN OTHERS THEN
960      ROLLBACK TO VALIDATE_Offer_Back_;
961      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
962      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
963      THEN
964         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
965      END IF;
966      -- Standard call to get message count and if count=1, get the message
967      FND_MSG_PUB.Count_And_Get (
968             p_encoded => FND_API.G_FALSE,
969             p_count => x_msg_count,
970             p_data  => x_msg_data
971      );
972 End Validate_Offer_Back;
973 
974 
975 PROCEDURE Validate_offer_back_rec(
976     p_api_version_number         IN   NUMBER,
977     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
978     x_return_status              OUT NOCOPY  VARCHAR2,
979     x_msg_count                  OUT NOCOPY  NUMBER,
980     x_msg_data                   OUT NOCOPY  VARCHAR2,
981     p_offer_back_create_rec      IN    offer_back_create_rec_type
982     )
983 IS
984 BEGIN
985       -- Initialize message list if p_init_msg_list is set to TRUE.
986       IF FND_API.to_Boolean( p_init_msg_list )
987       THEN
988          FND_MSG_PUB.initialize;
989       END IF;
990 
991       -- Initialize API return status to SUCCESS
992       x_return_status := FND_API.G_RET_STS_SUCCESS;
993 
994       -- Hint: Validate data
995       -- If data not valid
996       -- THEN
997       -- x_return_status := FND_API.G_RET_STS_ERROR;
998 
999       -- Debug Message
1000       OZF_UTILITY_PVT.debug_message('Private API: Validate_dm_model_rec');
1001       -- Standard call to get message count and if count is 1, get message info.
1002       FND_MSG_PUB.Count_And_Get
1003         (p_count          =>   x_msg_count,
1004          p_data           =>   x_msg_data
1005       );
1006 END Validate_offer_back_Rec;
1007 
1008 END OZF_Offer_Back_Create_PVT;