DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKI_DBI_NSCM_TRM_PVT

Source


1 PACKAGE BODY 	OKI_DBI_NSCM_TRM_PVT AS
2 /* $Header: OKIPNTRB.pls 120.4 2005/10/10 04:40:35 kamsharm noship $ */
3 
4 /******************************************************************
5 *  Procedure to return the query for Terminations portlet
6 ******************************************************************/
7 
8   PROCEDURE Get_Terminations_Sql(
9 	p_param			IN  BIS_PMV_PAGE_PARAMETER_TBL,
10 	x_custom_sql		OUT NOCOPY VARCHAR2,
11 	x_custom_output		OUT NOCOPY bis_query_attributes_tbl) IS
12 
13   l_query			VARCHAR2(32767);
14   l_view_by			VARCHAR2(120);
15   l_view_by_col			VARCHAR2(120);
16   l_as_of_date			DATE;
17   l_prev_as_of_date		DATE;
18   l_xtd				VARCHAR2(10);
19   l_comparison_type		VARCHAR2(1);
20   l_period_type			VARCHAR2(10);
21   l_nested_pattern		NUMBER;
22   l_cur_suffix			VARCHAR2(2);
23   l_where_clause		VARCHAR2(2000);
24   l_filter_where		VARCHAR2(240);
25   l_mv				VARCHAR2(2000);
26   l_col_tbl			POA_DBI_UTIL_PKG.Poa_Dbi_Col_Tbl;
27   l_join_tbl			POA_DBI_UTIL_PKG.Poa_Dbi_Join_Tbl;
28   l_to_date_xed			CONSTANT VARCHAR2(3):='XED';
29   l_to_date_xtd			CONSTANT VARCHAR2(3):='XTD';
30   l_to_date_ytd			CONSTANT VARCHAR2(3):='YTD';
31   l_to_date_itd			CONSTANT VARCHAR2(3):='ITD';
32 
33     BEGIN
34 
35     l_comparison_type := 'Y';
36 
37     l_join_tbl := poa_dbi_util_pkg.poa_dbi_join_tbl ();
38     l_col_tbl := poa_dbi_util_pkg.poa_dbi_col_tbl();
39 
40     oki_dbi_util_pvt.process_parameters (
41 		p_param			=> p_param,
42 		p_view_by		=> l_view_by,
43 		p_view_by_col_name	=> l_view_by_col,
44 		p_comparison_type	=> l_comparison_type,
45 		p_xtd			=> l_xtd,
46 		p_as_of_date		=> l_as_of_date,
47 		p_prev_as_of_date	=> l_prev_as_of_date,
48 		p_cur_suffix		=> l_cur_suffix,
49 		p_nested_pattern	=> l_nested_pattern,
50 		p_where_clause		=> l_where_clause,
51 		p_mv			=> l_mv,
52 		p_join_tbl		=> l_join_tbl,
53 		p_period_type		=> l_period_type,
54 		p_trend			=> 'N',
55 		p_func_area		=> 'OKI',
56 		p_version		=> '7.0',
57 		p_role			=> NULL ,
58 		p_mv_set		=> 'SRM_TM_71',
59 		p_rg_where		=> 'Y');
60 
61 
62   l_query := 'select  1 VIEWBYID, ''Hello'' VIEWBY ,''SG Url'' OKI_SALES_GROUP_URL ,
63 ''RUL 2 Url'' OKI_DYNAMIC_URL_1,1 OKI_MEASURE_1  ,2 OKI_PMEASURE_1  ,3 OKI_TMEASURE_1  ,
64 4 OKI_CHANGE_1  ,5 OKI_TCHANGE_1, 6 OKI_KPI_MEASURE_1  ,7 OKI_PKPI_MEASURE_1  ,
65 8 OKI_TKPI_MEASURE_1  ,9 OKI_PTKPI_MEASURE_1, 10 OKI_PERCENT_1  ,11 OKI_TPERCENT_1  ,
66 12 OKI_PERCENT_CHANGE_1  ,13 OKI_MEASURE_2  ,14 OKI_TMEASURE_2  ,15 OKI_KPI_MEASURE_2  ,
67 16 OKI_PKPI_MEASURE_2  ,17 OKI_TKPI_MEASURE_2  ,18 OKI_PTKPI_MEASURE_2  ,19 OKI_PERCENT_2  ,
68 20 OKI_TPERCENT_2   FROM DUAL' ;
69 
70      POA_DBI_UTIL_PKG.Add_Column(
71 		p_col_tbl		=> l_col_tbl,
72 		p_col_name		=> 't_rv_amt_'||l_cur_suffix,
73 		p_alias_name		=> 't_rv',
74 		p_to_date_type		=> l_to_date_xtd);
75 
76 
77      POA_DBI_UTIL_PKG.Add_Column(
78 		p_col_tbl		=> l_col_tbl,
79 		p_col_name		=> 't_bv_amt_' || l_cur_suffix,
80 		p_alias_name		=> 't_bv',
81 		p_to_date_type		=> l_to_date_xtd);
82 
83     l_filter_where := '  ( ABS(oki_measure_1) <> 0 or ABS(oki_pmeasure_1) <> 0 or ABS(oki_measure_2) <> 0)';
84 
85     -- Generate sql query
86     l_query := Get_Terminations_Sel_Clause(l_view_by, l_view_by_col)
87 	|| ' from '
88 	|| POA_DBI_TEMPLATE_PKG.Status_Sql (
89 		p_fact_name 		=> l_mv,
90 		p_where_clause		=> l_where_clause,
91 		p_filter_where		=> l_filter_where,
92 		p_join_tables		=> l_join_tbl,
93 		p_use_windowing		=> 'Y',
94 		p_col_name		=> l_col_tbl,
95 		p_use_grpid		=> 'N',
96 		p_paren_count		=> 6);
97 
98 
99 
100     x_custom_sql := '/* OKI_DBI_SCM_TRM_SUM_RPT */ '||l_query;
101 
102     oki_dbi_util_pvt.get_custom_status_binds (x_custom_output);
103 
104   END get_terminations_sql;
105 
106 /**********************************************************
107 * GET TERMINATIONS SELECT CLAUSE SQL - TERMINATIONS PORTLET
108 **********************************************************/
109 
110   FUNCTION Get_Terminations_Sel_Clause(
111     p_view_by_dim		IN	VARCHAR2,
112     p_view_by_col		IN	VARCHAR2) RETURN VARCHAR2 IS
113 
114 
115     l_sel_clause		VARCHAR2(32767);
116     l_terminated_url		VARCHAR2(300);
117     l_viewby_select		VARCHAR2(32767);
118     l_url_select		VARCHAR2(32767);
119 
120   BEGIN
121 
122 
123     l_viewby_select := OKI_DBI_UTIL_PVT.Get_Viewby_Select_Clause(p_view_by_dim, 'SRM', '7.0');
124 
125     -- when view by is Salesrep OKI_DBI_SCM_ACT_DTL_RPT
126 
127     l_terminated_url := '''pFunctionName=OKI_DBI_SCM_TRM_DTL_RPT&VIEW_BY_NAME=VIEW_BY_ID&pParamIds=Y''';
128 
129     l_viewby_select := l_viewby_select||', OKI_SALES_GROUP_URL, OKI_DYNAMIC_URL_1, OKI_MEASURE_1,
130  OKI_PMEASURE_1, OKI_TMEASURE_1, OKI_CHANGE_1, OKI_TCHANGE_1, OKI_KPI_MEASURE_1, OKI_PKPI_MEASURE_1,
131  OKI_TKPI_MEASURE_1, OKI_PTKPI_MEASURE_1, OKI_PERCENT_1, OKI_TPERCENT_1, OKI_PERCENT_CHANGE_1,
132  OKI_MEASURE_2, OKI_TMEASURE_2, OKI_KPI_MEASURE_2, OKI_PKPI_MEASURE_2, OKI_TKPI_MEASURE_2,
133  OKI_PTKPI_MEASURE_2, OKI_PERCENT_2, OKI_TPERCENT_2
134      FROM (SELECT rank() over (&ORDER_BY_CLAUSE NULLS LAST , '||p_view_by_col||') - 1 rnk ,
135 '||p_view_by_col||', OKI_SALES_GROUP_URL, OKI_DYNAMIC_URL_1, OKI_MEASURE_1, OKI_PMEASURE_1,
136  OKI_TMEASURE_1, OKI_CHANGE_1, OKI_TCHANGE_1, OKI_KPI_MEASURE_1, OKI_PKPI_MEASURE_1,
137 OKI_TKPI_MEASURE_1, OKI_PTKPI_MEASURE_1, OKI_PERCENT_1, OKI_TPERCENT_1, OKI_PERCENT_CHANGE_1,
138  OKI_MEASURE_2, OKI_TMEASURE_2, OKI_KPI_MEASURE_2, OKI_PKPI_MEASURE_2, OKI_TKPI_MEASURE_2,
139  OKI_PTKPI_MEASURE_2, OKI_PERCENT_2, OKI_TPERCENT_2
140        FROM ( ';
141 
142     IF (p_view_by_dim = 'ORGANIZATION+JTF_ORG_SALES_GROUP')
143       THEN l_url_select := 'SELECT decode(resource_id, -999,
144 ''pFunctionName=OKI_DBI_SCM_TRM_SUM_RPT&VIEW_BY_NAME=VIEW_BY_ID&pParamIds=Y&VIEW_BY=ORGANIZATION+JTF_ORG_SALES_GROUP'', '''') OKI_SALES_GROUP_URL,
145  decode(resource_id, -999, '''',
146  decode( rg_id, -1, '''', '||l_terminated_url||')) OKI_DYNAMIC_URL_1 ';
147     ELSIF (p_view_by_dim IN('ITEM+ENI_ITEM','OKI_STATUS+TERM_REASON'))
148       THEN l_url_select := 'SELECT  ''''  OKI_SALES_GROUP_URL, '||l_terminated_url||' OKI_DYNAMIC_URL_1';
149       ELSE l_url_select := 'SELECT '''' OKI_SALES_GROUP_URL, '''' OKI_DYNAMIC_URL_1';
150     END IF;
151 
152 
153       l_sel_clause := l_viewby_select||l_url_select||
154 	  -- AK Attribute naming
155 	  ', '||p_view_by_col||
156 	  ', oset20.c_t_rv	OKI_MEASURE_1'||
157 	  ', oset20.p_t_rv	OKI_PMEASURE_1'||
158 	  ', oset20.c_t_rv_tot	OKI_TMEASURE_1'||
159 	  ', oset20.c_t_rv_chg	OKI_CHANGE_1'||
160 	  ', oset20.c_t_rv_chg_tot	OKI_TCHANGE_1'||
161 	  ', oset20.c_t_rv	OKI_KPI_MEASURE_1'||
162 	  ', oset20.p_t_rv	OKI_PKPI_MEASURE_1'||
163 	  ', oset20.c_t_rv_tot	OKI_TKPI_MEASURE_1'||
164 	  ', oset20.p_t_rv_tot	OKI_PTKPI_MEASURE_1'||
165 	  ', oset20.c_t_rv_pot	OKI_PERCENT_1'||
166 	  ', oset20.c_t_rv_pot_tot	OKI_TPERCENT_1'||
167 	  ', '||OKI_DBI_UTIL_PVT.Change_Clause('oset20.c_t_rv_pot','oset20.p_t_rv_pot','P')||'	OKI_PERCENT_CHANGE_1'||
168 	  ', oset20.c_t_bv	OKI_MEASURE_2'||
169 	  ', oset20.c_t_bv_tot	OKI_TMEASURE_2'||
170 	  ', oset20.c_t_bv	OKI_KPI_MEASURE_2'||
171 	  ', oset20.p_t_bv	OKI_PKPI_MEASURE_2'||
172 	  ', oset20.c_t_bv_tot	OKI_TKPI_MEASURE_2'||
173 	  ', oset20.p_t_bv_tot	OKI_PTKPI_MEASURE_2'||
174 	  ', oset20.c_t_bv_pot	OKI_PERCENT_2'||
175 	  ', oset20.c_t_bv_pot_tot	OKI_TPERCENT_2'||
176 	  '   from ( select'||
177 	  -- Change Calculation
178 	  ' '||p_view_by_col||
179 	  ', oset15.c_t_rv	C_T_RV'||
180 	  ', oset15.p_t_rv	P_T_RV'||
181 	  ', '||OKI_DBI_UTIL_PVT.Change_Clause('oset15.c_t_rv','oset15.p_t_rv','NP') || '	C_T_RV_CHG'||
182 	  ', '||POA_DBI_UTIL_PKG.Rate_Clause('oset15.c_t_rv','oset15.c_t_rv_tot') || '	C_T_RV_POT'||
183 	  ', '||POA_DBI_UTIL_PKG.Rate_Clause('oset15.p_t_rv','oset15.p_t_rv_tot') || '	P_T_RV_POT'||
184 	  ', oset15.c_t_rv_tot	C_T_RV_TOT'||
185 	  ', oset15.p_t_rv_tot	P_T_RV_TOT'||
186 	  ', '||OKI_DBI_UTIL_PVT.Change_Clause('oset15.c_t_rv_tot','oset15.p_t_rv_tot','NP') || '	C_T_RV_CHG_TOT'||
187 	  ', '||poa_dbi_util_pkg.Rate_Clause('oset15.c_t_rv_tot','oset15.c_t_rv_tot')||'	C_T_RV_POT_TOT'||
188 	  ', oset15.c_t_bv	C_T_BV'||
189 	  ', oset15.p_t_bv	P_T_BV'||
190 	  ', '||POA_DBI_UTIL_PKG.Rate_Clause('oset15.c_t_rv', (OKI_DBI_UTIL_PVT.add_measures('oset15.c_t_rv','oset15.c_t_bv')))||'	C_T_BV_POT'||
191 	  ', oset15.c_t_bv_tot	C_T_BV_TOT'||
192 	  ', oset15.p_t_bv_tot	P_T_BV_TOT'||
193 	  ', '||POA_DBI_UTIL_PKG.Rate_Clause('oset15.c_t_rv_tot', (OKI_DBI_UTIL_PVT.add_measures('oset15.c_t_rv_tot','oset15.c_t_bv_tot')))||'	C_T_BV_POT_TOT'||
194 	  '   from (select '||
195 --marker
196 		-- Calculated Measures
197 		p_view_by_col ||
198 		', nvl(oset10.c_t_rv,0)	C_T_RV'||
199 		', nvl(oset10.p_t_rv,0)	P_T_RV'||
200 		', nvl(oset10.c_t_bv,0)	C_T_BV'||
201 		', nvl(oset10.p_t_bv,0)	P_T_BV'||
202 		', nvl(oset10.c_t_rv_tot,0)	C_T_RV_TOT'||
203 		', nvl(oset10.p_t_rv_tot,0)	P_T_RV_TOT'||
204 		', nvl(oset10.c_t_bv_tot,0)	C_T_BV_TOT'||
205 		', nvl(oset10.p_t_bv_tot,0)	P_T_BV_TOT'||
206 		' from '||
207 /*??*/
208 		'   ( select oset05.'||p_view_by_col||
209 		', nvl(oset05.c_t_rv,0)	C_T_RV'||
210 		', nvl(oset05.p_t_rv,0)	P_T_RV'||
211 		', nvl(oset05.c_t_bv,0)	C_T_BV'||
212 		', nvl(oset05.p_t_bv,0)	P_T_BV'||
213 		', nvl(oset05.c_t_rv_total,0)	C_T_RV_TOT'||
214 		', nvl(oset05.p_t_rv_total,0)	P_T_RV_TOT'||
215 		', nvl(oset05.c_t_bv_total,0)	C_T_BV_TOT'||
216 		', nvl(oset05.p_t_bv_total,0)	P_T_BV_TOT';
217 
218     RETURN l_sel_clause;
219   END get_terminations_sel_clause;
220 
221 
222 
223 /******************************************************************
224 *  Procedure to return the query for Terminations Detail report
225 ******************************************************************/
226 
227   FUNCTION Get_Trm_Dtl_Sel_Clause(
228 		p_cur_suffix		IN	VARCHAR2,
229 		p_period_type_code	IN	VARCHAR2) RETURN VARCHAR2 IS
230 
231   l_query	VARCHAR2(10000);
232 
233   BEGIN
234 
235 -- Generate sql query
236     l_query := '
237 SELECT	k.complete_k_number			OKI_ATTRIBUTE_1,
238 	cust.value				OKI_ATTRIBUTE_2,
239         DECODE(fact.resource_id,-1,&UNASSIGNED,rsex.resource_name) oki_attribute_3,
240 	v.value				OKI_ATTRIBUTE_4,
241 	to_char(k.start_date)			OKI_DATE_1,
242 	to_char(fact.oki_date_2)		OKI_DATE_2,
243 	to_char(fact.oki_date_3)		OKI_DATE_3,
244 	k.price_nego_'||p_cur_suffix||'         OKI_MEASURE_1,
245 	fact.oki_measure_2			OKI_MEASURE_2,
246 	fact.t_t_bv				OKI_TMEASURE_2,
247 	fact.oki_measure_3			OKI_MEASURE_3,
248 	fact.t_t_rv				OKI_TMEASURE_3,
249 	fact.chr_id                             OKI_ATTRIBUTE_6
250   FROM (SELECT *
251 	  FROM (SELECT	rank() over (&ORDER_BY_CLAUSE NULLS LAST, chr_id, trn_code) - 1	RNK,
252 			chr_id,
253 			trn_code,
254 			customer_party_id,
255 			resource_id,
256 			oki_date_2,
257 			oki_date_3,
258 			oki_measure_2,
259 			t_t_bv,
260 			oki_measure_3,
261 			t_t_rv
262 		  FROM (SELECT	oset5.chr_id			CHR_ID,
263 				oset5.trn_code			TRN_CODE,
264 				oset5.customer_party_id		CUSTOMER_PARTY_ID,
265 				oset5.resource_id		RESOURCE_ID,
266 				oset5.date_terminated		OKI_DATE_2,
267 				oset5.termination_entry_date    OKI_DATE_3,
268 				oset5.t_bv			OKI_MEASURE_2,
269 				oset5.t_bv_total			T_T_BV,
270 				oset5.t_rv			OKI_MEASURE_3,
271 				oset5.t_rv_total			T_T_RV
272 			   FROM	(SELECT fact.chr_id,
273 					fact.trn_code,
274 					fact.customer_party_id,
275 					fact.resource_id,
276 					min(fact.date_terminated) date_terminated,
277 					min(fact.termination_entry_date) termination_entry_date';
278 
279      RETURN l_query;
280   END Get_Trm_Dtl_Sel_Clause;
281 
282   PROCEDURE Get_Terminations_Detail_Sql(
283 		p_param		IN		BIS_PMV_PAGE_PARAMETER_TBL,
284 		x_custom_sql	OUT NOCOPY 	VARCHAR2,
285 		x_custom_output	OUT NOCOPY 	BIS_QUERY_ATTRIBUTES_TBL) IS
286 
287   l_query		VARCHAR2(32767);
288   l_where_clause	VARCHAR2(2000);
289   l_rpt_specific_where	VARCHAR2(2000);
290   l_join_where		VARCHAR2(2000);
291   l_group_by		VARCHAR2(2000);
292   l_filter_where	VARCHAR2(240);
293   l_view_by		VARCHAR2(240);
294   l_view_by_col		VARCHAR2(240);
295   l_mv			VARCHAR2(2000);
296   l_period_type		VARCHAR2(10);
297   l_xtd			VARCHAR2(10);
298   l_curr_suffix		VARCHAR2(2);
299   l_comparison_type	VARCHAR2(1);
300 
301   l_as_of_date		DATE;
302   l_prev_as_of_date	DATE;
303 
304   l_nested_pattern	NUMBER;
305 
306   l_col_tbl		POA_DBI_UTIL_PKG.Poa_Dbi_Col_Tbl;
307   l_join_tbl		POA_DBI_UTIL_PKG.Poa_Dbi_Join_Tbl;
308   l_additional_where       VARCHAR2(32767);
309   BEGIN
310 
311     l_comparison_type	:= 'Y';
312     l_join_tbl := POA_DBI_UTIL_PKG.Poa_Dbi_Join_Tbl();
313     l_col_tbl := POA_DBI_UTIL_PKG.Poa_Dbi_Col_Tbl();
314 
318 		p_view_by_col_name	=> l_view_by_col,
315     OKI_DBI_UTIL_PVT.Process_Parameters(
316 		p_param			=> p_param,
317 		p_view_by		=> l_view_by,
319 		p_comparison_type	=> l_comparison_type,
320 		p_xtd			=> l_xtd,
321 		p_as_of_date		=> l_as_of_date,
322 		p_prev_as_of_date	=> l_prev_as_of_date,
323 		p_cur_suffix		=> l_curr_suffix,
324 		p_nested_pattern	=> l_nested_pattern,
325 		p_where_clause		=> l_where_clause,
326 		p_mv			=> l_mv,
327 		p_join_tbl		=> l_join_tbl,
328 		p_period_type		=> l_period_type,
329 		p_trend			=> 'N',
330 		p_func_area		=> 'OKI',
331 		p_version		=> '6.0',
332 		p_role			=> NULL,
333                 p_mv_set                => 'SRM_DTL_RPT',
334 		p_rg_where		=> 'Y');
335 
336     l_rpt_specific_where    :=
337       ' AND fact.effective_term_date between &BIS_CURRENT_EFFECTIVE_START_DATE
338                                 and &BIS_CURRENT_ASOF_DATE';
339 
340     l_group_by := ' GROUP BY fact.chr_id, fact.trn_code, fact.customer_party_id, fact.resource_id';
341 
342 
343      poa_dbi_util_pkg.Add_Column(
344 		 p_col_tbl	=> l_col_tbl
345 		,p_col_name	=> 'trn_billed_value_' || l_curr_suffix
346 		,p_alias_name	=> 't_bv'
347 		,p_prior_code    => poa_dbi_util_pkg.no_priors);
348 
349      poa_dbi_util_pkg.Add_Column(
350 		 p_col_tbl	=> l_col_tbl
351 		,p_col_name	=> 'price_negotiated_' || l_curr_suffix  ||' - trn_billed_value_' || l_curr_suffix
352 		,p_alias_name	=> 't_rv'
353 		,p_prior_code    => poa_dbi_util_pkg.no_priors);
354 
355     l_join_tbl := POA_DBI_UTIL_PKG.Poa_Dbi_Join_Tbl();
356 
357     oki_dbi_util_pvt.join_rpt_where ( p_join_tbl     => l_join_tbl
358                                     , p_func_area    => 'SRM'
359                                     , p_version      => '6.0'
360                                     , p_role         => NULL
361                                     , p_mv_set       => 'SRM_DTL_RPT');
362 
363     oki_dbi_util_pvt.add_join_table (p_join_tbl            => l_join_tbl
364                                   , p_column_name          => 'id'
365                                   , p_table_name           => 'OKI_TERM_REASONS_V'
366         			  , p_table_alias          => 'v'
367                                   , p_fact_column          => 'trn_code'
368                                   , p_additional_where_clause => NULL);
369 
370 
371     l_filter_where  := ' ( abs(OKI_MEASURE_3) + abs(OKI_MEASURE_2) ) <> 0 ';
372 
373 
374     l_query := Get_Trm_Dtl_Sel_Clause(l_curr_suffix, l_period_type)
375 	|| poa_dbi_template_pkg.dtl_status_sql2 (
376                                                p_fact_name         => l_mv
377                                              , p_where_clause      => l_where_clause || l_rpt_specific_where
378                                              , p_join_tables       => l_join_tbl
379                                              , p_use_windowing     => 'Y'
380                                              , p_col_name          => l_col_tbl
381                                              , p_use_grpid         => 'N'
382                                              , p_filter_where      => l_filter_where
383                                              , p_paren_count       => 5
384                                              , p_group_by          => l_group_by
385                                              , p_from_clause       => ' from '||l_mv ||' fact ');
386 
387     x_custom_sql := '/* OKI_DBI_SCM_TRM_DTL_RPT */ '||l_query;
388 
389     OKI_DBI_UTIL_PVT.Get_Custom_Status_Binds(x_custom_output);
390 
391   END Get_Terminations_Detail_Sql;
392 
393 
394 
395 /******************************************************************
396 *  Procedure to return the query for Terminations TREND portlet
397 ******************************************************************/
398   PROCEDURE get_terminations_trend_sql(
399 	p_param			IN		BIS_PMV_PAGE_PARAMETER_TBL,
400 	x_custom_sql		OUT NOCOPY	VARCHAR2,
401 	x_custom_output		OUT NOCOPY	BIS_QUERY_ATTRIBUTES_TBL) IS
402 
403   -- Variables associated with the parameter portlet
404   l_query		VARCHAR2(32767);
405   l_view_by		VARCHAR2(120);
406   l_view_by_col		VARCHAR2(120);
407   l_as_of_date		DATE;
408   l_prev_as_of_date	DATE;
409   l_xtd			VARCHAR2(10);
410   l_comparison_type	VARCHAR2(1);
411   l_nested_pattern	NUMBER;
412   l_dim_bmap		NUMBER;
413   l_cur_suffix		VARCHAR2(2);
414   l_custom_sql		VARCHAR2(10000);
415 
416   l_col_tbl		POA_DBI_UTIL_PKG.Poa_Dbi_Col_Tbl;
417   l_join_tbl		POA_DBI_UTIL_PKG.Poa_Dbi_Join_Tbl;
418 
419   l_period_code		VARCHAR2(1);
420   l_where_clause	VARCHAR2(2000);
421   l_mv			VARCHAR2(2000);
422 
423   BEGIN
424 
425     l_comparison_type := 'Y';
426     l_join_tbl := POA_DBI_UTIL_PKG.Poa_Dbi_Join_Tbl();
427     l_col_tbl := POA_DBI_UTIL_PKG.Poa_Dbi_Col_Tbl();
428 
429     OKI_DBI_UTIL_PVT.Process_Parameters(
430 	p_param			=> p_param,
431 	p_view_by		=> l_view_by,
432 	p_view_by_col_name	=> l_view_by_col,
433 	p_comparison_type	=> l_comparison_type,
434 	p_xtd			=> l_xtd,
435 	p_as_of_date		=> l_as_of_date,
436 	p_prev_as_of_date	=> l_prev_as_of_date,
437 	p_cur_suffix		=> l_cur_suffix,
438 	p_nested_pattern	=> l_nested_pattern,
439 	p_where_clause		=> l_where_clause,
440 	p_mv			=> l_mv,
441 	p_join_tbl		=> l_join_tbl,
442 	p_period_type		=> l_period_code,
443 	p_trend			=> 'Y',
444 	p_func_area		=> 'OKI',
445 	p_version		=> '7.0',
446 	p_role			=> NULL,
447 	p_mv_set		=> 'SRM_TM_71',
448 	p_rg_where		=> 'Y');
449 
450     POA_DBI_UTIL_PKG.Add_Column(
451 	p_col_tbl		=> l_col_tbl,
452 	p_col_name		=> 't_rv_amt_'||l_cur_suffix,
453 	p_alias_name		=> 't_rv',
454 	p_grand_total		=> 'N',
455 	p_to_date_type		=> 'XTD');
456 
457     l_query := Get_Trm_Trend_Sel_Clause||' FROM '
458       ||POA_DBI_TEMPLATE_PKG.Trend_Sql(
459 		p_xtd			=> l_xtd,
460 		p_comparison_type	=> l_comparison_type,
461 		p_fact_name		=> l_mv,
462 		p_where_clause		=> l_where_clause,
463 		p_col_name		=> l_col_tbl,
464 		p_use_grpid		=> 'N');
465 
466     x_custom_sql := '/* OKI_DBI_SCM_TRM_GPH_RPT */ '||l_query;
467     OKI_DBI_UTIL_PVT.Get_Custom_Trend_Binds(
468 	l_xtd,
469 	l_comparison_type,
470 	x_custom_output);
471 
472   END Get_Terminations_Trend_Sql;
473 
474 /********************************************
475 * Terminations top SQL sel clause for TREND
476 *********************************************/
477 
478   FUNCTION Get_Trm_Trend_Sel_Clause RETURN VARCHAR2 IS
479     l_sel_clause	VARCHAR2(10000);
480 
481   BEGIN
482 
483    --OKI_MEASURE_1: Total Terminated Value
484     l_sel_clause := '
485 SELECT  cal.name		VIEWBY,
486 	nvl(iset.c_t_rv,0)	OKI_MEASURE_1,
487 	nvl(iset.p_t_rv,0)	OKI_PMEASURE_1,
488 	'||OKI_DBI_UTIL_PVT.Change_Clause('nvl(iset.c_t_rv,0)','nvl(iset.p_t_rv,0)','NP')||'	OKI_CHANGE_1';
489 
490     RETURN l_sel_clause;
491   END Get_Trm_Trend_Sel_Clause;
492 
493 
494   END OKI_DBI_NSCM_TRM_PVT;
495