1 Package hr_upload_proposal_api AUTHID CURRENT_USER as
5 * @rep:scope public
2 /* $Header: hrpypapi.pkh 120.13 2008/12/05 14:33:22 vkodedal ship $ */
3 /*#
4 * This package contains APIs to create and maintain salary proposals.
6 * @rep:product per
7 * @rep:displayname Upload Proposal API
8 */
9 --
10 -- ----------------------------------------------------------------------------
11 -- |--------------------------< upload_salary_proposal >----------------------|
12 -- ----------------------------------------------------------------------------
13 --
14 -- {Start Of Comments}
15 /*#
16 * This API creates or updates a salary proposal record in the table
17 * PER_PAY_PROPOSALS.
18 *
19 * This API inserts, updates, or deletes salary proposal records in the table
20 * PER_PAY_PROPOSAL_ COMPONENTS, depending on the values of the input
21 * parameters. The API allows the user to insert up to ten components for a
22 * salary proposal. If a salary proposal has more than ten components, then the
23 * process calculates PROPOSED_SALARY by summing the first ten components plus
24 * any_others, and places the result in the table per_pay_proposals. With the
25 * first salary proposal the API creates, the process sets the approved flag in
26 * the table PER_PAY_PROPOSALS to 'Y'. With the first salary proposal the
27 * process creates, or when you have set none of the components attributes, the
28 * process sets the MULTIPLE_COMPONENTS flag of the called API
29 * insert_salary_proposal to 'N'. Otherwise it sets the MULTIPLE_COMPONENTS
30 * flag to 'Y'. Note: The CHANGE_AMOUNT and CHANGE_PERCENTAGE fields in the
31 * table PER_PAY_PROPOSAL_COMPONENTS are interrelated. If you provide the value
32 * of one of these attributes, then the the process calculates the value of the
33 * other. If If you provide the value of both attributes, then the process
34 * recalculates the value of CHANGE_PERCENTAGE based on the value of
35 * CHANGE_AMOUNT. If existing values for CHANGE_PERCENTAGE and CHANGE_AMOUNT
36 * become null, then the api deletes the existing record.
37 *
38 * <p><b>Licensing</b><br>
39 * This API is licensed for use with Human Resources.
40 *
41 * <p><b>Prerequisites</b><br>
42 * The Assignment must exist on the change date of the proposal.
43 *
44 * <p><b>Post Success</b><br>
45 * The process updates the existing salary proposal record when the
46 * p_pay_proposal_id and p_object_version_number parameters passed in are not
47 * null, and one of the attributes has changed; otherwise the process creates a
48 * new salary proposal (if p_change_date is not null). The process creates a
49 * new component record when the p_component_id and p_ppc_object_version_number
50 * parameters passed in are null, and the p_change_amount or
51 * p_change_percentage parameters for that component is not null. The process
52 * updates a component record if the p_component_id and p_ppc_object_
53 * version_numbers are not null, and the p_component_reason or p_change _amount
54 * or p_change_percentage has changed.
55 *
56 * <p><b>Post Failure</b><br>
57 * The API does not create the proposal,or components and raises an error.
58 * @param p_validate If true, then validation alone will be performed and the
59 * database will remain unchanged. If false and all validation checks pass,
60 * then the database will be modified.
61 * @param p_change_date Effective start date of the salary proposal.
62 * @param p_business_group_id Employee's business_group_id
63 * @param p_assignment_id Uniquely identifies the assignment for which the
64 * salary proposal is created.
65 * @param p_proposed_salary The proposed salary.
66 * @param p_proposal_reason The proposal reason. Valid values are defined by
67 * lookup type 'PROPOSAL_REASON'.
68 * @param p_next_sal_review_date Next salary review date.
69 * @param p_forced_ranking The person's ranking
70 * @param p_date_to The end date of salary proposal.
71 * @param p_pay_proposal_id Identifies the salary proposal to be updated (not
72 * required for creating a new salary proposal). If this API is called to
73 * create a new salary proposal, this uniquely identifies the newly created
74 * salary proposal.
75 * @param p_object_version_number Pass in the current version number of the
76 * salary proposal to be updated. When the API completes if p_validate is
77 * false, will be set to the new version number of the updated proposal. If
78 * p_validate is true will be set to the same value which was passed in. If
79 * p_pay_proposal_id is null and p_validate is false, then set to the version
80 * number of the newly created salary proposal and if p_validate is true, then
81 * the value will be null.
82 * @param p_component_reason_1 The component reason for the first component.
83 * Valid values are defined by lookup type 'PROPOSAL_REASON'.
84 * @param p_change_amount_1 The salary change amount for the first component.
85 * @param p_change_percentage_1 The salary change percentage for the first
86 * component.
87 * @param p_approved_1 The approved flag for the component. It is set to 'Y' if
88 * the component is approved and 'N' otherwise.
89 * @param p_component_id_1 Identifies the first component. This is required
90 * when updating and not required on insert.
91 * @param p_ppc_object_version_number_1 Pass in the current version number of
92 * the first component to be updated. When the API completes if p_validate is
93 * false, will be set to the new version number of the updated component. If
94 * p_validate is true will be set to the same value which was passed in.
95 * @param p_component_reason_2 The component reason for the second component.
96 * Valid values are defined by lookup type 'PROPOSAL_REASON'.
97 * @param p_change_amount_2 The salary change amount for the second component.
98 * @param p_change_percentage_2 The salary change percentage for the second
99 * component.
100 * @param p_approved_2 The approved flag for the component. It is set to 'Y' if
101 * the component is approved and 'N' otherwise.
102 * @param p_component_id_2 Identifies the second component. This is required
106 * false, will be set to the new version number of the updated second
103 * when updating and not required on insert.
104 * @param p_ppc_object_version_number_2 Pass in the current version number of
105 * the second component to be updated. When the API completes if p_validate is
107 * component. If p_validate is true will be set to the same value which was
108 * passed in.
109 * @param p_component_reason_3 The component reason for the third component.
110 * Valid values are defined by lookup type 'PROPOSAL_REASON'.
111 * @param p_change_amount_3 The salary change amount for the third component.
112 * @param p_change_percentage_3 The salary change percentage for the third
113 * component.
114 * @param p_approved_3 The approved flag for the component. It is set to 'Y' if
115 * the component is approved and 'N' otherwise.
116 * @param p_component_id_3 Identifies the third component. This is required
117 * when updating and not required on insert.
118 * @param p_ppc_object_version_number_3 Pass in the current version number of
119 * the third component to be updated. When the API completes if p_validate is
120 * false, will be set to the new version number of the updated third component.
121 * If p_validate is true will be set to the same value which was passed in.
122 * @param p_component_reason_4 The component reason for the 4th component.
123 * Valid values are defined by lookup type 'PROPOSAL_REASON'.
124 * @param p_change_amount_4 The salary change amount for the 4th component.
125 * @param p_change_percentage_4 The salary change percentage for the 4th
126 * component.
127 * @param p_approved_4 The approved flag for the component. It is set to 'Y' if
128 * the component is approved and 'N' otherwise.
129 * @param p_component_id_4 Identifies the 4th component. This is required when
130 * updating and not required on insert.
131 * @param p_ppc_object_version_number_4 Pass in the current version number of
132 * the 4th component to be updated. When the API completes if p_validate is
133 * false, will be set to the new version number of the updated 4th component.
134 * If p_validate is true will be set to the same value which was passed in.
135 * @param p_component_reason_5 The component reason for the 5th component.
136 * Valid values are defined by lookup type 'PROPOSAL_REASON'.
137 * @param p_change_amount_5 The salary change amount for the 5th component.
138 * @param p_change_percentage_5 The salary change percentage for the 5th
139 * component.
140 * @param p_approved_5 The approved flag for the component. It is set to 'Y' if
141 * the component is approved and 'N' otherwise.
142 * @param p_component_id_5 Identifies the 5th component. This is required when
143 * updating and not required on insert.
144 * @param p_ppc_object_version_number_5 Pass in the current version number of
145 * the 5th component to be updated. When the API completes if p_validate is
146 * false, will be set to the new version number of the updated 5th component.
147 * If p_validate is true will be set to the same value which was passed in.
148 * @param p_component_reason_6 The component reason for the 6th component.
149 * Valid values are defined by lookup type 'PROPOSAL_REASON'.
150 * @param p_change_amount_6 The salary change amount for the 6th component.
151 * @param p_change_percentage_6 The salary change percentage for the 6th
152 * component.
153 * @param p_approved_6 The approved flag for the 6th component. It is set to
154 * 'Y' if the component is approved and 'N' otherwise.
155 * @param p_component_id_6 Identifies the 6th component. This is required when
156 * updating and not required on insert.
157 * @param p_ppc_object_version_number_6 Pass in the current version number of
158 * the 6th component to be updated. When the API completes if p_validate is
159 * false, will be set to the new version number of the updated 6th component.
160 * If p_validate is true will be set to the same value which was passed in.
161 * @param p_component_reason_7 The component reason for the 7th component.
162 * Valid values are defined by lookup type 'PROPOSAL_REASON'.
163 * @param p_change_amount_7 The salary change amount for the 7th component.
164 * @param p_change_percentage_7 The salary change percentage for the 7th
165 * component.
166 * @param p_approved_7 The approved flag for the component. It is set to 'Y' if
167 * the component is approved and 'N' otherwise.
168 * @param p_component_id_7 Identifies the 7th component. This is required when
169 * updating and not required on insert.
170 * @param p_ppc_object_version_number_7 Pass in the current version number of
171 * the 7th component to be updated. When the API completes if p_validate is
172 * false, will be set to the new version number of the updated 7th component.
173 * If p_validate is true will be set to the same value which was passed in.
174 * @param p_component_reason_8 The component reason for the 8th component.
175 * Valid values are defined by lookup type 'PROPOSAL_REASON'.
176 * @param p_change_amount_8 The salary change amount for the 8th component.
177 * @param p_change_percentage_8 The salary change percentage for the 8th
178 * component.
179 * @param p_approved_8 The approved flag for the component. It is set to 'Y' if
180 * the component is approved and 'N' otherwise.
181 * @param p_component_id_8 Identifies the 8th component. This is required when
182 * updating and not required on insert.
183 * @param p_ppc_object_version_number_8 Pass in the current version number of
184 * the 8th component to be updated. When the API completes if p_validate is
185 * false, will be set to the new version number of the updated 8th component.
186 * If p_validate is true will be set to the same value which was passed in.
187 * @param p_component_reason_9 The component reason for the 9th component.
188 * Valid values are defined by lookup type 'PROPOSAL_REASON'.
189 * @param p_change_amount_9 The salary change amount for the 9th component.
190 * @param p_change_percentage_9 The salary change percentage for the 9th
191 * component.
192 * @param p_approved_9 The approved flag for the component. It is set to 'Y' if
196 * @param p_ppc_object_version_number_9 Pass in the current version number of
193 * the component is approved and 'N' otherwise.
194 * @param p_component_id_9 Identifies the 9th component. This is required when
195 * updating and not required on insert.
197 * the 9th component to be updated. When the API completes if p_validate is
198 * false, will be set to the new version number of the updated 9th component.
199 * If p_validate is true will be set to the same value which was passed in.
200 * @param p_component_reason_10 The component reason for the 10th component.
201 * Valid values are defined by lookup type 'PROPOSAL_REASON'.
202 * @param p_change_amount_10 The salary change amount for the 10th component.
203 * @param p_change_percentage_10 The salary change percentage for the 10th
204 * component.
205 * @param p_approved_10 The approved flag for the component. It is set to 'Y'
206 * if the component is approved and 'N' otherwise.
207 * @param p_component_id_10 Identifies the 10th component. This is required
208 * when updating and not required on insert.
209 * @param p_ppc_object_version_number_10 Pass in the current version number of
210 * the 10th component to be updated. When the API completes if p_validate is
211 * false, will be set to the new version number of the updated 10th component.
212 * If p_validate is true will be set to the same value which was passed in.
213 * @param p_pyp_proposed_sal_warning If set to true, the proposed salary is not
214 * within the range determined by the assignment's grade rate.
215 * @param p_additional_comp_warning If set to true, the proposed salary has
216 * more than ten components.
217 * @param p_attribute_category This context value determines which flexfield
218 * structure to use with the descriptive flexfield segments.
219 * @param p_attribute1 Descriptive flexfield segment.
220 * @param p_attribute2 Descriptive flexfield segment.
221 * @param p_attribute3 Descriptive flexfield segment.
222 * @param p_attribute4 Descriptive flexfield segment.
223 * @param p_attribute5 Descriptive flexfield segment.
224 * @param p_attribute6 Descriptive flexfield segment.
225 * @param p_attribute7 Descriptive flexfield segment.
226 * @param p_attribute8 Descriptive flexfield segment.
227 * @param p_attribute9 Descriptive flexfield segment.
228 * @param p_attribute10 Descriptive flexfield segment.
229 * @param p_attribute11 Descriptive flexfield segment.
230 * @param p_attribute12 Descriptive flexfield segment.
231 * @param p_attribute13 Descriptive flexfield segment.
232 * @param p_attribute14 Descriptive flexfield segment.
233 * @param p_attribute15 Descriptive flexfield segment.
234 * @param p_attribute16 Descriptive flexfield segment.
235 * @param p_attribute17 Descriptive flexfield segment.
236 * @param p_attribute18 Descriptive flexfield segment.
237 * @param p_attribute19 Descriptive flexfield segment.
238 * @param p_attribute20 Descriptive flexfield segment.
239 * @rep:displayname Upload Salary Proposal
240 * @rep:category BUSINESS_ENTITY PER_SALARY_PROPOSAL
241 * @rep:category MISC_EXTENSIONS HR_DATAPUMP
242 * @rep:category MISC_EXTENSIONS HR_USER_HOOKS
243 * @rep:scope public
244 * @rep:lifecycle active
245 * @rep:ihelp PER/@scalapi APIs in Oracle HRMS
246 */
247 --
248 -- {End Of Comments}
249 --
250 procedure upload_salary_proposal
251 (p_validate in boolean default false
252 ,p_change_date in date
253 ,p_business_group_id in number
254 ,p_assignment_id in number
255 ,p_proposed_salary in number default null
256 ,p_proposal_reason in varchar2 default null
257 ,p_next_sal_review_date in date default hr_api.g_date
258 -- Bug 1620922
259 ,p_forced_ranking in number default null
260 ,p_date_to in date default null
261 ,p_pay_proposal_id in out nocopy number
262 ,p_object_version_number in out nocopy number
263 --
264 ,p_component_reason_1 in varchar2
265 ,p_change_amount_1 in number default null
266 ,p_change_percentage_1 in number default null
267 ,p_approved_1 in varchar2
268 ,p_component_id_1 in out nocopy number
269 ,p_ppc_object_version_number_1 in out nocopy number
270 --
271 ,p_component_reason_2 in varchar2
272 ,p_change_amount_2 in number default null
273 ,p_change_percentage_2 in number default null
274 ,p_approved_2 in varchar2
275 ,p_component_id_2 in out nocopy number
276 ,p_ppc_object_version_number_2 in out nocopy number
277 --
278 ,p_component_reason_3 in varchar2
279 ,p_change_amount_3 in number default null
280 ,p_change_percentage_3 in number default null
281 ,p_approved_3 in varchar2
282 ,p_component_id_3 in out nocopy number
283 ,p_ppc_object_version_number_3 in out nocopy number
284 --
285 ,p_component_reason_4 in varchar2
286 ,p_change_amount_4 in number default null
287 ,p_change_percentage_4 in number default null
288 ,p_approved_4 in varchar2
289 ,p_component_id_4 in out nocopy number
290 ,p_ppc_object_version_number_4 in out nocopy number
291 --
292 ,p_component_reason_5 in varchar2
293 ,p_change_amount_5 in number default null
294 ,p_change_percentage_5 in number default null
295 ,p_approved_5 in varchar2
296 ,p_component_id_5 in out nocopy number
297 ,p_ppc_object_version_number_5 in out nocopy number
298 --
299 ,p_component_reason_6 in varchar2
300 ,p_change_amount_6 in number default null
301 ,p_change_percentage_6 in number default null
302 ,p_approved_6 in varchar2
303 ,p_component_id_6 in out nocopy number
304 ,p_ppc_object_version_number_6 in out nocopy number
305 --
306 ,p_component_reason_7 in varchar2
307 ,p_change_amount_7 in number default null
308 ,p_change_percentage_7 in number default null
309 ,p_approved_7 in varchar2
310 ,p_component_id_7 in out nocopy number
311 ,p_ppc_object_version_number_7 in out nocopy number
312 --
313 ,p_component_reason_8 in varchar2
314 ,p_change_amount_8 in number default null
315 ,p_change_percentage_8 in number default null
316 ,p_approved_8 in varchar2
317 ,p_component_id_8 in out nocopy number
318 ,p_ppc_object_version_number_8 in out nocopy number
319 --
320 ,p_component_reason_9 in varchar2
321 ,p_change_amount_9 in number default null
322 ,p_change_percentage_9 in number default null
323 ,p_approved_9 in varchar2
324 ,p_component_id_9 in out nocopy number
325 ,p_ppc_object_version_number_9 in out nocopy number
326 --
327 ,p_component_reason_10 in varchar2
328 ,p_change_amount_10 in number default null
329 ,p_change_percentage_10 in number default null
330 ,p_approved_10 in varchar2
331 ,p_component_id_10 in out nocopy number
332 ,p_ppc_object_version_number_10 in out nocopy number
333 --
334 ,p_pyp_proposed_sal_warning out nocopy boolean
335 ,p_additional_comp_warning out nocopy boolean
336 /* Added for desc flex Web ADI Support */
337 ,p_attribute_category in varchar2 default null
338 ,p_attribute1 in varchar2 default null
339 ,p_attribute2 in varchar2 default null
340 ,p_attribute3 in varchar2 default null
341 ,p_attribute4 in varchar2 default null
342 ,p_attribute5 in varchar2 default null
343 ,p_attribute6 in varchar2 default null
344 ,p_attribute7 in varchar2 default null
345 ,p_attribute8 in varchar2 default null
346 ,p_attribute9 in varchar2 default null
347 ,p_attribute10 in varchar2 default null
348 ,p_attribute11 in varchar2 default null
349 ,p_attribute12 in varchar2 default null
350 ,p_attribute13 in varchar2 default null
351 ,p_attribute14 in varchar2 default null
352 ,p_attribute15 in varchar2 default null
353 ,p_attribute16 in varchar2 default null
354 ,p_attribute17 in varchar2 default null
355 ,p_attribute18 in varchar2 default null
356 ,p_attribute19 in varchar2 default null
357 ,p_attribute20 in varchar2 default null
358 );
359 --
360 end hr_upload_proposal_api;