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