154: --
155: --
156: -- Get the max allowable price, and the contrib rate
157: --
158: hr_utility.set_location('hr_gbnicar.nicar_class1a_ytd',10);
159: open csr1_globals;
160: hr_utility.set_location('hr_gbnicar.nicar_class1a_ytd',20);
161: fetch csr1_globals
162: into csr1_price_max
156: -- Get the max allowable price, and the contrib rate
157: --
158: hr_utility.set_location('hr_gbnicar.nicar_class1a_ytd',10);
159: open csr1_globals;
160: hr_utility.set_location('hr_gbnicar.nicar_class1a_ytd',20);
161: fetch csr1_globals
162: into csr1_price_max
163: , csr1_ni_rate;
164: close csr1_globals;
166: --
167: -- Get the element_name for the element type id, and all the associated
168: -- input value ids.
169: --
170: hr_utility.set_location('hr_gbnicar.nicar_class1a_ytd',30);
171: open csr2_pri_sec;
172: hr_utility.set_location('hr_gbnicar.nicar_class1a_ytd',40);
173: fetch csr2_pri_sec
174: into csr2_element_name
168: -- input value ids.
169: --
170: hr_utility.set_location('hr_gbnicar.nicar_class1a_ytd',30);
171: open csr2_pri_sec;
172: hr_utility.set_location('hr_gbnicar.nicar_class1a_ytd',40);
173: fetch csr2_pri_sec
174: into csr2_element_name
175: , csr2_pr
176: , csr2_rd
195: --
196: --
197: -- Get the required details for all company car benefits for the assignment
198: --
199: hr_utility.set_location('hr_gbnicar.nicar_class1a_ytd',50);
200: open csr3_nicar;
201: --
202: hr_utility.set_location('hr_gbnicar.nicar_class1a_ytd',60);
203: loop
198: --
199: hr_utility.set_location('hr_gbnicar.nicar_class1a_ytd',50);
200: open csr3_nicar;
201: --
202: hr_utility.set_location('hr_gbnicar.nicar_class1a_ytd',60);
203: loop
204: fetch csr3_nicar
205: into csr3_price
206: , csr3_mileage_band
378: v_tax_end_date := trunc(p_tax_end_date);
379: --
380: if p_price <0
381: then
382: hr_utility.set_message(801,'HR_7361_LOC_INVALID_PRICE');
383: hr_utility.raise_error;
384: elsif v_mileage_factor not between 1 and 3
385: then
386: hr_utility.set_message(801,'HR_7366_LOC_INVALID_MILEAGE');
379: --
380: if p_price <0
381: then
382: hr_utility.set_message(801,'HR_7361_LOC_INVALID_PRICE');
383: hr_utility.raise_error;
384: elsif v_mileage_factor not between 1 and 3
385: then
386: hr_utility.set_message(801,'HR_7366_LOC_INVALID_MILEAGE');
387: hr_utility.raise_error;
382: hr_utility.set_message(801,'HR_7361_LOC_INVALID_PRICE');
383: hr_utility.raise_error;
384: elsif v_mileage_factor not between 1 and 3
385: then
386: hr_utility.set_message(801,'HR_7366_LOC_INVALID_MILEAGE');
387: hr_utility.raise_error;
388: elsif v_reg_date > v_tax_end_date
389: then
390: hr_utility.set_message(801,'HR_7367_LOC_INVALID_REG_DATE');
383: hr_utility.raise_error;
384: elsif v_mileage_factor not between 1 and 3
385: then
386: hr_utility.set_message(801,'HR_7366_LOC_INVALID_MILEAGE');
387: hr_utility.raise_error;
388: elsif v_reg_date > v_tax_end_date
389: then
390: hr_utility.set_message(801,'HR_7367_LOC_INVALID_REG_DATE');
391: hr_utility.raise_error;
386: hr_utility.set_message(801,'HR_7366_LOC_INVALID_MILEAGE');
387: hr_utility.raise_error;
388: elsif v_reg_date > v_tax_end_date
389: then
390: hr_utility.set_message(801,'HR_7367_LOC_INVALID_REG_DATE');
391: hr_utility.raise_error;
392: elsif v_reg_date > v_start_date
393: then
394: hr_utility.set_message(801,'HR_7367_LOC_INVALID_REG_DATE');
387: hr_utility.raise_error;
388: elsif v_reg_date > v_tax_end_date
389: then
390: hr_utility.set_message(801,'HR_7367_LOC_INVALID_REG_DATE');
391: hr_utility.raise_error;
392: elsif v_reg_date > v_start_date
393: then
394: hr_utility.set_message(801,'HR_7367_LOC_INVALID_REG_DATE');
395: hr_utility.raise_error;
390: hr_utility.set_message(801,'HR_7367_LOC_INVALID_REG_DATE');
391: hr_utility.raise_error;
392: elsif v_reg_date > v_start_date
393: then
394: hr_utility.set_message(801,'HR_7367_LOC_INVALID_REG_DATE');
395: hr_utility.raise_error;
396: elsif p_fuel_scale <0
397: then
398: hr_utility.set_message(801,'HR_7368_LOC_INVALID_FUELCHG');
391: hr_utility.raise_error;
392: elsif v_reg_date > v_start_date
393: then
394: hr_utility.set_message(801,'HR_7367_LOC_INVALID_REG_DATE');
395: hr_utility.raise_error;
396: elsif p_fuel_scale <0
397: then
398: hr_utility.set_message(801,'HR_7368_LOC_INVALID_FUELCHG');
399: hr_utility.raise_error;
394: hr_utility.set_message(801,'HR_7367_LOC_INVALID_REG_DATE');
395: hr_utility.raise_error;
396: elsif p_fuel_scale <0
397: then
398: hr_utility.set_message(801,'HR_7368_LOC_INVALID_FUELCHG');
399: hr_utility.raise_error;
400: elsif p_ann_payment <0
401: then
402: hr_utility.set_message(801,'HR_7369_LOC_INVALID_ANN_PAY');
395: hr_utility.raise_error;
396: elsif p_fuel_scale <0
397: then
398: hr_utility.set_message(801,'HR_7368_LOC_INVALID_FUELCHG');
399: hr_utility.raise_error;
400: elsif p_ann_payment <0
401: then
402: hr_utility.set_message(801,'HR_7369_LOC_INVALID_ANN_PAY');
403: hr_utility.raise_error;
398: hr_utility.set_message(801,'HR_7368_LOC_INVALID_FUELCHG');
399: hr_utility.raise_error;
400: elsif p_ann_payment <0
401: then
402: hr_utility.set_message(801,'HR_7369_LOC_INVALID_ANN_PAY');
403: hr_utility.raise_error;
404: end if;
405: --
406: -- Check price against price cap
399: hr_utility.raise_error;
400: elsif p_ann_payment <0
401: then
402: hr_utility.set_message(801,'HR_7369_LOC_INVALID_ANN_PAY');
403: hr_utility.raise_error;
404: end if;
405: --
406: -- Check price against price cap
407: --
427: v_days := hr_gbnicar.nicar_days_between (v_start_date,v_end_date);
428: --
429: -- Now derive the net car benefit
430: --
431: hr_utility.set_location('hr_gbnicar.nicar_niable_value',10);
432: open csr1_car_ben(v_age_factor,
433: p_pri_sec_ind,
434: v_mileage_factor,
435: v_tax_end_date);
432: open csr1_car_ben(v_age_factor,
433: p_pri_sec_ind,
434: v_mileage_factor,
435: v_tax_end_date);
436: hr_utility.set_location('hr_gbnicar.nicar_niable_value',20);
437: fetch csr1_car_ben
438: into csr1_value;
439: close csr1_car_ben;
440: --
540: f_tax_year_end := uk_tax_yr_end(c_session_date);
541: --
542: -- Get the sum of all annual payments and pro-rate
543: --
544: hr_utility.set_location('hr_gbnicar.nicar_payment_ytd',10);
545: open c1_nicar_payment;
546: --
547: hr_utility.set_location('hr_gbnicar.nicar_payment_ytd',20);
548: loop
543: --
544: hr_utility.set_location('hr_gbnicar.nicar_payment_ytd',10);
545: open c1_nicar_payment;
546: --
547: hr_utility.set_location('hr_gbnicar.nicar_payment_ytd',20);
548: loop
549: fetch c1_nicar_payment
550: into c_payment,
551: c_price,
594: begin
595: --
596: -- Get the session date from fnd_sessions
597: --
598: hr_utility.set_location('hr_gbnicar.nicar_session_date',10);
599: open c0_effdate;
600: hr_utility.set_location('hr_gbnicar.nicar_session_date',20);
601: fetch c0_effdate into c_session_date;
602: if c0_effdate%notfound
596: -- Get the session date from fnd_sessions
597: --
598: hr_utility.set_location('hr_gbnicar.nicar_session_date',10);
599: open c0_effdate;
600: hr_utility.set_location('hr_gbnicar.nicar_session_date',20);
601: fetch c0_effdate into c_session_date;
602: if c0_effdate%notfound
603: then
604: c_session_date := trunc(sysdate);