DBA Data[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;