1 PACKAGE BODY PER_LETTER_TYPES_PKG as
2 /* $Header: peltt01t.pkb 115.1 99/07/18 14:02:00 porting ship $ */
3
4 procedure LETTER_TYPE_NOT_UNIQUE (
5 --
6 -- Returns TRUE if the letter type name is not unique, then the check is for a
7 -- new record within generic data
8 --
9 -- Parameters are:
10 --
11 p_letter_type in varchar2,
12 p_business_group_id in number,
13 p_letter_type_id in number) is
14 --
15 v_not_unique boolean := FALSE;
16 g_dummy_number number;
17 --
18 cursor csr_duplicate is
19 select null
20 from per_letter_types
21 where upper(p_letter_type) = upper(letter_type_name)
22 and p_business_group_id = business_group_id + 0
23 and (p_letter_type_id is null
24 or (p_letter_type_id is not null
25 and letter_type_id <> p_letter_type_id));
26 begin
27 --
28 open csr_duplicate;
29 fetch csr_duplicate into g_dummy_number;
30 v_not_unique := csr_duplicate%found;
31 close csr_duplicate;
32 --
33 if v_not_unique then
34 hr_utility.set_message (801,'PER_7856_DEF_LETTER_EXISTS');
35 hr_utility.raise_error;
36 end if;
37 --
38 end letter_type_not_unique;
39
40 procedure check_delete_letter_type (p_letter_type_id in number) is
41 --
42 g_dummy_number number;
43 v_no_delete boolean := FALSE;
44 --
45 cursor csr_status is
46 select null
47 from per_letter_gen_statuses
48 where p_letter_type_id = letter_type_id;
49 --
50 cursor csr_request is
51 select null
52 from per_letter_requests
53 where p_letter_type_id = letter_type_id;
54 --
55 -- Check there are no dependencies of the letter type record
56 -- in the per_letter_gen_statuses and per_letter_requests table
57 --
58 begin
59 open csr_status;
60 fetch csr_status into g_dummy_number;
61 v_no_delete := csr_status%found;
62 close csr_status;
63 --
64 if v_no_delete then
65 hr_utility.set_message (801,'PER_7857_DEF_LETTER_STATUSES');
66 hr_utility.raise_error;
67 end if;
68 --
69 open csr_request;
70 fetch csr_request into g_dummy_number;
71 v_no_delete := csr_request%found;
72 close csr_request;
73 --
74 if v_no_delete then
75 hr_utility.set_message (801,'PER_7858_DEF_LETTER_REQUESTS');
76 hr_utility.raise_error;
77 end if;
78 --
79 end check_delete_letter_type;
80 --
81 --
82 procedure get_next_sequence(p_letter_type_id in out number) is
83 --
84 cursor c1 is select per_letter_types_s.nextval
85 from sys.dual;
86 --
87 begin
88 --
89 -- Retrieve the next sequence number for letter_type_id
90 --
91 if (p_letter_type_id is null) then
92 open c1;
93 fetch c1 into p_letter_type_id;
94 if (C1%NOTFOUND) then
95 CLOSE C1;
96 hr_utility.set_message(801,'HR_6153_ALL_PROCEDURE_FAIL');
97 hr_utility.set_message_token('PROCEDURE','peltt01t.get_next_sequence');
98 hr_utility.set_message_token('STEP','1');
99 hr_utility.raise_error;
100 end if;
101 close c1;
102 end if;
103 end get_next_sequence;
104 --
105 procedure get_concurrent_program(p_concurrent_program_id in number,
106 p_concurrent_program_name in out varchar2) is
107 --
108 cursor c1 is select concurrent_program_name
109 from fnd_concurrent_programs fcp
110 where p_concurrent_program_id = fcp.concurrent_program_id;
111
112 begin
113 --
114 -- Get the concurrent program value for the non-db field
115 --
116 open c1;
117 fetch c1 into p_concurrent_program_name;
118 if (C1%NOTFOUND) then
119 CLOSE C1;
120 hr_utility.set_message(801,'HR_6153_ALL_PROCEDURE_FAIL');
121 hr_utility.set_message_token('PROCEDURE','peltt01t.concurrent_program_name');
122 hr_utility.set_message_token('STEP','1');
123 hr_utility.raise_error;
124 end if;
125 close c1;
126 --
127 end get_concurrent_program;
128 --
129 END PER_LETTER_TYPES_PKG;