[Home] [Help]
PACKAGE BODY: APPS.PQP_CAR_CLASS_1A_PKG
Source
1 Package Body pqp_car_class_1a_pkg as
2 /* $Header: pqcmcpkg.pkb 120.0 2005/05/29 01:43:22 appldev noship $ */
3 --
4 --
5 -- Package Variables
6 --
7 g_package varchar2(33) := ' pqp_car_class_1a_pkg.';
8 --
9 --
10 -- ----------------------------------------------------------------------------
11 -- |--------------------------< create_class_1a_entry >----------------------|
12 -- ----------------------------------------------------------------------------
13 --
14 procedure create_class_1a_entry(
15 p_assignment_id number,
16 p_effective_date date,
17 p_price number,
18 p_registration_date date,
19 p_registration_number varchar2,
20 p_mileage_band varchar2,
21 p_fuel_scale number,
22 p_payment number,
23 p_fuel_type varchar2,
24 p_engine_cc number,
25 p_primary_car varchar2,
26 p_co2_emissions number
27 )
28 is
29
30 cursor c_element(p_element_name varchar2) is
31 select element_type_id
32 from pay_element_types_f
33 where element_name = p_element_name;
34
35 cursor c_input_value(p_name varchar2,
36 p_element_type_id number) is
37 select input_value_id
38 from pay_input_values_f
39 where element_type_id = p_element_type_id
40 and name = p_name;
41
42 type inputs_table is table of varchar2(80)
43 index by binary_integer;
44
45 l_input_names_table inputs_table;
46 l_input_values_table inputs_table;
47
48 inp_value_id_tbl hr_entry.number_table;
49 scr_valuetbl hr_entry.varchar2_table;
50
51 l_element_type_id number;
52 l_element_link_id number;
53 l_element_entry_id number;
54 l_element_name varchar2(80);
55 l_start_date date;
56 l_end_date date;
57
58 begin
59
60 l_input_names_table(1) := 'Price';
61 l_input_names_table(2) := 'Registration Date';
62 l_input_names_table(3) := 'Registration Number';
63 l_input_names_table(4) := 'Mileage Band';
64 l_input_names_table(5) := 'Fuel Scale';
65 l_input_names_table(6) := 'Payment';
66 l_input_names_table(7) := 'Fuel Type';
67 l_input_names_table(8) := 'Engine cc';
68 l_input_names_table(9) := 'CO2 Emissions';
69
70 l_input_values_table(1) := fnd_number.number_to_canonical(p_price);
71 l_input_values_table(2) := fnd_date.date_to_displaydate(p_registration_date);
72 l_input_values_table(3) := p_registration_number;
73 l_input_values_table(4) := p_mileage_band;
74 l_input_values_table(5) := fnd_number.number_to_canonical(p_fuel_scale);
75 l_input_values_table(6) := fnd_number.number_to_canonical(p_payment);
76 l_input_values_table(7) := p_fuel_type;
77 l_input_values_table(8) := fnd_number.number_to_canonical(p_engine_cc);
78 l_input_values_table(9) := fnd_number.number_to_canonical(p_co2_emissions);
79
80 if p_primary_car = 'Y' then
81 --
82 l_element_name := 'NI Car Primary';
83 --
84 else
85 --
86 l_element_name := 'NI Car Secondary';
87 --
88 end if;
89
90 open c_element(l_element_name);
91
92 fetch c_element into l_element_type_id;
93
94 if c_element%notfound then
95 --
96 close c_element;
97
98 fnd_message.set_name('PQP', 'PQP_230XXX_INVALID_CM_ELEMENT');
99 fnd_message.raise_error;
100 --
101 end if;
102
103 close c_element;
104
105 l_element_link_id := hr_entry_api.get_link(
106 P_assignment_id => p_assignment_id,
107 P_element_type_id => l_element_type_id,
108 P_session_date => p_effective_date);
109
110 for i in 1..9 loop
111 --
112 open c_input_value(l_input_names_table(i), l_element_type_id);
113 fetch c_input_value into inp_value_id_tbl(i);
114
115 if c_input_value%notfound then
116 --
117 close c_input_value;
118
119 fnd_message.set_name('PQP', 'PQP_230XXX_INVALID_CM_ELEMENT');
120 fnd_message.raise_error;
121 --
122 end if;
123
124 close c_input_value;
125
126 scr_valuetbl(i) := l_input_values_table(i);
127 --
128 end loop;
129
130 l_start_date := p_effective_date;
131
132 hr_entry_api.insert_element_entry(
133 p_effective_start_date => l_start_date,
134 p_effective_end_date => l_end_date,
135 p_element_entry_id => l_element_entry_id,
136 p_assignment_id => p_assignment_id,
137 p_element_link_id => l_element_link_id,
138 p_creator_type => 'F',
139 p_entry_type => 'E',
140 p_num_entry_values => 9,
141 p_input_value_id_tbl => inp_value_id_tbl,
142 p_entry_value_tbl => scr_valuetbl);
143
144
145 end create_class_1a_entry;
146
147 --
148 end pqp_car_class_1a_pkg;