1 PACKAGE irc_seeker_vac_matching_pkg
2 /* $Header: irjsmtch.pkh 120.3 2007/08/14 16:18:33 vkaduban noship $ */
3 AS
4 -- ----------------------------------------------------------------------------
5 -- RECORD AND TABLE STRUCTURES
6 -- ----------------------------------------------------------------------------
7 TYPE g_seeker_rec_type
8 IS RECORD ( person_id irc_notification_preferences.person_id%TYPE
9 , party_id per_all_people_f.party_id%type
10 , show_jobs_since NUMBER
11 );
12 TYPE g_seeker_criteria_rec_type
13 IS RECORD ( search_criteria_id irc_search_criteria.search_criteria_id%TYPE
14 , person_id irc_search_criteria.object_id%TYPE
15 , party_id per_all_people_f.party_id%type
16 , distance_to_location irc_search_criteria.distance_to_location%TYPE
17 , location irc_search_criteria.location%TYPE
18 , employee irc_search_criteria.employee%TYPE
19 , contractor irc_search_criteria.contractor%TYPE
20 , employment_category irc_search_criteria.employment_category%TYPE
21 , keywords irc_search_criteria.keywords%TYPE
22 , travel_percentage irc_search_criteria.travel_percentage%TYPE
23 , min_salary irc_search_criteria.min_salary%TYPE
24 , salary_currency irc_search_criteria.salary_currency%TYPE
25 , salary_period irc_search_criteria.salary_period%TYPE
26 , match_competence irc_search_criteria.match_competence%TYPE
27 , match_qualification irc_search_criteria.match_qualification%TYPE
28 , job_title irc_search_criteria.job_title%TYPE
29 , department irc_search_criteria.department%TYPE
30 , professional_area irc_search_criteria.professional_area%TYPE
31 , work_at_home irc_search_criteria.work_at_home%TYPE
32 , attribute1 irc_search_criteria.attribute1%TYPE
33 , attribute2 irc_search_criteria.attribute2%TYPE
34 , attribute3 irc_search_criteria.attribute3%TYPE
35 , attribute4 irc_search_criteria.attribute4%TYPE
36 , attribute5 irc_search_criteria.attribute5%TYPE
37 , attribute6 irc_search_criteria.attribute6%TYPE
38 , attribute7 irc_search_criteria.attribute7%TYPE
39 , attribute8 irc_search_criteria.attribute8%TYPE
40 , attribute9 irc_search_criteria.attribute9%TYPE
41 , attribute10 irc_search_criteria.attribute10%TYPE
42 , attribute11 irc_search_criteria.attribute11%TYPE
43 , attribute12 irc_search_criteria.attribute12%TYPE
44 , attribute13 irc_search_criteria.attribute13%TYPE
45 , attribute14 irc_search_criteria.attribute14%TYPE
46 , attribute15 irc_search_criteria.attribute15%TYPE
47 , attribute16 irc_search_criteria.attribute16%TYPE
48 , attribute17 irc_search_criteria.attribute17%TYPE
49 , attribute18 irc_search_criteria.attribute18%TYPE
50 , attribute19 irc_search_criteria.attribute19%TYPE
51 , attribute20 irc_search_criteria.attribute20%TYPE
52 , attribute21 irc_search_criteria.attribute21%TYPE
53 , attribute22 irc_search_criteria.attribute22%TYPE
54 , attribute23 irc_search_criteria.attribute23%TYPE
55 , attribute24 irc_search_criteria.attribute24%TYPE
56 , attribute25 irc_search_criteria.attribute25%TYPE
57 , attribute26 irc_search_criteria.attribute26%TYPE
58 , attribute27 irc_search_criteria.attribute27%TYPE
59 , attribute28 irc_search_criteria.attribute28%TYPE
60 , attribute29 irc_search_criteria.attribute29%TYPE
61 , attribute30 irc_search_criteria.attribute30%TYPE
62 , isc_information1 irc_search_criteria.isc_information1%TYPE
63 , isc_information2 irc_search_criteria.isc_information2%TYPE
64 , isc_information3 irc_search_criteria.isc_information3%TYPE
65 , isc_information4 irc_search_criteria.isc_information4%TYPE
66 , isc_information5 irc_search_criteria.isc_information5%TYPE
67 , isc_information6 irc_search_criteria.isc_information6%TYPE
68 , isc_information7 irc_search_criteria.isc_information7%TYPE
69 , isc_information8 irc_search_criteria.isc_information8%TYPE
70 , isc_information9 irc_search_criteria.isc_information9%TYPE
71 , isc_information10 irc_search_criteria.isc_information10%TYPE
72 , isc_information11 irc_search_criteria.isc_information11%TYPE
73 , isc_information12 irc_search_criteria.isc_information12%TYPE
74 , isc_information13 irc_search_criteria.isc_information13%TYPE
75 , isc_information14 irc_search_criteria.isc_information14%TYPE
76 , isc_information15 irc_search_criteria.isc_information15%TYPE
77 , isc_information16 irc_search_criteria.isc_information16%TYPE
78 , isc_information17 irc_search_criteria.isc_information17%TYPE
79 , isc_information18 irc_search_criteria.isc_information18%TYPE
80 , isc_information19 irc_search_criteria.isc_information19%TYPE
81 , isc_information20 irc_search_criteria.isc_information20%TYPE
82 , isc_information21 irc_search_criteria.isc_information21%TYPE
83 , isc_information22 irc_search_criteria.isc_information22%TYPE
84 , isc_information23 irc_search_criteria.isc_information23%TYPE
85 , isc_information24 irc_search_criteria.isc_information24%TYPE
86 , isc_information25 irc_search_criteria.isc_information25%TYPE
87 , isc_information26 irc_search_criteria.isc_information26%TYPE
88 , isc_information27 irc_search_criteria.isc_information27%TYPE
89 , isc_information28 irc_search_criteria.isc_information28%TYPE
90 , isc_information29 irc_search_criteria.isc_information29%TYPE
91 , isc_information30 irc_search_criteria.isc_information30%TYPE
92 , geometry irc_search_criteria.geometry%TYPE
93 , location_id irc_search_criteria.location_id%TYPE
94 , derived_location irc_search_criteria.derived_location%TYPE
95 , show_jobs_since NUMBER
96 );
97 TYPE g_email_party_rec_type
98 IS RECORD ( search_criteria_id irc_search_criteria.search_criteria_id%TYPE
99 , vacancy_id irc_search_criteria.object_id%TYPE
100 , distance_to_location irc_search_criteria.distance_to_location%TYPE
101 , location irc_search_criteria.location%TYPE
102 , employee irc_search_criteria.employee%TYPE
103 , contractor irc_search_criteria.contractor%TYPE
104 , employment_category irc_search_criteria.employment_category%TYPE
105 , keywords irc_search_criteria.keywords%TYPE
106 , travel_percentage irc_search_criteria.travel_percentage%TYPE
107 , min_salary irc_search_criteria.min_salary%TYPE
108 , salary_currency irc_search_criteria.salary_currency%TYPE
109 , salary_period irc_search_criteria.salary_period%TYPE
110 , match_competence irc_search_criteria.match_competence%TYPE
111 , match_qualification irc_search_criteria.match_qualification%TYPE
112 , min_qual_level irc_search_criteria.min_qual_level%TYPE
113 , max_qual_level irc_search_criteria.max_qual_level%TYPE
114 , job_title irc_search_criteria.job_title%TYPE
115 , department irc_search_criteria.department%TYPE
116 , professional_area irc_search_criteria.professional_area%TYPE
117 , work_at_home irc_search_criteria.work_at_home%TYPE
118 , attribute1 irc_search_criteria.attribute1%TYPE
119 , attribute2 irc_search_criteria.attribute2%TYPE
120 , attribute3 irc_search_criteria.attribute3%TYPE
121 , attribute4 irc_search_criteria.attribute4%TYPE
122 , attribute5 irc_search_criteria.attribute5%TYPE
123 , attribute6 irc_search_criteria.attribute6%TYPE
124 , attribute7 irc_search_criteria.attribute7%TYPE
125 , attribute8 irc_search_criteria.attribute8%TYPE
126 , attribute9 irc_search_criteria.attribute9%TYPE
127 , attribute10 irc_search_criteria.attribute10%TYPE
128 , attribute11 irc_search_criteria.attribute11%TYPE
129 , attribute12 irc_search_criteria.attribute12%TYPE
130 , attribute13 irc_search_criteria.attribute13%TYPE
131 , attribute14 irc_search_criteria.attribute14%TYPE
132 , attribute15 irc_search_criteria.attribute15%TYPE
133 , attribute16 irc_search_criteria.attribute16%TYPE
134 , attribute17 irc_search_criteria.attribute17%TYPE
135 , attribute18 irc_search_criteria.attribute18%TYPE
136 , attribute19 irc_search_criteria.attribute19%TYPE
137 , attribute20 irc_search_criteria.attribute20%TYPE
138 , attribute21 irc_search_criteria.attribute21%TYPE
139 , attribute22 irc_search_criteria.attribute22%TYPE
140 , attribute23 irc_search_criteria.attribute23%TYPE
141 , attribute24 irc_search_criteria.attribute24%TYPE
142 , attribute25 irc_search_criteria.attribute25%TYPE
143 , attribute26 irc_search_criteria.attribute26%TYPE
144 , attribute27 irc_search_criteria.attribute27%TYPE
145 , attribute28 irc_search_criteria.attribute28%TYPE
146 , attribute29 irc_search_criteria.attribute29%TYPE
147 , attribute30 irc_search_criteria.attribute30%TYPE
148 , isc_information1 irc_search_criteria.isc_information1%TYPE
149 , isc_information2 irc_search_criteria.isc_information2%TYPE
150 , isc_information3 irc_search_criteria.isc_information3%TYPE
151 , isc_information4 irc_search_criteria.isc_information4%TYPE
152 , isc_information5 irc_search_criteria.isc_information5%TYPE
153 , isc_information6 irc_search_criteria.isc_information6%TYPE
154 , isc_information7 irc_search_criteria.isc_information7%TYPE
155 , isc_information8 irc_search_criteria.isc_information8%TYPE
156 , isc_information9 irc_search_criteria.isc_information9%TYPE
157 , isc_information10 irc_search_criteria.isc_information10%TYPE
158 , isc_information11 irc_search_criteria.isc_information11%TYPE
159 , isc_information12 irc_search_criteria.isc_information12%TYPE
160 , isc_information13 irc_search_criteria.isc_information13%TYPE
161 , isc_information14 irc_search_criteria.isc_information14%TYPE
162 , isc_information15 irc_search_criteria.isc_information15%TYPE
163 , isc_information16 irc_search_criteria.isc_information16%TYPE
164 , isc_information17 irc_search_criteria.isc_information17%TYPE
165 , isc_information18 irc_search_criteria.isc_information18%TYPE
166 , isc_information19 irc_search_criteria.isc_information19%TYPE
167 , isc_information20 irc_search_criteria.isc_information20%TYPE
168 , isc_information21 irc_search_criteria.isc_information21%TYPE
169 , isc_information22 irc_search_criteria.isc_information22%TYPE
170 , isc_information23 irc_search_criteria.isc_information23%TYPE
171 , isc_information24 irc_search_criteria.isc_information24%TYPE
172 , isc_information25 irc_search_criteria.isc_information25%TYPE
173 , isc_information26 irc_search_criteria.isc_information26%TYPE
174 , isc_information27 irc_search_criteria.isc_information27%TYPE
175 , isc_information28 irc_search_criteria.isc_information28%TYPE
176 , isc_information29 irc_search_criteria.isc_information29%TYPE
177 , isc_information30 irc_search_criteria.isc_information30%TYPE
178 , geometry hr_locations_all.geometry%TYPE
179 , location_id per_all_vacancies.location_id%TYPE
180 , derived_locale hr_locations_all.derived_locale%TYPE
181 , posting_content_id irc_posting_contents_tl.posting_content_id%TYPE
182 , business_group_id per_all_vacancies.business_group_id%TYPE
183 , name per_all_vacancies.name%TYPE
184 , recruiter_id per_all_vacancies.recruiter_id%type
185 );
186
187 TYPE g_posting_details_rec_type
188 IS RECORD ( posting_content_id irc_posting_contents.posting_content_id%TYPE
189 , job_title irc_posting_contents_tl.job_title%TYPE
190 , name irc_posting_contents_tl.name%TYPE
191 , object_id irc_search_criteria.object_id%TYPE
192 );
193 TYPE g_posting_details_tab_type
194 IS TABLE OF
195 g_posting_details_rec_type
196 INDEX BY BINARY_INTEGER;
197
198 TYPE g_seeker_details_rec_type
199 IS RECORD ( full_name per_all_people_f.full_name%TYPE
200 , person_id per_all_people_f.person_id%TYPE
201 );
202 TYPE g_seeker_details_tab_type
203 IS TABLE OF
204 g_seeker_details_rec_type
205 INDEX BY BINARY_INTEGER;
206
207 TYPE g_recruiter_problem_rec_type
208 IS RECORD ( recruiter_id per_all_vacancies.recruiter_id%TYPE
209 , vacancy_id per_all_vacancies.vacancy_id%TYPE
210 , vacancy_name per_all_vacancies.name%TYPE
211 , sqlerrm varchar2(2000)
212 , message varchar2(2000)
213 );
214
215 TYPE g_recruiter_problem_tab_type
216 IS TABLE OF g_recruiter_problem_rec_type
217 INDEX BY BINARY_INTEGER;
218 -- ----------------------------------------------------------------------------
219 -- CURSORS
220 -- ----------------------------------------------------------------------------
221
222
223 -- ----------------------------------------------------------------------------
224 -- FUNCTIONS
225 -- ----------------------------------------------------------------------------
226 FUNCTION get_location_match
227 ( p_location_to_match IN varchar2,
228 p_location_id IN hr_locations_all.LOCATION_ID%TYPE)
229 RETURN number;
230
231 FUNCTION convert_vacancy_amount
232 (p_from_currency IN VARCHAR2
233 ,p_to_currency IN VARCHAR2
234 ,p_amount IN NUMBER
235 ,p_conversion_date IN DATE
236 ,p_business_group_id IN NUMBER
237 ,p_processing_type IN VARCHAR2)
238 RETURN NUMBER;
239
240 FUNCTION get_job_notification_function
241 ( p_is_internal IN varchar2)
242 RETURN VARCHAR2;
243
244 -- ----------------------------------------------------------------------------
245 -- PROCEDURES
246 -- ----------------------------------------------------------------------------
247 PROCEDURE log_message
248 ( p_message IN VARCHAR2
249 , p_type IN VARCHAR2 DEFAULT 'B'
250 );
251 -- ----------------------------------------------------------------------------
252 -- Name :
253 -- email_suitable_vacs_to_seekers
254 -- Description :
255 -- This procedure initially finds all the job seekers who are eligible to
256 -- receive a vacancy notification e-mail by checking how often they want to
257 -- be sent an email notification against when they last received an email.
258 -- For those seekers who are due to receive an email, it searches through
259 -- the available vacancies for those which match their search criteria
260 -- and which are new since the last time they were sent an email.
261 -- Customizations
262 -- Certain parts of the email message sent to the jobs seekers can be
263 -- altered by changing the text in the following messages:
264 -- IRC_EMAIL_SEEKERS_SUBJECT - the text to appear in the msg subject line
265 -- IRC_EMAIL_SEEKERS_INTRODUCTION - html displayed at the top of the email
266 -- IRC_EMAIL_SEEKERS_CONCLUSION - html displayed at the end of the email
267 -- The base URL which all the vacancies have is held in profile option:
268 -- IRC_JOB_NOTIFICATION_URL
269 -- Parameters :
270 -- errbuf Two 'OUT' parameters are needed to pass info back to the
271 -- concurrent manager.errbuf is used to pass an error message back.
272 -- retcode The second parameters used to pass information back to the
273 -- concurrent manager, retcode, passes one of the following codes
274 -- back : '0' or null=success; '1' = a warning; '2' = an error.
275 -- p_ignore_seeker_matching_freq values : 'Y' or 'N'.
276 -- If 'Y', all job seekers who wish to be sent email notifications
277 -- will be matched and sent an email irrespective of whether they
278 -- are due to receive one.
279 -- p_ignore_job_age values : 'Y' or 'N'.
280 -- If 'Y', all vacancies that match will be sent, not just the new
281 -- ones created since the seeker was last sent an email
282 --
283 PROCEDURE email_suitable_vacs_to_seekers
284 ( errbuf OUT NOCOPY VARCHAR2
285 , retcode OUT NOCOPY NUMBER
286 , p_ignore_seeker_matching_freq IN VARCHAR2 DEFAULT 'N'
287 , p_ignore_job_age IN VARCHAR2 DEFAULT 'N'
288 );
289
290 -- p_candidacy_age
291 -- If this is not 0, it will limit the suitable seekers to those
292 -- who have registered within this number of days
293 PROCEDURE get_suitable_seekers_for_vac
294 ( errbuf OUT NOCOPY VARCHAR2
295 , retcode OUT NOCOPY NUMBER
296 , p_candidacy_age IN NUMBER DEFAULT 0
297 );
298 -- ----------------------------------------------------------------------------
299 -- Name
300 -- email_general_notifications
301 -- Description :
302 -- This procedure sends notifications and emails to job seekers who have
303 -- requested to receive them.
304 --
305 -- Customizations
306 -- Certain parts of the email message sent to the jobs seekers can be
307 -- altered by changing the text in the following messages:
308 -- IRC_GENERAL_NOTE_SUBJECT - the text to appear in the msg subject line
309 -- IRC_GENERAL_NOTE_CONTENT_TEXT - Text version of the body of the mail
310 -- IRC_GENERAL_NOTE_CONTENT_HTML - html version of the body of the mail
311 -- Parameters :
312 -- errbuf Two 'OUT' parameters are needed to pass info back to the
313 -- concurrent manager.errbuf is used to pass an error message back.
314 -- retcode The second parameters used to pass information back to the
315 -- concurrent manager, retcode, passes one of the following codes
316 -- back : '0' or null=success; '1' = a warning; '2' = an error.
317 --
318 PROCEDURE email_general_notifications
319 ( errbuf OUT NOCOPY VARCHAR2
320 , retcode OUT NOCOPY NUMBER
321 );
322 --
323 END irc_seeker_vac_matching_pkg;