[Home] [Help]
PACKAGE BODY: APPS.CN_COLLECTION_OE_GEN
Source
1 PACKAGE BODY CN_COLLECTION_OE_GEN AS
2 -- $Header: cnoegenb.pls 120.3 2007/09/26 19:48:04 apink ship $
3
4 --
5 -- Private package variables
6 --
7 -- a constant which has a null value for passing to the insert_row
8 -- procedures of table handler APIs as the primary key value
9
10 null_id CONSTANT NUMBER := NULL;
11
12 l_org_id NUMBER;
13
14 ---------------- Public Procedures -------------------
15 --
16 -- Procedure Name
17 -- insert_comm_lines_api
18 -- Purpose
19 -- This procedure inserts into the CN_COMM_LINES_API table
20 -- History
21 --
22 --
23 PROCEDURE insert_comm_lines_api (
24 x_table_map_id IN cn_table_maps.table_map_id%TYPE,
25 x_package_id IN cn_obj_packages_v.package_id%TYPE,
26 procedure_name IN cn_obj_procedures_v.name%TYPE,
27 x_module_id IN cn_modules.module_id%TYPE,
28 x_repository_id IN cn_repositories.repository_id%TYPE,
29 x_event_id IN cn_events.event_id%TYPE,
30 code IN OUT NOCOPY cn_utils.code_type,
31 x_org_id IN NUMBER)
32 IS
33 BEGIN
34 l_org_id := x_org_id;
35 cn_utils.set_org_id(p_org_id => l_org_id);
36 cn_utils.appendcr(code);
37 cn_utils.appendcr(code, '--******** INSERT CN_COMM_LINES_API *********-- ');
38 cn_utils.appindcr(code, 'cn_message_pkg.debug(''' || procedure_name || ': Inserting into CN_COMM_LINES_API.'');');
39 cn_utils.appindcr(code, 'fnd_file.put_line(fnd_file.Log, ''' || procedure_name || ': Inserting into CN_COMM_LINES_API.'');');
40
41 cn_utils.appendcr(code);
42
43 -- ++++++++++++++++++++++++++++++ -- +
44 cn_utils.appindcr(code, '--');
45 cn_utils.appindcr(code, '-- Sales credits assigned directly to this Order Line');
46 cn_utils.appindcr(code, '--');
47
48
49 cn_utils.unset_org_id();
50 cn_collection_custom_gen.insert_comm_lines_api_select(x_table_map_id, code,l_org_id, '');
51
52
53 cn_utils.set_org_id(p_org_id => l_org_id);
54 cn_utils.appindcr(code, ' FROM cn_not_trx cnt,');
55 cn_utils.appindcr(code, ' aso_i_oe_order_headers_v asoh,');
56 cn_utils.appindcr(code, ' aso_i_oe_order_lines_v asol,');
57 cn_utils.appindcr(code, ' aso_i_oe_sales_credits_v assc');
58 cn_utils.appindcr(code, 'WHERE asol.header_id = cnt.source_trx_id');
59 cn_utils.appindcr(code, ' AND asol.line_id = cnt.source_trx_line_id');
60 -- cn_utils.appindcr(code, ' AND asol.header_id = asoh.header_id');
61 -- cn_utils.appindcr(code, ' AND assc.line_id = asol.line_id');
62 cn_utils.appindcr(code, ' AND asoh.header_id = cnt.source_trx_id');
63 cn_utils.appindcr(code, ' AND assc.line_id = cnt.source_trx_line_id');
64 cn_utils.appindcr(code, ' AND cnt.event_id = ' || x_event_id);
65 cn_utils.appindcr(code, ' AND cnt.collected_flag = ''N''');
66 cn_utils.appindcr(code, ' AND cnt.batch_id = x_batch_id');
67 cn_utils.appindcr(code, ' AND cnt.org_id = '||l_org_id);
68 cn_utils.appindcr(code, ' AND asoh.org_id = cnt.org_id');
69 cn_utils.appindcr(code, ' AND asol.org_id = asoh.org_id;');
70
71 cn_utils.appendcr(code);
72 cn_utils.appindcr(code, 'comm_lines_api_count := SQL%ROWCOUNT;');
73 cn_utils.appendcr(code);
74
75 cn_utils.appindcr(code, '--');
76 cn_utils.appindcr(code, '-- No direct sales credits for this line, but there are some');
77 cn_utils.appindcr(code, '-- but there are some at the Model level, which is identified');
78 cn_utils.appindcr(code, '-- using the top_model_line_id');
79 cn_utils.appindcr(code, '--');
80 cn_utils.unset_org_id();
81 --dbms_output.put_line('--- Ashley Pink Test 1');
82 cn_collection_custom_gen.insert_comm_lines_api_select(x_table_map_id, code,l_org_id, '');
83
84 cn_utils.set_org_id(p_org_id => l_org_id);
85 cn_utils.appindcr(code, ' FROM aso_i_oe_sales_credits_v assc,');
86 cn_utils.appindcr(code, ' aso_i_oe_order_lines_v p,');
87 cn_utils.appindcr(code, ' aso_i_oe_order_lines_v asol,');
88 cn_utils.appindcr(code, ' cn_not_trx cnt,');
89 cn_utils.appindcr(code, ' aso_i_oe_order_headers_v asoh');
90 cn_utils.appindcr(code, 'WHERE asoh.header_id = cnt.source_trx_id' );
91 cn_utils.appindcr(code, ' AND asol.line_id = cnt.source_trx_line_id');
92 cn_utils.appindcr(code, ' AND asol.header_id = asoh.header_id');
93 cn_utils.appindcr(code, ' AND p.line_id = asol.top_model_line_id');
94 cn_utils.appindcr(code, ' AND assc.line_id = p.line_id');
95 cn_utils.appindcr(code, ' AND asol.line_id NOT IN (');
96 cn_utils.appindcr(code, ' SELECT line_id');
97 cn_utils.appindcr(code, ' FROM aso_i_oe_sales_credits_v ssc');
98 cn_utils.appindcr(code, ' WHERE ssc.header_id = asol.header_id');
99 cn_utils.appindcr(code, ' AND ssc.line_id IS NOT NULL)');
100 cn_utils.appindcr(code, ' AND cnt.event_id = ' || x_event_id);
101 cn_utils.appindcr(code, ' AND cnt.collected_flag = ''N''');
102 cn_utils.appindcr(code, ' AND cnt.batch_id = x_batch_id;');
103
104 cn_utils.appendcr(code);
105 cn_utils.appindcr(code, 'comm_lines_api_count := comm_lines_api_count + SQL%ROWCOUNT;');
106
107 cn_utils.appendcr(code);
108
109 cn_utils.appindcr(code, '--');
110 cn_utils.appindcr(code, '-- No direct sales credits for this line,');
111 cn_utils.appindcr(code, '-- but this is a Service Line and there are some at its parent,');
112 cn_utils.appindcr(code, '-- which is identified using the service_reference_line_id');
113
114 cn_utils.appindcr(code, '--');
115 cn_utils.unset_org_id();
116 --dbms_output.put_line('--- Ashley Pink Test 2');
117 cn_collection_custom_gen.insert_comm_lines_api_select(x_table_map_id, code,l_org_id,'');
118
119 cn_utils.set_org_id(p_org_id => l_org_id);
120 cn_utils.appindcr(code, ' FROM aso_i_oe_sales_credits_v assc,');
121 cn_utils.appindcr(code, ' aso_i_oe_order_lines_v sp,');
122 cn_utils.appindcr(code, ' aso_i_oe_order_lines_v asol,');
123 cn_utils.appindcr(code, ' cn_not_trx cnt,');
124 cn_utils.appindcr(code, ' aso_i_oe_order_headers_v asoh');
125 cn_utils.appindcr(code, 'WHERE asoh.header_id = cnt.source_trx_id' );
126 cn_utils.appindcr(code, ' AND asol.line_id = cnt.source_trx_line_id');
127 cn_utils.appindcr(code, ' AND asol.header_id = asoh.header_id');
128 cn_utils.appindcr(code, ' AND sp.line_id = asol.service_reference_line_id');
129 cn_utils.appindcr(code, ' AND assc.line_id = sp.line_id');
130 cn_utils.appindcr(code, ' AND asol.line_id NOT IN (');
131 cn_utils.appindcr(code, ' SELECT line_id');
132 cn_utils.appindcr(code, ' FROM aso_i_oe_sales_credits_v ssc');
133 cn_utils.appindcr(code, ' WHERE ssc.header_id = asol.header_id');
134 cn_utils.appindcr(code, ' AND ssc.line_id IS NOT NULL)');
135 cn_utils.appindcr(code, ' AND cnt.event_id = ' || x_event_id);
136 cn_utils.appindcr(code, ' AND cnt.collected_flag = ''N''');
137 cn_utils.appindcr(code, ' AND cnt.batch_id = x_batch_id;');
138
139 cn_utils.appendcr(code);
140 cn_utils.appindcr(code, 'comm_lines_api_count := comm_lines_api_count + SQL%ROWCOUNT;');
141
142 cn_utils.appendcr(code);
143
144 cn_utils.appindcr(code, '--');
145 cn_utils.appindcr(code, '-- This is a Top Level line with no direct sales credits.');
146 cn_utils.appindcr(code, '-- Use the credits which are attached at the Order Header level');
147 cn_utils.appindcr(code, '--');
148 cn_utils.unset_org_id();
149 --dbms_output.put_line('--- Ashley Pink Test 3');
150 cn_collection_custom_gen.insert_comm_lines_api_select(x_table_map_id, code,l_org_id,'');
151
152 cn_utils.set_org_id(p_org_id => l_org_id);
153 cn_utils.appindcr(code, ' FROM aso_i_oe_order_lines_v asol,');
154 cn_utils.appindcr(code, ' aso_i_oe_sales_credits_v assc,');
155 cn_utils.appindcr(code, ' aso_i_oe_order_headers_v asoh,');
156 cn_utils.appindcr(code, ' cn_not_trx cnt');
157 cn_utils.appindcr(code, 'WHERE asoh.header_id = cnt.source_trx_id');
158 cn_utils.appindcr(code, ' AND asol.line_id = cnt.source_trx_line_id');
159 cn_utils.appindcr(code, ' AND asol.header_id = asoh.header_id' );
160 cn_utils.appindcr(code, ' AND assc.header_id = asoh.header_id');
161 cn_utils.appindcr(code, ' AND (asol.top_model_line_id IS NULL OR');
162 cn_utils.appindcr(code, ' asol.top_model_line_id = asol.line_id)');
163 cn_utils.appindcr(code, ' AND asol.service_reference_line_id IS NULL');
164 cn_utils.appindcr(code, ' AND asol.line_id NOT IN (');
165 cn_utils.appindcr(code, ' SELECT line_id');
166 cn_utils.appindcr(code, ' FROM aso_i_oe_sales_credits_v ssc');
167 cn_utils.appindcr(code, ' WHERE ssc.header_id = asol.header_id');
168 cn_utils.appindcr(code, ' AND ssc.line_id IS NOT NULL)');
169 cn_utils.appindcr(code, ' AND assc.line_id IS NULL');
170 cn_utils.appindcr(code, ' AND cnt.event_id = ' || x_event_id);
171 cn_utils.appindcr(code, ' AND cnt.collected_flag = ''N''');
172 cn_utils.appindcr(code, ' AND cnt.batch_id = x_batch_id;');
173
174 cn_utils.appendcr(code);
175 cn_utils.appindcr(code, 'comm_lines_api_count := comm_lines_api_count + SQL%ROWCOUNT;');
176
177 cn_utils.appendcr(code);
178
179
180 cn_utils.appindcr(code, '--');
181 cn_utils.appindcr(code, '-- This is a Child or Service line with');
182 cn_utils.appindcr(code, '-- no direct sales credits. The Parent line also');
183 cn_utils.appindcr(code, '-- has no direct sales credits. Use the credits');
184 cn_utils.appindcr(code, '-- which are attached at the Order Header level');
185
186 cn_utils.appindcr(code, '--');
187 cn_utils.unset_org_id();
188 --dbms_output.put_line('--- Ashley Pink Test 4');
189 cn_collection_custom_gen.insert_comm_lines_api_select(x_table_map_id, code,l_org_id,'');
190
191 cn_utils.set_org_id(p_org_id => l_org_id);
192 cn_utils.appindcr(code, ' FROM aso_i_oe_order_lines_v asol,');
193 cn_utils.appindcr(code, ' aso_i_oe_order_lines_v pl,');
194 cn_utils.appindcr(code, ' aso_i_oe_sales_credits_v assc,');
195 cn_utils.appindcr(code, ' aso_i_oe_order_headers_v asoh,');
196 cn_utils.appindcr(code, ' cn_not_trx cnt');
197 cn_utils.appindcr(code, 'WHERE asoh.header_id = cnt.source_trx_id');
198 cn_utils.appindcr(code, ' AND asol.line_id = cnt.source_trx_line_id');
199 cn_utils.appindcr(code, ' AND asol.header_id = asoh.header_id');
200 cn_utils.appindcr(code, ' AND asol.line_id NOT IN (');
201 cn_utils.appindcr(code, ' SELECT line_id');
202 cn_utils.appindcr(code, ' FROM aso_i_oe_sales_credits_v ssc');
203 cn_utils.appindcr(code, ' WHERE ssc.header_id = asol.header_id');
204 cn_utils.appindcr(code, ' AND ssc.line_id IS NOT NULL)');
205 cn_utils.appindcr(code, ' AND ( ( pl.line_id = asol.top_model_line_id AND');
206 cn_utils.appindcr(code, ' asol.line_id <> asol.top_model_line_id)');
207 cn_utils.appindcr(code, ' OR');
208 cn_utils.appindcr(code, ' ( pl.line_id = asol.service_reference_line_id AND');
209 cn_utils.appindcr(code, ' asol.top_model_line_id IS NULL))');
210 cn_utils.appindcr(code, ' AND pl.line_id NOT IN (');
211 cn_utils.appindcr(code, ' SELECT line_id');
212 cn_utils.appindcr(code, ' FROM aso_i_oe_sales_credits_v ssc');
213 cn_utils.appindcr(code, ' WHERE ssc.header_id = pl.header_id');
214 cn_utils.appindcr(code, ' AND ssc.line_id IS NOT NULL)');
215 cn_utils.appindcr(code, ' AND assc.line_id IS NULL');
216 cn_utils.appindcr(code, '-- Get credits from header of parent line. NOTE: a Service');
217 cn_utils.appindcr(code, '-- parent may belong to a different order.');
218 cn_utils.appindcr(code, ' AND assc.header_id = pl.header_id');
219 cn_utils.appindcr(code, ' AND cnt.event_id = ' || x_event_id);
220 cn_utils.appindcr(code, ' AND cnt.collected_flag = ''N''');
221 cn_utils.appindcr(code, ' AND cnt.batch_id = x_batch_id;');
222
223 cn_utils.appendcr(code);
224 cn_utils.appindcr(code, 'comm_lines_api_count := comm_lines_api_count + SQL%ROWCOUNT;');
225
226 cn_utils.appendcr(code);
227
228 cn_utils.appindcr(code, 'cn_message_pkg.debug(''' || procedure_name || ':Inserted '' || comm_lines_api_count || '' line records into CN_COMM_LINES_API.'');');
229 cn_utils.appindcr(code, 'fnd_file.put_line(fnd_file.Log, ''' || procedure_name || ':Inserted '' || comm_lines_api_count || '' line records into CN_COMM_LINES_API.'');');
230
231 cn_utils.appendcr(code);
232 cn_utils.appendcr(code);
233
234 -- Update the collected_flag in CN_NOT_TRX
235 cn_utils.appindcr(code, 'cn_message_pkg.debug(''' || procedure_name || ': Updating collected_flag in CN_NOT_TRX .'');');
236 cn_utils.appindcr(code, 'fnd_file.put_line(fnd_file.Log, ''' || procedure_name || ': Updating collected_flag in CN_NOT_TRX .'');');
237
238 cn_utils.appendcr(code);
239
240 cn_utils.appindcr(code, 'UPDATE cn_not_trx cnt');
241 cn_utils.appindcr(code, ' SET collected_flag = ''Y''');
242 cn_utils.appindcr(code, ' WHERE cnt.event_id = ' || x_event_id);
243 cn_utils.appindcr(code, ' AND cnt.collected_flag = ''N''');
244 cn_utils.appindcr(code, ' AND cnt.batch_id = x_batch_id');
245 cn_utils.appindcr(code, ' AND cnt.org_id = '||l_org_id||' ;');
246 cn_utils.appendcr(code);
247 cn_utils.appindcr(code, 'cn_message_pkg.debug(''' || procedure_name || ': Updated collected_flag in cn_not_trx.'');');
248 cn_utils.appindcr(code, 'fnd_file.put_line(fnd_file.Log, ''' || procedure_name || ': Updated collected_flag in cn_not_trx.'');');
249
250 cn_utils.appendcr(code);
251 cn_utils.unset_org_id();
252 --dbms_output.put_line('--- Ashley Pink Test End oe gen');
253 EXCEPTION
254 WHEN NO_DATA_FOUND
255 THEN
256 cn_debug.print_msg('insert_lines: in exception handler for NO_DATA_FOUND',1);
257 fnd_file.put_line(fnd_file.Log, 'insert_lines: in exception handler for NO_DATA_FOUND');
258 RETURN;
259 END insert_comm_lines_api;
260
261 END cn_collection_oe_gen;