DBA Data[Home] [Help]

PACKAGE: APPS.CSC_PROFILE_ENGINE_PKG

Source


1 PACKAGE CSC_Profile_Engine_PKG AUTHID CURRENT_USER AS
2 /* $Header: csccpeps.pls 120.11 2009/06/15 10:40:49 spamujul ship $ */
3 
4 		  /* Added G_PKG_NAME for JIT enhancement -- Bug 4535407 */
5 		  G_PKG_NAME VARCHAR2(100) := 'CSC_PROFILE_ENGINE_PKG';
6 
7 		  --
8 		  -- to be used if block id is passed
9 		  --
10 		  TYPE r_block_rectype IS RECORD
11 			( p_block_id	NUMBER);
12 
13 		  TYPE t_BlockTable IS TABLE of r_block_rectype
14 			INDEX BY BINARY_INTEGER;
15 
16 		  Block_TBL	t_BlockTable;
17 
18 		  --
19 		  -- to be used if check id is passed
20 		  --
21 		  TYPE r_check_rectype IS RECORD
22 			( p_check_id	NUMBER);
23 
24 		  TYPE t_CheckTable IS TABLE of r_check_rectype
25 			INDEX BY BINARY_INTEGER;
26 
27 		  Check_TBL	t_CheckTable;
28 
29 		  -- p_old_check_id    NUMBER;
30 		  -- p_old_check_cid   NUMBER;
31 		  -- p_old_block_id    NUMBER;
32 		  -- p_old_block_cid   NUMBER;
33 
34 
35 		  --
36 		  -- Global Tables
37 		  --
38 		  -- tables for updating party results table
39 		  --
40 		  TYPE UP_Block_Id_Tab	 Is Table of NUMBER Index By Binary_Integer;
41 		  TYPE UP_Check_Id_Tab Is Table of NUMBER Index By Binary_Integer;
42 		  TYPE UP_Party_Id_Tab	Is Table of NUMBER Index By Binary_Integer;
43 		  TYPE UP_Account_Id_Tab Is Table of NUMBER Index By Binary_Integer;
44 		  TYPE UP_Psite_Id_Tab	is Table of NUMBER Index By Binary_Integer;		-- Added by spamujul for ER#8473903
45 		  TYPE UP_Value_Tab Is Table of Varchar2(240) Index By Binary_Integer;
46 		  TYPE UP_Currency_Tab is Table of Varchar2(15) Index By Binary_Integer;
47 		  TYPE UP_Grade_Tab is Table of Varchar2(9) Index By Binary_Integer;
48 		  TYPE UP_Rating_Tab is Table of Varchar2(240) Index By Binary_Integer;
49 		  TYPE UP_Color_Tab is Table of Varchar2(240) Index By Binary_Integer;
50 		  TYPE UP_Results_Tab Is Table of Varchar2(3) Index By Binary_Integer;
51 
52 		  UP_Block_Id		UP_Block_Id_Tab;
53 		  UP_Check_Id		UP_Check_Id_Tab;
54 		  UP_Party_Id		UP_Party_Id_Tab;
55 		  UP_Account_Id		UP_Account_Id_Tab;
56 		  UP_Psite_id		UP_Psite_Id_Tab;			-- Added by spamujul for ER#8473903
57 		  UP_Value		UP_Value_Tab;
58 		  UP_Currency		UP_Currency_Tab;
59 		  UP_Grade		UP_Grade_Tab;
60 		  UP_Rating_code        UP_Rating_Tab;
61 		  UP_Color_code         UP_Color_Tab;
62 		  UP_Results            UP_Results_Tab;
63 
64 		  --
65 		  -- tables for inserting party results table
66 		  --
67 		  TYPE IP_Block_Id_Tab Is Table of NUMBER Index By Binary_Integer;
68 		  TYPE IP_Check_Id_Tab Is Table of NUMBER Index By Binary_Integer;
69 		  TYPE IP_Party_Id_Tab Is Table of NUMBER Index By Binary_Integer;
70 		  TYPE IP_Account_Id_Tab Is Table of NUMBER Index By Binary_Integer;
71 		  TYPE IP_Psite_Id_Tab is Table of NUMBER Index By Binary_Integer;		-- Added by spamujul for ER#8473903
72 		  TYPE IP_Value_Tab Is Table of Varchar2(240) Index By Binary_Integer;
73 		  TYPE IP_Currency_Tab is Table of Varchar2(15) Index By Binary_Integer;
74 		  TYPE IP_Grade_Tab is Table of Varchar2(9) Index By Binary_Integer;
75 		  TYPE IP_Rating_Tab is Table of Varchar2(240) Index By Binary_Integer;
76 		  TYPE IP_Color_Tab is Table of Varchar2(240) Index By Binary_Integer;
77 		  TYPE IP_Results_Tab Is Table of Varchar2(3) Index By Binary_Integer;
78 
79 		  IP_Block_Id		IP_Block_Id_Tab;
80 		  IP_Check_Id		IP_Check_Id_Tab;
81 		  IP_Party_Id		IP_Party_Id_Tab;
82 		  IP_Account_Id		IP_Account_Id_Tab;
83 		  IP_Psite_id		IP_Psite_Id_Tab;				-- Added by spamujul for ER#8473903
84 		  IP_Value		IP_Value_Tab;
85 		  IP_Currency		IP_Currency_Tab;
86 		  IP_Grade		IP_Grade_Tab;
87 		  IP_Rating_code        IP_Rating_Tab;
88 		  IP_Color_code         IP_Color_Tab;
89 		  IP_Results            IP_Results_Tab;
90 
91 		  --
92 		  -- tables for updating party account results table
93 		  --
94 		  TYPE UA_Block_Id_Tab Is Table of NUMBER Index By Binary_Integer;
95 		  TYPE UA_Check_Id_Tab Is Table of NUMBER Index By Binary_Integer;
96 		  TYPE UA_Party_Id_Tab Is Table of NUMBER Index By Binary_Integer;
97 		  TYPE UA_Account_Id_Tab Is Table of NUMBER Index By Binary_Integer;
98 		  TYPE UA_Psite_Id_Tab Is Table of NUMBER Index By Binary_Integer;		-- Added by spamujul for ER#8473903
99 		  TYPE UA_Value_Tab Is Table of Varchar2(240) Index By Binary_Integer;
100 		  TYPE UA_Currency_Tab is Table of Varchar2(15) Index By Binary_Integer;
101 		  TYPE UA_Grade_Tab is Table of Varchar2(9) Index By Binary_Integer;
102 		  TYPE UA_Rating_Tab is Table of Varchar2(240) Index By Binary_Integer;
103 		  TYPE UA_Color_Tab is Table of Varchar2(240) Index By Binary_Integer;
104 		  TYPE UA_Results_Tab Is Table of Varchar2(3) Index By Binary_Integer;
105 
106 		  UA_Block_Id		UA_Block_Id_Tab;
107 		  UA_Check_Id		UA_Check_Id_Tab;
108 		  UA_Party_Id		UA_Party_Id_Tab;
109 		  UA_Account_Id		UA_Account_Id_Tab;
110 		  UA_Psite_Id		UA_Psite_Id_Tab;				-- Added by spamujul for ER#8473903
111 		  UA_Value		UA_Value_Tab;
112 		  UA_Currency		UA_Currency_Tab;
113 		  UA_Grade		UA_Grade_Tab;
114 		  UA_Rating_code        UA_Rating_Tab;
115 		  UA_Color_code         UA_Color_Tab;
116 		  UA_Results            UA_Results_Tab;
117 
118 		  --
119 		  -- tables for inserting party account results table
120 		  --
121 		  TYPE IA_Block_Id_Tab Is Table of NUMBER Index By Binary_Integer;
122 		  TYPE IA_Check_Id_Tab Is Table of NUMBER Index By Binary_Integer;
123 		  TYPE IA_Party_Id_Tab Is Table of NUMBER Index By Binary_Integer;
124 		  TYPE IA_Account_Id_Tab Is Table of NUMBER Index By Binary_Integer;
125 		    TYPE IA_Psite_Id_Tab Is Table of NUMBER Index By Binary_Integer;			-- Added by spamujul for ER#8473903
126 		  TYPE IA_Value_Tab Is Table of Varchar2(240) Index By Binary_Integer;
127 		  TYPE IA_Currency_Tab is Table of Varchar2(15) Index By Binary_Integer;
128 		  TYPE IA_Grade_Tab is Table of Varchar2(9) Index By Binary_Integer;
129 		  TYPE IA_Rating_Tab Is Table of Varchar2(240) Index By Binary_Integer;
130 		  TYPE IA_Color_Tab Is Table of Varchar2(240) Index By Binary_Integer;
131 		  TYPE IA_Results_Tab Is Table of Varchar2(3) Index By Binary_Integer;
132 
133 		  IA_Block_Id		IA_Block_Id_Tab;
134 		  IA_Check_Id		IA_Check_Id_Tab;
135 		  IA_Party_Id		IA_Party_Id_Tab;
136 		  IA_Account_Id		IA_Account_Id_Tab;
137 		  IA_Psite_Id		IA_Psite_Id_Tab;			-- Added by spamujul for ER#8473903
138 		  IA_Value		IA_Value_Tab;
139 		  IA_Currency		IA_Currency_Tab;
140 		  IA_Grade		IA_Grade_Tab;
141 		  IA_Rating_Code        IA_Rating_Tab;
142 		  IA_Color_Code         IA_Color_Tab;
143 		  IA_Results            IA_Results_Tab;
144 
145 		-- Begin Fix by spamujul  for ER#8473903
146 		  TYPE US_Block_Id_Tab Is Table of NUMBER Index By Binary_Integer;
147 		  TYPE US_Check_Id_Tab Is Table of NUMBER Index By Binary_Integer;
148 		  TYPE US_Party_Id_Tab Is Table of NUMBER Index By Binary_Integer;
149 		  TYPE US_Account_Id_Tab Is Table of NUMBER Index By Binary_Integer;
150 		  TYPE US_Psite_Id_Tab Is Table of NUMBER Index By Binary_Integer;
151 		  TYPE US_Value_Tab Is Table of Varchar2(240) Index By Binary_Integer;
152 		  TYPE US_Currency_Tab is Table of Varchar2(15) Index By Binary_Integer;
153 		  TYPE US_Grade_Tab is Table of Varchar2(9) Index By Binary_Integer;
154 		  TYPE US_Rating_Tab is Table of Varchar2(240) Index By Binary_Integer;
155 		  TYPE US_Color_Tab is Table of Varchar2(240) Index By Binary_Integer;
156 		  TYPE US_Results_Tab Is Table of Varchar2(3) Index By Binary_Integer;
157 
158 		  US_Block_Id		US_Block_Id_Tab;
159 		  US_Check_Id		US_Check_Id_Tab;
160 		  US_Party_Id		US_Party_Id_Tab;
161 		  US_Account_Id		US_Account_Id_Tab;
162 		  US_Psite_Id		US_Psite_Id_Tab;
163 		  US_Value		US_Value_Tab;
164 		  US_Currency		US_Currency_Tab;
165 		  US_Grade		US_Grade_Tab;
166 		  US_Rating_code        US_Rating_Tab;
167 		  US_Color_code         US_Color_Tab;
168 		  US_Results            US_Results_Tab;
169 
170 		  TYPE IS_Block_Id_Tab Is Table of NUMBER Index By Binary_Integer;
171 		  TYPE IS_Check_Id_Tab Is Table of NUMBER Index By Binary_Integer;
172 		  TYPE IS_Party_Id_Tab Is Table of NUMBER Index By Binary_Integer;
173 		  TYPE IS_Account_Id_Tab Is Table of NUMBER Index By Binary_Integer;
174 		  TYPE IS_Psite_Id_Tab Is Table of NUMBER Index By Binary_Integer;
175 		  TYPE IS_Value_Tab Is Table of Varchar2(240) Index By Binary_Integer;
176 		  TYPE IS_Currency_Tab is Table of Varchar2(15) Index By Binary_Integer;
177 		  TYPE IS_Grade_Tab is Table of Varchar2(9) Index By Binary_Integer;
178 		  TYPE IS_Rating_Tab Is Table of Varchar2(240) Index By Binary_Integer;
179 		  TYPE IS_Color_Tab Is Table of Varchar2(240) Index By Binary_Integer;
180 		  TYPE IS_Results_Tab Is Table of Varchar2(3) Index By Binary_Integer;
181 
182 		  IS_Block_Id		IS_Block_Id_Tab;
183 		  IS_Check_Id		IS_Check_Id_Tab;
184 		  IS_Party_Id		IS_Party_Id_Tab;
185 		  IS_Account_Id	IS_Account_Id_Tab;
186 		  IS_Psite_Id		IS_Psite_Id_Tab;
187 		  IS_Value		IS_Value_Tab;
188 		  IS_Currency		IS_Currency_Tab;
189 		  IS_Grade		IS_Grade_Tab;
190 		  IS_Rating_Code        IS_Rating_Tab;
191 		  IS_Color_Code         IS_Color_Tab;
192 		  IS_Results            IS_Results_Tab;
193 		-- End Fix by spamujul  for ER#8473903
194 		--
195 		-- Tables for Relationship Plan Engine
196 		--
197 
198 		  plan_id_plan_table	csc_plan_assignment_pkg.csc_plan_id_tbl_type;
199 		  party_id_plan_table	csc_plan_assignment_pkg.csc_party_id_tbl_type;
200 		  account_id_plan_table	csc_plan_assignment_pkg.csc_cust_id_tbl_type;
201 		  --org_id_plan_table	csc_plan_assignment_pkg.csc_cust_org_tbl_type;
202 		  check_id_plan_table	csc_plan_assignment_pkg.csc_check_id_tbl_type;
203 
204 		-- For Relationship party profile checks
205 		  g_dashboard_for_contact VARCHAR2(1) := NULL;
206 
207 		-- R12 Employee HelpDesk Modifications
208 		-- Flag For Employee level profile checks
209 		 g_dashboard_for_employee VARCHAR2(1) := NULL;
210 
211 		  -- for profiles with no batch sql
212 		  g_check_no_batch VARCHAR2(1) := NULL;
213 
214 		  Type checks_cur_var IS REF CURSOR;
215 
216 		  TYPE r_blk_rectype IS RECORD
217 			( block_id	NUMBER,
218 			  sql_stmnt   VARCHAR2(4000),
219 			  currency    VARCHAR2(30));
220 
221 		   TYPE blocks_curtype IS
222 		       REF CURSOR RETURN r_blk_rectype;
223 
224 
225 		    TYPE r_chk_rectype IS RECORD
226 			( check_id	NUMBER,
227 		     select_type   VARCHAR2(3),
228 		     select_block_id NUMBER,
229 		     data_type VARCHAR2(30),
230 		     format_mask VARCHAR2(30),
231 		     check_upper_lower_flag VARCHAR2(3),
232 		     threshold_grade VARCHAR2(9),
233 		     check_level VARCHAR2(10)
234 		     );
235 
236 
237 		   TYPE checks_curtype IS
238 		       REF CURSOR RETURN r_chk_rectype;
239 
240 		--
241 		-- Insert or Update Records into Csc_Prof_Block_Results Table
242 		-- IN
243 		--    p_count	   - the number of records to be inserted or updated
244 		--    p_for_insert - flag to check if for insert or update.
245 		--    p_for_party  - flag to check if the insert or update is for party or account
246 		--
247 		PROCEDURE Insert_Update_Block_Results( p_count	IN Number,
248 												    p_for_insert	IN Varchar2,
249 												    p_for_party	IN Varchar2
250 												    ,p_for_psite	IN Varchar2-- added by spamujul for ER#8473903
251 												  );
252 
253 
254 		--
255 		-- Insert or Update Records into Csc_Prof_Check_Results Table
256 		-- IN
257 		--    p_count	   - the number of records to be inserted or updated
258 		--    p_for_insert - flag to check if for insert or update.
259 		--    p_for_party  - flag to check if the insert or update is for party or account
260 		--
261 
262 		PROCEDURE Insert_Update_Check_Results( p_count		IN Number,
263 												      p_for_insert	IN Varchar2,
264 												      p_for_party	IN Varchar2
265 												      ,p_for_psite	IN Varchar2 -- Added by spamujul for ER#8473903
266 												  );
267 
268 		/*******************************************
269 		  UPDATE_JIT_STATUS
270 		  Added this procedure for JIT enhancement -- Bug 4535407
271 		  Updates the columns jit_status, jit_err_code in CCT_MEDIA_ITEMS.
272 		  Called from CSC_PROF_JIT
273 		********************************************/
274 		PROCEDURE update_jit_status ( p_status        VARCHAR2 DEFAULT NULL,
275 									     p_err_code      NUMBER DEFAULT NULL,
276 									     p_media_item_id NUMBER
277 									   );
278 
279 		/*******************************************
280 		  CSC_PROF_JIT
281 		  Added this procedure for JIT enhancement -- Bug 4535407
282 		  Called from OTM java code
283 		  Calls profile engine for the party_id passed from OTM.
284 		  OTM passes the key-value pair in a VARRAY (cct_keyvalue_varr)
285 		********************************************/
286 
287 		PROCEDURE csc_prof_jit ( p_key_value_varr	 IN  cct_keyvalue_varr,
288 								     p_init_msg_list	IN  VARCHAR2 := FND_API.G_FALSE,
289 								     p_critical_flag		IN  VARCHAR2 DEFAULT NULL,
290 								     x_return_status	OUT NOCOPY VARCHAR2,
291 								     x_msg_count		OUT NOCOPY NUMBER,
292 								     x_msg_data		OUT NOCOPY VARCHAR2
293 								     );
294 
295 
296 		/*******************************************
297 		  GET_PROFILE_VALUE_RESP
298 		  Added this procedure for JIT enhancement -- Bug 4535407
299 		  Returns Profile Option value at the responsibility level.
300 		  This function has been added as API fnd_profile.value_specific is
301 		  not defined at form level FND_PROFILE package (pld)
302 		********************************************/
303 		FUNCTION get_profile_value_resp  ( p_profile_name	VARCHAR2,
304 										     p_resp_id			NUMBER,
305 										     p_resp_appl_id	NUMBER,
306 										     p_user_id			NUMBER
307 										   )  RETURN VARCHAR2 ;
308 
309 		  --
310 		  -- Build_Rule
311 		  --   Construct the rule as a SQL statement for an indicator check
312 		  -- IN
316 		  --
313 		  --   check_id - profile check identifier
314 		  -- OUT
315 		  --   rule - sql statement that returns 0 or 1 row (0 for false, 1 for true)
317 		  PROCEDURE Build_Rule ( acct_flag		 IN	VARCHAR2,
318 								     chk_id		IN	NUMBER,
319 								     chk_level		IN	VARCHAR2,
320 								     rule			OUT NOCOPY VARCHAR2
321 								     );
322 
323 		  --
324 		  -- Set_Context
325 		  --   Set procedure context (for stack trace).
326 		  -- IN
327 		  --   proc_name - procedure/function name
328 		  --   arg1 - first IN argument
329 		  --   argn - n'th IN argument
330 		  --
331 		  PROCEDURE Set_Context  ( proc_name	IN VARCHAR2,
332 								      arg1 	IN VARCHAR2 DEFAULT '*none*',
333 								      arg2	IN VARCHAR2 DEFAULT '*none*',
334 								      arg3	IN VARCHAR2 DEFAULT '*none*',
335 								      arg4	IN VARCHAR2 DEFAULT '*none*',
336 								      arg5	IN VARCHAR2 DEFAULT '*none*'
337 								      );
338 
339 		  --
340 		  -- to run engine as a concurrent program
341 		  --
342 		  PROCEDURE Run_Engine (p_errbuf				OUT NOCOPY VARCHAR2,
343 									p_retcode			OUT NOCOPY NUMBER,
344 									p_party_id			IN NUMBER,
345 									p_acct_id			IN NUMBER,
346 									p_psite_id			IN   NUMBER DEFAULT NULL, -- Added by spamujul for ER#8473903
347 									p_group_id			IN NUMBER );
348 		  --
349 		  -- Bug 1942032 to run engine as a concurrent program - overloaded procedure when
350 		  -- Account Id is removed from conc. program parameters.
351 		  --
352 		  PROCEDURE Run_Engine (p_errbuf		OUT NOCOPY VARCHAR2,
353 									p_retcode	OUT NOCOPY NUMBER,
354 									p_party_id	IN NUMBER,
355 									p_group_id	IN NUMBER
356 									);
357 
358 		  /* added the overloaded procedure for JIT enhancement -- Bug 4535407 */
359 		  PROCEDURE Run_Engine_jit (p_party_id			IN NUMBER,
360 										p_acct_id		IN NUMBER,
361 										p_psite_id		IN   NUMBER DEFAULT NULL, -- Added by spamujul for ER#8473903
362 										p_group_id		IN NUMBER,
363 										p_critical_flag	IN VARCHAR2,
364 										p_party_type		IN VARCHAR2 DEFAULT 'CUSTOMER'
365 					);
366 
367 
368 		/* R12 Employee HelpDesk Modifications -overloaded procedure */
369 		 PROCEDURE Run_Engine_All (p_errbuf		OUT NOCOPY VARCHAR2,
370 								p_retcode	OUT NOCOPY NUMBER,
371 							       p_party_type	IN VARCHAR2,
372 							       p_party_id	IN  NUMBER,
373 							       p_group_id	IN  NUMBER
374 							       );
375 
376 
377 		  --
378 		  -- Modified for batch sql changes
379 		  -- Evaluate_Checks1_Var
380 		  --   Loop through all checks and evaluate the results
381 		  --   for each customer and account for Variable type
382 		  --   if check_id is null, party_id is null, account_id is null
383 		  --	      and block_id is null
384 		  --
385 		  PROCEDURE Evaluate_Checks1_Var;
386 
387 		  --
388 		  -- Evaluate_Checks1_Rule
389 		 --   Added for batch sql changes
390 		  --   Loop through all checks and evaluate the results
391 		  --   for each customer and account for Rule type
392 		  --   if check_id is null, party_id is null, account_id is null
393 		  --	      and block_id is null
394 
395 		PROCEDURE Evaluate_Checks1_Rule( errbuf		OUT	NOCOPY VARCHAR2,
396 											retcode		OUT	NOCOPY NUMBER );
397 
398 		  -- Evaluate_Checks1_No_Batch
399 		  --   This procedure evaluates the checks
400 		  --   for which the batch sql statement is NULL
401 		  --
402 		  PROCEDURE Evaluate_Checks1_No_Batch
403 		      ( errbuf  OUT  NOCOPY VARCHAR2,
404 			retcode OUT  NOCOPY NUMBER ) ;
405 		  --
406 		  --
407 		  -- Evaluate_Checks2
408 		  --   Loop through all checks and evaluate the results
409 		  --   for each customer and account.
410 		  --   if check_id is null, party_id is not null or account_id is not null
411 		  --	      and block_id is null
412 		  --
413 		  PROCEDURE Evaluate_Checks2( p_party_id		IN		NUMBER,
414 										      p_acct_id	  		IN		NUMBER,
415 										      p_psite_id		IN		NUMBER DEFAULT NULL, -- Added by spamujul for ER#8473903
416 										      p_group_id		IN		NUMBER,
417 										      p_critical_flag		IN		 VARCHAR2 DEFAULT 'N', /* added for JIT enhancement */
418 										      errbuf	  		OUT	 NOCOPY VARCHAR2,
419 										      retcode	  		OUT	 NOCOPY NUMBER
420 										    );
421 
422 		   --
423 		   -- Evaluate_Checks3
424 		   --   Loop through all checks and evaluate the results
425 		   --   for each customer and account.
426 		   --   if check_id is null, party_id is not null or account_id is not null
427 		   --       and block_id is null
428 		   --
429 		  PROCEDURE Evaluate_Checks3( p_party_id		IN   NUMBER,
430 										  p_acct_id		IN   NUMBER,
431 										  p_psite_id		IN   NUMBER DEFAULT NULL, -- Added by spamujul for ER#8473903
432 										  p_group_id		IN   NUMBER,
433 										  errbuf			OUT NOCOPY VARCHAR2,
434 										  retcode			OUT NOCOPY NUMBER
435 										  );
436 
437 		 --
438 		  -- Evaluate_Checks4_Var
439 		  --   Modified for batch sql changes
440 		  --   Loop through Checks in this group and evaluate the results
441 		  --   for all Parties and Accounts.
442 		  --   if Party_id is null, Account_id is null and Group_id is not null
443 		  --
444 		  PROCEDURE Evaluate_Checks4_Var(p_group_id IN  NUMBER);
445 
446 		  --
447 		  -- Evaluate_Checks4_No_Batch
448 		  -- This procedure evaluates the checks
449 		  -- for which the batch sql statement is NULL
450 		  --
451 		  PROCEDURE Evaluate_Checks4_No_Batch (errbuf	OUT	NOCOPY VARCHAR2,
452 												     retcode	OUT	NOCOPY NUMBER ,
453 												     p_group_id IN  NUMBER
454 												     );
455 		  --
456 		  -- Evaluate_Checks4_Rule -- Added for 1850508
457 		  --   Loop through Checks in this group and evaluate the results
458 		  --   for all Parties and Accounts.
459 		  --   if Party_id is null, Account_id is null and Group_id is not null
460 		  --
461 		  PROCEDURE Evaluate_Checks4_Rule ( errbuf		OUT	NOCOPY VARCHAR2,
462 											     retcode		OUT	NOCOPY NUMBER ,
463 											     p_group_id	IN 	NUMBER
464 											     );
465 
466 
467 		  --
468 		  -- Evaluate_One_Check
469 		  --   Evaluate the given profile check and store the result in the
470 		  --   CS_PROF_CHECK_RESULTS table. Also store the grade if ranges are
471 		  --   specified.
472 		  -- IN
473 		  --   chk_id      - profile check identifier
474 		  --   cust_id     - customer identifier for which check is evaluated
475 		  --   acct_id     - customer's account identifier
476 		  --   sel_type    - 'B' for block; 'T' for true or false ("indicator" check)
477 		  --   sel_blk_id  - building block identifier (required if select type is
478 		  --                 block)
479 		  --   data_type   - data type of check result (used for applying format mask)
480 		  --   fmt_mask    - format mask for check result (ignored if data type is
481 		  --                 char or currency code is present)
482 		  --   rule - sql statement that returns 0 or 1 row for an indicator check
483 		  --   P_CID 	- Cursor passed from calling routine to avoid re-parsing the same sql statement (1850508)
484 		  PROCEDURE Evaluate_One_Check( p_truncate_flag	IN		VARCHAR2,
485 										    p_chk_id			IN		NUMBER,
486 										    p_party_id			IN		NUMBER,
487 										    p_acct_id			IN		NUMBER	DEFAULT NULL,
488 										    p_psite_id			IN		NUMBER	DEFAULT NULL, -- Added by spamujul for ER#8473903
489 										    p_check_level		IN		VARCHAR2	DEFAULT NULL,
490 										    p_sel_type		IN		VARCHAR2,
491 										    p_sel_blk_id		IN		NUMBER	DEFAULT NULL,
492 										    p_data_type	        IN		VARCHAR2	DEFAULT NULL,
493 										    p_fmt_mask		IN		VARCHAR2	DEFAULT NULL,
494 										    p_chk_u_l_flag	IN		VARCHAR2	DEFAULT NULL,
495 										    p_thd_grade		IN		VARCHAR2	DEFAULT NULL,
496 										    p_rule				IN		VARCHAR2	DEFAULT NULL,
497 										    p_blk_id			IN		NUMBER	DEFAULT NULL,
498 										    p_sql_stmt		IN		VARCHAR2	DEFAULT NULL,
499 										    p_curr_code		IN		VARCHAR2	DEFAULT NULL,
500 										    p_up_total      		IN		OUT NOCOPY NUMBER ,
501 										    p_ip_total      		IN		OUT NOCOPY NUMBER ,
502 										    p_ua_total      		IN		OUT NOCOPY NUMBER ,
503 										    p_ia_total      		IN		OUT NOCOPY NUMBER ,
504 										    p_us_total			IN		OUT NOCOPY NUMBER, -- Added by spamujul for ER#8473903
505 										    p_is_total			IN		OUT NOCOPY NUMBER, -- Added by spamujul for ER#8473903
506 										    p_cid				IN		NUMBER
507 										    );
508 
509 		  --
510 		  -- Evaluate_Blocks1
511 		  --   Loop through all the effective building blocks and evaluate the results
512 		  --   for each customer.
513 		  --   if block_id is null, party_id is null and account_id is null
514 		  --
515 		  PROCEDURE Evaluate_Blocks1 (p_up_total     IN	OUT NOCOPY NUMBER ,
516 									    p_ip_total		 IN	OUT NOCOPY NUMBER ,
517 									    p_ua_total		 IN	OUT NOCOPY NUMBER ,
518 									    p_ia_total		 IN	OUT NOCOPY NUMBER
519 									   ,p_us_total		 IN	OUT NOCOPY NUMBER, -- Added by spamujul for ER#8473903
520 									    p_is_total		 IN	OUT NOCOPY NUMBER -- Added by spamujul for ER#8473903
521 									  );
522 
523 
524 		   --
525 		  -- Evaluate_Blocks1_No_Batch
526 		  -- This procedure evaluates the blocks
530 												    p_ua_total		IN OUT NOCOPY NUMBER ,
527 		  -- for which the batch sql statement is NULL
528 		  PROCEDURE Evaluate_Blocks1_No_Batch ( p_up_total	IN OUT NOCOPY NUMBER ,
529 												    p_ip_total		IN OUT NOCOPY NUMBER ,
531 												    p_ia_total		IN OUT NOCOPY NUMBER
532 												    ,p_us_total	 IN OUT NOCOPY NUMBER, -- Added by spamujul for ER#8473903
533 												    p_is_total		IN OUT NOCOPY NUMBER -- Added by spamujul for ER#8473903
534 		    );
535 
536 		  --
537 		  -- Evaluate_Blocks2
538 		  --   Loop through all the effective building blocks and evaluate the results
539 		  --   for each customer.
540 		  --   if block_id is not null, party_id is not null or account_id is not null
541 		  --
542 		  PROCEDURE Evaluate_Blocks2( p_block_id	IN     NUMBER,
543 									      p_party_id	IN     NUMBER,
544 									      p_acct_id	 	IN     NUMBER,
545 									      p_psite_id	IN	NUMBER DEFAULT NULL, -- Added by spamujul for ER#8473903
546 									      p_up_total      	IN OUT NOCOPY NUMBER ,
547 									      p_ip_total      	IN OUT NOCOPY NUMBER ,
548 									      p_ua_total      	IN OUT NOCOPY NUMBER ,
549 									      p_ia_total      	IN OUT NOCOPY NUMBER
550 									      ,p_us_total	IN OUT NOCOPY NUMBER, -- Added by spamujul for ER#8473903
551 									      p_is_total	IN OUT NOCOPY NUMBER -- Added by spamujul for ER#8473903
552 										);
553 
554 
555 		  --
556 		  -- Evaluate_Blocks4 -- Added for 1850508
557 		  --   Calculate for All Parties, Accounts * For all checks present in the group
558 		  --   When Group Id is given but not party_id or Account_id
559 		  PROCEDURE Evaluate_Blocks4( p_up_total      	IN OUT NOCOPY NUMBER ,
560 									      p_ip_total      		IN OUT NOCOPY NUMBER ,
561 									      p_ua_total      		IN OUT NOCOPY NUMBER ,
562 									      p_ia_total      		IN OUT NOCOPY NUMBER ,
563 									      p_us_total		IN OUT NOCOPY NUMBER, -- Added by spamujul for ER#8473903
564 									      p_is_total		IN OUT NOCOPY NUMBER, -- Added by spamujul for ER#8473903
565 									      p_group_id		IN     NUMBER
566 									      );
567 		   --
568 		  -- Evaluate_Blocks4_No_Batch
569 		  -- This procedure evaluates the blocks
570 		  -- for which the batch sql statement is NULL
571 		  PROCEDURE Evaluate_Blocks4_No_Batch ( p_up_total      	IN OUT NOCOPY NUMBER ,
572 												      p_ip_total      	IN OUT NOCOPY NUMBER ,
573 												      p_ua_total      	IN OUT NOCOPY NUMBER ,
574 												      p_ia_total      	IN OUT NOCOPY NUMBER ,
575 												      p_us_total	IN OUT NOCOPY NUMBER, -- Added by spamujul for ER#8473903
576 												      p_is_total	IN OUT NOCOPY NUMBER, -- Added by spamujul for ER#8473903
577 												      p_group_id	IN     NUMBER
578 												      );
579 
580 		  --
581 		  -- Evaluate_One_Block
582 		  --   Execute dynamic SQL to evaluate the given building block and store the
583 		  --   result in the CS_PROF_BLOCK_RESULTS table.
584 		  -- IN
585 		  --   blk_id 	    - profile check building block identifier
586 		  --   party_id     - customer identifier for which building block is evaluated
587 		  --   acct_id 	    - account id
588 		  --   sql_stmt     - sql statement to execute dynamically
592 										      p_party_id			IN     NUMBER,
589 		  --   P_CID 	    - Cursor passed from calling routine to avoid re-parsing the same sql statement (1850508)
590 		  PROCEDURE Evaluate_One_Block( p_truncate_flag		IN     VARCHAR2,
591 										      p_blk_id				IN     NUMBER,
593 										      p_acct_id				IN     NUMBER,
594 										      p_psite_id			IN     NUMBER DEFAULT NULL,				-- Added by spamujul for ER#8473903
595 										      p_sql_stmt			IN     VARCHAR2,
596 										      p_curr_code			IN     VARCHAR2,
597 										      p_up_total			IN OUT NOCOPY NUMBER ,
598 										      p_ip_total			IN OUT NOCOPY NUMBER ,
599 										      p_ua_total			IN OUT NOCOPY NUMBER ,
600 										      p_ia_total			IN OUT NOCOPY NUMBER ,
601 										      p_us_total			IN OUT NOCOPY NUMBER,	-- Added by spamujul for ER#8473903
602 										      p_is_total			IN OUT NOCOPY NUMBER,	-- Added by spamujul for ER#8473903
603 										      p_cid				IN     NUMBER
604 										      );
605 
606 		  PROCEDURE Evaluate_Blocks5  ( p_block_id			 IN  NUMBER,
607 										    p_party_id			 IN  NUMBER,
608 										    p_psite_id			 IN	NUMBER DEFAULT NULL, -- Added by spamujul for ER#8473903
609 										    p_up_total			 IN	OUT NOCOPY NUMBER ,
610 										    p_ip_total			 IN	OUT NOCOPY NUMBER ,
611 										    p_ua_total			 IN	OUT NOCOPY NUMBER ,
612 										    p_ia_total			 IN   OUT NOCOPY NUMBER
613 										    ,p_us_total		 IN   OUT NOCOPY NUMBER, -- Added by spamujul for ER#8473903
614 										    p_is_total			 IN   OUT NOCOPY NUMBER -- Added by spamujul for ER#8473903
615 										    );
616 
617 		    PROCEDURE Evaluate_Blocks_Rel ( p_up_total		IN OUT NOCOPY NUMBER ,
618 											    p_ip_total		IN OUT NOCOPY NUMBER ,
619 											    p_ua_total		IN OUT NOCOPY NUMBER ,
620 											    p_ia_total		IN OUT NOCOPY NUMBER,
621 											    p_us_total		IN OUT NOCOPY NUMBER, -- Added by spamujul for ER#8473903
622 											    p_is_total		IN OUT NOCOPY NUMBER, -- Added by spamujul for ER#8473903
623 											    p_group_id       IN NUMBER DEFAULT NULL,
624 											    p_no_batch_sql  IN VARCHAR2 DEFAULT NULL,
625 											    p_rule_only	IN VARCHAR2 DEFAULT NULL
626 											   );
627 
628 		  PROCEDURE Evaluate_Checks_Rel( errbuf			OUT	NOCOPY VARCHAR2,
629 										      retcode			OUT	NOCOPY NUMBER ,
630 										      p_group_id		IN NUMBER DEFAULT NULL,
631 										      p_no_batch_sql	IN VARCHAR2 DEFAULT NULL,
632 										      p_rule_only		IN VARCHAR2 DEFAULT NULL
633 										      );
634 
635 
636 		  PROCEDURE Evaluate_Blocks_Emp( p_up_total		IN OUT NOCOPY NUMBER ,
637 											    p_ip_total		IN OUT NOCOPY NUMBER ,
638 											    p_ua_total		IN OUT NOCOPY NUMBER ,
639 											    p_ia_total		IN OUT NOCOPY NUMBER,
640 											    p_us_total		IN OUT NOCOPY NUMBER, -- Added by spamujul for ER#8473903
641 											    p_is_total		IN OUT NOCOPY NUMBER, -- Added by spamujul for ER#8473903
642 											    p_group_id	IN NUMBER DEFAULT NULL,
643 											    p_no_batch_sql  IN VARCHAR2 DEFAULT NULL,
644 											    p_rule_only	IN VARCHAR2 DEFAULT NULL
645 											    );
646 
647 		  PROCEDURE Evaluate_Checks_Emp( errbuf				OUT	NOCOPY VARCHAR2,
648 											      retcode			OUT	NOCOPY NUMBER ,
649 											      p_group_id		IN		NUMBER DEFAULT NULL,
650 											      p_no_batch_sql	IN		VARCHAR2 DEFAULT NULL,
651 											      p_rule_only		IN		VARCHAR2 DEFAULT NULL);
652 
653 
654 		/* added the below 3 functions and handle_exception for batch sql changes */
655 		FUNCTION  Calc_Threshold(  p_val			 VARCHAR2,
656 									   p_low_val		VARCHAR2,
657 									   p_high_val		VARCHAR2,
658 									   p_data_type	VARCHAR2,
659 									   p_chk_u_l_flag VARCHAR2
660 									) RETURN VARCHAR2;
661 
662 		FUNCTION Format_Mask (   p_curr_code   VARCHAR2,
663 								    p_data_type   VARCHAR2,
664 								    p_val         VARCHAR2,
665 								    p_fmt_mask VARCHAR2
666 								) RETURN VARCHAR2 ;
667 
668 		   TYPE r_rating IS RECORD
669 		    ( rating_code VARCHAR2(240), grade VARCHAR2(240),
670 		     color_code VARCHAR2(240), low_value VARCHAR2(240), high_value VARCHAR2(240));
671 
672 		   TYPE t_rating IS TABLE of r_rating
673 		     INDEX BY BINARY_INTEGER;
674 
675 		   Rating_TBL	t_rating;
676 
677 		   g_check_id NUMBER;
678 		   g_party_id NUMBER;
679 		   g_account_id NUMBER;
680 		   g_psite_id NUMBER; -- Added by spamujul for ER#8473903
681 		   g_value VARCHAR2(240);
682 		   g_color_code VARCHAR2(240);
683 		   g_rating VARCHAR2(240);
684 		   g_grade VARCHAR2(240);
685 
686 		FUNCTION rating_color( p_chk_id			NUMBER,
687 								   p_party_id		NUMBER,
688 								   p_account_id	NUMBER,
689 								   p_psite_id		NUMBER  DEFAULT NULL, -- Added by spamujul for ER#8473903
690 								   p_val			VARCHAR2,
691 								   p_data_type	VARCHAR2,
692 								   p_column		VARCHAR2,
693 								   p_count		NUMBER
694 								)  RETURN VARCHAR2;
695 
696 		PROCEDURE Handle_Exception;
697 
698 END CSC_Profile_Engine_PKG;