DBA Data[Home] [Help]

PACKAGE BODY: APPS.BIM_CMP_PKG

Source


1 PACKAGE BODY BIM_CMP_PKG AS
2 /*$Header: bimcmpgb.pls 115.18 2001/08/13 16:09:51 pkm ship      $*/
3 
4 PROCEDURE BIM_CMP_COST_PLEAD_POPULATE
5          (
6             p_start_date                  in date        DEFAULT NULL,
7             p_end_date                    in date        DEFAULT NULL,
8             p_campaign_id                 in number      DEFAULT NULL,
9             p_drill_down                  in varchar2    DEFAULT NULL,
10             p_campaign_status_id          in number      DEFAULT NULL,
11             p_campaign_type_id            in varchar2    DEFAULT NULL,
12             p_media_id                    in number      DEFAULT NULL,
13             p_channel_id                  in varchar2    DEFAULT NULL,
14             p_period_type                 in varchar2    DEFAULT NULL,
15             p_view_by                     in varchar2    DEFAULT NULL
16          )  IS
17 
18 l_sql_insert_stm            varchar2(10000);
19 l_sql_from                  varchar2(10000);
20 l_sql_where                 varchar2(30000);
21 l_sql_group_by              varchar2(2000);
22 l_sql_order_by              varchar2(2000);
23 l_sql_outer_where           varchar2(2000);
24 l_view_by                   varchar2(2000);
25 l_subject_name              varchar2(2000);
26 l_jtf_bis_util              varchar2(2000);
27 
28 begin
29 l_jtf_bis_util := 'jtf_bis_util.profileValue(''CRMBIS:PERIOD_SET_NAME'')';
30 
31 l_sql_insert_stm := 'INSERT INTO bim_camp_acqu_summ_temp (measure1, measure2, subject_name, view_by_name)';
32 
33 l_sql_insert_stm := l_sql_insert_stm
34                  || ' SELECT ' ;
35 
36 l_sql_insert_stm := l_sql_insert_stm
37                  || ' Sum(bscc.num_of_leads),';
38 
39 l_sql_insert_stm := l_sql_insert_stm
40                  || ' decode(sum(BSCC.num_of_leads),0,0,( sum (BSCC.actual_cost) / sum (BSCC.num_of_leads) )),';
41 
42 l_sql_from := ' FROM bim_cmpgn_revcost_summ BSCC, bim_campaigns_denorm denorm,bim_dimv_campaigns BDC';
43 
44 --Build the where clause
45 
46 l_sql_where := ' where BSCC.campaign_id = denorm.campaign_id and denorm.parent_campaign_id = BDC.campaign_id and BSCC.PERIOD_start_date >= :p_start_date and BSCC.PERIOD_end_date <= :p_end_date';
47 
48 IF p_campaign_id IS NULL then
49     l_sql_where := l_sql_where || ' and :p_campaign_id is null ';
50 ELSIF p_drill_down = 'Y' then
51     l_sql_where := l_sql_where || ' and NVL(denorm.parent_campaign_id,-999) = :p_campaign_id';
52 ELSE l_sql_where := l_sql_where || ' and denorm.campaign_id =:p_campaign_id ';
53 END IF;
54 
55 IF p_campaign_status_id IS NOT NULL
56 THEN
57     l_sql_where := l_sql_where || ' and denorm.parent_campaign_status_id = :p_campaign_status_id';
58 ELSE
59     l_sql_where := l_sql_where || ' and :p_campaign_status_id IS NULL';
60 END IF;
61 
62 IF p_campaign_type_id IS NOT NULL
63 THEN
64     l_sql_where := l_sql_where || ' And denorm.parent_campaign_type = :p_campaign_type_id';
65 ELSE
66     l_sql_where := l_sql_where || ' and :p_campaign_type_id IS NULL ';
67 END IF;
68 
69 IF P_media_id IS NOT NULL
70 THEN
71     l_sql_where := l_sql_where || ' and BSCC.Media_id = :P_media_id';
72 ELSE
73     l_sql_where := l_sql_where || ' and :P_media_id IS NULL';
74 END IF;
75 
76 IF p_channel_id IS NOT NULL
77 THEN
78     l_sql_where := l_sql_where || ' and BSCC.channel_id = :p_channel_id';
79 ELSE
80     l_sql_where := l_sql_where || ' and :p_channel_id IS NULL';
81 END IF;
82 
83 if p_view_by = 'PER' THEN
84 IF p_period_type IS NOT NULL
85 THEN
86     l_sql_where := l_sql_where || ' AND BDP.PERIOD_TYPE like :p_period_type';
87 ELSE
88     l_sql_where := l_sql_where || ' and :p_period_type IS NULL';
89 END IF;
90 END IF;
91 
92 if p_view_by = 'MCH'
93 THEN
94    l_sql_insert_stm := l_sql_insert_stm || ' BDC.campaign_name,BDMC.Channel_name ';
95    l_sql_from := l_sql_from || ' ,BIM_DIMV_MEDIA_CHANNELS BDMC, dual';
96    l_sql_where := l_sql_where || ' AND BSCC.media_id = BDMC.media_id and BSCC.channel_id = BDMC.channel_id';
97    l_sql_group_by := l_sql_group_by || ' GROUP BY BDC.campaign_name, BDMC.channel_name   ';
98    l_sql_order_by := l_sql_order_by || ' Order by 3,2 desc';
99 ELSIF
100    p_view_by = 'ACT'
101 THEN
102    l_sql_insert_stm := l_sql_insert_stm || ' BDC.campaign_name,bdm.media_name ';
103    l_sql_from := l_sql_from || ' ,bim_dimv_media bdm, dual';
104    l_sql_where := l_sql_where || ' and bscc.media_id = BDM.media_id ';
105    l_sql_group_by := l_sql_group_by || ' GROUP BY BDC.campaign_name,bdm.media_name ';
106    l_sql_order_by := l_sql_order_by || ' Order by 3,2 desc';
107 ELSIF
108    p_view_by = 'PER'
109 THEN
110    l_sql_insert_stm := l_sql_insert_stm || ' BDC.Campaign_name,BSCC.period_name ';
111    l_sql_from := l_sql_from || ' ,bim_dimv_periods bdp, dual';
112    l_sql_where := l_sql_where || ' and bscc.period_start_date = bdp.start_date and bscc.period_end_date = bdp.end_date and BDP.period_set_name  =' || l_jtf_bis_util ;
113    l_sql_group_by := l_sql_group_by || ' GROUP BY BDC.Campaign_name,BSCC.period_name, bdp.start_date ';
114    l_sql_order_by := l_sql_order_by || ' Order by BDC.Campaign_name,bdp.start_date';
115 END IF;
116 
117 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_insert_stm, 1, 150));
118 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_insert_stm, 151, 150));
119 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_insert_stm, 300, 150));
120 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_from, 1, 150));
121 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_from, 151, 150));
122 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 1, 150));
123 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 151, 150));
124 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 300, 150));
125 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 451, 150));
126 -- dbms_OUTPUT.PUT_LINE(l_sql_group_by);
127 -- dbms_OUTPUT.PUT_LINE(l_sql_order_by);
128 
129 IF P_VIEW_BY = 'PER' THEN
130 EXECUTE IMMEDIATE l_sql_insert_stm ||l_sql_from || l_sql_where || l_sql_group_by || l_sql_order_by
131 Using
132  p_start_date
133 ,p_end_date
134 ,p_campaign_id
135 ,p_campaign_status_id
136 ,p_campaign_type_id
137 ,p_media_id
138 ,p_channel_id
139 ,P_PERIOD_TYPE;
140 ELSE
141 EXECUTE IMMEDIATE l_sql_insert_stm ||l_sql_from || l_sql_where || l_sql_group_by || l_sql_order_by
142 Using
143  p_start_date
144 ,p_end_date
145 ,p_campaign_id
146 ,p_campaign_status_id
147 ,p_campaign_type_id
148 ,p_media_id
149 ,p_channel_id;
150 END IF;
151 
152 end BIM_CMP_COST_PLEAD_POPULATE;
153 
154 
155 PROCEDURE BIM_CMP_COST_POPULATE
156          (
157             p_start_date                  in date      DEFAULT NULL,
158             p_end_date                    in date      DEFAULT NULL,
159             p_campaign_id                 in number    DEFAULT NULL,
160             p_drill_down                  in varchar2  DEFAULT 'Y',
161             p_campaign_status_id          in number    DEFAULT NULL,
162             p_campaign_type_id            in varchar2  DEFAULT NULL,
163             p_media_id                    in number    DEFAULT NULL,
164             p_channel_id                  in varchar2  DEFAULT NULL,
165             p_view_by                     in varchar2  DEFAULT NULL
166          )  IS
167 
168 l_sql_insert_stm            varchar2(10000);
169 l_sql_from                  varchar2(10000);
170 l_sql_where                 varchar2(30000);
171 l_sql_group_by              varchar2(2000);
172 l_sql_order_by              varchar2(2000);
173 l_sql_outer_where           varchar2(2000);
174 l_view_by                   varchar2(2000);
175 l_subject_name              varchar2(2000);
176 
177 begin
178 
179 l_sql_insert_stm := 'INSERT INTO bim_camp_acqu_summ_temp (measure1, measure2, measure3, measure4, subject_name, view_by_name)';
180 
181 l_sql_insert_stm := l_sql_insert_stm
182                  || ' SELECT ' ;
183 
184 l_sql_insert_stm := l_sql_insert_stm
185                  || ' decode(sum(ccost.actual_cost), 0, 0, ((sum(ccost.initiated_revenue)-sum(ccost.actual_cost))/sum(ccost.actual_cost))*100),';
186 
187 l_sql_insert_stm := l_sql_insert_stm
188                  || ' sum(ccost.forecasted_cost),';
189 
190 l_sql_insert_stm := l_sql_insert_stm
191                  || ' sum(ccost.actual_cost),';
192 
193 l_sql_insert_stm := l_sql_insert_stm
194                  || ' decode(sum(ccost.actual_cost), 0,0,((sum(ccost.forecasted_cost)-sum(ccost.actual_cost))/sum(ccost.actual_cost))*100),';
195 
196 l_sql_from := ' From BIM_CMPGN_REVCOST_SUMM ccost, bim_campaigns_denorm denorm, bim_dimv_campaigns dimv, bim_dimv_media_channels bdmc, dual';
197 
198 --Build the where clause
199 
200 l_sql_where := ' WHERE ccost.campaign_id = denorm.campaign_id AND CCOST.media_id = BDMC.media_id and CCOST.channel_id
201 = BDMC.channel_id and denorm.parent_campaign_id = dimv.campaign_id and CCOST.PERIOD_start_date >= :p_start_date and CCOST.PERIOD_end_date <= :p_end_date';
202 
203 IF p_campaign_id IS NULL then
204     l_sql_where := l_sql_where || ' and :p_campaign_id is null ';
205 ELSIF p_drill_down = 'Y' then
206     l_sql_where := l_sql_where || ' and NVL(denorm.parent_campaign_id,-999) = :p_campaign_id';
207 ELSE l_sql_where := l_sql_where || ' and denorm.campaign_id =:p_campaign_id ';
208 END IF;
209 
210 IF p_campaign_status_id IS NOT NULL
211 THEN
212     l_sql_where := l_sql_where || ' and denorm.parent_campaign_status_id = :p_campaign_status_id';
213 ELSE
214     l_sql_where := l_sql_where || ' and :p_campaign_status_id IS NULL';
215 END IF;
216 
217 IF p_campaign_type_id IS NOT NULL
218 THEN
219     l_sql_where := l_sql_where || ' And denorm.parent_campaign_type = :p_campaign_type_id';
220 ELSE
221     l_sql_where := l_sql_where || ' and :p_campaign_type_id IS NULL ';
222 END IF;
223 
224 IF P_media_id IS NOT NULL
225 THEN
226     l_sql_where := l_sql_where || ' and BSCC.Media_id = :P_media_id';
227 ELSE
228     l_sql_where := l_sql_where || ' and :P_media_id IS NULL';
229 END IF;
230 
231 IF p_channel_id IS NOT NULL
232 THEN
233     l_sql_where := l_sql_where || ' and BSCC.channel_id = :p_channel_id';
234 ELSE
235     l_sql_where := l_sql_where || ' and :p_channel_id IS NULL';
236 END IF;
237 
238 l_sql_order_by := ' ORDER BY 1,3,6 DESC';
239 
240 if p_view_by = 'MCH'
241 THEN
242    l_sql_insert_stm := l_sql_insert_stm || ' dimv.campaign_name, BDMC.channel_name ';
243    l_sql_group_by := l_sql_group_by || ' GROUP BY dimv.campaign_name, BDMC.channel_name   ';
244 ELSIF
245    p_view_by = 'ACT'
246 THEN
247    l_sql_insert_stm := l_sql_insert_stm || ' dimv.campaign_name, bdmc.media_name ';
248    l_sql_group_by := l_sql_group_by || ' GROUP BY dimv.campaign_name, bdmc.media_name ';
249 END IF;
250 
251 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_insert_stm, 1, 150));
252 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_insert_stm, 151, 150));
253 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_insert_stm, 300, 150));
254 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_from, 1, 150));
255 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_from, 151, 150));
256 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 1, 150));
257 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 151, 150));
258 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 300, 150));
259 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 451, 150));
260 -- dbms_OUTPUT.PUT_LINE(l_sql_group_by);
261 -- dbms_OUTPUT.PUT_LINE(l_sql_order_by);
262 
263 EXECUTE IMMEDIATE l_sql_insert_stm ||l_sql_from || l_sql_where || l_sql_group_by || l_sql_order_by
264 Using
265 p_start_date
266 ,p_end_date
267 ,p_campaign_id
268 ,p_campaign_status_id
269 ,p_campaign_type_id
270 ,p_media_id
271 ,p_channel_id;
272 
273 end BIM_CMP_COST_POPULATE;
274 
275 PROCEDURE BIM_CMP_COST_SUM_POPULATE
276          (
277             p_all_value                   in varchar2 DEFAULT NULL,
278             p_campaign_status_id          in number   DEFAULT NULL,
279             p_campaign_type_id            in varchar2 DEFAULT NULL,
280             p_media_id                    in number   DEFAULT NULL,
281             p_channel_id                  in varchar2 DEFAULT NULL,
282             p_view_by                     in varchar2 DEFAULT NULL
283          )  IS
284 
285 l_sql_insert_stm            varchar2(10000);
286 l_sql_from                  varchar2(10000);
287 l_sql_where                 varchar2(30000);
288 l_sql_group_by              varchar2(2000);
289 l_sql_order_by              varchar2(2000);
290 l_sql_outer_where           varchar2(2000);
291 l_view_by                   varchar2(2000);
292 l_subject_name              varchar2(2000);
293 
294 begin
295 
296 l_sql_insert_stm := 'INSERT INTO bim_camp_acqu_summ_temp (measure1, measure2, measure3, measure4, subject_name, view_by_name)';
297 
298 l_sql_insert_stm := l_sql_insert_stm
299                  || ' SELECT ' ;
300 
301 l_sql_insert_stm := l_sql_insert_stm
302                  || ' decode(sum(ccost.actual_cost), 0, 0, ((sum(ccost.initiated_revenue)-sum(ccost.actual_cost))/sum(ccost.actual_cost))*100),';
303 
304 l_sql_insert_stm := l_sql_insert_stm
305                  || ' sum(ccost.forecasted_cost),';
306 
307 l_sql_insert_stm := l_sql_insert_stm
308                  || ' sum(ccost.actual_cost),';
309 
310 l_sql_insert_stm := l_sql_insert_stm
311                  || ' decode(sum(ccost.actual_cost), 0,0,((sum(ccost.forecasted_cost)-sum(ccost.actual_cost))/sum(ccost.actual_cost))*100),';
312 
313 l_sql_from := ' From BIM_CMPGN_REVCOST_SUMM ccost, bim_campaigns_denorm denorm, bim_dimv_campaigns dimv, bim_dimv_media_channels bdmc, dual';
314 
315 --Build the where clause
316 
317 l_sql_where := ' WHERE ccost.campaign_id = denorm.campaign_id AND CCOST.media_id = BDMC.media_id and CCOST.channel_id = BDMC.channel_id and denorm.parent_campaign_id = dimv.campaign_id and denorm.level_from_parent = 0';
318 
319 IF p_campaign_status_id IS NOT NULL
320 THEN
321     l_sql_where := l_sql_where || ' and denorm.parent_campaign_status_id = :p_campaign_status_id';
322 ELSE
323     l_sql_where := l_sql_where || ' and :p_campaign_status_id IS NULL';
324 END IF;
325 
326 IF p_campaign_type_id IS NOT NULL
327 THEN
328     l_sql_where := l_sql_where || ' And denorm.parent_campaign_type = :p_campaign_type_id';
329 ELSE
330     l_sql_where := l_sql_where || ' and :p_campaign_type_id IS NULL ';
331 END IF;
332 
333 IF P_media_id IS NOT NULL
334 THEN
335     l_sql_where := l_sql_where || ' and BSCC.Media_id = :P_media_id';
336 ELSE
337     l_sql_where := l_sql_where || ' and :P_media_id IS NULL';
338 END IF;
339 
340 IF p_channel_id IS NOT NULL
341 THEN
342     l_sql_where := l_sql_where || ' and BSCC.channel_id = :p_channel_id';
343 ELSE
344     l_sql_where := l_sql_where || ' and :p_channel_id IS NULL';
345 END IF;
346 
347 l_sql_order_by := ' ORDER BY 1,3,6 DESC';
348 
349 if p_view_by = 'MCH'
350 THEN
351    l_sql_insert_stm := l_sql_insert_stm || ' :p_all_value, bdmc.channel_name ';
352    l_sql_group_by := l_sql_group_by || ' GROUP BY bdmc.channel_name   ';
353 ELSIF
354    p_view_by = 'ACT'
355 THEN
356    l_sql_insert_stm := l_sql_insert_stm || ' :p_all_value, bdmc.media_name ';
357    l_sql_group_by := l_sql_group_by || ' GROUP BY  bdmc.media_name ';
358 END IF;
359 
360 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_insert_stm, 1, 150));
361 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_insert_stm, 151, 150));
362 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_insert_stm, 300, 150));
363 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_from, 1, 150));
364 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_from, 151, 150));
365 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 1, 150));
366 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 151, 150));
367 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 300, 150));
368 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 451, 150));
369 -- dbms_OUTPUT.PUT_LINE(l_sql_group_by);
370 -- dbms_OUTPUT.PUT_LINE(l_sql_order_by);
371 
372 EXECUTE IMMEDIATE l_sql_insert_stm ||l_sql_from || l_sql_where || l_sql_group_by || l_sql_order_by
373 Using
374 p_all_value
375 ,p_campaign_status_id
376 ,p_campaign_type_id
377 ,p_media_id
378 ,p_channel_id;
379 
383 PROCEDURE    BIM_CMP_PERF_POPULATE
380 end BIM_CMP_COST_SUM_POPULATE;
381 
382 
384          (
385             p_start_date                  in  date      DEFAULT NULL,
386             p_end_date                    in  date      DEFAULT NULL,
387             p_campaign_id                 in  number    DEFAULT NULL,
388             p_campaign_type_id            in  varchar2  DEFAULT NULL,
389             p_campaign_status_id          in  number    DEFAULT NULL,
390             p_media_id                    in  number    DEFAULT NULL,
391             p_channel_id                  in  varchar2  DEFAULT NULL,
392 		    p_drill_down			      in  varchar2  DEFAULT 'Y',
393             p_sales_channel_code          in  varchar2  DEFAULT NULL,
394             p_market_segment_id           in  number    DEFAULT NULL,
395             p_interest_type_id            in  number    DEFAULT NULL,
396             p_primary_interest_code_id    in  number    DEFAULT NULL,
397             p_secondary_interest_code_id  in  number    DEFAULT NULL,
398             p_geography_code              in  varchar2  DEFAULT NULL,
399             p_period_type                 in  varchar2  DEFAULT NULL,
400             p_view_by                     in  varchar2  DEFAULT NULL
401          )  IS
402 
403 v_num_rows_inserted  integer;
404 v_num_rows_updated   integer;
405 
406 l_view_by            	varchar2(50);
407 
408 l_sql_from		varchar2(5000);
409 l_sql_where	        varchar2(5000);
410 l_sql_group_by    	varchar2(5000);
411 l_sql_order_by		varchar2(5000);
412 l_sql_insert_stm 	varchar2(5000);
413 l_sql_stmt		varchar2(5000);
414 v_all_name           	varchar2(80);
415 
416 BEGIN
417 
418 /***************/
419 
420 l_sql_insert_stm := 'INSERT INTO bim_camp_acqu_summ_temp (measure1, measure2, subject_name, view_by_name)';
421 
422 l_sql_insert_stm := l_sql_insert_stm
423                  || ' SELECT ' ;
424 
425 l_sql_insert_stm := l_sql_insert_stm
426                  || ' count(distinct(a.lead_id)), ';
427 
428 l_sql_insert_stm := l_sql_insert_stm
429                  || ' round(decode(count(distinct(a.lead_id)),0,0,sum(a.initiated_revenue)/count(distinct(a.lead_id))),2), ';
430 
431 /***************/
432 
433 /* l_sql_from := ' from  bim_cmpgn_perf_summ a '; */
434 
435 /***************/
436 
437 l_sql_where:= l_sql_where ||' where a.period_start_date   >= :p_start_date and a.period_end_date <= :p_end_date';
438 
439 /***************/
440 
441 IF p_campaign_id IS NULL THEN
442 	l_sql_where:= l_sql_where|| ' and b.parent_campaign_id in (select campaign_id from bim_dimv_campaigns where parent_campaign_id is null  and :p_campaign_id is null ) ';
443 ELSE
444 	l_sql_where:= l_sql_where|| ' and b.parent_campaign_id in (select campaign_id from bim_dimv_campaigns where parent_campaign_id is null  and :p_campaign_id is null ) ';
445 END IF;
446 
447 
448 /***************/
449 
450 IF 	p_media_id IS NULL THEN
451 	l_sql_where:= l_sql_where|| ' and :p_media_id IS NULL ';
452 ELSE
453 	l_sql_where:= l_sql_where|| ' and a.media_id = :p_media_id';
454 END IF;
455 
456 /***************/
457 IF 	p_channel_id IS  NULL THEN
458 	l_sql_where:= l_sql_where|| ' and :p_channel_id IS NULL ';
459 ELSE
460 	l_sql_where:= l_sql_where|| ' and  a.channel_id = :p_channel_id';
461 END IF;
462 
463 /***************/
464 
465 IF 	p_sales_channel_code IS NULL THEN
466 	l_sql_where:= l_sql_where|| ' and :p_sales_channel_code IS NULL ';
467 ELSE
468 	l_sql_where:= l_sql_where|| ' and a.sales_channel_code = :p_sales_channel_code';
469 END IF;
470 
471 /***************/
472 
473 IF 	p_market_segment_id IS NULL
474 THEN
475 	l_sql_where:= l_sql_where|| ' and :p_market_segment_id IS NULL ';
476 ELSE
477 	l_sql_where:= l_sql_where|| ' and a.market_segment_id   = :p_market_segment_id';
478 END IF;
479 
480 
481 /***************/
482 
483 /* l_sql_where:= l_sql_where|| ' and a.interest_type_id  = d.interest_type_id and a.primary_interest_code_id = d.primary_interest_code_id and a.secondary_interest_code_id = d.secondary_interest_code_id'; */
484 
485 IF 	p_interest_type_id IS NULL THEN
486 	l_sql_where:= l_sql_where|| ' and :p_interest_type_id IS NULL ';
487 ELSE
488 	l_sql_where:= l_sql_where|| ' and a.interest_type_id = :p_interest_type_id ';
489 END IF;
490 
491 /***************/
492 
493 IF 	p_primary_interest_code_id IS NULL THEN
494 	l_sql_where:= l_sql_where||' and :p_primary_interest_code_id IS NULL ';
495 ELSE
496 	l_sql_where:= l_sql_where|| ' and a.primary_interest_code_id = :p_primary_interest_code_id ';
497 END IF;
498 
499 /***************/
500 
501 IF 	p_secondary_interest_code_id IS NULL THEN
502 	l_sql_where:= l_sql_where||' and :p_secondary_interest_code_id IS NULL ';
503 ELSE
504 	l_sql_where:= l_sql_where||' and a.secondary_interest_code_id = :p_secondary_interest_code_id ';
505 END IF;
506 
507 
508 /***************/
509 
510 IF 	p_geography_code IS NULL THEN
511 	l_sql_where:= l_sql_where|| ' and :p_geography_code IS NULL ';
512 ELSE
513 	l_sql_where:= l_sql_where|| ' and bill_to_geography_code like :p_geography_code';
514 END IF;
515 
516 /***************/
517 
521 	l_sql_where	:=  l_sql_where|| ' and a.campaign_id = b.campaign_id and b.parent_campaign_id = d.campaign_id and a.media_id = c.media_id and a.channel_id = c.channel_id';
518 IF 	p_view_by = 'MCH' THEN
519 	l_sql_insert_stm := l_sql_insert_stm || ' d.campaign_name, c.channel_name';
520 	l_sql_from	:= l_sql_from|| ' from bim_cmpgn_perf_summ a,bim_campaigns_denorm b,bim_dimv_campaigns d, bim_dimv_media_channels c, dual ' ;
522 	l_sql_group_by 	:= l_sql_group_by || ' GROUP BY  d.campaign_name , c.channel_name ';
523     l_sql_order_by := ' Order by 3,2 desc ';
524 ELSIF p_view_by = 'ACT' THEN
525 	l_sql_insert_stm := l_sql_insert_stm || ' d.campaign_name, e.media_name ';
526 	l_sql_from	:= l_sql_from|| ' from 	bim_cmpgn_perf_summ a,bim_campaigns_denorm b,bim_dimv_campaigns d,bim_dimv_media e, dual ' ;
527 	l_sql_where	:=  l_sql_where|| ' and a.campaign_id = b.campaign_id and b.parent_campaign_id = d.campaign_id and a.media_id = e.media_id ';
528 	l_sql_group_by 	:= l_sql_group_by || ' GROUP BY  d.campaign_name, e.media_name ';
529     l_sql_order_by := ' Order by 3,2 desc ';
530 ELSIF p_view_by = 'MSG' THEN
531 	l_sql_insert_stm := l_sql_insert_stm || ' d.campaign_name , e.market_segment_name ';
532 	l_sql_from:= l_sql_from|| ' from 	bim_cmpgn_perf_summ a,bim_campaigns_denorm b ,bim_dimv_campaigns d,bim_dimv_market_sgmts e,dual ' ;
533 	l_sql_where:=  l_sql_where|| ' and a.campaign_id = b.campaign_id and b.parent_campaign_id = d.campaign_id and a.market_segment_id = e.market_segment_id ';
534 	l_sql_group_by := l_sql_group_by || ' GROUP BY  d.campaign_name , e.market_segment_name ';
535     l_sql_order_by := ' Order by 3,2 desc ';
536 ELSIF p_view_by = 'SCH' THEN
537 	l_sql_insert_stm := l_sql_insert_stm || ' d.campaign_name , e.sales_channel_name ';
538 	l_sql_from:= l_sql_from|| ' from 	bim_cmpgn_perf_summ a,bim_campaigns_denorm b,bim_dimv_campaigns d,bim_dimv_sales_channels e, dual ' ;
539 	l_sql_where:=  l_sql_where||' and a.campaign_id = b.campaign_id and b.campaign_id = d.campaign_id and a.sales_channel_code= e.sales_channel_code ';
540 	l_sql_group_by := l_sql_group_by || ' GROUP BY d.campaign_name, e.sales_channel_name ';
541     l_sql_order_by := ' Order by 3,2 desc ';
542 ELSIF 	p_view_by = 'PER' THEN
543 	l_sql_insert_stm := l_sql_insert_stm || ' d.campaign_name , e.period_name ';
544 	l_sql_from:= l_sql_from|| ' from 	bim_cmpgn_perf_summ a,bim_campaigns_denorm b,bim_dimv_campaigns d, bim_dimv_periods e, dual ' ;
545 	l_sql_where:=  l_sql_where|| ' and a.campaign_id = b.campaign_id and b.campaign_id = d.campaign_id and a.period_start_date >= e.start_date
546 and  a.period_end_date <= e.end_date and e.period_set_name = jtf_bis_util.ProfileValue(''CRMBIS:PERIOD_SET_NAME'')';
547     IF p_period_type IS NOT NULL
548     THEN
549         l_sql_where := l_sql_where || ' and e.PERIOD_TYPE like :p_period_type';
550     ELSE
551         l_sql_where := l_sql_where || ' and :p_period_type IS NULL';
552     END IF;
553     l_sql_group_by := l_sql_group_by || ' GROUP BY d.campaign_name , e.period_name, e.start_date';
554     l_sql_order_by := ' Order by d.campaign_name, e.start_date ';
555 END IF;
556 
557 /***************/
558 
559 l_sql_stmt := l_sql_insert_stm ||l_sql_from || l_sql_where || l_sql_group_by || l_sql_order_by;
560 -- dbms_OUTPUT.PUT_LINE('COMING HERE ');
561 
562 
563 /*
564 declare
565 fp  		utl_file.file_type;
566 location 	varchar2(100) := '/sqlcom/log/dom1151';
567 file_name	varchar2(50) := 'bpp.sql';
568 begin
569 		-- dbms_output.put_line('ENTERED THE SQL BLOCK ');
570 		fp := 	utl_file.fopen(location,file_name,'w');
571 		utl_file.put_line(fp,l_sql_insert_stm);
572 		utl_file.put_line(fp,l_sql_from);
573 		utl_file.put_line(fp,l_sql_where);
574 		utl_file.put_line(fp,l_sql_group_by);
575 		utl_file.fclose(fp);
576 exception
577 when 	UTL_FILE.INVALID_MODE then
578 	 	-- dbms_output.put_line('INVALID MODE EXCEPTION');
579 when 	UTL_FILE.INVALID_PATH then
580 		-- dbms_output.put_line('INVALID PATH EXCEPTION');
581 end;
582 */
583 
584 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_insert_stm, 1, 150));
585 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_insert_stm, 151, 150));
586 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_insert_stm, 300, 150));
587 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_from, 1, 150));
588 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_from, 151, 150));
589 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 1, 150));
590 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 151, 150));
591 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 300, 150));
592 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 451, 150));
593 -- dbms_OUTPUT.PUT_LINE(l_sql_group_by);
594 -- dbms_OUTPUT.PUT_LINE(l_sql_order_by);
595 
596 
597 
598 
599 /******************/
600 
601 -- dbms_output.put_line('COMPLETED THE SQL STATEMENT ');
602 
603 if (p_view_by = 'PER') THEN
604 EXECUTE IMMEDIATE l_sql_stmt
605     USING
606      p_start_date,
607      p_end_date,
608      p_campaign_id,
609      p_media_id,
610      p_channel_id,
611      p_sales_channel_code,
612      p_market_segment_id,
613      p_interest_type_id,
614      p_primary_interest_code_id,
615      p_secondary_interest_code_id,
616      p_geography_code,
617      p_period_type;
618 ELSE
619 EXECUTE IMMEDIATE l_sql_stmt
620     USING
621      p_start_date,
622      p_end_date,
623      p_campaign_id,
624      p_media_id,
625      p_channel_id,
626      p_sales_channel_code,
627      p_market_segment_id,
628      p_interest_type_id,
629      p_primary_interest_code_id,
630      p_secondary_interest_code_id,
631      p_geography_code;
635 --    dbms_output.put_line ( 'Number of rows inserted in temp table IS : ' || v_num_rows_inserted );
632 END IF;
633 
634    v_num_rows_inserted := SQL%ROWCOUNT;
636 
637 END   BIM_CMP_PERF_POPULATE ;
638 
639 PROCEDURE   BIM_CMP_PERF_SUM_POPULATE
640          (
641             p_period_type                 in  varchar2  DEFAULT NULL,
642             p_all_value				      in  varchar2  DEFAULT 'ALL',
643             p_start_date                  in  date      DEFAULT NULL,
644             p_end_date                    in  date      DEFAULT NULL,
645             p_campaign_type_id            in  varchar2  DEFAULT NULL,
646             p_campaign_status_id          in  number    DEFAULT NULL,
647             p_media_id                    in  number    DEFAULT NULL,
648             p_channel_id                  in  varchar2  DEFAULT NULL,
649             p_sales_channel_code          in  varchar2  DEFAULT NULL,
650             p_market_segment_id           in  number    DEFAULT NULL,
651             p_interest_type_id            in  number    DEFAULT NULL,
652             p_primary_interest_code_id    in  number    DEFAULT NULL,
653             p_secondary_interest_code_id  in  number    DEFAULT NULL,
654             p_geography_code              in  varchar2  DEFAULT NULL,
655             p_view_by                     in  varchar2  DEFAULT NULL
656          )  IS
657 
658 v_num_rows_inserted  	integer;
659 v_num_rows_updated   	integer;
660 
661 l_view_by            	varchar2(50);
662 l_sql_from			varchar2(5000);
663 l_sql_where		      varchar2(5000);
664 l_sql_group_by    	varchar2(5000);
665 l_sql_order_by		varchar2(5000);
666 l_sql_insert_stm 		varchar2(5000);
667 l_sql_stmt			varchar2(5000);
668 v_all_name           	varchar2(80);
669 
670 BEGIN
671 
672 /***************/
673 
674 l_sql_insert_stm := 'INSERT INTO bim_camp_acqu_summ_temp (measure1, measure2, subject_name, view_by_name)';
675 
676 l_sql_insert_stm := l_sql_insert_stm
677                  || ' SELECT ' ;
678 
679 l_sql_insert_stm := l_sql_insert_stm
680                  || ' count(distinct(a.lead_id)), ';
681 
682 l_sql_insert_stm := l_sql_insert_stm
683                  || ' round(decode(count(distinct(a.lead_id)),0,0,sum(a.initiated_revenue)/count(distinct(a.lead_id))),2), :p_all_value ,';
684 
685 l_sql_where:= l_sql_where||' where a.period_start_date   >= :p_start_date and a.period_end_date <= :p_end_date';
686 /***************/
687 
688 /* l_sql_from := ' from  bim_cmpgn_perf_summ a,bim_dimv_prod_lov d '; */
689 
690 
691 /***************/
692 
693 IF 	p_campaign_status_id IS NULL THEN
694 	l_sql_where:= l_sql_where||' and :p_campaign_status_id IS NULL' ;
695 ELSE
696 	l_sql_where:= l_sql_where|| ' and parent_campaign_status_id = :p_campaign_status_id';
697 END IF;
698 
699 IF 	p_campaign_type_id IS NULL THEN
700 	l_sql_where:= l_sql_where|| ' and :p_campaign_type_id  IS NULL';
701 ELSE
702 	l_sql_where:= l_sql_where|| ' and parent_campaign_type = :p_campaign_type_id';
703 END IF;
704 
705 /***************/
706 
707 IF 	p_media_id IS NULL THEN
708 	l_sql_where:= l_sql_where|| ' and :p_media_id IS NULL ';
709 ELSE
710 	l_sql_where:= l_sql_where|| ' and a.media_id = :p_media_id';
711 END IF;
712 
713 /***************/
714 
715 IF 	p_channel_id IS  NULL THEN
716 	l_sql_where:= l_sql_where|| ' and :p_channel_id IS NULL ';
717 ELSE
718 	l_sql_where:= l_sql_where|| ' and  a.channel_id = :p_channel_id';
719 END IF;
720 
721 /***************/
722 
723 IF 	p_sales_channel_code IS NULL THEN
724 	l_sql_where:= l_sql_where|| ' and :p_sales_channel_code IS NULL ';
725 ELSE
726 	l_sql_where:= l_sql_where|| ' and a.sales_channel_code = :p_sales_channel_code';
727 END IF;
728 
729 /***************/
730 
731 IF 	p_market_segment_id IS NULL
732 THEN
733 	l_sql_where:= l_sql_where|| ' and :p_market_segment_id IS NULL ';
734 ELSE
735 	l_sql_where:= l_sql_where|| ' and a.market_segment_id   = :p_market_segment_id';
736 END IF;
737 
738 /***************/
739 
740 IF 	p_interest_type_id IS NULL THEN
741 	l_sql_where:= l_sql_where|| ' and :p_interest_type_id IS NULL ';
742 ELSE
743 	l_sql_where:= l_sql_where|| ' and a.interest_type_id = :p_interest_type_id ';
744 END IF;
745 
746 IF 	p_primary_interest_code_id IS NULL THEN
747 	l_sql_where:= l_sql_where||' and :p_primary_interest_code_id IS NULL ';
748 ELSE
749 	l_sql_where:= l_sql_where|| ' and a.primary_interest_code_id = :p_primary_interest_code_id ';
750 END IF;
751 
752 IF 	p_secondary_interest_code_id IS NULL THEN
753 	l_sql_where:= l_sql_where||' and :p_secondary_interest_code_id IS NULL ';
754 ELSE
755 	l_sql_where:= l_sql_where||' and a.secondary_interest_code_id = :p_secondary_interest_code_id ';
756 END IF;
757 
758 /***************/
759 
760 IF 	p_geography_code IS NULL THEN
761 	l_sql_where:= l_sql_where|| ' and :p_geography_code IS NULL ';
762 ELSE
763 	l_sql_where:= l_sql_where|| ' and bill_to_geography_code like :p_geography_code';
764 END IF;
765 
766 IF P_VIEW_BY = 'PER' THEN
767     IF p_period_type IS NOT NULL
768     THEN
769      l_sql_where := l_sql_where || ' and d.PERIOD_TYPE like :p_period_type';
770     ELSE
774 /***************/
771      l_sql_where := l_sql_where || ' and :p_period_type IS NULL';
772     end if;
773 END IF;
775 
776 IF 	p_view_by = 'MCH' THEN
777 	l_sql_insert_stm := l_sql_insert_stm || ' c.channel_name ';
778 	l_sql_from	:= l_sql_from|| ' from bim_cmpgn_perf_summ   a ,bim_campaigns_denorm  b ,bim_dimv_media_channels c, dual ' ;
779 	l_sql_where	:=  l_sql_where|| ' and a.campaign_id = b.campaign_id and a.media_id = c.media_id and a.channel_id = c.channel_id and b.level_from_parent = 0 ';
780 	l_sql_group_by 	:= l_sql_group_by || ' GROUP BY  :p_all_value,c.channel_name ';
781     l_sql_order_by := ' Order by 3,2 desc';
782 ELSIF 	p_view_by = 'ACT' THEN
783 	l_sql_insert_stm := l_sql_insert_stm || ' d.media_name ';
784 	l_sql_from	:= l_sql_from|| ' from bim_cmpgn_perf_summ   a, bim_campaigns_denorm  b , bim_dimv_media d, dual  ' ;
785 	l_sql_where:=  l_sql_where|| ' and a.campaign_id = b.campaign_id and a.media_id = d.media_id and b.level_from_parent = 0 ';
786 	l_sql_group_by := l_sql_group_by || ' GROUP BY  :p_all_value , d.media_name ';
787     l_sql_order_by := ' Order by 3,2 desc';
788 ELSIF 	p_view_by = 'MSG' THEN
789 	l_sql_insert_stm := l_sql_insert_stm || ' d.market_segment_name ';
790 	l_sql_from:= l_sql_from|| ' from 	bim_cmpgn_perf_summ   a ,bim_campaigns_denorm  b, bim_dimv_market_sgmts d, dual ' ;
791 	l_sql_where:=  l_sql_where|| ' and a.campaign_id = b.campaign_id and a.market_segment_id = d.market_segment_id and b.level_from_parent = 0 ';
792 	l_sql_group_by := l_sql_group_by || ' GROUP BY  :p_all_value , d.market_segment_name ';
793     l_sql_order_by := ' Order by 3,2 desc';
794 ELSIF 	p_view_by = 'SCH' THEN
795 	l_sql_insert_stm := l_sql_insert_stm || ' d.sales_channel_name ';
796 	l_sql_from:= l_sql_from|| ' from 	bim_cmpgn_perf_summ  a ,bim_campaigns_denorm  b, bim_dimv_sales_channels d, dual ' ;
797 	l_sql_where:=  l_sql_where||' and a.campaign_id = b.campaign_id and a.sales_channel_code = d.sales_channel_code and b.level_from_parent = 0 ';
798 	l_sql_group_by := l_sql_group_by || ' GROUP BY  :p_all_value , d.sales_channel_name ';
799     l_sql_order_by := ' Order by 3,2 desc';
800 ELSIF p_view_by = 'PER' THEN
801 	l_sql_insert_stm := l_sql_insert_stm || '  d.period_name ';
802 	l_sql_from:= l_sql_from|| ' from bim_cmpgn_perf_summ  a, bim_campaigns_denorm b, bim_dimv_periods d, dual ' ;
803 	l_sql_where:=  l_sql_where|| ' and a.campaign_id = b.campaign_id and a.period_start_date >= d.start_date and  a.period_end_date <= d.end_date and d.period_set_name = jtf_bis_util.ProfileValue(''CRMBIS:PERIOD_SET_NAME'') ';
804     l_sql_group_by := l_sql_group_by || ' GROUP BY :p_all_value , d.period_name, d.start_date ';
805     l_sql_order_by := ' Order by d.start_date';
806 END IF;
807 
808 /***************/
809 
810 l_sql_stmt := l_sql_insert_stm ||l_sql_from || l_sql_where || l_sql_group_by || l_sql_order_by;
811 
812 /**************/
813 
814 /*
815 declare
816 fp  		utl_file.file_type;
817 location 	varchar2(100) := '/sqlcom/log/dom1151';
818 file_name	varchar2(50) := 'bpp.sql';
819 begin
820 		-- dbms_output.put_line('ENTERED THE SQL BLOCK ');
821 		fp := 	utl_file.fopen(location,file_name,'w');
822 		utl_file.put_line(fp,l_sql_insert_stm);
823 		utl_file.put_line(fp,l_sql_from);
824 		utl_file.put_line(fp,l_sql_where);
825 		utl_file.put_line(fp,l_sql_group_by);
826 		utl_file.fclose(fp);
827 exception
828 when 	UTL_FILE.INVALID_MODE then
829 	 	-- dbms_output.put_line('INVALID MODE EXCEPTION');
830 when 	UTL_FILE.INVALID_PATH then
831 		-- dbms_output.put_line('INVALID PATH EXCEPTION');
832 end;
833 */
834 
835 /******************/
836 delete bim_camp_acqu_summ_temp;
837 
838 -- dbms_output.put_line('COMPLETED THE SQL STATEMENT ');
839 
840 IF (p_view_by = 'PER') THEN
841 EXECUTE IMMEDIATE l_sql_stmt
842     USING
843      p_all_value,
844      p_start_date,
845      p_end_date,
846      p_campaign_status_id,
847      p_campaign_type_id,
848      p_media_id,
849      p_channel_id,
850      p_sales_channel_code,
851      p_market_segment_id,
852      p_interest_type_id,
853      p_primary_interest_code_id,
854      p_secondary_interest_code_id,
855      p_geography_code,
856      p_period_type,
857      p_all_value;
858 ELSE
859 EXECUTE IMMEDIATE l_sql_stmt
860     USING
861      p_all_value,
862      p_start_date,
863      p_end_date,
864      p_campaign_status_id,
865      p_campaign_type_id,
866      p_media_id,
867      p_channel_id,
868      p_sales_channel_code,
869      p_market_segment_id,
870      p_interest_type_id,
871      p_primary_interest_code_id,
872      p_secondary_interest_code_id,
873      p_geography_code,
874      p_all_value;
875 END IF;
876 
877    v_num_rows_inserted := SQL%ROWCOUNT;
878 --   -- dbms_output.put_line ( 'Number of rows inserted in temp table IS : ' || v_num_rows_inserted );
879 
880 END  BIM_CMP_PERF_SUM_POPULATE ;
881 
882 
883 PROCEDURE BIM_CMP_RESP_POPULATE
884 
885          (
886             p_start_date                  in date      default null,
887             p_end_date                    in date      default null,
888             p_drill_down                  in varchar2  default null,
889             p_media_id                    in number    default null,
890             p_channel_id                  in varchar2  default null,
891             p_market_segment_id           in number    default null,
895             p_campaign_type_id            in varchar2  default null,
892             p_geography_code              in varchar2  default null,
893             p_campaign_id                 in number    default null,
894             p_campaign_status_id          in number    default null,
896             p_period_type                 in varchar2  default null,
897             p_view_by                     in varchar2  default null
898          ) IS
899 
900 
901 
902 l_sql_insert_stm            varchar2(10000);
903 l_sql_from                  varchar2(10000);
904 l_sql_where                 varchar2(30000);
905 l_sql_group_by              varchar2(2000);
906 l_sql_order_by              varchar2(2000);
907 l_jtf_bis_util              varchar2(2000);
908 
909 
910 
911 
912 begin
913 
914 l_jtf_bis_util := 'jtf_bis_util.profileValue(''CRMBIS:PERIOD_SET_NAME'')';
915 
916 l_sql_insert_stm := 'INSERT INTO bim_camp_acqu_summ_temp (measure1, measure2, subject_name, view_by_name)';
917 
918 l_sql_insert_stm := l_sql_insert_stm
919                  || ' SELECT ' ;
920 l_sql_insert_stm := l_sql_insert_stm || ' Sum(nvl(BSCR.num_responded,0)),';
921 l_sql_insert_stm := l_sql_insert_stm || ' decode(sum(BSCR.NUM_TARGETED),0,0,( SUM(BSCR.NUM_RESPONDED) / SUM(BSCR.NUM_TARGETED) ) * 100), ';
922 
923 l_sql_from := ' FROM BIM_CMPGN_RESP_SUMM BSCR,  bim_campaigns_denorm denorm, ';
924 
925 l_sql_where := ' WHERE BSCR.PERIOD_start_date >= :p_start_date And BSCR.PERIOD_end_date <= :p_end_date';
926 l_sql_where := l_sql_where || ' AND BSCR.campaign_id = denorm.campaign_id and denorm.parent_campaign_id = BDC.campaign_id ';
927 
928 
929 IF p_campaign_id IS NULL then
930     l_sql_where := l_sql_where || ' and :p_campaign_id is null ';
931 ELSIF p_drill_down = 'Y' then
932     l_sql_where := l_sql_where || ' and NVL(DENORM.parent_campaign_id, -999) = :p_campaign_id';
933 ELSE l_sql_where := l_sql_where || ' and DENORM.campaign_id = :p_campaign_id ';
934 END IF;
935 
936 
937 IF p_campaign_status_id IS NOT NULL
938 THEN
939     l_sql_where := l_sql_where || ' And denorm.parent_campaign_status_id = :p_campaign_status_id';
940 ELSE
941     l_sql_where := l_sql_where || ' and :p_campaign_status_id IS NULL';
942 END IF;
943 
944 IF p_campaign_type_id IS NOT NULL
945 THEN
946     l_sql_where := l_sql_where || ' And  denorm.Parent_Campaign_type = :p_campaign_type_id)';
947 ELSE
948     l_sql_where := l_sql_where || ' and :p_campaign_type_id IS NULL ';
949 END IF;
950 
951 IF P_media_id IS NOT NULL
952 THEN
953     l_sql_where := l_sql_where || ' and BSCR.Media_id = :p_media_id';
954 ELSE
955     l_sql_where := l_sql_where || ' and :p_media_id IS NULL';
956 END IF;
957 
958 IF p_channel_id IS NOT NULL
959 THEN
960     l_sql_where := l_sql_where || ' and BSCR.channel_id = :p_channel_id';
961 ELSE
962     l_sql_where := l_sql_where || ' and :p_channel_id IS NULL';
963 END IF;
964 
965 IF p_market_segment_id IS NOT NULL
966 THEN
967     l_sql_where := l_sql_where || ' and BSCR.market_segment_id = :p_market_segment_id';
968 ELSE
969     l_sql_where := l_sql_where || ' and :p_market_segment_id IS NULL';
970 END IF;
971 
972 IF p_geography_code IS NOT NULL
973 THEN
974     l_sql_where := l_sql_where || ' AND BSCR.geography_code like :p_geography_code';
975 ELSE
976     l_sql_where := l_sql_where || ' and :p_geography_code IS NULL';
977 END IF;
978 
979 
980 
981 IF p_view_by = 'MSG'
982 THEN
983    l_sql_insert_stm := l_sql_insert_stm || ' BDC.campaign_name,BDMS.market_segment_name  ';
984    l_sql_from := l_sql_from || '  bim_dimv_campaigns BDC, BIM_DIMV_MARKET_SGMTS BDMS, dual ';
985    l_sql_where := l_sql_where || ' and BSCR.MARKET_SEGMENT_ID = BDMS.MARKET_SEGMENT_ID ';
986    l_sql_group_by := ' GROUP BY BDC.campaign_name, BDMS.market_segment_name ';
987    l_sql_order_by := ' Order by 3,2 desc';
988 ELSIF
989    p_view_by = 'PER'
990 THEN
991    l_sql_insert_stm := l_sql_insert_stm || ' BDC.campaign_name,bdp.period_name ';
992    l_sql_from := l_sql_from || ' bim_dimv_periods bdp, bim_dimv_campaigns BDC,dual ';
993    l_sql_where := l_sql_where || ' and BSCR.period_start_date >= BDP.start_date and  BSCR.period_end_date <= BDP.end_date and BDP.period_set_name = jtf_bis_util.ProfileValue(''CRMBIS:PERIOD_SET_NAME'')';
994 
995    IF p_period_type IS NOT NULL
996    THEN
997       l_sql_where := l_sql_where || ' AND bdp.PERIOD_TYPE like :p_period_type';
998    ELSE
999       l_sql_where := l_sql_where || ' and :p_period_type IS NULL';
1000    END IF;
1001 
1002    l_sql_group_by := ' GROUP BY BDC.campaign_name, bdp.period_name, bdp.start_date ';
1003    l_sql_order_by := ' order by bdc.campaign_name, bdp.start_date';
1004 
1005 ELSIF
1006    p_view_by = 'ACT'
1007 THEN
1008    l_sql_insert_stm := l_sql_insert_stm || ' BDC.campaign_name,BDMC.media_name ';
1009    l_sql_from := l_sql_from || ' bim_dimv_campaigns BDC, bim_dimv_media_channels bdmc, dual ';
1010    l_sql_where := l_sql_where || ' and BSCR.media_id = BDMC.media_id and BSCR.channel_id = BDMC.channel_id ';
1011    l_sql_group_by := ' group by BDC.campaign_name, BDMC.media_name ';
1012    l_sql_order_by := ' order by 3,2 desc ';
1013 ELSIF
1014    p_view_by = 'MCH'
1015 THEN
1016    l_sql_insert_stm := l_sql_insert_stm || ' BDC.Campaign_name,BMC.Channel_name ';
1017    l_sql_from := l_sql_from || ' bim_dimv_campaigns BDC, bim_dimv_media_channels BMC, dual ';
1018    l_sql_where := l_sql_where || ' and BSCR.media_id = BMC.media_id and BSCR.channel_id = BMC.channel_id ';
1019    l_sql_group_by := ' group by BDC.campaign_name,BMC.channel_name ';
1020    l_sql_order_by := ' order by 3,2 desc ';
1021 END IF;
1022 
1023 
1024 
1025 
1026 
1027 
1028 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_insert_stm, 1, 150));
1029 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_insert_stm, 151, 150));
1030 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_insert_stm, 300, 150));
1031 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_from, 1, 150));
1032 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_from, 151, 150));
1033 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 1, 150));
1034 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 151, 150));
1035 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 300, 150));
1036 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 451, 150));
1037 -- dbms_OUTPUT.PUT_LINE(l_sql_group_by);
1038 -- dbms_OUTPUT.PUT_LINE(l_sql_order_by);
1039 
1040 
1041 /*
1042 declare
1043 fp  		utl_file.file_type;
1044 location 	varchar2(100) := '/sqlcom/log/dom1151';
1045 file_name	varchar2(50) := 'bpp.sql';
1046 begin
1047 		-- dbms_output.put_line('ENTERED THE SQL BLOCK ');
1048 		fp := 	utl_file.fopen(location,file_name,'w');
1049 		utl_file.put_line(fp,l_sql_insert_stm);
1050 		utl_file.put_line(fp,l_sql_from);
1051 		utl_file.put_line(fp,l_sql_where);
1052 		utl_file.put_line(fp,l_sql_group_by);
1053 		utl_file.fclose(fp);
1054 exception
1055 when 	UTL_FILE.INVALID_MODE then
1056 	 	-- dbms_output.put_line('INVALID MODE EXCEPTION');
1057 when 	UTL_FILE.INVALID_PATH then
1058 		-- dbms_output.put_line('INVALID PATH EXCEPTION');
1059 end;
1060 
1061 */
1062 
1063 
1064 if p_view_by = 'PER' then
1065 EXECUTE IMMEDIATE l_sql_insert_stm ||l_sql_from || l_sql_where || l_sql_group_by || l_sql_order_by
1066 Using
1067 p_start_date,
1068 p_end_date,
1069 p_campaign_id,
1070 p_campaign_status_id,
1071 p_campaign_type_id,
1072 p_media_id,
1073 p_channel_id,
1074 p_market_segment_id,
1075 p_geography_code,
1076 p_period_type;
1077 
1078 
1082 p_start_date,
1079 else
1080 EXECUTE IMMEDIATE l_sql_insert_stm ||l_sql_from || l_sql_where || l_sql_group_by || l_sql_order_by
1081 Using
1083 p_end_date,
1084 p_campaign_id,
1085 p_campaign_status_id,
1086 p_campaign_type_id,
1087 p_media_id,
1088 p_channel_id,
1089 p_market_segment_id,
1090 p_geography_code;
1091 
1092 end if;
1093 
1094 
1095 end BIM_CMP_RESP_POPULATE;
1096 
1097 
1098  PROCEDURE BIM_CMP_REV_POPULATE
1099          (
1100             p_campaign_id           in number     DEFAULT NULL,
1104 l_sql_insert_stm            varchar2(10000);
1101             p_drill_down			in  varchar2  DEFAULT 'Y'
1102          )  IS
1103 
1105 l_sql_from                  varchar2(10000);
1106 l_sql_where                 varchar2(30000);
1107 l_sql_group_by              varchar2(2000);
1108 l_sql_order_by              varchar2(2000);
1109 l_sql_outer_where           varchar2(2000);
1110 l_view_by                   varchar2(2000);
1111 l_subject_name              varchar2(2000);
1112 
1113 begin
1114 l_sql_insert_stm := 'INSERT INTO bim_camp_acqu_summ_temp (measure1, measure2, measure3, subject_name )';
1115 
1116 l_sql_insert_stm := l_sql_insert_stm
1117                  || ' SELECT ' ;
1118 
1119 l_sql_insert_stm := l_sql_insert_stm
1120                  || '  sum(ccost.forecasted_revenue) , ';
1121 
1125 
1122 l_sql_insert_stm := l_sql_insert_stm
1123                  || ' sum(ccost.initiated_revenue) ,';
1124 
1126 l_sql_insert_stm := l_sql_insert_stm
1127                  || ' decode(sum(ccost.initiated_revenue),0,0,((sum(ccost.initiated_revenue)-sum(ccost.forecasted_revenue))/sum(ccost.initiated_revenue))*100) ,';
1128 
1129 l_sql_from := ' FROM BIM_CMPGN_REVCOST_SUMM CCOST, bim_campaigns_denorm denorm  , bim_dimv_campaigns dimv , dual';
1130 
1131 --Build the where clause
1132 
1133 l_sql_where := ' WHERE ccost.campaign_id = denorm.campaign_id and denorm.campaign_id = dimv.campaign_id ';
1134 
1135 
1136 
1137 IF p_campaign_id IS NULL THEN
1138 	l_sql_where:= l_sql_where|| ' and denorm .parent_campaign_id in (select campaign_id from bim_dimv_campaigns where parent_campaign_id is null  and :p_campaign_id is null ) ';
1139 ELSE
1143 
1140 	l_sql_where:= l_sql_where|| ' and denorm.parent_campaign_id in (select campaign_id from bim_dimv_campaigns where parent_campaign_id = :p_campaign_id ) ';
1141 END IF;
1142 
1144 l_sql_insert_stm := l_sql_insert_stm || ' dimv.campaign_name ';
1145 l_sql_group_by := l_sql_group_by || ' GROUP BY dimv.campaign_name ';
1146 
1147 
1148 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_insert_stm, 1, 150));
1149 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_insert_stm, 151, 150));
1150 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_insert_stm, 300, 150));
1151 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_insert_stm, 450, 150));
1152 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_from, 1, 150));
1153 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_from, 151, 150));
1154 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 1, 150));
1155 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 151, 150));
1156 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 300, 150));
1157 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 451, 150));
1158 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 600, 150));
1159 -- dbms_OUTPUT.PUT_LINE(l_sql_group_by);
1163 Using  p_campaign_id ;
1160 -- dbms_OUTPUT.PUT_LINE(l_sql_order_by);
1161 
1162 EXECUTE IMMEDIATE l_sql_insert_stm ||l_sql_from || l_sql_where || l_sql_group_by
1164 
1165 end  BIM_CMP_REV_POPULATE  ;
1166 
1167 
1168 PROCEDURE BIM_CMP_REV_SUM_POPULATE
1169          (
1170             p_all_value                   in varchar    DEFAULT 'ALL',
1171             p_campaign_type_id            in varchar2   DEFAULT NULL,
1172             p_campaign_status_id          in number     DEFAULT NULL
1173          )  IS
1174 
1175 l_sql_insert_stm            varchar2(10000);
1176 l_sql_from                  varchar2(10000);
1177 l_sql_where                 varchar2(30000);
1178 l_sql_group_by              varchar2(2000);
1182 l_subject_name              varchar2(2000);
1179 l_sql_order_by              varchar2(2000);
1180 l_sql_outer_where           varchar2(2000);
1181 l_view_by                   varchar2(2000);
1183 
1184 begin
1185 l_sql_insert_stm := 'INSERT INTO bim_camp_acqu_summ_temp (measure1, measure2, measure3, subject_name )';
1186 
1187 l_sql_insert_stm := l_sql_insert_stm
1188                  || ' SELECT ' ;
1189 
1190 l_sql_insert_stm := l_sql_insert_stm
1191                  || '  sum(ccost.forecasted_revenue) , ';
1192 
1193 l_sql_insert_stm := l_sql_insert_stm
1194                  || ' sum(ccost.initiated_revenue) ,';
1195 
1196 
1197 l_sql_insert_stm := l_sql_insert_stm
1198                  || ' decode(sum(ccost.initiated_revenue),0,0,((sum(ccost.initiated_revenue)-sum(ccost.forecasted_revenue))/sum(ccost.initiated_revenue))*100), :p_all_value';
1199 
1203 
1200 l_sql_from := ' FROM BIM_CMPGN_REVCOST_SUMM CCOST, bim_campaigns_denorm denorm , dual ';
1201 
1202 --Build the where clause
1204 l_sql_where := ' WHERE ccost.campaign_id = denorm.campaign_id AND  denorm.level_from_parent = 0 ';
1205 
1206 IF p_campaign_type_id IS NOT NULL
1207 THEN
1208     l_sql_where := l_sql_where || ' And denorm.parent_campaign_type = :p_campaign_type_id ';
1209 ELSE
1210     l_sql_where := l_sql_where || ' and :p_campaign_type_id IS NULL ';
1211 END IF;
1212 
1213 
1214 IF p_campaign_status_id IS NOT NULL
1215 THEN
1216     l_sql_where := l_sql_where || ' and denorm.parent_campaign_status_id = :p_campaign_status_id ';
1217 ELSE
1221 l_sql_group_by := l_sql_group_by || ' GROUP BY :p_all_value ';
1218     l_sql_where := l_sql_where || ' and :p_campaign_status_id IS NULL ';
1219 END IF;
1220 
1222 l_sql_order_by := l_sql_order_by || ' ORDER BY 3 DESC ' ;
1223 
1224 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_insert_stm, 1, 150));
1225 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_insert_stm, 151, 150));
1226 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_insert_stm, 300, 150));
1227 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_insert_stm, 450, 150));
1228 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_from, 1, 150));
1229 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_from, 151, 150));
1230 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 1, 150));
1231 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 151, 150));
1232 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 300, 150));
1233 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 451, 150));
1234 -- dbms_OUTPUT.PUT_LINE(substr(l_sql_where, 600, 150));
1235 -- dbms_OUTPUT.PUT_LINE(l_sql_group_by);
1236 -- dbms_OUTPUT.PUT_LINE(l_sql_order_by);
1237 
1241 ,p_campaign_type_id
1238 EXECUTE IMMEDIATE l_sql_insert_stm ||l_sql_from || l_sql_where ||l_sql_group_by|| l_sql_order_by
1239 Using
1240 p_all_value
1242 ,p_campaign_status_id
1243 ,p_all_value;
1244 
1248 END BIM_CMP_PKG;
1245 end  BIM_CMP_REV_SUM_POPULATE  ;
1246 
1247