DBA Data[Home] [Help]

PACKAGE BODY: APPS.PVX_LEAD_PSS_LINES_PVT

Source


1 PACKAGE BODY PVX_LEAD_PSS_LINES_PVT AS
2 /* $Header: pvxvpssb.pls 115.11 2002/12/11 10:58:54 anubhavk ship $ */
3 
4 
5 g_pkg_name   CONSTANT VARCHAR2(30):='PVX_lead_pss_lines_PVT';
6 
7 ---------------------------------------------------------------------
8 -- PROCEDURE
9 --    Create_lead_pss_line
10 --
11 -- PURPOSE
12 --    Create a new lead pss lines record
13 --
14 -- PARAMETERS
15 --    p_lead_pss_lines_rec: the new record to be inserted
16 --    x_lead_pss_line_id: return the lead_pss_line_id of the new record.
17 --
18 -- NOTES
19 --    1. object_version_number will be set to 1.
20 --    2. If lead_pss_line_id is passed in, the uniqueness will be checked.
21 --       Raise exception in case of duplicates.
22 --    3. If lead_pss_line_id is not passed in, generate a unique one from
23 --       the sequence.
24 --    4. If a flag column is passed in, check if it is 'Y' or 'N'.
25 --       Raise exception for invalid flag.
26 --    5. If a flag column is not passed in, default it to 'Y' or 'N'.
27 --    6. Please don't pass in any FND_API.g_mess_char/num/date.
28 ---------------------------------------------------------------------
29 PROCEDURE Create_Lead_pss_line(
30    p_api_version_number       IN  NUMBER
31   ,p_init_msg_list     IN  VARCHAR2  := FND_API.g_false
32   ,p_commit            IN  VARCHAR2  := FND_API.g_false
33   ,p_validation_level  IN  NUMBER    := FND_API.g_valid_level_full
34 
35   ,x_return_status     OUT NOCOPY VARCHAR2
36   ,x_msg_count         OUT NOCOPY NUMBER
37   ,x_msg_data          OUT NOCOPY VARCHAR2
38 
39   ,p_lead_pss_lines_rec  IN  lead_pss_lines_rec_type
40   ,x_lead_pss_line_id  OUT NOCOPY NUMBER
41 )
42 IS
43 
44    l_api_version CONSTANT NUMBER       := 1.0;
45    l_api_name    CONSTANT VARCHAR2(30) := 'Create_Lead_pss_line';
46    l_full_name   CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
47 
48    l_return_status         VARCHAR2(1);
49    l_lead_pss_lines_rec     lead_pss_lines_rec_type := p_lead_pss_lines_rec;
50 
51    l_object_version_number NUMBER := 1;
52 
53    l_uniqueness_check     VARCHAR2(10);
54 
55 
56    -- Cursor to get the sequence for enty_attr_value
57    CURSOR c_lead_pss_lines_seq IS
58    SELECT PV_LEAD_PSS_LINES_S.NEXTVAL
59      FROM DUAL;
60 
61    -- Cursor to validate the uniqueness
62    CURSOR c_count(cv_lead_pss_line_id IN NUMBER) IS
63    SELECT  'X'
64      FROM  pv_lead_pss_lines
65      WHERE  lead_pss_line_id  = cv_lead_pss_line_id;
66 
67 
68 BEGIN
69 
70    --------------------- initialize -----------------------
71    SAVEPOINT Create_lead_pss_line;
72 
73    IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
74       PVX_Utility_PVT.debug_message(l_full_name||': start');
75    END IF;
76 
77 
78    IF FND_API.to_boolean(p_init_msg_list) THEN
79       FND_MSG_PUB.initialize;
80    END IF;
81 
82    IF NOT FND_API.compatible_api_call(
83          l_api_version,
84          p_api_version_number,
85          l_api_name,
86          g_pkg_name
87    ) THEN
88       RAISE FND_API.g_exc_unexpected_error;
89    END IF;
90 
91    x_return_status := FND_API.g_ret_sts_success;
92 
93    ----------------------- validate -----------------------
94    IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
95       PVX_Utility_PVT.debug_message(l_full_name ||': validate');
96    END IF;
97 
98 
99 
100 
101 
102    Validate_lead_pss_line(
103       p_api_version_number      => l_api_version,
104       p_init_msg_list    => p_init_msg_list,
105       p_validation_level => p_validation_level,
106       x_return_status    => l_return_status,
107       x_msg_count        => x_msg_count,
108       x_msg_data         => x_msg_data,
109       p_lead_pss_lines_rec  => l_lead_pss_lines_rec
110    );
111 
112 
113 
114    IF l_return_status = FND_API.g_ret_sts_error THEN
115       RAISE FND_API.g_exc_error;
116    ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
117       RAISE FND_API.g_exc_unexpected_error;
118    END IF;
119 
120 
121   -------------------------- insert --------------------------
122    IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
123         PVX_Utility_PVT.debug_message(l_full_name ||': insert');
124    END IF;
125 
126 
127 
128   IF l_lead_pss_lines_rec.lead_pss_line_id IS NULL THEN
129     LOOP
130       -- Get the identifier
131       OPEN  c_lead_pss_lines_seq;
132       FETCH c_lead_pss_lines_seq INTO l_lead_pss_lines_rec.lead_pss_line_id;
133       CLOSE c_lead_pss_lines_seq;
134 
135       -- Check the uniqueness of the identifier
136       OPEN  c_count(l_lead_pss_lines_rec.lead_pss_line_id);
137       FETCH c_count INTO l_uniqueness_check;
138         -- Exit when the identifier uniqueness is established
139         EXIT WHEN c_count%ROWCOUNT = 0;
140       CLOSE c_count;
141    END LOOP;
142   END IF;
143 
144 
145   INSERT INTO PV_LEAD_PSS_LINES (
146        lead_pss_line_id
147       ,last_update_date
148       ,last_updated_by
149       ,creation_date
150       ,created_by
151       ,last_update_login
152       ,request_id
153       ,program_application_id
154       ,program_id
155       ,program_update_date
156       ,attr_code_id
157       ,lead_id
158       ,uom_code
159       ,quantity
160       ,amount
161       ,attribute_category
162       ,attribute1
163       ,attribute2
164       ,attribute3
165       ,attribute4
166       ,attribute5
167       ,attribute6
168       ,attribute7
169       ,attribute8
170       ,attribute9
171       ,attribute10
172       ,attribute11
173       ,attribute12
174       ,attribute13
175       ,attribute14
176       ,attribute15
177       ,object_name
178       ,object_version_number
179       ,partner_id
180       ,object_id
181        )
182     VALUES (
183       l_lead_pss_lines_rec.lead_pss_line_id
184       ,SYSDATE                                -- LAST_UPDATE_DATE
185       ,NVL(FND_GLOBAL.user_id,-1)             -- LAST_UPDATED_BY
186       ,SYSDATE                                -- CREATION_DATE
187       ,NVL(FND_GLOBAL.user_id,-1)             -- CREATED_BY
188       ,NVL(FND_GLOBAL.conc_login_id,-1)       -- LAST_UPDATE_LOGIN
189      , l_lead_pss_lines_rec.request_id
190       ,l_lead_pss_lines_rec.program_application_id
191       ,l_lead_pss_lines_rec.program_id
192       ,l_lead_pss_lines_rec.program_update_date
193       ,l_lead_pss_lines_rec.attr_code_id
194       ,l_lead_pss_lines_rec.lead_id
195       ,l_lead_pss_lines_rec.uom_code
196       ,l_lead_pss_lines_rec.quantity
197       ,l_lead_pss_lines_rec.amount
198       ,l_lead_pss_lines_rec.attribute_category
199       ,l_lead_pss_lines_rec.attribute1
200       ,l_lead_pss_lines_rec.attribute2
201       ,l_lead_pss_lines_rec.attribute3
202       ,l_lead_pss_lines_rec.attribute4
203       ,l_lead_pss_lines_rec.attribute5
204       ,l_lead_pss_lines_rec.attribute6
205       ,l_lead_pss_lines_rec.attribute7
206       ,l_lead_pss_lines_rec.attribute8
207       ,l_lead_pss_lines_rec.attribute9
208       ,l_lead_pss_lines_rec.attribute10
209       ,l_lead_pss_lines_rec.attribute11
210       ,l_lead_pss_lines_rec.attribute12
211       ,l_lead_pss_lines_rec.attribute13
212       ,l_lead_pss_lines_rec.attribute14
213       ,l_lead_pss_lines_rec.attribute15
214       ,l_lead_pss_lines_rec.object_name
215       ,l_object_version_number                -- object_version_number
216       ,l_lead_pss_lines_rec.partner_id
217       ,l_lead_pss_lines_rec.object_id
218       );
219 
220   ------------------------- finish -------------------------------
221   x_lead_pss_line_id := l_lead_pss_lines_rec.lead_pss_line_id;
222 
223    IF l_return_status = FND_API.g_ret_sts_error THEN
224       RAISE FND_API.g_exc_error;
225    ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
226       RAISE FND_API.g_exc_unexpected_error;
227    END IF;
228 
229 
230   -- Check for commit
231     IF FND_API.to_boolean(p_commit) THEN
232       COMMIT;
233     END IF;
234 
235   FND_MSG_PUB.count_and_get(
236          p_encoded => FND_API.g_false,
237          p_count   => x_msg_count,
238          p_data    => x_msg_data
239   );
240 
241   IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
242      PVX_Utility_PVT.debug_message(l_full_name ||': end');
243   END IF;
244 
245 
246 EXCEPTION
247 
248     WHEN FND_API.g_exc_error THEN
249       ROLLBACK TO Create_lead_pss_line;
250       x_return_status := FND_API.g_ret_sts_error;
251       FND_MSG_PUB.count_and_get (
252            p_encoded => FND_API.g_false
253           ,p_count   => x_msg_count
254           ,p_data    => x_msg_data
255           );
256 
257     WHEN FND_API.g_exc_unexpected_error THEN
258       ROLLBACK TO Create_lead_pss_line;
259       x_return_status := FND_API.g_ret_sts_unexp_error ;
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 
266 
267     WHEN OTHERS THEN
268       ROLLBACK TO Create_lead_pss_line;
269       x_return_status := FND_API.g_ret_sts_unexp_error ;
270 
271       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
272 		THEN
273          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
274       END IF;
275 
276       FND_MSG_PUB.count_and_get(
277            p_encoded => FND_API.g_false
278           ,p_count   => x_msg_count
279           ,p_data    => x_msg_data
280           );
281 
282 END Create_lead_pss_line;
283 
284 
285 ---------------------------------------------------------------
286 -- PROCEDURE
287 --   Delete_lead_pss_line
288 --
289 ---------------------------------------------------------------
290 PROCEDURE Delete_lead_pss_line(
291    p_api_version_number       IN  NUMBER
292   ,p_init_msg_list     IN  VARCHAR2 := FND_API.g_false
293   ,p_commit            IN  VARCHAR2 := FND_API.g_false
294 
295   ,x_return_status     OUT NOCOPY VARCHAR2
296   ,x_msg_count         OUT NOCOPY NUMBER
297   ,x_msg_data          OUT NOCOPY VARCHAR2
298 
299   ,p_lead_pss_line_id    IN  NUMBER
300   ,p_object_version      IN  NUMBER
301 
302 )
303 IS
304 
305    l_api_version CONSTANT NUMBER       := 1.0;
306    l_api_name    CONSTANT VARCHAR2(30) := 'Delete_lead_pss_line';
307    l_full_name   CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
308 
309 BEGIN
310 
311    --------------------- initialize -----------------------
312    SAVEPOINT Delete_lead_pss_line;
313 
314    IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
315       PVX_Utility_PVT.debug_message(l_full_name||': start');
316    END IF;
317 
318 
319 
320    IF FND_API.to_boolean(p_init_msg_list) THEN
321       FND_MSG_PUB.initialize;
322    END IF;
323 
324    IF NOT FND_API.compatible_api_call(
325          l_api_version,
326          p_api_version_number,
327          l_api_name,
328          g_pkg_name
329    ) THEN
330       RAISE FND_API.g_exc_unexpected_error;
331    END IF;
332 
333    x_return_status := FND_API.G_RET_STS_SUCCESS;
334 
335    ------------------------ delete ------------------------
336    IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
340 
337       PVX_Utility_PVT.debug_message(l_full_name ||': delete');
338    END IF;
339 
341    DELETE FROM PV_LEAD_PSS_LINES
342      WHERE lead_pss_line_id  = p_lead_pss_line_id
343      AND   object_version_number = p_object_version;
344 
345    IF (SQL%NOTFOUND) THEN
346       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
347 		THEN
348          FND_MESSAGE.set_name('PV', 'PV_RECORD_NOT_FOUND');
349          FND_MSG_PUB.add;
350       END IF;
351       RAISE FND_API.g_exc_error;
352    END IF;
353 
354    -------------------- finish --------------------------
355    IF FND_API.to_boolean(p_commit) THEN
356       COMMIT;
357    END IF;
358 
359    FND_MSG_PUB.count_and_get(
360          p_encoded => FND_API.g_false,
361          p_count   => x_msg_count,
362          p_data    => x_msg_data
363    );
364 
365    IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
366       PVX_Utility_PVT.debug_message(l_full_name ||': end');
367    END IF;
368 
369 
370 
371 EXCEPTION
372 
373    WHEN FND_API.g_exc_error THEN
374       ROLLBACK TO Delete_lead_pss_line;
375       x_return_status := FND_API.g_ret_sts_error;
376       FND_MSG_PUB.count_and_get(
377             p_encoded => FND_API.g_false,
378             p_count   => x_msg_count,
379             p_data    => x_msg_data
380       );
381 
382    WHEN FND_API.g_exc_unexpected_error THEN
383       ROLLBACK TO Delete_lead_pss_line;
384       x_return_status := FND_API.g_ret_sts_unexp_error ;
385       FND_MSG_PUB.count_and_get(
386             p_encoded => FND_API.g_false,
387             p_count   => x_msg_count,
388             p_data    => x_msg_data
389       );
390 
391    WHEN OTHERS THEN
392       ROLLBACK TO Delete_lead_pss_line;
393       x_return_status := FND_API.g_ret_sts_unexp_error ;
394 
395       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
396 		THEN
397          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
398       END IF;
399 
400       FND_MSG_PUB.count_and_get(
401             p_encoded => FND_API.g_false,
402             p_count   => x_msg_count,
403             p_data    => x_msg_data
404       );
405 
406 END Delete_lead_pss_line;
407 
408 
409 -------------------------------------------------------------------
410 -- PROCEDURE
411 --    Lock_lead_pss_line
412 --
413 --------------------------------------------------------------------
414 PROCEDURE Lock_lead_pss_line(
415    p_api_version_number       IN  NUMBER
416   ,p_init_msg_list     IN  VARCHAR2 := FND_API.g_false
417 
418   ,x_return_status     OUT NOCOPY VARCHAR2
419   ,x_msg_count         OUT NOCOPY NUMBER
420   ,x_msg_data          OUT NOCOPY VARCHAR2
421 
422   ,p_lead_pss_line_id    IN  NUMBER
423   ,p_object_version    IN  NUMBER
424 )
425 IS
426 
427    l_api_version  CONSTANT NUMBER       := 1.0;
428    l_api_name     CONSTANT VARCHAR2(30) := 'Lock_lead_pss_line';
429    l_full_name    CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
430 
431    l_lead_pss_line_id      NUMBER;
432 
433    CURSOR c_lead_pss_line IS
434    SELECT  lead_pss_line_id
435      FROM  pv_lead_pss_lines
436      WHERE lead_pss_line_id  = p_lead_pss_line_id
437      AND   object_version_number = p_object_version
438    FOR UPDATE OF lead_pss_line_id  NOWAIT;
439 
440 BEGIN
441 
442    -------------------- initialize ------------------------
443    IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
444       PVX_Utility_PVT.debug_message(l_full_name||': start');
445    END IF;
446 
447 
448    IF FND_API.to_boolean(p_init_msg_list) THEN
449       FND_MSG_PUB.initialize;
450    END IF;
451 
452    IF NOT FND_API.compatible_api_call(
453          l_api_version,
454          p_api_version_number,
455          l_api_name,
456          g_pkg_name
457    ) THEN
458       RAISE FND_API.g_exc_unexpected_error;
459    END IF;
460 
461    x_return_status := FND_API.G_RET_STS_SUCCESS;
462 
463    ------------------------ lock -------------------------
464    IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
465       PVX_Utility_PVT.debug_message(l_full_name||': lock');
466    END IF;
467 
468 
469    OPEN  c_lead_pss_line;
470    FETCH c_lead_pss_line INTO l_lead_pss_line_id;
471    IF (c_lead_pss_line%NOTFOUND) THEN
472       CLOSE c_lead_pss_line;
473       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
474          FND_MESSAGE.set_name('PV', 'PV_RECORD_NOT_FOUND');
475          FND_MSG_PUB.add;
476       END IF;
477       RAISE FND_API.g_exc_error;
478    END IF;
479    CLOSE c_lead_pss_line;
480 
481 
482    -------------------- finish --------------------------
483    FND_MSG_PUB.count_and_get(
484          p_encoded => FND_API.g_false,
485          p_count   => x_msg_count,
486          p_data    => x_msg_data
487    );
488 
489 
490    IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
491       PVX_Utility_PVT.debug_message(l_full_name ||': end');
492    END IF;
493 
494 
495 
496 EXCEPTION
497 
498    WHEN PVX_Utility_PVT.resource_locked THEN
499       x_return_status := FND_API.g_ret_sts_error;
500 		IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
501 		   FND_MESSAGE.set_name('PV', 'PV_RESOURCE_LOCKED');
502 		   FND_MSG_PUB.add;
503 		END IF;
504 
505       FND_MSG_PUB.count_and_get(
506             p_encoded => FND_API.g_false,
510 
507             p_count   => x_msg_count,
508             p_data    => x_msg_data
509       );
511 	WHEN FND_API.g_exc_error THEN
512       x_return_status := FND_API.g_ret_sts_error;
513       FND_MSG_PUB.count_and_get(
514             p_encoded => FND_API.g_false,
515             p_count   => x_msg_count,
516             p_data    => x_msg_data
517       );
518 
519    WHEN FND_API.g_exc_unexpected_error THEN
520       x_return_status := FND_API.g_ret_sts_unexp_error ;
521       FND_MSG_PUB.count_and_get(
522             p_encoded => FND_API.g_false,
523             p_count   => x_msg_count,
524             p_data    => x_msg_data
525       );
526 
527    WHEN OTHERS THEN
528       x_return_status := FND_API.g_ret_sts_unexp_error ;
529       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
530 		THEN
531          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
532       END IF;
533 
534       FND_MSG_PUB.count_and_get(
535             p_encoded => FND_API.g_false,
536             p_count   => x_msg_count,
537             p_data    => x_msg_data
538       );
539 
540 END Lock_lead_pss_line;
541 
542 
543 ---------------------------------------------------------------------
544 -- PROCEDURE
545 -- Update_lead_pss_line
546 ----------------------------------------------------------------------
547 PROCEDURE Update_lead_pss_line(
548    p_api_version_number       IN  NUMBER
549   ,p_init_msg_list     IN  VARCHAR2  := FND_API.g_false
550   ,p_commit            IN  VARCHAR2  := FND_API.g_false
551   ,p_validation_level  IN  NUMBER    := FND_API.g_valid_level_full
552 
553   ,x_return_status     OUT NOCOPY VARCHAR2
554   ,x_msg_count         OUT NOCOPY NUMBER
555   ,x_msg_data          OUT NOCOPY VARCHAR2
556   ,p_lead_pss_lines_rec     IN  lead_pss_lines_rec_type
557 
558 )
559 IS
560 
561    l_api_version CONSTANT NUMBER := 1.0;
562    l_api_name    CONSTANT VARCHAR2(30) := 'Update_lead_pss_line';
563    l_full_name   CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
564 
565    l_lead_pss_lines_rec  lead_pss_lines_rec_type;
566    l_return_status   VARCHAR2(1);
567    l_mode            VARCHAR2(30) := 'UPDATE';
568 
569 
570 BEGIN
571 
572    -------------------- initialize -------------------------
573    SAVEPOINT Update_lead_pss_line;
574 
575    IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
576       PVX_Utility_PVT.debug_message(l_full_name||': start');
577    END IF;
578 
579 
580    IF FND_API.to_boolean(p_init_msg_list) THEN
581       FND_MSG_PUB.initialize;
582    END IF;
583 
584    IF NOT FND_API.compatible_api_call(
585          l_api_version,
586          p_api_version_number,
587          l_api_name,
588          g_pkg_name
589    ) THEN
590       RAISE FND_API.g_exc_unexpected_error;
591    END IF;
592 
593    x_return_status := FND_API.G_RET_STS_SUCCESS;
594 
595    ----------------------- validate ----------------------
596    IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
597       PVX_Utility_PVT.debug_message(l_full_name ||': validate');
598    END IF;
599 
600 
601    IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
602       Check_lead_pss_line_Items(
603   	 p_lead_pss_lines_rec  => p_lead_pss_lines_rec,
604          p_validation_mode => JTF_PLSQL_API.g_update,
605          x_return_status   => l_return_status
606       );
607 
608       IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
609          RAISE FND_API.g_exc_unexpected_error;
610       ELSIF l_return_status = FND_API.g_ret_sts_error THEN
611          RAISE FND_API.g_exc_error;
612       END IF;
613    END IF;
614 
615 
616 
617    -- replace g_miss_char/num/date with current column values
618    Complete_lead_pss_line_rec(p_lead_pss_lines_rec, l_lead_pss_lines_rec);
619 
620 
621 
622    IF p_validation_level >= JTF_PLSQL_API.g_valid_level_record THEN
623 
624       Check_lead_pss_line_Record(
625   	 p_lead_pss_lines_rec => p_lead_pss_lines_rec,
626          p_complete_rec    => l_lead_pss_lines_rec,
627          p_mode            => l_mode,
628          x_return_status   => l_return_status
629       );
630 
631 
632       IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
633          RAISE FND_API.g_exc_unexpected_error;
634       ELSIF l_return_status = FND_API.g_ret_sts_error THEN
635          RAISE FND_API.g_exc_error;
636       END IF;
637    END IF;
638 
639    -------------------------- update --------------------
640    IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
641       PVX_Utility_PVT.debug_message(l_full_name ||': update');
642    END IF;
643 
644 
645 
646    UPDATE PV_LEAD_PSS_LINES  SET
647       last_update_date           = SYSDATE
648      ,last_updated_by            = NVL(FND_GLOBAL.user_id,-1)
649      ,last_update_login          = NVL(FND_GLOBAL.conc_login_id,-1)
650      ,request_id                 =  l_lead_pss_lines_rec.request_id
651      ,program_application_id     =  l_lead_pss_lines_rec.program_application_id
652      ,program_id                 =  l_lead_pss_lines_rec.program_id
653      ,program_update_date        =  l_lead_pss_lines_rec.program_update_date
654      ,attr_code_id               =  l_lead_pss_lines_rec.attr_code_id
655      ,lead_id                    =  l_lead_pss_lines_rec.lead_id
656      ,uom_code                   =  l_lead_pss_lines_rec.uom_code
657      ,quantity                   =  l_lead_pss_lines_rec.quantity
658      ,amount                     =  l_lead_pss_lines_rec.amount
662      ,attribute3                 = l_lead_pss_lines_rec.attribute3
659      ,attribute_category         = l_lead_pss_lines_rec.attribute_category
660      ,attrIbute1                 = l_lead_pss_lines_rec.attribute1
661      ,attribute2                 = l_lead_pss_lines_rec.attribute2
663      ,attribute4                 = l_lead_pss_lines_rec.attribute4
664      ,attribute5                 = l_lead_pss_lines_rec.attribute5
665      ,attribute6                 = l_lead_pss_lines_rec.attribute6
666      ,attribute7                 = l_lead_pss_lines_rec.attribute7
667      ,attribute8                 = l_lead_pss_lines_rec.attribute8
668      ,attribute9                 = l_lead_pss_lines_rec.attribute9
669      ,attribute10                = l_lead_pss_lines_rec.attribute10
670      ,attribute11                = l_lead_pss_lines_rec.attribute11
671      ,attribute12                = l_lead_pss_lines_rec.attribute12
672      ,attribute13                = l_lead_pss_lines_rec.attribute13
673      ,attribute14                = l_lead_pss_lines_rec.attribute14
674      ,attribute15                = l_lead_pss_lines_rec.attribute15
675      ,object_name                = l_lead_pss_lines_rec.object_name
676      ,object_version_number      = l_lead_pss_lines_rec.object_version_number + 1
677      ,partner_id                 = l_lead_pss_lines_rec.partner_id
678      ,object_id                  = l_lead_pss_lines_rec.object_id
679    WHERE lead_pss_line_id = l_lead_pss_lines_rec.lead_pss_line_id
680    AND   object_version_number = l_lead_pss_lines_rec.object_version_number;
681 
682 
683    IF (SQL%NOTFOUND) THEN
684       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
685          FND_MESSAGE.set_name('PV', 'PV_NO_RECORD_FOUND');
686          FND_MSG_PUB.add;
687       END IF;
688       RAISE FND_API.g_exc_error;
689    END IF;
690 
691 
692 
693 
694 
695    -------------------- finish --------------------------
696 
697    -- Check for commit
698    IF FND_API.to_boolean(p_commit) THEN
699       COMMIT;
700    END IF;
701 
702 
703 
704    FND_MSG_PUB.count_and_get(
705          p_encoded => FND_API.g_false,
706          p_count   => x_msg_count,
707          p_data    => x_msg_data
708    );
709 
710    IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
711       PVX_Utility_PVT.debug_message(l_full_name ||': end');
712    END IF;
713 
714 
715 
716 
717 EXCEPTION
718 
719    WHEN FND_API.g_exc_error THEN
720       ROLLBACK TO Update_lead_pss_line;
721       x_return_status := FND_API.g_ret_sts_error;
722       FND_MSG_PUB.count_and_get(
723             p_encoded => FND_API.g_false,
724             p_count   => x_msg_count,
725             p_data    => x_msg_data
726       );
727 
728    WHEN FND_API.g_exc_unexpected_error THEN
729       ROLLBACK TO Update_lead_pss_line;
730       x_return_status := FND_API.g_ret_sts_unexp_error ;
731       FND_MSG_PUB.count_and_get(
732             p_encoded => FND_API.g_false,
733             p_count   => x_msg_count,
734             p_data    => x_msg_data
735       );
736 
737    WHEN OTHERS THEN
738       ROLLBACK TO Update_lead_pss_line;
739       x_return_status := FND_API.g_ret_sts_unexp_error ;
740 
741       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
742 		THEN
743          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
744       END IF;
745 
746       FND_MSG_PUB.count_and_get(
747             p_encoded => FND_API.g_false,
748             p_count   => x_msg_count,
749             p_data    => x_msg_data
750       );
751 
752 END Update_lead_pss_line;
753 
754 
755 --------------------------------------------------------------------
756 -- PROCEDURE
757 --    Validate_lead_pss_line
758 --
759 --------------------------------------------------------------------
760 PROCEDURE Validate_lead_pss_line(
761    p_api_version_number       IN  NUMBER
762   ,p_init_msg_list     IN  VARCHAR2  := FND_API.g_false
763   ,p_validation_level  IN  NUMBER    := FND_API.g_valid_level_full
764 
765   ,x_return_status     OUT NOCOPY VARCHAR2
766   ,x_msg_count         OUT NOCOPY NUMBER
767   ,x_msg_data          OUT NOCOPY VARCHAR2
768 
769   ,p_lead_pss_lines_rec   IN  lead_pss_lines_rec_type
770 )
771 IS
772 
773    l_api_version CONSTANT NUMBER       := 1.0;
774    l_api_name    CONSTANT VARCHAR2(30) := 'Validate_lead_pss_line';
775    l_full_name   CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
776    l_return_status VARCHAR2(1);
777 
778 BEGIN
779 
780 
781 
782    ----------------------- initialize --------------------
783    IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
784       PVX_Utility_PVT.debug_message(l_full_name||': start');
785    END IF;
786 
787 
788    IF FND_API.to_boolean(p_init_msg_list) THEN
789       FND_MSG_PUB.initialize;
790    END IF;
791 
792    IF NOT FND_API.compatible_api_call(
793          l_api_version,
794          p_api_version_number,
795          l_api_name,
796          g_pkg_name
797    ) THEN
798       RAISE FND_API.g_exc_unexpected_error;
799    END IF;
800 
801    x_return_status := FND_API.g_ret_sts_success;
802 
803    ---------------------- validate ------------------------
804    IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
805       PVX_Utility_PVT.debug_message(l_full_name||': check items');
806    END IF;
807 
808 
809 
810 
811    IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
812       Check_Lead_pss_line_Items(
813          p_lead_pss_lines_rec => p_lead_pss_lines_rec,
817 
814          p_validation_mode => JTF_PLSQL_API.g_create,
815          x_return_status   => l_return_status
816       );
818 
819       IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
820          RAISE FND_API.g_exc_unexpected_error;
821       ELSIF l_return_status = FND_API.g_ret_sts_error THEN
822          RAISE FND_API.g_exc_error;
823       END IF;
824    END IF;
825 
826 
827 
828    IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
829       PVX_Utility_PVT.debug_message(l_full_name||': check record');
830    END IF;
831 
832 
833 
834 
835    IF p_validation_level >= JTF_PLSQL_API.g_valid_level_record THEN
836       Check_lead_pss_line_Record(
837          p_lead_pss_lines_rec => p_lead_pss_lines_rec,
838          p_complete_rec      => NULL,
839          x_return_status     => l_return_status
840       );
841 
842 
843 
844 
845       IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
846          RAISE FND_API.g_exc_unexpected_error;
847       ELSIF l_return_status = FND_API.g_ret_sts_error THEN
848          RAISE FND_API.g_exc_error;
849       END IF;
850    END IF;
851 
852 
853 
854 
855    -------------------- finish --------------------------
856    FND_MSG_PUB.count_and_get(
857          p_encoded => FND_API.g_false,
858          p_count   => x_msg_count,
859          p_data    => x_msg_data
860    );
861 
862    IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
863       PVX_Utility_PVT.debug_message(l_full_name ||': end');
864    END IF;
865 
866 
867 
868 
869 
870 EXCEPTION
871 
872    WHEN FND_API.g_exc_error THEN
873       x_return_status := FND_API.g_ret_sts_error;
874       FND_MSG_PUB.count_and_get(
875             p_encoded => FND_API.g_false,
876             p_count   => x_msg_count,
877             p_data    => x_msg_data
878       );
879 
880    WHEN FND_API.g_exc_unexpected_error THEN
881       x_return_status := FND_API.g_ret_sts_unexp_error ;
882       FND_MSG_PUB.count_and_get(
883             p_encoded => FND_API.g_false,
884             p_count   => x_msg_count,
885             p_data    => x_msg_data
886       );
887 
888    WHEN OTHERS THEN
889       x_return_status := FND_API.g_ret_sts_unexp_error;
890       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
891 		THEN
892          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
893       END IF;
894 
895       FND_MSG_PUB.count_and_get(
896             p_encoded => FND_API.g_false,
897             p_count   => x_msg_count,
898             p_data    => x_msg_data
899       );
900 
901 END Validate_lead_pss_line;
902 
903 
904 ---------------------------------------------------------------------
905 -- PROCEDURE
906 --    Check_Req_Items
907 --
908 ---------------------------------------------------------------------
909 PROCEDURE Check_Req_Items(
910    p_lead_pss_lines_rec   IN  lead_pss_lines_rec_type
911   ,x_return_status   OUT NOCOPY VARCHAR2
912 )
913 IS
914 BEGIN
915 
916    x_return_status := FND_API.g_ret_sts_success;
917 
918 
919    ------------------------ entity --------------------------
920    IF p_lead_pss_lines_rec.object_id IS NULL THEN
921       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
922          FND_MESSAGE.set_name('PV', 'PV_NO_OBJECT_ID');
923          FND_MSG_PUB.add;
924       END IF;
925 
926       x_return_status := FND_API.g_ret_sts_error;
927       RETURN;
928    ------------------------ attribute id -------------------------------
929    ELSIF p_lead_pss_lines_rec.attr_code_id IS NULL THEN
930       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
931          FND_MESSAGE.set_name('PV', 'PV_NO_ATTR_CODE_ID');
932          FND_MSG_PUB.add;
933       END IF;
934 
935       x_return_status := FND_API.g_ret_sts_error;
936       RETURN;
937    ------------------------ Object_name -------------------------------
938   ELSIF p_lead_pss_lines_rec.object_name IS NULL THEN
939     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
940        FND_MESSAGE.set_name('PV', 'PV_NO_OBJECT_NAME');
941        FND_MSG_PUB.add;
942     END IF;
943 
944     x_return_status := FND_API.g_ret_sts_error;
945     RETURN;
946  END IF;
947 
948 END Check_Req_Items;
949 
950 
951 ---------------------------------------------------------------------
952 -- PROCEDURE
953 --    Check_Uk_Items
954 --
955 ---------------------------------------------------------------------
956 PROCEDURE Check_Uk_Items(
957    p_lead_pss_lines_rec IN  lead_pss_lines_rec_type
958   ,p_validation_mode   IN  VARCHAR2 := JTF_PLSQL_API.g_create
959   ,x_return_status     OUT NOCOPY VARCHAR2
960 )
961 IS
962    l_valid_flag  VARCHAR2(1);
963 BEGIN
964 
965    x_return_status := FND_API.g_ret_sts_success;
966 
967    -- when lead_pss_line_id is passed in, we need to
968    -- check if this is unique.
969    IF p_validation_mode = JTF_PLSQL_API.g_create
970       AND p_lead_pss_lines_rec.lead_pss_line_id IS NOT NULL
971    THEN
972       IF PVX_Utility_PVT.check_uniqueness(
973 		    'PV_lead_pss_lines',
974 		    'lead_pss_line_id = ' || p_lead_pss_lines_rec.lead_pss_line_id
975 			) = FND_API.g_false
976 		THEN
977          IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
978 			THEN
979             FND_MESSAGE.set_name('PV', 'PV_DUPLICATE_ID');
980             FND_MSG_PUB.add;
981          END IF;
985    END IF;
982          x_return_status := FND_API.g_ret_sts_error;
983          RETURN;
984       END IF;
986 
987    -- check other unique items
988 
989 END Check_Uk_Items;
990 
991 
992 ---------------------------------------------------------------------
993 -- PROCEDURE
994 --    Check_Fk_Items
995 --
996 ---------------------------------------------------------------------
997 PROCEDURE Check_Fk_Items(
998    p_lead_pss_lines_rec IN  lead_pss_lines_rec_type
999   ,x_return_status   OUT NOCOPY VARCHAR2
1000 )
1001 IS
1002 BEGIN
1003 
1004    x_return_status := FND_API.g_ret_sts_success;
1005 
1006 
1007    ----------------------- lead_id ------------------------
1008    IF (p_lead_pss_lines_rec.lead_id <> FND_API.g_miss_num and p_lead_pss_lines_rec.object_name = 'OPPORTUNITY') THEN
1009       IF PVX_Utility_PVT.check_fk_exists(
1010             'as_leads_all',    -- Parent schema object having the primary key
1011             'lead_id',     -- Column name in the parent object that maps to the fk value
1012             p_lead_pss_lines_rec.object_id,       -- Value of fk to be validated against the parent object's pk column
1013            PVX_utility_PVT.g_number              -- datatype of fk
1014          ) = FND_API.g_false
1015       THEN
1016          IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1017          THEN
1018             FND_MESSAGE.set_name('PV', 'PV_NOT_A_VALID_LEAD_ID');
1019             FND_MSG_PUB.add;
1020          END IF;
1021 
1022          x_return_status := FND_API.g_ret_sts_error;
1023          RETURN;
1024       END IF;
1025 
1026    else IF (p_lead_pss_lines_rec.lead_id <> FND_API.g_miss_num and p_lead_pss_lines_rec.object_name = 'LEAD') then
1027 
1028       IF PVX_Utility_PVT.check_fk_exists(
1029             'as_sales_leads',    -- Parent schema object having the primary key
1030             'sales_lead_id',     -- Column name in the parent object that maps to the fk value
1031             p_lead_pss_lines_rec.object_id,       -- Value of fk to be validated against the parent object's pk column
1032            PVX_utility_PVT.g_number              -- datatype of fk
1033          ) = FND_API.g_false
1034       THEN
1035          IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1036          THEN
1037             FND_MESSAGE.set_name('PV', 'PV_NOT_A_VALID_SALES_LEAD_ID');
1038             FND_MSG_PUB.add;
1039          END IF;
1040           x_return_status := FND_API.g_ret_sts_error;
1041          RETURN;
1042 
1043    END IF;
1044   END IF;
1045 END IF;
1046 
1047    ----------------------- attr_code_id ------------------------
1048    IF p_lead_pss_lines_rec.attr_code_id <> FND_API.g_miss_num  THEN
1049       IF PVX_Utility_PVT.check_fk_exists(
1050             'pv_attribute_codes_vl',    -- Parent schema object having the primary key
1051             'attr_code_id',     -- Column name in the parent object that maps to the fk value
1052             p_lead_pss_lines_rec.attr_code_id,       -- Value of fk to be validated against the parent object's pk column
1053            PVX_utility_PVT.g_number              -- datatype of fk
1054          ) = FND_API.g_false
1055       THEN
1056          IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1057          THEN
1058             FND_MESSAGE.set_name('PV', 'PV_NOT_A_VALID_ATTRIBUTE_CODE_ID');
1059             FND_MSG_PUB.add;
1060          END IF;
1061        x_return_status := FND_API.g_ret_sts_error;
1062          RETURN;
1063 
1064    end if;
1065 end if;
1066 
1067 END Check_Fk_Items;
1068 
1069 
1070 ---------------------------------------------------------------------
1071 -- PROCEDURE
1072 --    Check_Lookup_Items
1073 --
1074 ---------------------------------------------------------------------
1075 PROCEDURE Check_Lookup_Items(
1076    p_lead_pss_lines_rec IN  lead_pss_lines_rec_type
1077   ,x_return_status     OUT NOCOPY VARCHAR2
1078 )
1079 IS
1080 BEGIN
1081 
1082 
1083  x_return_status := FND_API.g_ret_sts_success;
1084 
1085 
1086 
1087    ----------------------- object_name lookup  ------------------------
1088    IF p_lead_pss_lines_rec.object_name <> FND_API.g_miss_char  THEN
1089 
1090       IF PVX_Utility_PVT.check_lookup_exists(
1091             'pv_lookups',      -- Look up Table Name
1092             'PV_OBJECT_NAME',    -- Lookup Type
1093             p_lead_pss_lines_rec.object_name       -- Lookup Code
1094          ) = FND_API.g_false
1095       THEN
1096          IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1097          THEN
1098             FND_MESSAGE.set_name('PV', 'PV_NOT_A_VALID_OBJECT_NAME_CODE');
1099             FND_MSG_PUB.add;
1100          END IF;
1101          x_return_status := FND_API.g_ret_sts_error;
1102          RETURN;
1103 
1104    end if;
1105 end if;
1106 
1107    -- check other lookup codes
1108 
1109 END Check_Lookup_Items;
1110 
1111 
1112 ---------------------------------------------------------------------
1113 -- PROCEDURE
1114 --    Check_Flag_Items
1115 --
1116 ---------------------------------------------------------------------
1117 PROCEDURE Check_Flag_Items(
1118    p_lead_pss_lines_rec IN  lead_pss_lines_rec_type
1119   ,x_return_status   OUT NOCOPY VARCHAR2
1120 )
1121 IS
1122 BEGIN
1123 
1124    x_return_status := FND_API.g_ret_sts_success;
1125 
1126 
1127 END Check_Flag_Items;
1128 
1129 
1130 ---------------------------------------------------------------------
1131 -- PROCEDURE
1132 --    Check_lead_pss_line_items
1133 --
1134 ---------------------------------------------------------------------
1135 PROCEDURE Check_lead_pss_line_Items(
1136    p_validation_mode IN  VARCHAR2 := JTF_PLSQL_API.g_create
1140 IS
1137   ,x_return_status   OUT NOCOPY VARCHAR2
1138   ,p_lead_pss_lines_rec IN lead_pss_lines_rec_type
1139 )
1141 BEGIN
1142 
1143    Check_Req_Items(
1144       p_lead_pss_lines_rec => p_lead_pss_lines_rec
1145      ,x_return_status   => x_return_status
1146    );
1147 
1148 
1149    IF x_return_status <> FND_API.g_ret_sts_success THEN
1150       RETURN;
1151    END IF;
1152 
1153 
1154 
1155    Check_Uk_Items(
1156       p_lead_pss_lines_rec => p_lead_pss_lines_rec
1157      ,p_validation_mode => p_validation_mode
1158      ,x_return_status   => x_return_status
1159    );
1160 
1161 
1162 
1163 
1164    IF x_return_status <> FND_API.g_ret_sts_success THEN
1165       RETURN;
1166    END IF;
1167 
1168 
1169 
1170    Check_Fk_Items(
1171       p_lead_pss_lines_rec => p_lead_pss_lines_rec
1172      ,x_return_status   => x_return_status
1173    );
1174 
1175 
1176 
1177    IF x_return_status <> FND_API.g_ret_sts_success THEN
1178       RETURN;
1179    END IF;
1180 
1181 
1182 
1183    Check_Lookup_Items(
1184       p_lead_pss_lines_rec => p_lead_pss_lines_rec
1185      ,x_return_status   => x_return_status
1186    );
1187 
1188 
1189 
1190 
1191    IF x_return_status <> FND_API.g_ret_sts_success THEN
1192       RETURN;
1193    END IF;
1194 
1195 
1196 
1197 
1198    Check_Flag_Items(
1199       p_lead_pss_lines_rec => p_lead_pss_lines_rec
1200      ,x_return_status   => x_return_status
1201    );
1202 
1203 
1204 
1205 
1206    IF x_return_status <> FND_API.g_ret_sts_success THEN
1207       RETURN;
1208    END IF;
1209 
1210 END Check_lead_pss_line_Items;
1211 
1212 
1213 
1214 ---------------------------------------------------------------------
1215 -- PROCEDURE
1216 --    Check_lead_pss_line_Record
1217 --
1218 ---------------------------------------------------------------------
1219 PROCEDURE Check_lead_pss_line_Record(
1220    p_lead_pss_lines_rec IN lead_pss_lines_rec_type
1221   ,p_complete_rec     IN  lead_pss_lines_rec_type := NULL
1222   ,p_mode             IN  VARCHAR2 := 'INSERT'
1223   ,x_return_status    OUT NOCOPY VARCHAR2
1224 )
1225 IS
1226 
1227 
1228 BEGIN
1229 
1230    x_return_status := FND_API.g_ret_sts_success;
1231 
1232 
1233 
1234    -- do other record level checkings
1235 
1236 END Check_lead_pss_line_Record;
1237 
1238 
1239 ---------------------------------------------------------------------
1240 -- PROCEDURE
1241 --    Init_lead_pss_line_Rec
1242 --
1243 ---------------------------------------------------------------------
1244 PROCEDURE Init_lead_pss_line_Rec(
1245    x_lead_pss_lines_rec    OUT NOCOPY lead_pss_lines_rec_type
1246 )
1247 IS
1248 BEGIN
1249 
1250 x_lead_pss_lines_rec.lead_pss_line_id           := FND_API.G_MISS_NUM;
1251 x_lead_pss_lines_rec.last_update_date           := FND_API.G_MISS_DATE;
1252 x_lead_pss_lines_rec.last_updated_by            := FND_API.G_MISS_NUM;
1253 x_lead_pss_lines_rec.creation_date              := FND_API.G_MISS_DATE;
1254 x_lead_pss_lines_rec.created_by	                := FND_API.G_MISS_NUM;
1255 x_lead_pss_lines_rec.last_update_login          := FND_API.G_MISS_NUM;
1256 x_lead_pss_lines_rec.object_version_number      := FND_API.G_MISS_NUM;
1257 x_lead_pss_lines_rec.request_id                 := FND_API.G_MISS_NUM;
1258 x_lead_pss_lines_rec.program_application_id     := FND_API.G_MISS_NUM;
1259 x_lead_pss_lines_rec.program_id                 := FND_API.G_MISS_NUM;
1260 x_lead_pss_lines_rec.program_update_date        := FND_API.G_MISS_DATE;
1261 x_lead_pss_lines_rec.attr_code_id               := FND_API.G_MISS_NUM;
1262 x_lead_pss_lines_rec.lead_id                    := FND_API.G_MISS_NUM;
1263 x_lead_pss_lines_rec.uom_code                   := FND_API.G_MISS_CHAR;
1264 x_lead_pss_lines_rec.quantity                   := FND_API.G_MISS_NUM;
1265 x_lead_pss_lines_rec.amount                     := FND_API.G_MISS_NUM;
1266 x_lead_pss_lines_rec.attribute_category         := FND_API.G_MISS_CHAR;
1267 x_lead_pss_lines_rec.attribute1                 := FND_API.G_MISS_CHAR;
1268 x_lead_pss_lines_rec.attribute2                 := FND_API.G_MISS_CHAR;
1269 x_lead_pss_lines_rec.attribute3                 := FND_API.G_MISS_CHAR;
1270 x_lead_pss_lines_rec.attribute4                 := FND_API.G_MISS_CHAR;
1271 x_lead_pss_lines_rec.attribute5                 := FND_API.G_MISS_CHAR;
1272 x_lead_pss_lines_rec.attribute6                 := FND_API.G_MISS_CHAR;
1273 x_lead_pss_lines_rec.attribute7                 := FND_API.G_MISS_CHAR;
1274 x_lead_pss_lines_rec.attribute8                 := FND_API.G_MISS_CHAR;
1275 x_lead_pss_lines_rec.attribute9                 := FND_API.G_MISS_CHAR;
1276 x_lead_pss_lines_rec.attribute10                := FND_API.G_MISS_CHAR;
1277 x_lead_pss_lines_rec.attribute11                := FND_API.G_MISS_CHAR;
1278 x_lead_pss_lines_rec.attribute12                := FND_API.G_MISS_CHAR;
1279 x_lead_pss_lines_rec.attribute13                := FND_API.G_MISS_CHAR;
1280 x_lead_pss_lines_rec.attribute14                := FND_API.G_MISS_CHAR;
1281 x_lead_pss_lines_rec.attribute15                := FND_API.G_MISS_CHAR;
1282 x_lead_pss_lines_rec.object_name                := FND_API.G_MISS_CHAR;
1283 x_lead_pss_lines_rec.object_id                  := FND_API.G_MISS_NUM;
1284 x_lead_pss_lines_rec.partner_id                 := FND_API.G_MISS_NUM;
1285 END Init_lead_pss_line_Rec;
1286 
1287 
1288 ---------------------------------------------------------------------
1289 -- PROCEDURE
1290 --    Complete_lead_pss_line_Rec
1291 --
1292 ---------------------------------------------------------------------
1293 PROCEDURE Complete_lead_pss_line_Rec(
1294    p_lead_pss_lines_rec   IN  lead_pss_lines_rec_type
1298 
1295   ,x_complete_rec        OUT NOCOPY  lead_pss_lines_rec_type
1296 )
1297 IS
1299    CURSOR c_lead_pss_line IS
1300    SELECT *
1301      FROM  PV_lead_pss_lines
1302      WHERE lead_pss_line_id = p_lead_pss_lines_rec.lead_pss_line_id;
1303 
1304    l_lead_pss_lines_rec   c_Lead_pss_line%ROWTYPE;
1305 
1306 BEGIN
1307 
1308    x_complete_rec := p_lead_pss_lines_rec;
1309 
1310    OPEN c_lead_pss_line;
1311    FETCH c_lead_pss_line INTO l_lead_pss_lines_rec;
1312    IF c_lead_pss_line%NOTFOUND THEN
1313       CLOSE c_lead_pss_line;
1314       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1315          FND_MESSAGE.set_name('PV', 'PV_NO_RECORD_FOUND');
1316          FND_MSG_PUB.add;
1317       END IF;
1318       RAISE FND_API.g_exc_error;
1319    END IF;
1320    CLOSE c_lead_pss_line;
1321 
1322 IF p_lead_pss_lines_rec.uom_code          = FND_API.G_MISS_CHAR THEN
1323    x_complete_rec.uom_code        := l_lead_pss_lines_rec.uom_code;
1324 END IF;
1325 
1326 IF p_lead_pss_lines_rec.lead_id          = FND_API.G_MISS_NUM THEN
1327    x_complete_rec.lead_id        := l_lead_pss_lines_rec.lead_id;
1328 END IF;
1329 
1330 IF p_lead_pss_lines_rec.amount         = FND_API.G_MISS_NUM  THEN
1331    x_complete_rec.amount        := l_lead_pss_lines_rec.amount;
1332 END IF;
1333 
1334 IF p_lead_pss_lines_rec.object_name          = FND_API.G_MISS_CHAR THEN
1335    x_complete_rec.object_name        := l_lead_pss_lines_rec.object_name;
1336 END IF;
1337 
1338 IF p_lead_pss_lines_rec.attr_code_id          = FND_API.G_MISS_NUM THEN
1339    x_complete_rec.attr_code_id        := l_lead_pss_lines_rec.attr_code_id;
1340 END IF;
1341 
1342 IF p_lead_pss_lines_rec.quantity          = FND_API.G_MISS_NUM THEN
1343    x_complete_rec.quantity        := l_lead_pss_lines_rec.quantity;
1344 END IF;
1345 IF p_lead_pss_lines_rec.object_version_number          = FND_API.G_MISS_NUM THEN
1346    x_complete_rec.object_version_number        := l_lead_pss_lines_rec.object_version_number;
1347 END IF;
1348 IF p_lead_pss_lines_rec.attribute_category               = FND_API.G_MISS_CHAR THEN
1349    x_complete_rec.attribute_category                     := l_lead_pss_lines_rec.attribute_category;
1350 END IF;
1351 
1352 IF p_lead_pss_lines_rec.attribute1               = FND_API.G_MISS_CHAR THEN
1353    x_complete_rec.attribute1                     := l_lead_pss_lines_rec.attribute1;
1354 END IF;
1355 
1356 IF p_lead_pss_lines_rec.attribute2               = FND_API.G_MISS_CHAR THEN
1357    x_complete_rec.attribute2                     := l_lead_pss_lines_rec.attribute2;
1358 END IF;
1359 
1360 IF p_lead_pss_lines_rec.attribute3               = FND_API.G_MISS_CHAR THEN
1361    x_complete_rec.attribute3                     := l_lead_pss_lines_rec.attribute3;
1362 END IF;
1363 
1364 IF p_lead_pss_lines_rec.attribute4               = FND_API.G_MISS_CHAR THEN
1365    x_complete_rec.attribute4                     := l_lead_pss_lines_rec.attribute4;
1366 END IF;
1367 
1368 IF p_lead_pss_lines_rec.attribute5               = FND_API.G_MISS_CHAR THEN
1369    x_complete_rec.attribute5                     := l_lead_pss_lines_rec.attribute5;
1370 END IF;
1371 
1372 IF p_lead_pss_lines_rec.attribute6               = FND_API.G_MISS_CHAR THEN
1373    x_complete_rec.attribute6                     := l_lead_pss_lines_rec.attribute6;
1374 END IF;
1375 
1376 IF p_lead_pss_lines_rec.attribute7               = FND_API.G_MISS_CHAR THEN
1377    x_complete_rec.attribute7                     := l_lead_pss_lines_rec.attribute7;
1378 END IF;
1379 
1380 IF p_lead_pss_lines_rec.attribute8               = FND_API.G_MISS_CHAR THEN
1381    x_complete_rec.attribute8                     := l_lead_pss_lines_rec.attribute8;
1382 END IF;
1383 
1384 IF p_lead_pss_lines_rec.attribute9               = FND_API.G_MISS_CHAR THEN
1385    x_complete_rec.attribute9                     := l_lead_pss_lines_rec.attribute9;
1386 END IF;
1387 
1388 IF p_lead_pss_lines_rec.attribute10               = FND_API.G_MISS_CHAR THEN
1389    x_complete_rec.attribute10                     := l_lead_pss_lines_rec.attribute10;
1390 END IF;
1391 
1392 IF p_lead_pss_lines_rec.attribute11               = FND_API.G_MISS_CHAR THEN
1393    x_complete_rec.attribute11                     := l_lead_pss_lines_rec.attribute11;
1394 END IF;
1395 
1396 IF p_lead_pss_lines_rec.attribute12               = FND_API.G_MISS_CHAR THEN
1397    x_complete_rec.attribute12                     := l_lead_pss_lines_rec.attribute12;
1398 END IF;
1399 
1400 IF p_lead_pss_lines_rec.attribute13               = FND_API.G_MISS_CHAR THEN
1401    x_complete_rec.attribute13                     := l_lead_pss_lines_rec.attribute13;
1402 END IF;
1403 
1404 IF p_lead_pss_lines_rec.attribute14               = FND_API.G_MISS_CHAR THEN
1405    x_complete_rec.attribute14                     := l_lead_pss_lines_rec.attribute14;
1406 END IF;
1407 
1408 IF p_lead_pss_lines_rec.attribute15               = FND_API.G_MISS_CHAR THEN
1409    x_complete_rec.attribute15                     := l_lead_pss_lines_rec.attribute15;
1410 END IF;
1411 
1412 IF p_lead_pss_lines_rec.request_id               = FND_API.G_MISS_NUM THEN
1413    x_complete_rec.request_id                     := l_lead_pss_lines_rec.request_id;
1414 END IF;
1415 
1416 IF p_lead_pss_lines_rec.program_id              = FND_API.G_MISS_NUM THEN
1417    x_complete_rec.program_id                     := l_lead_pss_lines_rec.program_id;
1418 END IF;
1419 
1420 IF p_lead_pss_lines_rec.program_application_id               = FND_API.G_MISS_NUM THEN
1421    x_complete_rec.program_application_id                     := l_lead_pss_lines_rec.program_application_id;
1422 END IF;
1423 
1424 IF p_lead_pss_lines_rec.program_update_date               = FND_API.G_MISS_DATE THEN
1425    x_complete_rec.program_update_date                     := l_lead_pss_lines_rec.program_update_date;
1426 END IF;
1427 
1431 
1428 IF p_lead_pss_lines_rec.partner_id                         = FND_API.G_MISS_NUM THEN
1429    x_complete_rec.partner_id                     := l_lead_pss_lines_rec.partner_id;
1430 END IF;
1432 IF p_lead_pss_lines_rec.object_id               = FND_API.G_MISS_NUM THEN
1433    x_complete_rec.object_id                     := l_lead_pss_lines_rec.object_id;
1434 END IF;
1435 
1436 end complete_lead_pss_line_rec;
1437 
1438 END PVX_lead_pss_lines_PVT;