DBA Data[Home] [Help]

PACKAGE BODY: APPS.GHR_462

Source


1 PACKAGE BODY ghr_462 AS
2 /* $Header: gh462sum.pkb 115.14 2003/09/08 22:03:10 sumarimu noship $ */
3 --
4 	PROCEDURE populate_sum(
5 	   p_request_id IN NUMBER
6 	  ,p_agency_code  IN VARCHAR2
7 	  ,p_fiscal_year IN NUMBER
8 	  ,p_from_date   IN VARCHAR2
9 	  ,p_to_date     IN VARCHAR2
10 	  ,p_output_fname OUT NOCOPY VARCHAR2)
11 	IS
12 	l_file_name varchar2(50);
13 	l_audit_log_dir varchar2(500);
14 	l_from_date date;
15 	l_to_date date;
16 	l_fiscal_year varchar2(4);
17 	BEGIN
18 
19 
20 	-- To clear the PL/SQL Table values.
21 	vXMLTable.DELETE;
22 	vCtr := 1;
26 	l_fiscal_year := to_number(to_char(l_to_date,'YYYY'));
23 	-- Changing the date parameters from canonical format to date format.
24 	l_from_date:= fnd_date.canonical_to_date(p_from_date);
25 	l_to_date := fnd_date.canonical_to_date(p_to_date);
27 	-- Populate the Part 1 of 462 Report
28 	fnd_file.put_line(fnd_file.log,'Calling Procedure to Populate Part1');
29 	populate_part1(
30 		l_from_date,
31 		l_to_date,
32 		p_agency_code);
33 	fnd_file.put_line(fnd_file.log,'Calling Procedure to Populate Part2');
34 	-- Populate the Part 2 of 462 Report
35 	populate_part2(
36 		l_from_date,
37 		l_to_date,
38 		p_agency_code);
39 	PopulatePart4Matrix;
40 	-- Populate the Part 4 of 462 Report
41 	fnd_file.put_line(fnd_file.log,'Calling Procedure to Populate Part4');
42 	populate_part4(
43 		l_from_date,
44 		l_to_date,
45 		p_agency_code);
46 	-- Populate the Part 5 of 462 Report
47 	fnd_file.put_line(fnd_file.log,'Calling Procedure to Populate Part5');
48 	populate_part5(
49 		l_from_date,
50 		l_to_date,
51 		p_agency_code);
52 	-- Populate the Part 6 of 462 Report
53 	fnd_file.put_line(fnd_file.log,'Calling Procedure to Populate Part6');
54 	populate_part6(
55 		l_from_date,
56 		l_to_date,
57 		p_agency_code);
58 	-- Populate the Part 7 of 462 Report
59 	fnd_file.put_line(fnd_file.log,'Calling Procedure to Populate Part7');
60 	populate_part7(
61 		l_from_date,
62 		l_to_date,
63 		p_agency_code);
64 	-- Populate the Part 8 of 462 Report
65 	fnd_file.put_line(fnd_file.log,'Calling Procedure to Populate Part8');
66 	populate_part8(
67 		l_from_date,
68 		l_to_date,
69 		p_agency_code);
70 	-- Populate the Part 10 of 462 Report
71 	fnd_file.put_line(fnd_file.log,'Calling Procedure to Populate Part10');
72 	populate_part10(
73 		l_from_date,
74 		l_to_date,
75 		p_agency_code);
76 	-- Populate the Part 11 of 462 Report
77 	fnd_file.put_line(fnd_file.log,'Calling Procedure to Populate Part11');
78 	populate_part11(
79 		l_from_date,
80 		l_to_date,
81 		p_agency_code);
82 	-- Write the values to XML File
83 	fnd_file.put_line(fnd_file.log,'Calling Procedure to write into XML File');
84 	WritetoXML(
85 	p_request_id,
86 	p_agency_code,
87 	l_fiscal_year,
88     l_from_date,
89 	l_to_date,
90 	l_file_name);
91 	p_output_fname := l_file_name;
92 	fnd_file.put_line(fnd_file.log,'------------Output XML File----------------');
93 	fnd_file.put_line(fnd_file.log,'File' || l_file_name );
94 	fnd_file.put_line(fnd_file.log,'-------------------------------------------');
95 
96 --	COMMIT;
97 EXCEPTION
98 	WHEN utl_file.invalid_path then
99 		hr_utility.set_message(8301, 'GHR_38830_INVALID_UTL_FILE_PATH');
100 		fnd_file.put_line(fnd_file.log,HR_UTILITY.get_message);
101 		hr_utility.raise_error;
102 --
103     WHEN utl_file.invalid_mode then
104         hr_utility.set_message(8301, 'GHR_38831_INVALID_FILE_MODE');
105         fnd_file.put_line(fnd_file.log,HR_UTILITY.get_message);
106 		hr_utility.raise_error;
107 --
108     WHEN utl_file.invalid_filehandle then
109         hr_utility.set_message(8301, 'GHR_38832_INVALID_FILE_HANDLE');
110         fnd_file.put_line(fnd_file.log,HR_UTILITY.get_message);
111 		hr_utility.raise_error;
112 --
113     WHEN utl_file.invalid_operation then
114         hr_utility.set_message(8301, 'GHR_38833_INVALID_OPER');
115         fnd_file.put_line(fnd_file.log,HR_UTILITY.get_message);
116 		hr_utility.raise_error;
117 --
118     WHEN utl_file.read_error then
119         hr_utility.set_message(8301, 'GHR_38834_FILE_READ_ERROR');
120         fnd_file.put_line(fnd_file.log,HR_UTILITY.get_message);
121 		hr_utility.raise_error;
122 --
123 
124     WHEN others THEN
125        hr_utility.set_message(800,'FFU10_GENERAL_ORACLE_ERROR');
126        hr_utility.set_message_token('2',substr(sqlerrm,1,200));
127        fnd_file.put_line(fnd_file.log,HR_UTILITY.get_message);
128 	   hr_utility.raise_error;
129 END populate_sum;
130 
131 --------------------------------------------
132 
133 -- Procedure to populate the Part1 of the Report 462
134 PROCEDURE populate_part1(
135     p_from_date   in date,
136 	p_to_date     in date,
137 	p_agency_code in varchar2)
138 IS
139 
140 	l_p1_a number;
141 	l_p1_a1 number;
142 	l_p1_a2 number;
143 	l_p1_a3 number;
144 	l_p1_a4 number;
145 
146 	l_p1_bnum1 number;
147 	l_p1_bnum2 number;
148 	l_p1_bnum3 number;
149 	l_p1_bnum4 number;
150 	l_p1_bnum5 number;
151 	l_p1_bamt1 number;
152 	l_p1_bamt2 number;
153 	l_p1_bamt3 number;
154 	l_p1_bamt4 number;
155 	l_p1_bamt5 number;
156 	l_p1_c number;
157 
158 	-- Cursor to populate Part 1.A
159 	CURSOR cur_p1_a(c_from_date IN DATE,c_to_date IN DATE, c_agency_code ghr_complaints2.agency_code%type) IS
160 	SELECT COUNT(*) pl_a_cnt
161 	FROM GHR_COMPLAINTS2 cmp
162 	WHERE ((cmp.pcom_init BETWEEN c_from_date AND c_to_date
163 	AND cmp.final_interview BETWEEN cmp.pcom_init AND cmp.pcom_init + 30
164 	AND cmp.final_interview <= c_to_date)
165 	OR ( (cmp.final_interview >= c_from_date AND cmp.final_interview <= c_to_date)
166 	AND cmp.pcom_init BETWEEN cmp.final_interview - 30 AND cmp.final_interview))
167 	AND cmp.agency_code = c_agency_code
168 	AND cmp.formal_com_filed IS NULL ;
169 
170 	-- Cursor to populate Part 1.B
171 	CURSOR cur_p1_b(c_from_date IN DATE,c_to_date IN DATE, c_agency_code ghr_complaints2.agency_code%type) IS
172 	SELECT COUNT(*) p1_b_cnt
173 	FROM GHR_COMPLAINTS2 cmp
174 	WHERE ((cmp.pcom_init BETWEEN c_from_date AND c_to_date
175 	AND cmp.final_interview BETWEEN cmp.pcom_init + 31 AND cmp.pcom_init + 90
176 	AND cmp.final_interview <= c_to_date)
180 	AND cmp.formal_com_filed IS NULL ;
177 	OR ( (cmp.final_interview >= c_from_date AND cmp.final_interview <= c_to_date)
178 	AND cmp.pcom_init BETWEEN cmp.final_interview - 90 AND cmp.final_interview - 31))
179 	AND cmp.agency_code = c_agency_code
181 
182 	-- Cursor to populate Part 1.C
183 	-- Added Parameter c_to_date in case Final interview is null -- Sundar 07Aug2003
184 	CURSOR cur_p1_c(c_from_date IN DATE,c_to_date IN DATE, c_agency_code ghr_complaints2.agency_code%type) IS
185 	SELECT COUNT(*) p1_c_cnt
186 	FROM GHR_COMPLAINTS2 cmp
187 	WHERE ((cmp.pcom_init BETWEEN c_from_date AND c_to_date
188 	       AND NVL(cmp.final_interview,c_to_date) > cmp.pcom_init + 90
189 		   AND cmp.final_interview <= c_to_date)
190 	OR ((cmp.final_interview >= c_from_date AND cmp.final_interview <= c_to_date)
191      	AND cmp.pcom_init < NVL(cmp.final_interview,c_to_date) - 90))
192 	AND cmp.agency_code = c_agency_code
193 	AND cmp.formal_com_filed IS NULL ;
194 
195 	-- Cursor to populate Part 1.D
196 	CURSOR cur_p1_d(c_from_date IN DATE,c_to_date IN DATE, c_agency_code ghr_complaints2.agency_code%type) IS
197 	SELECT COUNT(*) p1_d_cnt
198 	FROM GHR_COMPLAINTS2 cmp	, GHR_COMPL_AGENCY_APPEALS apa
199 	WHERE apa.complaint_id = cmp.complaint_id
200     AND apa.decision IN ('30','40')
201    	AND cmp.init_counselor_interview >= cmp.formal_com_filed
202 	AND cmp.init_counselor_interview BETWEEN c_from_date AND c_to_date
203 	AND cmp.agency_code = c_agency_code;
204 
205 	-- Cursor to populate both Counts and Amounts for Section B of Part 1.
206 	-- Remand condition added
207 	CURSOR cur_p1_2(c_from_date IN DATE,c_to_date IN DATE,c_payment_type IN GHR_COMPL_CA_DETAILS.payment_type%TYPE, c_agency_code ghr_complaints2.agency_code%type) IS
208 	SELECT COUNT(distinct cmp.complaint_id) p1_2_cnt, nvl(SUM(CEIL(ca.amount)),0) p1_2_sum_amount
209 	FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_CA_HEADERS cah, GHR_COMPL_CA_DETAILS ca
210 	WHERE ca.compl_ca_header_id = cah.compl_ca_header_id
211 	AND cah.complaint_id = cmp.complaint_id
212 	AND ca.category = '10'
213 	AND ca.phase = '20' -- Added Phase after Test plan Review
214 	AND ca.payment_type = c_payment_type
215 	AND cmp.precom_closure_nature IN ('30','50')
216 	AND cmp.precom_closed BETWEEN c_from_date AND c_to_date
217 	AND (
218 			(cmp.formal_com_filed IS NULL OR cmp.formal_com_filed > c_to_date)
219 			 OR (cmp.init_counselor_interview >= cmp.formal_com_filed
220 			 AND cmp.init_counselor_interview BETWEEN c_from_date AND c_to_date)
221 		)
222 	AND cmp.agency_code = c_agency_code;
223 
224 	-- Cursor to populate both Counts and Amounts for Section B of Part 1.
225 	CURSOR cur_compensatory(c_from_date IN DATE,c_to_date IN DATE, c_agency_code ghr_complaints2.agency_code%type) IS
226 	SELECT COUNT(distinct cmp.complaint_id) p1_2_cnt, NVL(SUM(CEIL(ca.amount)),0) p1_2_sum_amount
227 	FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_CA_HEADERS cah, GHR_COMPL_CA_DETAILS ca
228 	WHERE ca.compl_ca_header_id = cah.compl_ca_header_id
229 	AND cah.complaint_id = cmp.complaint_id
230 	AND ca.phase = '20' -- Added Phase after Test plan Review
231 	AND ca.category = '10'
232 	AND ca.payment_type IN ('30','40')
233 	AND cmp.precom_closure_nature IN ('30','50')
234 	AND cmp.precom_closed BETWEEN c_from_date AND c_to_date
235 	AND (
236 		(cmp.formal_com_filed IS NULL OR cmp.formal_com_filed > c_to_date)
237 		OR (cmp.init_counselor_interview >= cmp.formal_com_filed
238 		AND cmp.init_counselor_interview BETWEEN c_from_date AND c_to_date)
239 		)
240 	AND cmp.agency_code = c_agency_code;
241 
242 	-- Cursor to populate Section C of Part 1
243 	CURSOR cur_p1_3(c_from_date IN DATE,c_to_date IN DATE, c_agency_code ghr_complaints2.agency_code%type) IS
244 	SELECT COUNT(distinct cmp.complaint_id) p1_c_cnt
245 	FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_CA_HEADERS cah, GHR_COMPL_CA_DETAILS ca
246 	WHERE ca.compl_ca_header_id = cah.compl_ca_header_id
247 	AND cah.complaint_id = cmp.complaint_id
248 	AND ca.phase = '20' -- Added Phase after Test plan Review
249 	AND ca.category = '20'
250 	AND cmp.precom_closure_nature IN ('40','50')
251 	AND cmp.precom_closed BETWEEN c_from_date AND c_to_date
252 	AND ((cmp.formal_com_filed IS NULL OR cmp.formal_com_filed > c_to_date)
253 	OR (cmp.init_counselor_interview >= cmp.formal_com_filed
254 	AND cmp.init_counselor_interview BETWEEN c_from_date AND c_to_date))
255 	AND cmp.agency_code = c_agency_code;
256 
257 BEGIN
258 	-----------------------------------------------------------------------------
259 	-- Section 1 - Counseling
260 	-----------------------------------------------------------------------------
261 
262 	-- Part 1.A.1 No. of Individuals whose counseling completed within 30 days
263 	FOR c_comp1 IN cur_p1_a(p_from_date, p_to_date, p_agency_code) LOOP
264 	   l_p1_a1 := c_comp1.pl_a_cnt;
265 	END LOOP;
266 
267     vXMLTable(vCtr).TagName := 'P1_a1';
268 	vXMLTable(vCtr).TagValue := to_char(l_p1_a1);
269 	vCtr := vCtr + 1;
270 	fnd_file.put_line(fnd_file.log,'Finished Populating Part 1.A.1 - No. of Individuals whose counseling completed within 30 days ');
271 
272 	-- Part 1.A.2 No. of Individuals counseled within 31 to 90 days.
273 	FOR c_comp1 IN cur_p1_b(p_from_date, p_to_date, p_agency_code) LOOP
274 	   l_p1_a2 := c_comp1.p1_b_cnt;
275 	END LOOP;
276 
277 	vXMLTable(vCtr).TagName := 'P1_a2';
278 	vXMLTable(vCtr).TagValue := to_char(l_p1_a2);
279 	vCtr := vCtr + 1;
280 	fnd_file.put_line(fnd_file.log,'Finished Populating Part 1.A.2 - No. of Individuals counseled within 31 to 90 days.');
281 
282 	-- Part 1.A.3 No. of Individuals counseled beyond 90 days.
283 	FOR c_comp1 IN cur_p1_c(p_from_date, p_to_date, p_agency_code) LOOP
284 	   l_p1_a3 := c_comp1.p1_c_cnt;
285 	END LOOP;
286 
287 	vXMLTable(vCtr).TagName := 'P1_a3';
288 	vXMLTable(vCtr).TagValue := to_char(l_p1_a3);
289 	vCtr := vCtr + 1;
290 	fnd_file.put_line(fnd_file.log,'Finished Populating Part 1.A.3 - No. of Individuals counseled beyond 90 days.');
291 
292 	-- Part 1.A.4 No. of Individuals counseled due to remands.
293 
294 	FOR c_comp1 IN cur_p1_d(p_from_date, p_to_date, p_agency_code) LOOP
295 	   l_p1_a4 := c_comp1.p1_d_cnt;
296 	END LOOP;
297 
298 	vXMLTable(vCtr).TagName := 'P1_a4';
299 	vXMLTable(vCtr).TagValue := to_char(l_p1_a4);
300 	vCtr := vCtr + 1;
301 	fnd_file.put_line(fnd_file.log,'Finished Populating Part 1.A.4 - No. of Individuals counseled due to remands');
302 
303 	-- Part 1 Total No. of individuals counseled.
304 	l_p1_a := l_p1_a1 + l_p1_a2 + l_p1_a3 + l_p1_a4;
305 
306 	vXMLTable(vCtr).TagName := 'P1_a';
307 	vXMLTable(vCtr).TagValue := to_char(l_p1_a);
308 	vCtr := vCtr + 1;
309 	fnd_file.put_line(fnd_file.log,'Finished populating Part1 - Total No. of individuals counseled');
310 	-----------------------------------------------------------------------------
311 	--Section 2 Non-ADR Settlements during Counseling
312 	-----------------------------------------------------------------------------
313 	-- Populating Counts
314 	-- Compensatory Damages
315 	FOR c_comp1 IN cur_compensatory(p_from_date, p_to_date, p_agency_code) LOOP
316 		l_p1_bnum1 := c_comp1.p1_2_cnt;
317 		l_p1_bamt1 := c_comp1.p1_2_sum_amount;
318 	END LOOP;
319 
320 	-- BackPay and FrontPay
321 	FOR c_comp1 IN cur_p1_2(p_from_date, p_to_date,'20', p_agency_code) LOOP
322 		l_p1_bnum2 := c_comp1.p1_2_cnt;
323 		l_p1_bamt2 := c_comp1.p1_2_sum_amount;
324 	END LOOP;
325 
326 	-- Lump Sum Payments
327 	FOR c_comp1 IN cur_p1_2(p_from_date, p_to_date,'50', p_agency_code) LOOP
328 		l_p1_bnum3 := c_comp1.p1_2_cnt;
329 		l_p1_bamt3 := c_comp1.p1_2_sum_amount;
330 	END LOOP;
331 
332 	-- Attorney Fees and Costs
333 	FOR c_comp1 IN cur_p1_2(p_from_date, p_to_date,'10', p_agency_code) LOOP
334 		l_p1_bnum4 := c_comp1.p1_2_cnt;
335 		l_p1_bamt4 := c_comp1.p1_2_sum_amount;
336 	END LOOP;
337 
338 	-- Others
339 	FOR c_comp1 IN cur_p1_2(p_from_date, p_to_date,'60', p_agency_code) LOOP
340 		l_p1_bnum5 := c_comp1.p1_2_cnt;
341 		l_p1_bamt5 := c_comp1.p1_2_sum_amount;
342 	END LOOP;
343 
344 	vXMLTable(vCtr).TagName := 'P1_bnum1';
345 	vXMLTable(vCtr).TagValue := to_char(l_p1_bnum1);
346 	vCtr := vCtr + 1;
347 
348 	vXMLTable(vCtr).TagName := 'P1_bamt1';
349 	vXMLTable(vCtr).TagValue := to_char(l_p1_bamt1);
350 	vCtr := vCtr + 1;
351 
352 	vXMLTable(vCtr).TagName := 'P1_bnum2';
353 	vXMLTable(vCtr).TagValue := to_char(l_p1_bnum2);
354 	vCtr := vCtr + 1;
355 
356 	vXMLTable(vCtr).TagName := 'P1_bamt2';
357 	vXMLTable(vCtr).TagValue := to_char(l_p1_bamt2);
358 	vCtr := vCtr + 1;
359 
360 	vXMLTable(vCtr).TagName := 'P1_bnum3';
361 	vXMLTable(vCtr).TagValue := to_char(l_p1_bnum3);
362 	vCtr := vCtr + 1;
363 
364 	vXMLTable(vCtr).TagName := 'P1_bamt3';
365 	vXMLTable(vCtr).TagValue := to_char(l_p1_bamt3);
366 	vCtr := vCtr + 1;
367 
368 	vXMLTable(vCtr).TagName := 'P1_bnum4';
369 	vXMLTable(vCtr).TagValue := to_char(l_p1_bnum4);
370 	vCtr := vCtr + 1;
371 
372 	vXMLTable(vCtr).TagName := 'P1_bamt4';
373 	vXMLTable(vCtr).TagValue := to_char(l_p1_bamt4);
374 	vCtr := vCtr + 1;
375 
376 	vXMLTable(vCtr).TagName := 'P1_bnum5';
377 	vXMLTable(vCtr).TagValue := to_char(l_p1_bnum5);
378 	vCtr := vCtr + 1;
379 
380 	vXMLTable(vCtr).TagName := 'P1_bamt5';
381 	vXMLTable(vCtr).TagValue := to_char(l_p1_bamt5);
382 	vCtr := vCtr + 1;
383 
384 	vXMLTable(vCtr).TagName := 'P1_bnum6';
385 	vXMLTable(vCtr).TagValue := '0';
386 	vCtr := vCtr + 1;
387 
388 	vXMLTable(vCtr).TagName := 'P1_bamt6';
389 	vXMLTable(vCtr).TagValue := '0';
390 	vCtr := vCtr + 1;
391 
392 	vXMLTable(vCtr).TagName := 'P1_bnum7';
393 	vXMLTable(vCtr).TagValue := '0';
394 	vCtr := vCtr + 1;
395 
399 
396 	vXMLTable(vCtr).TagName := 'P1_bamt7';
397 	vXMLTable(vCtr).TagValue := '0';
398 	vCtr := vCtr + 1;
400 	fnd_file.put_line(fnd_file.log,'Finished populating Part 1 Section 2 - Non-ADR Settlements during Counseling');
401 	-----------------------------------------------------------------------------
402 	-- Section 3 Non-ADR Settlements with Non-Monetory Benefits
403 	-----------------------------------------------------------------------------
404 
405 	FOR c_comp1 IN cur_p1_3(p_from_date,p_to_date, p_agency_code) LOOP
406 	   l_p1_c := c_comp1.p1_c_cnt;
407 	END LOOP;
408 
409 	vXMLTable(vCtr).TagName := 'P1_c';
410 	vXMLTable(vCtr).TagValue := to_char(l_p1_c);
411 	vCtr := vCtr + 1;
412 	fnd_file.put_line(fnd_file.log,'Finished populating Part 1 - Section 3');
413 	fnd_file.put_line(fnd_file.log,'------------End of Part1----------------');
414 
415 END populate_part1;
416 
417 PROCEDURE populate_part2(
418     p_from_date   in date,
419 	p_to_date     in date,
420 	p_agency_code in varchar2)
421 IS
422 -- Cursor to populate Section 1 of Part 2 - Complaints on hand before the reporting period
423 CURSOR cur_p2_1(c_from_date date ,c_agency_code ghr_complaints2.agency_code%type) IS
424    SELECT COUNT(*) p2_1_cnt
425    FROM GHR_COMPLAINTS2 cmp
426    WHERE cmp.formal_com_filed IS NOT NULL
427    AND cmp.formal_com_filed < c_from_date
428    AND cmp.agency_code = c_agency_code
429    AND (cmp.complaint_closed IS NULL OR cmp.complaint_closed > c_from_date);
430 
431 -- Cursor to populate Section 2 of Part 2 - Complaints filed
432 	-- Remanded complaints to be removed from this condition - Done after Test plan review
433 CURSOR cur_p2_2(c_from_date date, c_to_date date ,c_agency_code ghr_complaints2.agency_code%type) IS
434    SELECT COUNT(*) p2_2_cnt
435    FROM GHR_COMPLAINTS2 cmp
436    WHERE cmp.formal_com_filed BETWEEN c_from_date AND c_to_date
437    AND cmp.agency_code = c_agency_code
438    AND (NOT EXISTS(SELECT 1 FROM GHR_COMPL_AGENCY_APPEALS apa
439    	   				   WHERE apa.complaint_id = cmp.complaint_id
440 					   AND apa.decision_date BETWEEN c_from_date AND c_to_date
441 					   AND apa.decision IN ('30','40'))
442 	AND	NOT EXISTS(SELECT 1 FROM GHR_COMPL_APPEALS ap
443    	   				   WHERE ap.complaint_id = cmp.complaint_id
444 					   AND ap.decision_date BETWEEN c_from_date AND c_to_date
445 					   AND ap.decision IN ('30','40')));
446 
447 -- Cursor to populate Section 3 of Part 2 - Remanded Complaints
448 -- Including Agency appeal decision date.
449 CURSOR cur_p2_3(c_from_date date, c_to_date date ,c_agency_code ghr_complaints2.agency_code%type) IS
450  SELECT COUNT(*) p2_3_cnt
451    FROM GHR_COMPLAINTS2 cmp
452    WHERE  cmp.formal_com_filed BETWEEN c_from_date AND c_to_date
453    AND cmp.agency_code = c_agency_code
454    AND (cmp.complaint_closed NOT BETWEEN c_from_date AND c_to_date
455 		OR cmp.complaint_closed IS NULL)
456    AND (EXISTS(SELECT 1 FROM GHR_COMPL_AGENCY_APPEALS apa
457    	   				   WHERE apa.complaint_id = cmp.complaint_id
458 					   AND apa.decision_date BETWEEN c_from_date AND c_to_date
459 					   AND apa.decision IN ('30','40'))
460 	OR EXISTS(SELECT 1 FROM GHR_COMPL_APPEALS ap
461    	   				   WHERE ap.complaint_id = cmp.complaint_id
462 					   AND ap.decision_date BETWEEN c_from_date AND c_to_date
463 					   AND ap.decision IN ('30','40')));
464 
465 -- Cursor to populate complaints that were not consolidated
466 -- To exclude remands outside closure period
467 CURSOR cur_p2_5(c_from_date date, c_to_date date ,c_agency_code ghr_complaints2.agency_code%type) IS
468 SELECT COUNT(*) p2_5_cnt FROM
469 (
470 	SELECT cmp.*
471 	   FROM GHR_COMPLAINTS2 cmp
472 	   WHERE cmp.formal_com_filed IS NOT NULL
473 	   AND cmp.formal_com_filed < c_from_date
474 	   AND cmp.agency_code = c_agency_code
475 	   AND (cmp.complaint_closed IS NULL OR cmp.complaint_closed > c_from_date)
476 UNION ALL
477 	SELECT cmp.*
478 	   FROM GHR_COMPLAINTS2 cmp
479 	   WHERE cmp.formal_com_filed BETWEEN c_from_date AND c_to_date
480 	   AND cmp.agency_code = c_agency_code
481 	   AND (NOT EXISTS(SELECT 1 FROM GHR_COMPL_AGENCY_APPEALS apa
482 						   WHERE apa.complaint_id = cmp.complaint_id
483 						   AND apa.decision_date BETWEEN c_from_date AND c_to_date
484 						   AND apa.decision IN ('30','40'))
485 	   AND	NOT EXISTS(SELECT 1 FROM GHR_COMPL_APPEALS ap
486 						   WHERE ap.complaint_id = cmp.complaint_id
487 						   AND ap.decision_date BETWEEN c_from_date AND c_to_date
488 						   AND ap.decision IN ('30','40')))
489 UNION ALL
490 	SELECT cmp.*
491 	   FROM GHR_COMPLAINTS2 cmp
492 	   WHERE  cmp.formal_com_filed BETWEEN c_from_date AND c_to_date
493 	   AND cmp.agency_code = c_agency_code
494 	   AND (cmp.complaint_closed NOT BETWEEN c_from_date AND c_to_date
495 			OR cmp.complaint_closed IS NULL)
496 	   AND (EXISTS(SELECT 1 FROM GHR_COMPL_AGENCY_APPEALS apa
497 						   WHERE apa.complaint_id = cmp.complaint_id
498 						   AND apa.decision_date BETWEEN c_from_date AND c_to_date
499 						   AND apa.decision IN ('30','40'))
500 		OR EXISTS(SELECT 1 FROM GHR_COMPL_APPEALS ap
501 						   WHERE ap.complaint_id = cmp.complaint_id
502 						   AND ap.decision_date BETWEEN c_from_date AND c_to_date
503 						   AND ap.decision IN ('30','40')))
504 ) cmp1
505 WHERE cmp1.consolidated IS NULL
506 AND (cmp1.complaint_closed IS NULL OR cmp1.complaint_closed > c_to_date)
507 ;
508 
509 -- Cursor to populate Section 6 - No. of unconsolidated complaints that were closed
510 
511 CURSOR cur_p2_6(c_from_date date, c_to_date date ,c_agency_code ghr_complaints2.agency_code%type) IS
512 	SELECT COUNT(*) p2_6_cnt
513 	FROM (
514 			SELECT cmp.*
515 			   FROM GHR_COMPLAINTS2 cmp
516 			   WHERE cmp.formal_com_filed IS NOT NULL
517 			   AND cmp.formal_com_filed < c_from_date
518 			   AND cmp.agency_code = c_agency_code
522 			   FROM GHR_COMPLAINTS2 cmp
519 			   AND (cmp.complaint_closed IS NULL OR cmp.complaint_closed > c_from_date)
520 			UNION ALL
521 			SELECT cmp.*
523 			   WHERE cmp.formal_com_filed BETWEEN c_from_date AND c_to_date
524 			   AND cmp.agency_code = c_agency_code
525 			   AND (NOT EXISTS(SELECT 1 FROM GHR_COMPL_AGENCY_APPEALS apa
526 								   WHERE apa.complaint_id = cmp.complaint_id
527 								   AND apa.decision_date BETWEEN c_from_date AND c_to_date
528 								   AND apa.decision IN ('30','40'))
529 			   AND	NOT EXISTS(SELECT 1 FROM GHR_COMPL_APPEALS ap
530 								   WHERE ap.complaint_id = cmp.complaint_id
531 								   AND ap.decision_date BETWEEN c_from_date AND c_to_date
532 								   AND ap.decision IN ('30','40')))
533 			UNION ALL
534 			SELECT cmp.*
535 			   FROM GHR_COMPLAINTS2 cmp
536 			   WHERE  cmp.formal_com_filed BETWEEN c_from_date AND c_to_date
537 			   AND cmp.agency_code = c_agency_code
538 			   AND (cmp.complaint_closed NOT BETWEEN c_from_date AND c_to_date
539 					OR cmp.complaint_closed IS NULL)
540 			   AND (EXISTS(SELECT 1 FROM GHR_COMPL_AGENCY_APPEALS apa
541 								   WHERE apa.complaint_id = cmp.complaint_id
542 								   AND apa.decision_date BETWEEN c_from_date AND c_to_date
543 								   AND apa.decision IN ('30','40'))
544 				OR EXISTS(SELECT 1 FROM GHR_COMPL_APPEALS ap
545 								   WHERE ap.complaint_id = cmp.complaint_id
546 								   AND ap.decision_date BETWEEN c_from_date AND c_to_date
547 								   AND ap.decision IN ('30','40')))
548 		  ) cmp1
549 	WHERE (cmp1.consolidated IS NULL OR cmp1.consolidated NOT BETWEEN c_from_date AND c_to_date)
550 	AND complaint_closed BETWEEN c_from_date AND c_to_date;
551 
552 CURSOR cur_p2_7(c_from_date date, c_to_date date ,c_agency_code ghr_complaints2.agency_code%type) IS
553 SELECT COUNT(*) p2_7_cnt FROM
554 (
555 SELECT cmp.*
556    FROM GHR_COMPLAINTS2 cmp
557    WHERE cmp.formal_com_filed IS NOT NULL
558    AND cmp.formal_com_filed < c_from_date
559    AND cmp.agency_code = c_agency_code
560    AND (cmp.complaint_closed IS NULL OR cmp.complaint_closed > c_from_date)
561 UNION ALL
562 SELECT cmp.*
563    FROM GHR_COMPLAINTS2 cmp
564    WHERE cmp.formal_com_filed BETWEEN c_from_date AND c_to_date
565    AND cmp.agency_code = c_agency_code
566    AND (NOT EXISTS(SELECT 1 FROM GHR_COMPL_AGENCY_APPEALS apa
567 					   WHERE apa.complaint_id = cmp.complaint_id
568 					   AND apa.decision_date BETWEEN c_from_date AND c_to_date
569 					   AND apa.decision IN ('30','40'))
570    AND	NOT EXISTS(SELECT 1 FROM GHR_COMPL_APPEALS ap
571 					   WHERE ap.complaint_id = cmp.complaint_id
572 					   AND ap.decision_date BETWEEN c_from_date AND c_to_date
573 					   AND ap.decision IN ('30','40')))
574 UNION ALL
575 SELECT cmp.*
576    FROM GHR_COMPLAINTS2 cmp
577    WHERE  cmp.formal_com_filed BETWEEN c_from_date AND c_to_date
578    AND cmp.agency_code = c_agency_code
579    AND (cmp.complaint_closed NOT BETWEEN c_from_date AND c_to_date
580 		OR cmp.complaint_closed IS NULL)
581    AND (EXISTS(SELECT 1 FROM GHR_COMPL_AGENCY_APPEALS apa
582 					   WHERE apa.complaint_id = cmp.complaint_id
583 					   AND apa.decision_date BETWEEN c_from_date AND c_to_date
584 					   AND apa.decision IN ('30','40'))
585 	OR EXISTS(SELECT 1 FROM GHR_COMPL_APPEALS ap
586 					   WHERE ap.complaint_id = cmp.complaint_id
587 					   AND ap.decision_date BETWEEN c_from_date AND c_to_date
588 					   AND ap.decision IN ('30','40')))
589 ) cmp1
590 WHERE cmp1.consolidated IS NOT NULL
591 AND (cmp1.complaint_closed IS NULL OR cmp1.complaint_closed > c_to_date)
592 ;
593 
594 CURSOR cur_p2_8(c_from_date date, c_to_date date ,c_agency_code ghr_complaints2.agency_code%type) IS
595 SELECT COUNT(*) p2_8_cnt FROM
596 (
597 	SELECT cmp.*
598 	   FROM GHR_COMPLAINTS2 cmp
599 	   WHERE cmp.formal_com_filed IS NOT NULL
600 	   AND cmp.formal_com_filed < c_from_date
601 	   AND cmp.agency_code = c_agency_code
602 	   AND (cmp.complaint_closed IS NULL OR cmp.complaint_closed > c_from_date)
603 	UNION ALL
604 	SELECT cmp.*
605 	   FROM GHR_COMPLAINTS2 cmp
606 	   WHERE cmp.formal_com_filed BETWEEN c_from_date AND c_to_date
607 	   AND cmp.agency_code = c_agency_code
608 	   AND (NOT EXISTS(SELECT 1 FROM GHR_COMPL_AGENCY_APPEALS apa
609 						   WHERE apa.complaint_id = cmp.complaint_id
610 						   AND apa.decision_date BETWEEN c_from_date AND c_to_date
611 						   AND apa.decision IN ('30','40'))
612 	   AND	NOT EXISTS(SELECT 1 FROM GHR_COMPL_APPEALS ap
613 						   WHERE ap.complaint_id = cmp.complaint_id
614 						   AND ap.decision_date BETWEEN c_from_date AND c_to_date
615 						   AND ap.decision IN ('30','40')))
616 	UNION ALL
617 	SELECT cmp.*
618 	   FROM GHR_COMPLAINTS2 cmp
619 	   WHERE  cmp.formal_com_filed BETWEEN c_from_date AND c_to_date
620 	   AND cmp.agency_code = c_agency_code
621 	   AND (cmp.complaint_closed NOT BETWEEN c_from_date AND c_to_date
622 			OR cmp.complaint_closed IS NULL)
623 	   AND (EXISTS(SELECT 1 FROM GHR_COMPL_AGENCY_APPEALS apa
624 						   WHERE apa.complaint_id = cmp.complaint_id
625 						   AND apa.decision_date BETWEEN c_from_date AND c_to_date
626 						   AND apa.decision IN ('30','40'))
627 		OR EXISTS(SELECT 1 FROM GHR_COMPL_APPEALS ap
628 						   WHERE ap.complaint_id = cmp.complaint_id
629 						   AND ap.decision_date BETWEEN c_from_date AND c_to_date
630 						   AND ap.decision IN ('30','40')))
631 ) cmp1
632 WHERE cmp1.consolidated IS NOT NULL
633 AND complaint_closed BETWEEN c_from_date AND c_to_date;
634 
635 
636 -- Cursor to populate section 10 - Total Individuals filing complaints
637 CURSOR cur_p2_10(c_from_date date, c_to_date date ,c_agency_code ghr_complaints2.agency_code%type) IS
641    AND cmp.agency_code = c_agency_code;
638    SELECT count(distinct nvl(cmp.complainant_person_id,0)) p2_10_cnt
639    FROM GHR_COMPLAINTS2 cmp
640    WHERE cmp.formal_com_filed BETWEEN c_from_date AND c_to_date
642 
643 -- Cursor to Populate Section 11 - No. of Joint processing Units from consolidation of complaints
644 CURSOR cur_p2_11(c_from_date date, c_to_date date,c_agency_code ghr_complaints2.agency_code%type) IS
645    SELECT count(distinct cmp.consolidated_complaint_id) p2_11_cnt
646    FROM GHR_COMPLAINTS2 cmp
647    WHERE cmp.consolidated BETWEEN c_from_date AND c_to_date
648    AND cmp.consolidated_flag = 'Y'
649    AND cmp.agency_code = c_agency_code;
650 
651 
652 l_p2_a number;
653 l_p2_b number;
654 l_p2_c number;
655 l_p2_d number;
656 l_p2_e number;
657 l_p2_f number;
658 l_p2_g number;
659 l_p2_h number;
660 l_p2_i number;
661 
662 BEGIN
663 	-- Section 1 No. of complaints on hand at beginning of the reporting period.
664 	FOR cur_ctr IN cur_p2_1(p_from_date, p_agency_code) LOOP
665 	   l_p2_a := cur_ctr.p2_1_cnt;
666 	   vXMLTable(vCtr).TagName := 'P2_a';
667 	   vXMLTable(vCtr).TagValue := to_char(l_p2_a);
668 	   vCtr := vCtr + 1;
669 	END LOOP;
670 	fnd_file.put_line(fnd_file.log,'Finished populating Part2 Section 1 - No. of complaints on hand at beginning of the reporting period.');
671 	-- Section 2 - Complaints filed
672 	FOR cur_ctr IN cur_p2_2(p_from_date,p_to_date, p_agency_code) LOOP
673 	   l_p2_b := cur_ctr.p2_2_cnt;
674 	   vXMLTable(vCtr).TagName := 'P2_b';
675 	   vXMLTable(vCtr).TagValue := to_char(l_p2_b);
676 	   vCtr := vCtr + 1;
677 	END LOOP;
678 	fnd_file.put_line(fnd_file.log,'Finished populating Part2 Section 2 - Complaints filed');
679 	-- Section 3 - Remand
680 	FOR cur_ctr IN cur_p2_3(p_from_date,p_to_date, p_agency_code) LOOP
681 	   l_p2_c := cur_ctr.p2_3_cnt;
682 	   vXMLTable(vCtr).TagName := 'P2_c';
683 	   vXMLTable(vCtr).TagValue := to_char(l_p2_c);
684 	   vCtr := vCtr + 1;
685 	END LOOP;
686 	fnd_file.put_line(fnd_file.log,'Finished populating Part2 Section 3 - Remand');
687 	-- Section 4 - Total Complaints
688 	l_p2_d := l_p2_a + l_p2_b + l_p2_c;
689 
690 	vXMLTable(vCtr).TagName := 'P2_d';
691 	vXMLTable(vCtr).TagValue := to_char(l_p2_d);
692 	vCtr := vCtr + 1;
693 	fnd_file.put_line(fnd_file.log,'Finished populating Part2 Section 4 - Total Complaints');
694 	-- Section 5 - Total Complaints that were not consolidated.
695 	FOR cur_ctr IN cur_p2_5(p_from_date,p_to_date, p_agency_code) LOOP
696 		l_p2_e := cur_ctr.p2_5_cnt;
697 		vXMLTable(vCtr).TagName := 'P2_e';
698 		vXMLTable(vCtr).TagValue := to_char(l_p2_e);
699 		vCtr := vCtr + 1;
700 	END LOOP;
701 	fnd_file.put_line(fnd_file.log,'Finished populating Part2 Section 5 - Total Complaints that were not consolidated.');
702 	-- Section 6 - Total Complaints that were not consolidated and closed.
703 	FOR cur_ctr IN cur_p2_6(p_from_date,p_to_date, p_agency_code) LOOP
704 		l_p2_f := cur_ctr.p2_6_cnt;
705 		vXMLTable(vCtr).TagName := 'P2_f';
706 		vXMLTable(vCtr).TagValue := to_char(l_p2_f);
707 		vCtr := vCtr + 1;
708 	END LOOP;
709 	fnd_file.put_line(fnd_file.log,'Finished populating Part2 Section 6 - Total Complaints that were not consolidated and closed.');
710 	-- Section 7 -  No. of consolidated complaints
711 	FOR cur_ctr IN cur_p2_7(p_from_date,p_to_date, p_agency_code) LOOP
712 		l_p2_g := cur_ctr.p2_7_cnt;
713 		vXMLTable(vCtr).TagName := 'P2_g';
714 		vXMLTable(vCtr).TagValue := to_char(l_p2_g);
715 		vCtr := vCtr + 1;
716 	END LOOP;
717 	fnd_file.put_line(fnd_file.log,'Finished populating Part2 Section 7 - No. of consolidated complaints');
718 	-- Section 8 - Total Complaints that were consolidated and closed.
719 	FOR cur_ctr IN cur_p2_8(p_from_date,p_to_date, p_agency_code) LOOP
720 		l_p2_h := cur_ctr.p2_8_cnt;
721 		vXMLTable(vCtr).TagName := 'P2_h';
722 		vXMLTable(vCtr).TagValue := to_char(l_p2_h);
723 		vCtr := vCtr + 1;
724 	END LOOP;
725 	fnd_file.put_line(fnd_file.log,'Finished populating Part2 Section 8 - Total Complaints that were consolidated and closed');
726 	-- Section 9 - Complaints on hand at end of reporting period :=   line 4 - (line 6 + line 8)
727 	l_p2_i := l_p2_d - (l_p2_f + l_p2_h);
728 	vXMLTable(vCtr).TagName := 'P2_i';
729 	vXMLTable(vCtr).TagValue := to_char(l_p2_i);
730 	vCtr := vCtr + 1;
731 	fnd_file.put_line(fnd_file.log,'Finished populating Part2 Section 9 - Complaints on hand at end of reporting period');
732 	-- Section 10 Individual filing complaints
733 	FOR cur_ctr IN cur_p2_10(p_from_date,p_to_date, p_agency_code) LOOP
734 		vXMLTable(vCtr).TagName := 'P2_j';
735 		vXMLTable(vCtr).TagValue := to_char(cur_ctr.p2_10_cnt);
736 		vCtr := vCtr + 1;
737 	END LOOP;
738 	fnd_file.put_line(fnd_file.log,'Finished populating Part2 Section 10 - Individual filing complaints');
739 	-- Section 11 No. of Joint Processing Units from Consolidation of Complaints
740 	FOR cur_ctr IN cur_p2_11(p_from_date,p_to_date, p_agency_code) LOOP
741 		vXMLTable(vCtr).TagName := 'P2_k';
742 		vXMLTable(vCtr).TagValue := to_char(cur_ctr.p2_11_cnt);
743 		vCtr := vCtr + 1;
744 	END LOOP;
745 	fnd_file.put_line(fnd_file.log,'Finished populating Part2 Section 11 - No. of Joint Processing Units from Consolidation of Complaints');
746 	fnd_file.put_line(fnd_file.log,'-----------End of Part 2----------------');
747 	-- End of Part 2
748 END populate_part2;
749 
750 
751 PROCEDURE populate_part4(
752     p_from_date   in date,
753 	p_to_date     in date,
754 	p_agency_code in varchar2)
755 IS
756 CURSOR cur_p4(c_from_date date, c_to_date date, c_claim GHR_COMPL_CLAIMS.claim%type, c_basis GHR_COMPL_BASES.basis%type, c_value GHR_COMPL_BASES.value%type,c_agency_code ghr_complaints2.agency_code%type) IS
757    SELECT COUNT(*) p4_cnt
758    FROM GHR_COMPLAINTS2 cmp,GHR_COMPL_CLAIMS claims, GHR_COMPL_BASES bases
759    WHERE bases.compl_claim_id = claims.compl_claim_id
760    AND claims.complaint_id = cmp.complaint_id
761    AND claims.claim = c_claim
762    AND claims.phase IN (20,30)
763    AND bases.basis = c_basis
764    AND bases.value = c_value
765    AND cmp.agency_code = c_agency_code
766    AND cmp.formal_com_filed BETWEEN c_from_date AND c_to_date;
767 
768 CURSOR cur_p4_novalue(c_from_date date, c_to_date date, c_claim GHR_COMPL_CLAIMS.claim%type, c_basis GHR_COMPL_BASES.basis%type,c_agency_code ghr_complaints2.agency_code%type) IS
769 SELECT COUNT(*) p4_cnt
770    FROM GHR_COMPLAINTS2 cmp,GHR_COMPL_CLAIMS claims, GHR_COMPL_BASES bases
771    WHERE bases.compl_claim_id = claims.compl_claim_id
772    AND claims.complaint_id = cmp.complaint_id
773    AND claims.claim = c_claim
774    AND claims.phase IN (20,30)
775    AND bases.basis = c_basis
776    AND cmp.agency_code = c_agency_code
777    AND cmp.formal_com_filed BETWEEN c_from_date AND c_to_date;
778 
779 -- Only for Pay including overtime
780 CURSOR cur_p4_tot_pic_issue(c_from_date date, c_to_date date, c_claim GHR_COMPL_CLAIMS.claim%type,c_agency_code ghr_complaints2.agency_code%type) IS
781 SELECT COUNT(distinct nvl(cmp.complainant_person_id,0)) p4_prsn_cnt, COUNT(distinct cmp.complaint_id) p4_cnt
782    FROM GHR_COMPLAINTS2 cmp,GHR_COMPL_CLAIMS claims
783    WHERE claims.complaint_id = cmp.complaint_id
784    AND claims.claim = c_claim
785    AND claims.phase IN (20,30)
786    AND cmp.agency_code = c_agency_code
787    AND cmp.formal_com_filed BETWEEN c_from_date AND c_to_date;
788 
789 CURSOR cur_p4_tot_discip_issue(c_from_date date, c_to_date date,c_agency_code ghr_complaints2.agency_code%type) IS
790 SELECT COUNT(distinct nvl(cmp.complainant_person_id,0)) p4_prsn_cnt, COUNT(distinct cmp.complaint_id) p4_cnt
791    FROM GHR_COMPLAINTS2 cmp,GHR_COMPL_CLAIMS claims
792    WHERE claims.complaint_id = cmp.complaint_id
793    AND claims.claim IN ('50','60','70','80','90')
794    AND claims.phase IN (20,30)
795    AND cmp.agency_code = c_agency_code
796    AND cmp.formal_com_filed BETWEEN c_from_date AND c_to_date;
797 
798 CURSOR cur_p4_tot_harass_issue(c_from_date date, c_to_date date,c_agency_code ghr_complaints2.agency_code%type) IS
799 SELECT COUNT(distinct nvl(cmp.complainant_person_id,0)) p4_prsn_cnt, COUNT(distinct cmp.complaint_id) p4_cnt
800    FROM GHR_COMPLAINTS2 cmp,GHR_COMPL_CLAIMS claims
801    WHERE claims.complaint_id = cmp.complaint_id
802    AND claims.claim IN ('130','140')
803    AND claims.phase IN (20,30)
804    AND cmp.agency_code = c_agency_code
805    AND cmp.formal_com_filed BETWEEN c_from_date AND c_to_date;
806 
807 /*CURSOR cur_p4_tot_harass_issue(c_from_date date, c_to_date date,c_agency_code ghr_complaints2.agency_code%type) IS
808 SELECT COUNT(distinct nvl(cmp.complainant_person_id,0)) p4_prsn_cnt, COUNT(distinct cmp.complaint_id) p4_cnt
809    FROM GHR_COMPLAINTS2 cmp,GHR_COMPL_CLAIMS claims,  GHR_COMPL_BASES bases
810    WHERE bases.compl_claim_id = claims.compl_claim_id
811    AND claims.complaint_id = cmp.complaint_id
812    AND claims.claim IN ('130','140')
813    AND claims.phase IN (20,30)
814    AND DECODE(claims.claim,130,bases.basis,'#') NOT IN  DECODE(claims.claim,130,'SEX','1')
815    AND DECODE(claims.claim,140,bases.basis,'#') IN  DECODE(claims.claim,140,'(''GHR_US_COM_REP_BASIS'',''GHR_US_COM_SEX_BASIS'')','#')
816    AND cmp.agency_code = c_agency_code
817    AND cmp.formal_com_filed BETWEEN c_from_date AND c_to_date;
818 */
819 CURSOR cur_p4_tot_reassign_issue(c_from_date date, c_to_date date,c_agency_code ghr_complaints2.agency_code%type) IS
820 SELECT COUNT(distinct nvl(cmp.complainant_person_id,0)) p4_prsn_cnt, COUNT(distinct cmp.complaint_id) p4_cnt
821    FROM GHR_COMPLAINTS2 cmp,GHR_COMPL_CLAIMS claims
822    WHERE claims.complaint_id = cmp.complaint_id
823    AND claims.claim IN ('180','190')
824    AND claims.phase IN (20,30)
825    AND cmp.agency_code = c_agency_code
826    AND cmp.formal_com_filed BETWEEN c_from_date AND c_to_date;
827 
828 CURSOR cur_p4_totprsn_basis(c_from_date date, c_to_date date, c_basis GHR_COMPL_BASES.basis%type,c_agency_code ghr_complaints2.agency_code%type) IS
829 SELECT COUNT(distinct nvl(cmp.complainant_person_id,0)) p4_prsn_cnt, COUNT(distinct cmp.complaint_id) p4_cnt
830    FROM GHR_COMPLAINTS2 cmp,GHR_COMPL_CLAIMS claims, GHR_COMPL_BASES bases
831    WHERE bases.compl_claim_id = claims.compl_claim_id
832    AND claims.complaint_id = cmp.complaint_id
833    AND claims.phase IN (20,30)
834    AND bases.basis = c_basis
835    AND cmp.agency_code = c_agency_code
836    AND cmp.formal_com_filed BETWEEN c_from_date AND c_to_date;
837 
838 CURSOR cur_p4_totprsn_basis_value(c_from_date date, c_to_date date, c_basis GHR_COMPL_BASES.basis%type,c_value GHR_COMPL_BASES.value%type, c_agency_code ghr_complaints2.agency_code%type) IS
839 SELECT COUNT(distinct nvl(cmp.complainant_person_id,0)) p4_prsn_cnt,COUNT(distinct cmp.complaint_id) p4_cnt
840    FROM GHR_COMPLAINTS2 cmp,GHR_COMPL_CLAIMS claims, GHR_COMPL_BASES bases
841    WHERE bases.compl_claim_id = claims.compl_claim_id
842    AND claims.complaint_id = cmp.complaint_id
843    AND claims.phase IN (20,30)
844    AND bases.basis = c_basis
845    AND bases.value = c_value
846    AND cmp.agency_code = c_agency_code
847    AND cmp.formal_com_filed BETWEEN c_from_date AND c_to_date;
848 
849 -------- Specific Total Cursors
850 -- Total By issues
851 -- For Most of the issues except pay including overtime, harassment, reassignment
852 CURSOR cur_p4_totprsn_issue(c_from_date date, c_to_date date, c_claim GHR_COMPL_CLAIMS.claim%type,c_agency_code ghr_complaints2.agency_code%type) IS
853 SELECT COUNT(distinct nvl(cmp.complainant_person_id,0)) p4_prsn_cnt, COUNT(distinct cmp.complaint_id) p4_cnt
854    FROM GHR_COMPLAINTS2 cmp,GHR_COMPL_CLAIMS claims, GHR_COMPL_BASES bases
855    WHERE bases.compl_claim_id = claims.compl_claim_id
856    AND claims.complaint_id = cmp.complaint_id
857    AND claims.claim = c_claim
858    AND claims.phase IN (20,30)
859    AND bases.basis <> 'SEX'
860    AND cmp.agency_code = c_agency_code
861    AND cmp.formal_com_filed BETWEEN c_from_date AND c_to_date;
862 
863 -- For harassment Sexual
864 CURSOR cur_p4_tot_harass_sex_issue(c_from_date date, c_to_date date, c_claim GHR_COMPL_CLAIMS.claim%type,c_agency_code ghr_complaints2.agency_code%type) IS
865 SELECT COUNT(distinct nvl(cmp.complainant_person_id,0)) p4_prsn_cnt, COUNT(distinct cmp.complaint_id) p4_cnt
866    FROM GHR_COMPLAINTS2 cmp,GHR_COMPL_CLAIMS claims, GHR_COMPL_BASES bases
867    WHERE  bases.compl_claim_id = claims.compl_claim_id
868    AND claims.complaint_id = cmp.complaint_id
869    AND claims.claim = c_claim
870    AND claims.phase IN (20,30)
871    AND bases.basis IN ('GHR_US_COM_SEX_BASIS','GHR_US_COM_REP_BASIS')
872    AND cmp.agency_code = c_agency_code
873    AND cmp.formal_com_filed BETWEEN c_from_date AND c_to_date;
874 
875 -- for reasonable accommodation
876 CURSOR cur_p4_tot_reacc_issue(c_from_date date, c_to_date date, c_claim GHR_COMPL_CLAIMS.claim%type,c_agency_code ghr_complaints2.agency_code%type) IS
877 SELECT COUNT(distinct nvl(cmp.complainant_person_id,0)) p4_prsn_cnt, COUNT(distinct cmp.complaint_id) p4_cnt
878    FROM GHR_COMPLAINTS2 cmp,GHR_COMPL_CLAIMS claims, GHR_COMPL_BASES bases
879    WHERE bases.compl_claim_id = claims.compl_claim_id
880    AND claims.complaint_id = cmp.complaint_id
881    AND claims.claim = c_claim
882    AND claims.phase IN (20,30)
883    AND bases.basis IN ('GHR_US_COM_REL_BASIS','GHR_US_COM_REP_BASIS','GHR_US_COM_HC_BASIS')
884    AND cmp.agency_code = c_agency_code
885    AND cmp.formal_com_filed BETWEEN c_from_date AND c_to_date;
886 
887 -- For Race, National Origin
888 
889 CURSOR cur_p4_totprsn_rcno_value(c_from_date date, c_to_date date, c_basis GHR_COMPL_BASES.basis%type,c_value GHR_COMPL_BASES.value%type, c_agency_code ghr_complaints2.agency_code%type) IS
890 SELECT COUNT(distinct nvl(cmp.complainant_person_id,0)) p4_prsn_cnt,COUNT(distinct cmp.complaint_id) p4_cnt
891    FROM GHR_COMPLAINTS2 cmp,GHR_COMPL_CLAIMS claims, GHR_COMPL_BASES bases
892    WHERE bases.compl_claim_id = claims.compl_claim_id
893    AND claims.complaint_id = cmp.complaint_id
894    AND claims.phase IN (20,30)
895    AND claims.claim NOT IN ('140','200')
896    AND bases.basis = c_basis
897    AND bases.value = c_value
898    AND cmp.agency_code = c_agency_code
899    AND cmp.formal_com_filed BETWEEN c_from_date AND c_to_date;
900 
901 --Color, Age
902 CURSOR cur_p4_tot_colage_basis(c_from_date date, c_to_date date, c_basis GHR_COMPL_BASES.basis%type,c_agency_code ghr_complaints2.agency_code%type) IS
903 SELECT COUNT(distinct nvl(cmp.complainant_person_id,0)) p4_prsn_cnt, COUNT(distinct cmp.complaint_id) p4_cnt
904    FROM GHR_COMPLAINTS2 cmp,GHR_COMPL_CLAIMS claims, GHR_COMPL_BASES bases
905    WHERE bases.compl_claim_id = claims.compl_claim_id
906    AND claims.complaint_id = cmp.complaint_id
907    AND claims.phase IN (20,30)
908    AND claims.claim NOT IN ('140','200')
909    AND bases.basis = c_basis
910    AND cmp.agency_code = c_agency_code
911    AND cmp.formal_com_filed BETWEEN c_from_date AND c_to_date;
912 
913 -- For Religion
914 CURSOR cur_p4_tot_rel_basis(c_from_date date, c_to_date date, c_basis GHR_COMPL_BASES.basis%type,c_agency_code ghr_complaints2.agency_code%type) IS
915 SELECT COUNT(distinct nvl(cmp.complainant_person_id,0)) p4_prsn_cnt, COUNT(distinct cmp.complaint_id) p4_cnt
916    FROM GHR_COMPLAINTS2 cmp,GHR_COMPL_CLAIMS claims, GHR_COMPL_BASES bases
917    WHERE bases.compl_claim_id = claims.compl_claim_id
918    AND claims.complaint_id = cmp.complaint_id
919    AND claims.phase IN (20,30)
920    AND claims.claim NOT IN ('140')
921    AND bases.basis = c_basis
922    AND cmp.agency_code = c_agency_code
923    AND cmp.formal_com_filed BETWEEN c_from_date AND c_to_date;
924 
925 -- Disability
926 CURSOR cur_p4_totprsn_disab_value(c_from_date date, c_to_date date, c_basis GHR_COMPL_BASES.basis%type,c_value GHR_COMPL_BASES.value%type, c_agency_code ghr_complaints2.agency_code%type) IS
927 SELECT COUNT(distinct nvl(cmp.complainant_person_id,0)) p4_prsn_cnt,COUNT(distinct cmp.complaint_id) p4_cnt
928    FROM GHR_COMPLAINTS2 cmp,GHR_COMPL_CLAIMS claims, GHR_COMPL_BASES bases
929    WHERE bases.compl_claim_id = claims.compl_claim_id
930    AND claims.complaint_id = cmp.complaint_id
931    AND claims.phase IN (20,30)
932    AND claims.claim NOT IN ('140')
933    AND bases.basis = c_basis
934    AND bases.value = c_value
935    AND cmp.agency_code = c_agency_code
936    AND cmp.formal_com_filed BETWEEN c_from_date AND c_to_date;
937 
938 -- For Sex
939 CURSOR cur_p4_tot_sex_basis(c_from_date date, c_to_date date, c_basis GHR_COMPL_BASES.basis%type,c_value GHR_COMPL_BASES.value%type, c_agency_code ghr_complaints2.agency_code%type) IS
940 SELECT COUNT(distinct nvl(cmp.complainant_person_id,0)) p4_prsn_cnt, COUNT(distinct cmp.complaint_id) p4_cnt
941    FROM GHR_COMPLAINTS2 cmp,GHR_COMPL_CLAIMS claims, GHR_COMPL_BASES bases
942    WHERE bases.compl_claim_id = claims.compl_claim_id
943    AND claims.complaint_id = cmp.complaint_id
944    AND claims.phase IN (20,30)
945    AND claims.claim NOT IN ('200')
946    AND bases.basis = c_basis
947    AND bases.value = c_value
948    AND cmp.agency_code = c_agency_code
949    AND cmp.formal_com_filed BETWEEN c_from_date AND c_to_date;
950 
951 
952 -- For equal pay act
953 CURSOR cur_p4_tot_eqpay_basis(c_from_date date, c_to_date date, c_basis GHR_COMPL_BASES.basis%type,c_value GHR_COMPL_BASES.value%type,c_agency_code ghr_complaints2.agency_code%type) IS
954 SELECT COUNT(distinct nvl(cmp.complainant_person_id,0)) p4_prsn_cnt, COUNT(distinct cmp.complaint_id) p4_cnt
955    FROM GHR_COMPLAINTS2 cmp,GHR_COMPL_CLAIMS claims, GHR_COMPL_BASES bases
956    WHERE bases.compl_claim_id = claims.compl_claim_id
957    AND claims.complaint_id = cmp.complaint_id
958    AND claims.phase IN (20,30)
959    AND claims.claim = '160'
960    AND bases.basis = c_basis
961    AND bases.value = c_value
962    AND cmp.agency_code = c_agency_code
963    AND cmp.formal_com_filed BETWEEN c_from_date AND c_to_date;
964 ----
965 
966 l_P4_a17 NUMBER := 0;
967 l_P4_a18 NUMBER := 0;
968 l_P4_a19 NUMBER := 0;
969 l_P4_b17 NUMBER := 0;
970 l_P4_b18 NUMBER := 0;
971 l_P4_b19 NUMBER := 0;
972 l_P4_c17 NUMBER := 0;
973 l_P4_c18 NUMBER := 0;
974 l_P4_c19 NUMBER := 0;
975 l_P4_d17 NUMBER := 0;
976 l_P4_d18 NUMBER := 0;
977 l_P4_d19 NUMBER := 0;
978 l_P4_e1_17 NUMBER := 0;
979 l_P4_e1_18 NUMBER := 0;
980 l_P4_e1_19 NUMBER := 0;
981 l_P4_e2_17 NUMBER := 0;
982 l_P4_e2_18 NUMBER := 0;
983 l_P4_e2_19 NUMBER := 0;
984 l_P4_e3_17 NUMBER := 0;
985 l_P4_e3_18 NUMBER := 0;
986 l_P4_e3_19 NUMBER := 0;
987 l_P4_e4_17 NUMBER := 0;
988 l_P4_e4_18 NUMBER := 0;
989 l_P4_e4_19 NUMBER := 0;
990 l_P4_e5_17 NUMBER := 0;
991 l_P4_e5_18 NUMBER := 0;
992 l_P4_e5_19 NUMBER := 0;
993 l_P4_f17 NUMBER := 0;
994 l_P4_f18 NUMBER := 0;
995 l_P4_f19 NUMBER := 0;
996 l_P4_g17 NUMBER := 0;
997 l_P4_g18 NUMBER := 0;
998 l_P4_g19 NUMBER := 0;
999 l_P4_h17 NUMBER := 0;
1000 l_P4_h18 NUMBER := 0;
1001 l_P4_h19 NUMBER := 0;
1002 l_P4_i1_17 NUMBER := 0;
1003 l_P4_i1_18 NUMBER := 0;
1004 l_P4_i1_19 NUMBER := 0;
1005 l_P4_i2_17 NUMBER := 0;
1006 l_P4_i2_18 NUMBER := 0;
1007 l_P4_i2_19 NUMBER := 0;
1008 l_P4_j17 NUMBER := 0;
1009 l_P4_j18 NUMBER := 0;
1010 l_P4_j19 NUMBER := 0;
1011 l_P4_k17 NUMBER := 0;
1012 l_P4_k18 NUMBER := 0;
1013 l_P4_k19 NUMBER := 0;
1014 l_P4_l17 NUMBER := 0;
1015 l_P4_l18 NUMBER := 0;
1016 l_P4_l19 NUMBER := 0;
1017 l_P4_m1_17 NUMBER := 0;
1018 l_P4_m1_18 NUMBER := 0;
1019 l_P4_m1_19 NUMBER := 0;
1020 l_P4_m2_17 NUMBER := 0;
1021 l_P4_m2_18 NUMBER := 0;
1022 l_P4_m2_19 NUMBER := 0;
1023 l_P4_n17 NUMBER := 0;
1024 l_P4_n18 NUMBER := 0;
1025 l_P4_n19 NUMBER := 0;
1026 l_P4_o17 NUMBER := 0;
1027 l_P4_o18 NUMBER := 0;
1028 l_P4_o19 NUMBER := 0;
1029 l_P4_p17 NUMBER := 0;
1030 l_P4_p18 NUMBER := 0;
1031 l_P4_p19 NUMBER := 0;
1032 l_P4_q17 NUMBER := 0;
1033 l_P4_q18 NUMBER := 0;
1034 l_P4_q19 NUMBER := 0;
1035 l_P4_r17 NUMBER := 0;
1036 l_P4_r18 NUMBER := 0;
1037 l_P4_r19 NUMBER := 0;
1038 l_P4_s17 NUMBER := 0;
1039 l_P4_s18 NUMBER := 0;
1040 l_P4_s19 NUMBER := 0;
1041 l_P4_t17 NUMBER := 0;
1042 l_P4_t18 NUMBER := 0;
1043 l_P4_t19 NUMBER := 0;
1044 l_P4_u17 NUMBER := 0;
1045 l_P4_u18 NUMBER := 0;
1046 l_P4_u19 NUMBER := 0;
1047 
1048 --  summary columns
1049 l_tot1_1 NUMBER := 0;
1050 l_tot2_1 NUMBER := 0;
1051 l_tot3_1 NUMBER := 0;
1052 l_tot1_2 NUMBER := 0;
1053 l_tot2_2 NUMBER := 0;
1054 l_tot3_2 NUMBER := 0;
1055 l_tot1_3 NUMBER := 0;
1056 l_tot2_3 NUMBER := 0;
1057 l_tot3_3 NUMBER := 0;
1058 l_tot1_4 NUMBER := 0;
1059 l_tot2_4 NUMBER := 0;
1060 l_tot3_4 NUMBER := 0;
1064 l_tot1_6 NUMBER := 0;
1061 l_tot1_5 NUMBER := 0;
1062 l_tot2_5 NUMBER := 0;
1063 l_tot3_5 NUMBER := 0;
1065 l_tot2_6 NUMBER := 0;
1066 l_tot3_6 NUMBER := 0;
1067 l_tot1_7 NUMBER := 0;
1068 l_tot2_7 NUMBER := 0;
1069 l_tot3_7 NUMBER := 0;
1070 l_tot1_8 NUMBER := 0;
1071 l_tot2_8 NUMBER := 0;
1072 l_tot3_8 NUMBER := 0;
1073 l_tot1_9 NUMBER := 0;
1074 l_tot2_9 NUMBER := 0;
1075 l_tot3_9 NUMBER := 0;
1076 l_tot1_10 NUMBER := 0;
1077 l_tot2_10 NUMBER := 0;
1078 l_tot3_10 NUMBER := 0;
1079 l_tot1_11 NUMBER := 0;
1080 l_tot2_11 NUMBER := 0;
1081 l_tot3_11 NUMBER := 0;
1082 l_tot1_12 NUMBER := 0;
1083 l_tot2_12 NUMBER := 0;
1084 l_tot3_12 NUMBER := 0;
1085 l_tot1_13 NUMBER := 0;
1086 l_tot2_13 NUMBER := 0;
1087 l_tot3_13 NUMBER := 0;
1088 l_tot1_14 NUMBER := 0;
1089 l_tot2_14 NUMBER := 0;
1090 l_tot3_14 NUMBER := 0;
1091 l_tot1_15 NUMBER := 0;
1092 l_tot2_15 NUMBER := 0;
1093 l_tot3_15 NUMBER := 0;
1094 l_tot1_16 NUMBER := 0;
1095 l_tot2_16 NUMBER := 0;
1096 l_tot3_16 NUMBER := 0;
1097 -- Newly added fields
1098 l_P4_e1 NUMBER := 0;
1099 l_P4_e2 NUMBER := 0;
1100 l_P4_e3 NUMBER := 0;
1101 l_P4_e4 NUMBER := 0;
1102 l_P4_e5 NUMBER := 0;
1103 l_P4_e6 NUMBER := 0;
1104 l_P4_e7 NUMBER := 0;
1105 l_P4_e8 NUMBER := 0;
1106 l_P4_e9 NUMBER := 0;
1107 l_P4_e10 NUMBER := 0;
1108 l_P4_e11 NUMBER := 0;
1109 l_P4_e14 NUMBER := 0;
1110 l_P4_e15 NUMBER := 0;
1111 l_P4_e16 NUMBER := 0;
1112 l_P4_e17 NUMBER := 0;
1113 l_P4_e18 NUMBER := 0;
1114 l_P4_e19 NUMBER := 0;
1115 
1116 l_P4_m1 NUMBER := 0;
1117 l_P4_m2 NUMBER := 0;
1118 l_P4_m3 NUMBER := 0;
1119 l_P4_m4 NUMBER := 0;
1120 l_P4_m5 NUMBER := 0;
1121 l_P4_m6 NUMBER := 0;
1122 l_P4_m7 NUMBER := 0;
1123 l_P4_m8 NUMBER := 0;
1124 l_P4_m9 NUMBER := 0;
1125 l_P4_m10 NUMBER := 0;
1126 l_P4_m11 NUMBER := 0;
1127 l_P4_m14 NUMBER := 0;
1128 l_P4_m15 NUMBER := 0;
1129 l_P4_m16 NUMBER := 0;
1130 l_P4_m17 NUMBER := 0;
1131 l_P4_m18 NUMBER := 0;
1132 l_P4_m19 NUMBER := 0;
1133 
1134 l_P4_i1 NUMBER := 0;
1135 l_P4_i2 NUMBER := 0;
1136 l_P4_i3 NUMBER := 0;
1137 l_P4_i4 NUMBER := 0;
1138 l_P4_i5 NUMBER := 0;
1139 l_P4_i6 NUMBER := 0;
1140 l_P4_i7 NUMBER := 0;
1141 l_P4_i8 NUMBER := 0;
1142 l_P4_i9 NUMBER := 0;
1143 l_P4_i10 NUMBER := 0;
1144 l_P4_i11 NUMBER := 0;
1145 l_P4_i12 NUMBER := 0;
1146 l_P4_i14 NUMBER := 0;
1147 l_P4_i15 NUMBER := 0;
1148 l_P4_i16 NUMBER := 0;
1149 l_P4_i17 NUMBER := 0;
1150 l_P4_i18 NUMBER := 0;
1151 l_P4_i19 NUMBER := 0;
1152 
1153 BEGIN
1154 	fnd_file.put_line(fnd_file.log,'Starting Part4 - Fields');
1155 	-- Loop through p4 matrix PL/SQL tables
1156 	FOR p4_ctr IN v_P4Matrix.FIRST .. v_P4Matrix.LAST LOOP
1157 		-- If value is null, call the cursor cur_p4_novalue, else call the cursor cur_p4
1158 		IF TRIM(v_P4Matrix(p4_ctr).basevalues) IS NULL THEN
1159 		    FOR cur_ctr IN cur_p4_novalue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims,v_P4Matrix(p4_ctr).bases, p_agency_code) LOOP
1160 				vXMLTable(vCtr).TagName := v_P4Matrix(p4_ctr).fieldname;
1161 				vXMLTable(vCtr).TagValue := to_char(cur_ctr.p4_cnt);
1162 	--			vCtr := vCtr + 1;
1163 		--		fnd_file.put_line(fnd_file.log,'Finished populating Part4 ' || vXMLTable(vCtr).TagName);
1164 
1165 				IF SUBSTR(vXMLTable(vCtr).TagName,1,4) = 'P4_e' THEN
1166 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_1'  THEN
1167 					   l_P4_e1 := l_P4_e1 + vXMLTable(vCtr).TagValue;
1168 					END IF;
1169 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_2'  THEN
1170 					   l_P4_e2 := l_P4_e2 + vXMLTable(vCtr).TagValue;
1171 					END IF;
1172 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_3'  THEN
1173 					   l_P4_e3 := l_P4_e3 + vXMLTable(vCtr).TagValue;
1174 					END IF;
1175 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_4'  THEN
1176 					   l_P4_e4 := l_P4_e4 + vXMLTable(vCtr).TagValue;
1177 					END IF;
1178 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_5'  THEN
1179 					   l_P4_e5 := l_P4_e5 + vXMLTable(vCtr).TagValue;
1180 					END IF;
1181 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_6'  THEN
1182 					   l_P4_e6 := l_P4_e6 + vXMLTable(vCtr).TagValue;
1183 					END IF;
1184 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_7'  THEN
1185 					   l_P4_e7 := l_P4_e7 + vXMLTable(vCtr).TagValue;
1186 					END IF;
1187 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_8'  THEN
1188 					   l_P4_e8 := l_P4_e8 + vXMLTable(vCtr).TagValue;
1189 					END IF;
1190 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_9'  THEN
1191 					   l_P4_e9 := l_P4_e9 + vXMLTable(vCtr).TagValue;
1192 					END IF;
1193 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-2) = '_10'  THEN
1194 					   l_P4_e10 := l_P4_e10 + vXMLTable(vCtr).TagValue;
1195 					END IF;
1196 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-2) = '_11'  THEN
1197 					   l_P4_e11 := l_P4_e11 + vXMLTable(vCtr).TagValue;
1198 					END IF;
1199 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-2) = '_14'  THEN
1200 					   l_P4_e14 := l_P4_e14 + vXMLTable(vCtr).TagValue;
1201 					END IF;
1202 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-2) = '_15'  THEN
1203 					   l_P4_e15 := l_P4_e15 + vXMLTable(vCtr).TagValue;
1204 					END IF;
1205 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-2) = '_16'  THEN
1206 					   l_P4_e16 := l_P4_e16 + vXMLTable(vCtr).TagValue;
1207 					END IF;
1208 				END IF;
1209 
1210 				IF SUBSTR(vXMLTable(vCtr).TagName,1,4) = 'P4_m' THEN
1211 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_1'  THEN
1212 					   l_P4_m1 := l_P4_m1 + vXMLTable(vCtr).TagValue;
1213 					END IF;
1214 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_2'  THEN
1215 					   l_P4_m2 := l_P4_m2 + vXMLTable(vCtr).TagValue;
1216 					END IF;
1217 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_3'  THEN
1218 					   l_P4_m3 := l_P4_m3 + vXMLTable(vCtr).TagValue;
1219 					END IF;
1220 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_4'  THEN
1221 					   l_P4_m4 := l_P4_m4 + vXMLTable(vCtr).TagValue;
1222 					END IF;
1223 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_5'  THEN
1224 					   l_P4_m5 := l_P4_m5 + vXMLTable(vCtr).TagValue;
1225 					END IF;
1226 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_6'  THEN
1227 					   l_P4_m6 := l_P4_m6 + vXMLTable(vCtr).TagValue;
1228 					END IF;
1229 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_7'  THEN
1230 					   l_P4_m7 := l_P4_m7 + vXMLTable(vCtr).TagValue;
1231 					END IF;
1232 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_8'  THEN
1233 					   l_P4_m8 := l_P4_m8 + vXMLTable(vCtr).TagValue;
1234 					END IF;
1235 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_9'  THEN
1236 					   l_P4_m9 := l_P4_m9 + vXMLTable(vCtr).TagValue;
1237 					END IF;
1238 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-2) = '_10'  THEN
1239 					   l_P4_m10 := l_P4_m10 + vXMLTable(vCtr).TagValue;
1240 					END IF;
1241 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-2) = '_11'  THEN
1242 					   l_P4_m11 := l_P4_m11 + vXMLTable(vCtr).TagValue;
1243 					END IF;
1244 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-2) = '_14'  THEN
1245 					   l_P4_m14 := l_P4_m14 + vXMLTable(vCtr).TagValue;
1246 					END IF;
1247 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-2) = '_15'  THEN
1248 					   l_P4_m15 := l_P4_m15 + vXMLTable(vCtr).TagValue;
1249 					END IF;
1250 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-2) = '_16'  THEN
1251 					   l_P4_m16 := l_P4_m16 + vXMLTable(vCtr).TagValue;
1252 					END IF;
1253 				END IF;
1254 
1255 				IF (vXMLTable(vCtr).TagName = 'P4_i1_1') THEN
1256 					l_P4_i1 :=  vXMLTable(vCtr).TagValue;
1257 				END IF;
1258 
1259 				IF (vXMLTable(vCtr).TagName = 'P4_i1_2') THEN
1260 					l_P4_i2 :=  vXMLTable(vCtr).TagValue;
1261 				END IF;
1262 
1263 				IF (vXMLTable(vCtr).TagName = 'P4_i1_3') THEN
1264 					l_P4_i3 :=  vXMLTable(vCtr).TagValue;
1265 				END IF;
1266 
1267 				IF (vXMLTable(vCtr).TagName = 'P4_i1_4') THEN
1268 					l_P4_i4 :=  vXMLTable(vCtr).TagValue;
1269 				END IF;
1270 
1271 				IF (vXMLTable(vCtr).TagName = 'P4_i1_5') THEN
1272 					l_P4_i5 :=  vXMLTable(vCtr).TagValue;
1273 				END IF;
1274 
1275 				IF (vXMLTable(vCtr).TagName = 'P4_i1_6') THEN
1276 					l_P4_i6 :=  vXMLTable(vCtr).TagValue;
1277 				END IF;
1278 
1279 				IF (vXMLTable(vCtr).TagName = 'P4_i1_10') THEN
1280 					l_P4_i10 :=  vXMLTable(vCtr).TagValue;
1281 				END IF;
1282 
1283 				IF (vXMLTable(vCtr).TagName = 'P4_i1_11') THEN
1284 					l_P4_i11 :=  vXMLTable(vCtr).TagValue;
1285 				END IF;
1286 
1287 				IF (vXMLTable(vCtr).TagName = 'P4_i1_14') THEN
1288 					l_P4_i14 :=  vXMLTable(vCtr).TagValue;
1289 				END IF;
1290 
1291 				IF (vXMLTable(vCtr).TagName = 'P4_i1_15') THEN
1292 					l_P4_i15 :=  vXMLTable(vCtr).TagValue;
1293 				END IF;
1294 
1295 				IF (vXMLTable(vCtr).TagName = 'P4_i1_16') THEN
1296 					l_P4_i16 :=  vXMLTable(vCtr).TagValue;
1297 				END IF;
1298 
1299 				IF SUBSTR(vXMLTable(vCtr).TagName,1,4) = 'P4_i' THEN
1300 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_7'  THEN
1301 					   l_P4_i7 := l_P4_i7 + vXMLTable(vCtr).TagValue;
1302 					END IF;
1303 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_8'  THEN
1304 					   l_P4_i8 := l_P4_i8 + vXMLTable(vCtr).TagValue;
1305 					END IF;
1306 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_9'  THEN
1307 					   l_P4_i9 := l_P4_i9 + vXMLTable(vCtr).TagValue;
1308 					END IF;
1309 				END IF;
1310 
1311 				-- Populating the summary columns by Looping through rowwise
1312 				-- If Claim is Assignment
1313 				IF v_P4Matrix(p4_ctr).claims = '10' THEN
1314 				   l_P4_a17 := l_P4_a17 + cur_ctr.p4_cnt;
1315 				-- Complainants by Issue
1316 					IF (l_P4_a19 > 0) AND (l_P4_a18 > 0) THEN
1317 					   NULL;
1318 					ELSE
1319 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1320 						   l_P4_a19 := cur_totissue.p4_prsn_cnt;
1321 						   l_P4_a18 := cur_totissue.p4_cnt;
1322 						END LOOP;
1323 					END IF;
1324 				-- If Claim is Assignment of Duties
1325 				ELSIF v_P4Matrix(p4_ctr).claims = '20' THEN
1326                     l_P4_b17 := l_P4_b17 + cur_ctr.p4_cnt;
1327 					-- Complainants by Issue
1328 					IF (l_P4_b19 > 0) AND (l_P4_b18 > 0) THEN
1329 					   NULL;
1330 					ELSE
1331 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1332 						   l_P4_b19 := cur_totissue.p4_prsn_cnt;
1333 						   l_P4_b18 := cur_totissue.p4_cnt;
1334 						END LOOP;
1335 					END IF;
1336 				-- If Claim is Awards
1337 				ELSIF v_P4Matrix(p4_ctr).claims = '30' THEN
1338                     l_P4_c17 := l_P4_c17 + cur_ctr.p4_cnt;
1339 					-- Complainants by Issue
1340 					IF (l_P4_c19 > 0) AND (l_P4_c18 > 0) THEN
1341 					   NULL;
1342 					ELSE
1343 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1344 						   l_P4_c19 := cur_totissue.p4_prsn_cnt;
1345 						   l_P4_c18 := cur_totissue.p4_cnt;
1346 						END LOOP;
1347 					END IF;
1348 				-- If Claim is Awards
1349 				-- If Claim is Conversion to full time.
1350 				ELSIF v_P4Matrix(p4_ctr).claims = '40' THEN
1351                     l_P4_d17 := l_P4_d17 + cur_ctr.p4_cnt;
1352 					-- Complainants by Issue
1353 					IF (l_P4_d19 > 0) AND (l_P4_d18 > 0)  THEN
1354 					   NULL;
1355 					ELSE
1356 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1357 						   l_P4_d19 := cur_totissue.p4_prsn_cnt;
1358 						   l_P4_d18 := cur_totissue.p4_cnt;
1359 						END LOOP;
1360 					END IF;
1361 				-- If Claim is Awards
1362 				ELSIF v_P4Matrix(p4_ctr).claims = '50' THEN
1363                     l_P4_e1_17 := l_P4_e1_17 + cur_ctr.p4_cnt;
1364 		--			l_P4_e17 := l_P4_e17 + l_P4_e1_17;
1365 					-- Complainants by Issue
1366 					IF (l_P4_e1_19 > 0) AND (l_P4_e1_18 > 0) THEN
1367 					   NULL;
1368 					ELSE
1369 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1370 						   l_P4_e1_19 := cur_totissue.p4_prsn_cnt;
1371 						   l_P4_e1_18 := cur_totissue.p4_cnt;
1372 						END LOOP;
1373 					END IF;
1374 				-- If Claim is Awards
1375 				ELSIF v_P4Matrix(p4_ctr).claims = '60' THEN
1376                     l_P4_e2_17 := l_P4_e2_17 + cur_ctr.p4_cnt;
1377 		--			l_P4_e17 := l_P4_e17 + l_P4_e2_17;
1378 					-- Complainants by Issue
1379 					IF (l_P4_e2_19 > 0) AND (l_P4_e2_18 > 0) THEN
1380 					   NULL;
1381 					ELSE
1382 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1383 						   l_P4_e2_19 := cur_totissue.p4_prsn_cnt;
1384 						   l_P4_e2_18 := cur_totissue.p4_cnt;
1385 						END LOOP;
1386 					END IF;
1387 				ELSIF v_P4Matrix(p4_ctr).claims = '70' THEN
1388                     l_P4_e3_17 := l_P4_e3_17 + cur_ctr.p4_cnt;
1389 		--			l_P4_e17 := l_P4_e17 + l_P4_e3_17;
1390 					-- Complainants by Issue
1391 					IF (l_P4_e3_19 > 0) AND (l_P4_e3_18 > 0) THEN
1392 					   NULL;
1393 					ELSE
1394 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1395 						   l_P4_e3_19 := cur_totissue.p4_prsn_cnt;
1396 						   l_P4_e3_18 := cur_totissue.p4_cnt;
1397 						END LOOP;
1398 					END IF;
1399 				ELSIF v_P4Matrix(p4_ctr).claims = '80' THEN
1400                     l_P4_e4_17 := l_P4_e4_17 + cur_ctr.p4_cnt;
1401 		--			l_P4_e17 := l_P4_e17 + l_P4_e4_17;
1402 
1403 					-- Complainants by Issue
1404 					IF (l_P4_e4_19 > 0) AND (l_P4_e4_18 > 0) THEN
1405 					   NULL;
1406 					ELSE
1407 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1408 						   l_P4_e4_19 := cur_totissue.p4_prsn_cnt;
1409 						   l_P4_e4_18 := cur_totissue.p4_cnt;
1410 						END LOOP;
1411 					END IF;
1412 				ELSIF v_P4Matrix(p4_ctr).claims = '90' THEN
1413                     l_P4_e5_17 := l_P4_e5_17 + cur_ctr.p4_cnt;
1414 		--			l_P4_e17 := l_P4_e17 + l_P4_e5_17;
1415 
1416 					-- Complainants by Issue
1417 					IF (l_P4_e5_19 > 0) AND (l_P4_e5_18 > 0) THEN
1418 					   NULL;
1419 					ELSE
1420 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1421 						   l_P4_e5_19 := cur_totissue.p4_prsn_cnt;
1422 						   l_P4_e5_18 := cur_totissue.p4_cnt;
1423 						END LOOP;
1424 					END IF;
1425 				ELSIF v_P4Matrix(p4_ctr).claims = '100' THEN
1426                     l_P4_f17 := l_P4_f17 + cur_ctr.p4_cnt;
1427 					-- Complainants by Issue
1428 					IF (l_P4_f19 > 0) AND (l_P4_f18 > 0) THEN
1429 					   NULL;
1430 					ELSE
1431 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1432 						   l_P4_f19 := cur_totissue.p4_prsn_cnt;
1433 						   l_P4_f18 := cur_totissue.p4_cnt;
1434 						END LOOP;
1435 					END IF;
1436 				ELSIF v_P4Matrix(p4_ctr).claims = '110' THEN
1437                     l_P4_g17 := l_P4_g17 + cur_ctr.p4_cnt;
1438 					-- Complainants by Issue
1439 					IF (l_P4_g19 > 0) AND (l_P4_g18 > 0) THEN
1440 					   NULL;
1441 					ELSE
1442 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1443 						   l_P4_g19 := cur_totissue.p4_prsn_cnt;
1444 						   l_P4_g18 := cur_totissue.p4_cnt;
1445 						END LOOP;
1446 					END IF;
1447 				ELSIF v_P4Matrix(p4_ctr).claims = '120' THEN
1448                     l_P4_h17 := l_P4_h17 + cur_ctr.p4_cnt;
1449 					-- Complainants by Issue
1450 					IF (l_P4_h19 > 0) AND (l_P4_h18 > 0) THEN
1451 					   NULL;
1452 					ELSE
1453 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1454 						   l_P4_h19 := cur_totissue.p4_prsn_cnt;
1455 						   l_P4_h18 := cur_totissue.p4_cnt;
1456 						END LOOP;
1457 					END IF;
1458 				ELSIF v_P4Matrix(p4_ctr).claims = '130' THEN
1459                     l_P4_i1_17 := l_P4_i1_17 + cur_ctr.p4_cnt;
1460 		--			l_P4_i17 := l_P4_i17 + l_P4_i1_17;
1461 					-- Complainants by Issue
1462 					IF (l_P4_i1_19 > 0) AND (l_P4_i1_18 > 0) THEN
1463 					   NULL;
1464 					ELSE
1465 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1466 						   l_P4_i1_19 := cur_totissue.p4_prsn_cnt;
1467 						   l_P4_i1_18 := cur_totissue.p4_cnt;
1468 						END LOOP;
1469 					END IF;
1470 				ELSIF v_P4Matrix(p4_ctr).claims = '140' THEN
1471                     l_P4_i2_17 := l_P4_i2_17 + cur_ctr.p4_cnt;
1472 		--			l_P4_i17 := l_P4_i17 + l_P4_i2_17;
1473 					-- Complainants by Issue
1474 					IF (l_P4_i2_19 > 0) AND (l_P4_i2_18 > 0) THEN
1475 					   NULL;
1476 					ELSE
1477 						FOR cur_totissue IN cur_p4_tot_harass_sex_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1478 						   l_P4_i2_19 := cur_totissue.p4_prsn_cnt;
1479 						   l_P4_i2_18 := cur_totissue.p4_cnt;
1480 						END LOOP;
1481 					END IF;
1482 				ELSIF v_P4Matrix(p4_ctr).claims = '150' THEN
1483                     l_P4_j17 := l_P4_j17 + cur_ctr.p4_cnt;
1484 					-- Complainants by Issue
1485 					IF (l_P4_j19 > 0) AND (l_P4_j18 > 0) THEN
1486 					   NULL;
1487 					ELSE
1488 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1489 						   l_P4_j19 := cur_totissue.p4_prsn_cnt;
1490 						   l_P4_j18 := cur_totissue.p4_cnt;
1491 						END LOOP;
1492 					END IF;
1493 				ELSIF v_P4Matrix(p4_ctr).claims = '160' THEN
1494                     l_P4_k17 := l_P4_k17 + cur_ctr.p4_cnt;
1495 					-- Complainants by Issue
1496 					IF (l_P4_k19 > 0) AND (l_P4_k18 > 0) THEN
1497 					   NULL;
1498 					ELSE
1499 						FOR cur_totissue IN cur_p4_tot_pic_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1500 						   l_P4_k19 := cur_totissue.p4_prsn_cnt;
1501 						   l_P4_k18 := cur_totissue.p4_cnt;
1502 						END LOOP;
1503 					END IF;
1504 				ELSIF v_P4Matrix(p4_ctr).claims = '170' THEN
1505                     l_P4_l17 := l_P4_l17 + cur_ctr.p4_cnt;
1506 					-- Complainants by Issue
1507 					IF (l_P4_l19 > 0) AND (l_P4_l18 > 0) THEN
1508 					   NULL;
1509 					ELSE
1510 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1511 						   l_P4_l19 := cur_totissue.p4_prsn_cnt;
1512 						   l_P4_l18 := cur_totissue.p4_cnt;
1513 						END LOOP;
1514 					END IF;
1515 				ELSIF v_P4Matrix(p4_ctr).claims = '180' THEN
1516                     l_P4_m1_17 := l_P4_m1_17 + cur_ctr.p4_cnt;
1517 		--			l_P4_m17 := l_P4_m17 + l_P4_m1_17;
1518 					-- Complainants by Issue
1519 					IF (l_P4_m1_19 > 0) AND (l_P4_m1_18 > 0) THEN
1520 					   NULL;
1521 					ELSE
1522 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1523 						   l_P4_m1_19 := cur_totissue.p4_prsn_cnt;
1524 						   l_P4_m1_18 := cur_totissue.p4_cnt;
1525 						END LOOP;
1526 					END IF;
1527 				ELSIF v_P4Matrix(p4_ctr).claims = '190' THEN
1528                     l_P4_m2_17 := l_P4_m2_17 + cur_ctr.p4_cnt;
1529 			--		l_P4_m17 := l_P4_m17 + l_P4_m2_17;
1530 					-- Complainants by Issue
1531 					IF (l_P4_m2_19 > 0) AND (l_P4_m2_18 > 0) THEN
1532 					   NULL;
1533 					ELSE
1534 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1535 						   l_P4_m2_19 := cur_totissue.p4_prsn_cnt;
1536 						   l_P4_m2_18 := cur_totissue.p4_cnt;
1537 						END LOOP;
1538 					END IF;
1539 				ELSIF v_P4Matrix(p4_ctr).claims = '200' THEN
1540                     l_P4_n17 := l_P4_n17 + cur_ctr.p4_cnt;
1541 					-- Complainants by Issue
1542 					IF (l_P4_n19 > 0) AND (l_P4_n18 > 0) THEN
1543 					   NULL;
1544 					ELSE
1545 						FOR cur_totissue IN cur_p4_tot_reacc_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1546 						   l_P4_n19 := cur_totissue.p4_prsn_cnt;
1547 						   l_P4_n18 := cur_totissue.p4_cnt;
1548 						END LOOP;
1549 					END IF;
1550 				ELSIF v_P4Matrix(p4_ctr).claims = '210' THEN
1551                     l_P4_o17 := l_P4_o17 + cur_ctr.p4_cnt;
1552 					-- Complainants by Issue
1553 					IF (l_P4_o19 > 0) AND (l_P4_o18 > 0)THEN
1554 					   NULL;
1555 					ELSE
1556 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1557 						   l_P4_o19 := cur_totissue.p4_prsn_cnt;
1558 						   l_P4_o18 := cur_totissue.p4_cnt;
1559 						END LOOP;
1560 					END IF;
1561 				ELSIF v_P4Matrix(p4_ctr).claims = '220' THEN
1562                     l_P4_p17 := l_P4_p17 + cur_ctr.p4_cnt;
1563 					-- Complainants by Issue
1564 					IF (l_P4_p19 > 0) AND (l_P4_p18 > 0) THEN
1565 					   NULL;
1566 					ELSE
1567 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1568 						   l_P4_p19 := cur_totissue.p4_prsn_cnt;
1569 						   l_P4_p18 := cur_totissue.p4_cnt;
1570 						END LOOP;
1571 					END IF;
1572 				ELSIF v_P4Matrix(p4_ctr).claims = '230' THEN
1573                     l_P4_q17 := l_P4_q17 + cur_ctr.p4_cnt;
1574 					-- Complainants by Issue
1575 					IF (l_P4_q19 > 0) AND (l_P4_q18 > 0) THEN
1576 					   NULL;
1577 					ELSE
1578 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1579 						   l_P4_q19 := cur_totissue.p4_prsn_cnt;
1580 						   l_P4_q18 := cur_totissue.p4_cnt;
1581 						END LOOP;
1582 					END IF;
1583 				ELSIF v_P4Matrix(p4_ctr).claims = '240' THEN
1584                     l_P4_r17 := l_P4_r17 + cur_ctr.p4_cnt;
1585 					-- Complainants by Issue
1586 					IF (l_P4_r19 > 0) AND (l_P4_r18 > 0) THEN
1587 					   NULL;
1588 					ELSE
1589 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1590 						   l_P4_r19 := cur_totissue.p4_prsn_cnt;
1591 						   l_P4_r18 := cur_totissue.p4_cnt;
1592 						END LOOP;
1593 					END IF;
1594 				ELSIF v_P4Matrix(p4_ctr).claims = '250' THEN
1595                     l_P4_s17 := l_P4_s17 + cur_ctr.p4_cnt;
1596 					-- Complainants by Issue
1597 					IF (l_P4_s19 > 0) AND (l_P4_s18 > 0) THEN
1598 					   NULL;
1599 					ELSE
1600 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1601 						   l_P4_s19 := cur_totissue.p4_prsn_cnt;
1602 						   l_P4_s18 := cur_totissue.p4_cnt;
1603 						END LOOP;
1604 					END IF;
1605 				ELSIF v_P4Matrix(p4_ctr).claims = '260' THEN
1606                     l_P4_t17 := l_P4_t17 + cur_ctr.p4_cnt;
1607 					-- Complainants by Issue
1608 					IF (l_P4_t19 > 0) AND (l_P4_t18 > 0) THEN
1609 					   NULL;
1610 					ELSE
1611 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1612 						   l_P4_t19 := cur_totissue.p4_prsn_cnt;
1613 						   l_P4_t18 := cur_totissue.p4_cnt;
1614 						END LOOP;
1615 					END IF;
1616 				ELSIF v_P4Matrix(p4_ctr).claims = '270' THEN
1617                     l_P4_u17 := l_P4_u17 + cur_ctr.p4_cnt;
1618 					-- Complainants by Issue
1619 					IF (l_P4_u19 > 0) AND (l_P4_u18 > 0) THEN
1620 					   NULL;
1621 					ELSE
1622 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1623 						   l_P4_u19 := cur_totissue.p4_prsn_cnt;
1624 						   l_P4_u18 := cur_totissue.p4_cnt;
1625 						END LOOP;
1626 					END IF;
1627 				END IF;
1628 
1629 				-- Populate Summary Rows by looping columns
1630 				IF (v_P4Matrix(p4_ctr).bases = 'GHR_US_COM_REL_BASIS')  THEN
1631 					l_tot1_6 := l_tot1_6 + cur_ctr.p4_cnt;
1632 					-- Complainants by Basis
1633 					IF (l_tot3_6 > 0) AND (l_tot2_6 > 0) THEN
1634 					   NULL;
1635 					ELSE
1636 						FOR cur_totissue IN cur_p4_tot_rel_basis(p_from_date,p_to_date,v_P4Matrix(p4_ctr).bases, p_agency_code) LOOP
1637 						   l_tot3_6 := cur_totissue.p4_prsn_cnt;
1638 						   l_tot2_6 := cur_totissue.p4_cnt;
1639 						END LOOP;
1640 					END IF;
1641 				ELSIF (v_P4Matrix(p4_ctr).bases = 'YES_NO') THEN
1642 					l_tot1_5 := l_tot1_5 + cur_ctr.p4_cnt;
1643 					-- Complainants by Basis
1644 					IF (l_tot3_5 > 0) AND (l_tot2_5 > 0) THEN
1645 					   NULL;
1646 					ELSE
1647 						FOR cur_totissue IN cur_p4_tot_colage_basis(p_from_date,p_to_date,v_P4Matrix(p4_ctr).bases, p_agency_code) LOOP
1648 						   l_tot3_5 := cur_totissue.p4_prsn_cnt;
1649 						   l_tot2_5 := cur_totissue.p4_cnt;
1650 						END LOOP;
1651 					END IF;
1652 				ELSIF (v_P4Matrix(p4_ctr).bases = 'GHR_US_COM_REP_BASIS') THEN
1653 					l_tot1_7 := l_tot1_7 + cur_ctr.p4_cnt;
1654 					-- Complainants by Basis
1655 					IF (l_tot3_7 > 0) AND (l_tot2_7 > 0) THEN
1656 					   NULL;
1657 					ELSE
1658 						FOR cur_totissue IN cur_p4_totprsn_basis(p_from_date,p_to_date,v_P4Matrix(p4_ctr).bases, p_agency_code) LOOP
1659 						   l_tot3_7 := cur_totissue.p4_prsn_cnt;
1660 						   l_tot2_7 := cur_totissue.p4_cnt;
1661 						END LOOP;
1662 					END IF;
1663 				ELSIF (v_P4Matrix(p4_ctr).bases = 'GHR_US_COM_AGE_BASIS') THEN
1664 					l_tot1_14 := l_tot1_14 + cur_ctr.p4_cnt;
1665 					-- Complainants by Basis
1666 					IF (l_tot3_14 > 0) AND (l_tot2_14 > 0) THEN
1667 					   NULL;
1668 					ELSE
1669 						FOR cur_totissue IN cur_p4_tot_colage_basis(p_from_date,p_to_date,v_P4Matrix(p4_ctr).bases, p_agency_code) LOOP
1670 						   l_tot3_14 := cur_totissue.p4_prsn_cnt;
1671 						   l_tot2_14 := cur_totissue.p4_cnt;
1672 						END LOOP;
1673 					END IF;
1674 				END IF;
1675 
1676 				vCtr := vCtr + 1;
1677 			END LOOP;
1678 		ELSE
1679 		    FOR cur_ctr IN cur_p4(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims,v_P4Matrix(p4_ctr).bases,v_P4Matrix(p4_ctr).basevalues, p_agency_code) LOOP
1680 				vXMLTable(vCtr).TagName := v_P4Matrix(p4_ctr).fieldname;
1681 				vXMLTable(vCtr).TagValue := to_char(cur_ctr.p4_cnt);
1682 --				vCtr := vCtr + 1;
1683 --				fnd_file.put_line(fnd_file.log,'Finished populating Part4 ' || vXMLTable(vCtr).TagName);
1684 
1685 				IF SUBSTR(vXMLTable(vCtr).TagName,1,4) = 'P4_e' THEN
1686 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_1'  THEN
1687 					   l_P4_e1 := l_P4_e1 + vXMLTable(vCtr).TagValue;
1688 					END IF;
1689 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_2'  THEN
1690 					   l_P4_e2 := l_P4_e2 + vXMLTable(vCtr).TagValue;
1691 					END IF;
1692 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_3'  THEN
1693 					   l_P4_e3 := l_P4_e3 + vXMLTable(vCtr).TagValue;
1694 					END IF;
1695 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_4'  THEN
1696 					   l_P4_e4 := l_P4_e4 + vXMLTable(vCtr).TagValue;
1697 					END IF;
1698 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_5'  THEN
1699 					   l_P4_e5 := l_P4_e5 + vXMLTable(vCtr).TagValue;
1700 					END IF;
1701 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_6'  THEN
1702 					   l_P4_e6 := l_P4_e6 + vXMLTable(vCtr).TagValue;
1703 					END IF;
1704 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_7'  THEN
1705 					   l_P4_e7 := l_P4_e7 + vXMLTable(vCtr).TagValue;
1706 					END IF;
1707 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_8'  THEN
1708 					   l_P4_e8 := l_P4_e8 + vXMLTable(vCtr).TagValue;
1709 					END IF;
1710 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_9'  THEN
1711 					   l_P4_e9 := l_P4_e9 + vXMLTable(vCtr).TagValue;
1712 					END IF;
1713 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-2) = '_10'  THEN
1714 					   l_P4_e10 := l_P4_e10 + vXMLTable(vCtr).TagValue;
1715 					END IF;
1716 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-2) = '_11'  THEN
1717 					   l_P4_e11 := l_P4_e11 + vXMLTable(vCtr).TagValue;
1718 					END IF;
1719 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-2) = '_14'  THEN
1720 					   l_P4_e14 := l_P4_e14 + vXMLTable(vCtr).TagValue;
1721 					END IF;
1722 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-2) = '_15'  THEN
1723 					   l_P4_e15 := l_P4_e15 + vXMLTable(vCtr).TagValue;
1724 					END IF;
1725 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-2) = '_16'  THEN
1726 					   l_P4_e16 := l_P4_e16 + vXMLTable(vCtr).TagValue;
1727 					END IF;
1728 				END IF;
1729 
1730 				IF SUBSTR(vXMLTable(vCtr).TagName,1,4) = 'P4_m' THEN
1731 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_1'  THEN
1732 					   l_P4_m1 := l_P4_m1 + vXMLTable(vCtr).TagValue;
1733 					END IF;
1734 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_2'  THEN
1735 					   l_P4_m2 := l_P4_m2 + vXMLTable(vCtr).TagValue;
1736 					END IF;
1737 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_3'  THEN
1738 					   l_P4_m3 := l_P4_m3 + vXMLTable(vCtr).TagValue;
1739 					END IF;
1740 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_4'  THEN
1741 					   l_P4_m4 := l_P4_m4 + vXMLTable(vCtr).TagValue;
1742 					END IF;
1743 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_5'  THEN
1744 					   l_P4_m5 := l_P4_m5 + vXMLTable(vCtr).TagValue;
1745 					END IF;
1746 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_6'  THEN
1747 					   l_P4_m6 := l_P4_m6 + vXMLTable(vCtr).TagValue;
1748 					END IF;
1749 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_7'  THEN
1750 					   l_P4_m7 := l_P4_m7 + vXMLTable(vCtr).TagValue;
1751 					END IF;
1752 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_8'  THEN
1753 					   l_P4_m8 := l_P4_m8 + vXMLTable(vCtr).TagValue;
1754 					END IF;
1755 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_9'  THEN
1756 					   l_P4_m9 := l_P4_m9 + vXMLTable(vCtr).TagValue;
1757 					END IF;
1758 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-2) = '_10'  THEN
1759 					   l_P4_m10 := l_P4_m10 + vXMLTable(vCtr).TagValue;
1760 					END IF;
1761 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-2) = '_11'  THEN
1762 					   l_P4_m11 := l_P4_m11 + vXMLTable(vCtr).TagValue;
1763 					END IF;
1764 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-2) = '_14'  THEN
1765 					   l_P4_m14 := l_P4_m14 + vXMLTable(vCtr).TagValue;
1766 					END IF;
1767 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-2) = '_15'  THEN
1768 					   l_P4_m15 := l_P4_m15 + vXMLTable(vCtr).TagValue;
1769 					END IF;
1770 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-2) = '_16'  THEN
1771 					   l_P4_m16 := l_P4_m16 + vXMLTable(vCtr).TagValue;
1772 					END IF;
1773 				END IF;
1774 
1775 
1776 				IF (vXMLTable(vCtr).TagName = 'P4_i1_1') THEN
1777 					l_P4_i1 :=  vXMLTable(vCtr).TagValue;
1778 				END IF;
1779 
1780 				IF (vXMLTable(vCtr).TagName = 'P4_i1_2') THEN
1781 					l_P4_i2 :=  vXMLTable(vCtr).TagValue;
1782 				END IF;
1783 
1784 				IF (vXMLTable(vCtr).TagName = 'P4_i1_3') THEN
1785 					l_P4_i3 :=  vXMLTable(vCtr).TagValue;
1786 				END IF;
1787 
1788 				IF (vXMLTable(vCtr).TagName = 'P4_i1_4') THEN
1789 					l_P4_i4 :=  vXMLTable(vCtr).TagValue;
1790 				END IF;
1791 
1792 				IF (vXMLTable(vCtr).TagName = 'P4_i1_5') THEN
1793 					l_P4_i5 :=  vXMLTable(vCtr).TagValue;
1794 				END IF;
1795 
1796 				IF (vXMLTable(vCtr).TagName = 'P4_i1_6') THEN
1797 					l_P4_i6 :=  vXMLTable(vCtr).TagValue;
1798 				END IF;
1799 
1800 				IF (vXMLTable(vCtr).TagName = 'P4_i1_10') THEN
1801 					l_P4_i10 :=  vXMLTable(vCtr).TagValue;
1802 				END IF;
1803 
1804 				IF (vXMLTable(vCtr).TagName = 'P4_i1_11') THEN
1805 					l_P4_i11 :=  vXMLTable(vCtr).TagValue;
1806 				END IF;
1807 
1808 				IF (vXMLTable(vCtr).TagName = 'P4_i1_14') THEN
1809 					l_P4_i14 :=  vXMLTable(vCtr).TagValue;
1810 				END IF;
1811 
1812 				IF (vXMLTable(vCtr).TagName = 'P4_i1_15') THEN
1813 					l_P4_i15 :=  vXMLTable(vCtr).TagValue;
1814 				END IF;
1815 
1816 				IF (vXMLTable(vCtr).TagName = 'P4_i1_16') THEN
1817 					l_P4_i16 :=  vXMLTable(vCtr).TagValue;
1818 				END IF;
1819 
1820 				IF SUBSTR(vXMLTable(vCtr).TagName,1,4) = 'P4_i' THEN
1821 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_7'  THEN
1822 					   l_P4_i7 := l_P4_i7 + vXMLTable(vCtr).TagValue;
1823 					END IF;
1824 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_8'  THEN
1825 					   l_P4_i8 := l_P4_i8 + vXMLTable(vCtr).TagValue;
1826 					END IF;
1827 					IF SUBSTR(vXMLTable(vCtr).TagName,LENGTH(vXMLTable(vCtr).TagName)-1) = '_9'  THEN
1828 					   l_P4_i9 := l_P4_i9 + vXMLTable(vCtr).TagValue;
1829 					END IF;
1830 				END IF;
1831 
1832 				-- Populating the summary columns by Looping through rowwise
1833 				-- If Claim is Assignment
1834 				IF v_P4Matrix(p4_ctr).claims = '10' THEN
1835 				   l_P4_a17 := l_P4_a17 + cur_ctr.p4_cnt;
1836 
1837 				   -- Complainants by Issue
1838 					IF (l_P4_a19 > 0) AND (l_P4_a18 > 0) THEN
1839 					   NULL;
1840 					ELSE
1841 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1842 						   l_P4_a19 := cur_totissue.p4_prsn_cnt;
1843 						   l_P4_a18 := cur_totissue.p4_cnt;
1844 						END LOOP;
1845 					END IF;
1846 				-- If Claim is Assignment of Duties
1847 				ELSIF v_P4Matrix(p4_ctr).claims = '20' THEN
1848                     l_P4_b17 := l_P4_b17 + cur_ctr.p4_cnt;
1849 					-- Complainants by Issue
1850 					IF (l_P4_b19 > 0) AND (l_P4_b18 > 0) THEN
1851 					   NULL;
1852 					ELSE
1853 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1854 						   l_P4_b19 := cur_totissue.p4_prsn_cnt;
1855 						   l_P4_b18 := cur_totissue.p4_cnt;
1856 						END LOOP;
1857 					END IF;
1858 				-- If Claim is Awards
1859 				ELSIF v_P4Matrix(p4_ctr).claims = '30' THEN
1860                     l_P4_c17 := l_P4_c17 + cur_ctr.p4_cnt;
1861 					-- Complainants by Issue
1862 					IF (l_P4_c19 > 0) AND (l_P4_c18 > 0) THEN
1863 					   NULL;
1864 					ELSE
1865 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1866 						   l_P4_c19 := cur_totissue.p4_prsn_cnt;
1867 						   l_P4_c18 := cur_totissue.p4_cnt;
1868 						END LOOP;
1869 					END IF;
1870 				-- If Claim is Conversion to full time.
1871 				ELSIF v_P4Matrix(p4_ctr).claims = '40' THEN
1872                     l_P4_d17 := l_P4_d17 + cur_ctr.p4_cnt;
1873 					-- Complainants by Issue
1874 					IF (l_P4_d19 > 0) AND (l_P4_d18 > 0) THEN
1875 					   NULL;
1876 					ELSE
1877 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1878 						   l_P4_d19 := cur_totissue.p4_prsn_cnt;
1879 						   l_P4_d18 := cur_totissue.p4_cnt;
1880 						END LOOP;
1881 					END IF;
1882 				ELSIF v_P4Matrix(p4_ctr).claims = '50' THEN
1883                     l_P4_e1_17 := l_P4_e1_17 + cur_ctr.p4_cnt;
1884 		--			l_P4_e17 := l_P4_e17 + l_P4_e1_17;
1885  					-- Complainants by Issue
1886 					IF (l_P4_e1_19 > 0) AND (l_P4_e1_18 > 0) THEN
1887 					   NULL;
1888 					ELSE
1889 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1890 						   l_P4_e1_19 := cur_totissue.p4_prsn_cnt;
1891 						   l_P4_e1_18 := cur_totissue.p4_cnt;
1892 						END LOOP;
1893 					END IF;
1894 				ELSIF v_P4Matrix(p4_ctr).claims = '60' THEN
1895                     l_P4_e2_17 := l_P4_e2_17 + cur_ctr.p4_cnt;
1896 		--			l_P4_e17 := l_P4_e17 + l_P4_e2_17;
1897 
1898 					-- Complainants by Issue
1899 					IF (l_P4_e2_19 > 0) AND (l_P4_e2_18 > 0) THEN
1900 					   NULL;
1901 					ELSE
1902 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1903 						   l_P4_e2_19 := cur_totissue.p4_prsn_cnt;
1904 						   l_P4_e2_18 := cur_totissue.p4_cnt;
1905 						END LOOP;
1906 					END IF;
1907 				ELSIF v_P4Matrix(p4_ctr).claims = '70' THEN
1908                     l_P4_e3_17 := l_P4_e3_17 + cur_ctr.p4_cnt;
1909 		--			l_P4_e17 := l_P4_e17 + l_P4_e3_17;
1910 
1911 					-- Complainants by Issue
1912 					IF (l_P4_e3_19 > 0) AND (l_P4_e3_18 > 0) THEN
1913 					   NULL;
1914 					ELSE
1915 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1916 						   l_P4_e3_19 := cur_totissue.p4_prsn_cnt;
1917 						   l_P4_e3_18 := cur_totissue.p4_cnt;
1918 						END LOOP;
1919 					END IF;
1920 				ELSIF v_P4Matrix(p4_ctr).claims = '80' THEN
1921                     l_P4_e4_17 := l_P4_e4_17 + cur_ctr.p4_cnt;
1922 		--			l_P4_e17 := l_P4_e17 + l_P4_e4_17;
1923 
1924 					-- Complainants by Issue
1925 					IF (l_P4_e4_19 > 0) AND (l_P4_e4_18 > 0) THEN
1926 					   NULL;
1927 					ELSE
1928 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1929 						   l_P4_e4_19 := cur_totissue.p4_prsn_cnt;
1930 						   l_P4_e4_18 := cur_totissue.p4_cnt;
1931 						END LOOP;
1932 					END IF;
1933 				ELSIF v_P4Matrix(p4_ctr).claims = '90' THEN
1934                     l_P4_e5_17 := l_P4_e5_17 + cur_ctr.p4_cnt;
1935 			--		l_P4_e17 := l_P4_e17 + l_P4_e5_17;
1936 					-- Complainants by Issue
1937 					IF (l_P4_e5_19 > 0) AND (l_P4_e5_18 > 0) THEN
1938 					   NULL;
1939 					ELSE
1940 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1941 						   l_P4_e5_19 := cur_totissue.p4_prsn_cnt;
1942 						   l_P4_e5_18 := cur_totissue.p4_cnt;
1943 						END LOOP;
1944 					END IF;
1945 				ELSIF v_P4Matrix(p4_ctr).claims = '100' THEN
1946                     l_P4_f17 := l_P4_f17 + cur_ctr.p4_cnt;
1947 					-- Complainants by Issue
1948 					IF (l_P4_f19 > 0) AND (l_P4_f18 > 0) THEN
1949 					   NULL;
1950 					ELSE
1951 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1952 						   l_P4_f19 := cur_totissue.p4_prsn_cnt;
1953 						   l_P4_f18 := cur_totissue.p4_cnt;
1954 						END LOOP;
1955 					END IF;
1956 				ELSIF v_P4Matrix(p4_ctr).claims = '110' THEN
1957                     l_P4_g17 := l_P4_g17 + cur_ctr.p4_cnt;
1958 					-- Complainants by Issue
1959 					IF (l_P4_g19 > 0) AND (l_P4_g18 > 0) THEN
1960 					   NULL;
1961 					ELSE
1962 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1963 						   l_P4_g19 := cur_totissue.p4_prsn_cnt;
1964 						   l_P4_g18 := cur_totissue.p4_cnt;
1965 						END LOOP;
1966 					END IF;
1967 				ELSIF v_P4Matrix(p4_ctr).claims = '120' THEN
1968                     l_P4_h17 := l_P4_h17 + cur_ctr.p4_cnt;
1969 					-- Complainants by Issue
1970 					IF (l_P4_h19 > 0) AND (l_P4_h18 > 0) THEN
1971 					   NULL;
1972 					ELSE
1973 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1974 						   l_P4_h19 := cur_totissue.p4_prsn_cnt;
1975 						   l_P4_h18 := cur_totissue.p4_cnt;
1976 						END LOOP;
1977 					END IF;
1978 				ELSIF v_P4Matrix(p4_ctr).claims = '130' THEN
1979                     l_P4_i1_17 := l_P4_i1_17 + cur_ctr.p4_cnt;
1980 	--				l_P4_i17 := l_P4_i17 + l_P4_i1_17;
1981 					-- Complainants by Issue
1982 					IF (l_P4_i1_19 > 0) AND (l_P4_i1_18 > 0) THEN
1983 					   NULL;
1984 					ELSE
1985 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1986 						   l_P4_i1_19 := cur_totissue.p4_prsn_cnt;
1987 						   l_P4_i1_18 := cur_totissue.p4_cnt;
1988 						END LOOP;
1989 					END IF;
1990 				ELSIF v_P4Matrix(p4_ctr).claims = '140' THEN
1991                     l_P4_i2_17 := l_P4_i2_17 + cur_ctr.p4_cnt;
1992 	--				l_P4_i17 := l_P4_i17 + l_P4_i2_17;
1993 					-- Complainants by Issue
1994 					IF (l_P4_i2_19 > 0) AND (l_P4_i2_18 > 0) THEN
1995 					   NULL;
1996 					ELSE
1997 						FOR cur_totissue IN cur_p4_tot_harass_sex_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
1998 						   l_P4_i2_19 := cur_totissue.p4_prsn_cnt;
1999 						   l_P4_i2_18 := cur_totissue.p4_cnt;
2000 						END LOOP;
2001 					END IF;
2002 				ELSIF v_P4Matrix(p4_ctr).claims = '150' THEN
2003                     l_P4_j17 := l_P4_j17 + cur_ctr.p4_cnt;
2004 					-- Complainants by Issue
2005 					IF (l_P4_j19 > 0) AND (l_P4_j18 > 0) THEN
2006 					   NULL;
2007 					ELSE
2008 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
2009 						   l_P4_j19 := cur_totissue.p4_prsn_cnt;
2010 						   l_P4_j18 := cur_totissue.p4_cnt;
2011 						END LOOP;
2012 					END IF;
2013 				ELSIF v_P4Matrix(p4_ctr).claims = '160' THEN
2014                     l_P4_k17 := l_P4_k17 + cur_ctr.p4_cnt;
2015 					-- Complainants by Issue
2016 					IF (l_P4_k19 > 0) AND (l_P4_k18 > 0) THEN
2017 					   NULL;
2018 					ELSE
2019 						FOR cur_totissue IN cur_p4_tot_pic_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
2020 						   l_P4_k19 := cur_totissue.p4_prsn_cnt;
2021 						   l_P4_k18 := cur_totissue.p4_cnt;
2022 						END LOOP;
2023 					END IF;
2024 				ELSIF v_P4Matrix(p4_ctr).claims = '170' THEN
2025                     l_P4_l17 := l_P4_l17 + cur_ctr.p4_cnt;
2026 					-- Complainants by Issue
2027 					IF (l_P4_l19 > 0) AND (l_P4_l18 > 0) THEN
2028 					   NULL;
2029 					ELSE
2030 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
2031 						   l_P4_l19 := cur_totissue.p4_prsn_cnt;
2032 						   l_P4_l18 := cur_totissue.p4_cnt;
2033 						END LOOP;
2034 					END IF;
2035 				ELSIF v_P4Matrix(p4_ctr).claims = '180' THEN
2036                     l_P4_m1_17 := l_P4_m1_17 + cur_ctr.p4_cnt;
2037 		--			l_P4_m17 := l_P4_m17 + l_P4_m1_17;
2038 					-- Complainants by Issue
2039 					IF (l_P4_m1_19 > 0) AND (l_P4_m1_18 > 0) THEN
2040 					   NULL;
2041 					ELSE
2042 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
2043 						   l_P4_m1_19 := cur_totissue.p4_prsn_cnt;
2044 						   l_P4_m1_18 := cur_totissue.p4_cnt;
2045 						END LOOP;
2046 					END IF;
2047 				ELSIF v_P4Matrix(p4_ctr).claims = '190' THEN
2048                     l_P4_m2_17 := l_P4_m2_17 + cur_ctr.p4_cnt;
2049 		--			l_P4_m17 := l_P4_m17 + l_P4_m2_17;
2050 					-- Complainants by Issue
2051 					IF (l_P4_m2_19 > 0) AND (l_P4_m2_18 > 0) THEN
2052 					   NULL;
2053 					ELSE
2054 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
2055 						   l_P4_m2_19 := cur_totissue.p4_prsn_cnt;
2056    						   l_P4_m2_18 := cur_totissue.p4_cnt;
2057 						END LOOP;
2058 					END IF;
2059 				ELSIF v_P4Matrix(p4_ctr).claims = '200' THEN
2060                     l_P4_n17 := l_P4_n17 + cur_ctr.p4_cnt;
2061 					-- Complainants by Issue
2062 					IF (l_P4_n19 > 0) AND (l_P4_n18 > 0)  THEN
2063 					   NULL;
2064 					ELSE
2065 						FOR cur_totissue IN cur_p4_tot_reacc_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
2066 						   l_P4_n19 := cur_totissue.p4_prsn_cnt;
2067 						   l_P4_n18 := cur_totissue.p4_cnt;
2068 						END LOOP;
2069 					END IF;
2070 				ELSIF v_P4Matrix(p4_ctr).claims = '210' THEN
2071                     l_P4_o17 := l_P4_o17 + cur_ctr.p4_cnt;
2072 					-- Complainants by Issue
2073 					IF (l_P4_o19 > 0) AND (l_P4_o18 > 0) THEN
2074 					   NULL;
2075 					ELSE
2076 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
2077 						   l_P4_o19 := cur_totissue.p4_prsn_cnt;
2078 						   l_P4_o18 := cur_totissue.p4_cnt;
2079 						END LOOP;
2080 					END IF;
2081 				ELSIF v_P4Matrix(p4_ctr).claims = '220' THEN
2082                     l_P4_p17 := l_P4_p17 + cur_ctr.p4_cnt;
2083 					-- Complainants by Issue
2084 					IF (l_P4_p19 > 0) THEN
2085 					   NULL;
2086 					ELSE
2087 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
2088 						   l_P4_p19 := cur_totissue.p4_prsn_cnt;
2089 						   l_P4_p18 := cur_totissue.p4_cnt;
2090 						END LOOP;
2091 					END IF;
2092 				ELSIF v_P4Matrix(p4_ctr).claims = '230' THEN
2093                     l_P4_q17 := l_P4_q17 + cur_ctr.p4_cnt;
2094 					-- Complainants by Issue
2095 					IF (l_P4_q19 > 0) AND (l_P4_q18 > 0) THEN
2096 					   NULL;
2097 					ELSE
2098 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
2099 						   l_P4_q19 := cur_totissue.p4_prsn_cnt;
2100 						   l_P4_q18 := cur_totissue.p4_cnt;
2101 						END LOOP;
2102 					END IF;
2103 				ELSIF v_P4Matrix(p4_ctr).claims = '240' THEN
2104                     l_P4_r17 := l_P4_r17 + cur_ctr.p4_cnt;
2105 					-- Complainants by Issue
2106 					IF (l_P4_r19 > 0) AND (l_P4_r18 > 0) THEN
2107 					   NULL;
2108 					ELSE
2109 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
2110 						   l_P4_r19 := cur_totissue.p4_prsn_cnt;
2111 						   l_P4_r18 := cur_totissue.p4_cnt;
2112 						END LOOP;
2113 					END IF;
2114 				ELSIF v_P4Matrix(p4_ctr).claims = '250' THEN
2115                     l_P4_s17 := l_P4_s17 + cur_ctr.p4_cnt;
2116 					-- Complainants by Issue
2117 					IF (l_P4_s19 > 0) AND (l_P4_s18 > 0) THEN
2118 					   NULL;
2119 					ELSE
2120 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
2121 						   l_P4_s19 := cur_totissue.p4_prsn_cnt;
2122 						   l_P4_s18 := cur_totissue.p4_cnt;
2123 						END LOOP;
2124 					END IF;
2125 				ELSIF v_P4Matrix(p4_ctr).claims = '260' THEN
2126                     l_P4_t17 := l_P4_t17 + cur_ctr.p4_cnt;
2127 					-- Complainants by Issue
2128 					IF (l_P4_t19 > 0) AND (l_P4_t18 > 0) THEN
2129 					   NULL;
2130 					ELSE
2131 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
2132 						   l_P4_t19 := cur_totissue.p4_prsn_cnt;
2133 						   l_P4_t18 := cur_totissue.p4_cnt;
2134 						END LOOP;
2135 					END IF;
2136 				ELSIF v_P4Matrix(p4_ctr).claims = '270' THEN
2137                     l_P4_u17 := l_P4_u17 + cur_ctr.p4_cnt;
2138 					-- Complainants by Issue
2139 					IF (l_P4_u19 > 0) AND (l_P4_u18 > 0) THEN
2140 					   NULL;
2141 					ELSE
2142 						FOR cur_totissue IN cur_p4_totprsn_issue(p_from_date,p_to_date,v_P4Matrix(p4_ctr).claims, p_agency_code) LOOP
2143 						   l_P4_u19 := cur_totissue.p4_prsn_cnt;
2144 						   l_P4_u18 := cur_totissue.p4_cnt;
2145 						END LOOP;
2146 					END IF;
2147 				END IF;
2148 
2149 				-- Populate Summary Rows by looping columns
2150 				IF (v_P4Matrix(p4_ctr).bases = 'GHR_US_COM_RC_BASIS' AND v_P4Matrix(p4_ctr).basevalues = '10') THEN
2151 					l_tot1_1 := l_tot1_1 + cur_ctr.p4_cnt;
2152 					-- Complainants by Basis
2153 					IF (l_tot3_1 > 0) AND (l_tot2_1 > 0) THEN
2154 					   NULL;
2155 					ELSE
2156 						FOR cur_totissue IN cur_p4_totprsn_rcno_value(p_from_date,p_to_date,v_P4Matrix(p4_ctr).bases,'10', p_agency_code) LOOP
2157 						   l_tot3_1 := cur_totissue.p4_prsn_cnt;
2158 						   l_tot2_1 := cur_totissue.p4_cnt;
2159 						END LOOP;
2160 					END IF;
2161 				ELSIF (v_P4Matrix(p4_ctr).bases = 'GHR_US_COM_RC_BASIS' AND v_P4Matrix(p4_ctr).basevalues = '20') THEN
2162 					l_tot1_2 := l_tot1_2 + cur_ctr.p4_cnt;
2163 					-- Complainants by Basis
2164 					IF (l_tot3_2 > 0) AND (l_tot2_2 > 0) THEN
2165 					   NULL;
2166 					ELSE
2167 						FOR cur_totissue IN cur_p4_totprsn_rcno_value(p_from_date,p_to_date,v_P4Matrix(p4_ctr).bases,'20', p_agency_code) LOOP
2168 						   l_tot3_2 := cur_totissue.p4_prsn_cnt;
2169 						   l_tot2_2 := cur_totissue.p4_cnt;
2170 						END LOOP;
2171 					END IF;
2172 				ELSIF (v_P4Matrix(p4_ctr).bases = 'GHR_US_COM_RC_BASIS' AND v_P4Matrix(p4_ctr).basevalues = '30') THEN
2173 					l_tot1_3 := l_tot1_3 + cur_ctr.p4_cnt;
2174 					-- Complainants by Basis
2175 					IF (l_tot3_3 > 0) AND (l_tot2_3 > 0) THEN
2176 					   NULL;
2177 					ELSE
2178 						FOR cur_totissue IN cur_p4_totprsn_rcno_value(p_from_date,p_to_date,v_P4Matrix(p4_ctr).bases, '30',p_agency_code) LOOP
2179 						   l_tot3_3 := cur_totissue.p4_prsn_cnt;
2180 						   l_tot2_3 := cur_totissue.p4_cnt;
2181 						END LOOP;
2182 					END IF;
2183 				ELSIF (v_P4Matrix(p4_ctr).bases = 'GHR_US_COM_RC_BASIS' AND v_P4Matrix(p4_ctr).basevalues = '40') THEN
2184 					l_tot1_4 := l_tot1_4 + cur_ctr.p4_cnt;
2185 					-- Complainants by Basis
2186 					IF (l_tot3_4 > 0) AND (l_tot2_4 > 0) THEN
2187 					   NULL;
2188 					ELSE
2189 						FOR cur_totissue IN cur_p4_totprsn_rcno_value(p_from_date,p_to_date,v_P4Matrix(p4_ctr).bases,'40', p_agency_code) LOOP
2190 						   l_tot3_4 := cur_totissue.p4_prsn_cnt;
2191 						   l_tot2_4 := cur_totissue.p4_cnt;
2192 						END LOOP;
2193 					END IF;
2194 				ELSIF (v_P4Matrix(p4_ctr).bases = 'GHR_US_COM_SEX_BASIS' AND v_P4Matrix(p4_ctr).basevalues = '10') THEN
2195 					l_tot1_8 := l_tot1_8 + cur_ctr.p4_cnt;
2196 					-- Complainants by Basis
2197 					IF (l_tot3_8 > 0) AND (l_tot2_8 > 0) THEN
2198 					   NULL;
2199 					ELSE
2200 						FOR cur_totissue IN cur_p4_tot_sex_basis(p_from_date,p_to_date,v_P4Matrix(p4_ctr).bases,'10', p_agency_code) LOOP
2201 						   l_tot3_8 := cur_totissue.p4_prsn_cnt;
2202 						   l_tot2_8 := cur_totissue.p4_cnt;
2203 						END LOOP;
2204 					END IF;
2205 				ELSIF (v_P4Matrix(p4_ctr).bases = 'GHR_US_COM_SEX_BASIS' AND v_P4Matrix(p4_ctr).basevalues = '20') THEN
2206 					l_tot1_9 := l_tot1_9 + cur_ctr.p4_cnt;
2207 					-- Complainants by Basis
2208 					IF (l_tot3_9 > 0) AND (l_tot2_9 > 0) THEN
2209 					   NULL;
2210 					ELSE
2211 						FOR cur_totissue IN cur_p4_tot_sex_basis(p_from_date,p_to_date,v_P4Matrix(p4_ctr).bases, '20',p_agency_code) LOOP
2212 						   l_tot3_9 := cur_totissue.p4_prsn_cnt;
2213 						   l_tot2_9 := cur_totissue.p4_cnt;
2214 						END LOOP;
2215 					END IF;
2216 				ELSIF (v_P4Matrix(p4_ctr).bases = 'GHR_US_COM_NO_BASIS' AND v_P4Matrix(p4_ctr).basevalues = '10') THEN
2217 					l_tot1_10 := l_tot1_10 + cur_ctr.p4_cnt;
2218 					-- Complainants by Basis
2219 					IF (l_tot3_10 > 0) AND (l_tot2_10 > 0) THEN
2220 					   NULL;
2221 					ELSE
2222 						FOR cur_totissue IN cur_p4_totprsn_rcno_value(p_from_date,p_to_date,v_P4Matrix(p4_ctr).bases,'10', p_agency_code) LOOP
2223 						   l_tot3_10 := cur_totissue.p4_prsn_cnt;
2224 						   l_tot2_10 := cur_totissue.p4_cnt;
2225 						END LOOP;
2226 					END IF;
2227 				ELSIF (v_P4Matrix(p4_ctr).bases = 'GHR_US_COM_NO_BASIS' AND v_P4Matrix(p4_ctr).basevalues = '20') THEN
2228 					l_tot1_11 := l_tot1_11 + cur_ctr.p4_cnt;
2229 					-- Complainants by Basis
2230 					IF (l_tot3_11 > 0) AND (l_tot2_11 > 0) THEN
2231 					   NULL;
2232 					ELSE
2233 						FOR cur_totissue IN cur_p4_totprsn_rcno_value(p_from_date,p_to_date,v_P4Matrix(p4_ctr).bases, '20', p_agency_code) LOOP
2234 						   l_tot3_11 := cur_totissue.p4_prsn_cnt;
2235 						   l_tot2_11 := cur_totissue.p4_cnt;
2236 						END LOOP;
2237 					END IF;
2238 				ELSIF (v_P4Matrix(p4_ctr).bases = 'SEX' AND v_P4Matrix(p4_ctr).basevalues = 'M') THEN
2239 					l_tot1_12 := l_tot1_12 + cur_ctr.p4_cnt;
2240 					--Complainants by Basis
2241 					IF (l_tot3_12 > 0) AND (l_tot2_12 > 0) THEN
2242 					   NULL;
2243 					ELSE
2244 						FOR cur_totissue IN cur_p4_tot_eqpay_basis(p_from_date,p_to_date,v_P4Matrix(p4_ctr).bases, 'M',p_agency_code) LOOP
2245 						   l_tot3_12 := cur_totissue.p4_prsn_cnt;
2246 						   l_tot2_12 := cur_totissue.p4_cnt;
2247 						END LOOP;
2248 					END IF;
2249 				ELSIF (v_P4Matrix(p4_ctr).bases = 'SEX' AND v_P4Matrix(p4_ctr).basevalues = 'F') THEN
2250 					l_tot1_13 := l_tot1_13 + cur_ctr.p4_cnt;
2251 					-- Complainants by Basis
2252 					IF (l_tot3_13 > 0) AND (l_tot2_13 > 0) THEN
2253 					   NULL;
2254 					ELSE
2255 						FOR cur_totissue IN cur_p4_tot_eqpay_basis(p_from_date,p_to_date,v_P4Matrix(p4_ctr).bases,'F', p_agency_code) LOOP
2256 						   l_tot3_13 := cur_totissue.p4_prsn_cnt;
2257 						   l_tot2_13 := cur_totissue.p4_cnt;
2258 						END LOOP;
2259 					END IF;
2263 					IF (l_tot3_15 > 0) AND (l_tot2_15 > 0) THEN
2260 				ELSIF (v_P4Matrix(p4_ctr).bases = 'GHR_US_COM_HC_BASIS' AND v_P4Matrix(p4_ctr).basevalues = '10') THEN
2261 					l_tot1_15 := l_tot1_15 + cur_ctr.p4_cnt;
2262 					-- Complainants by Basis
2264 					   NULL;
2265 					ELSE
2266 						FOR cur_totissue IN cur_p4_totprsn_disab_value(p_from_date,p_to_date,v_P4Matrix(p4_ctr).bases,'10', p_agency_code) LOOP
2267 						   l_tot3_15 := cur_totissue.p4_prsn_cnt;
2268 						   l_tot2_15 := cur_totissue.p4_cnt;
2269 						END LOOP;
2270 					END IF;
2271 				ELSIF (v_P4Matrix(p4_ctr).bases = 'GHR_US_COM_HC_BASIS' AND v_P4Matrix(p4_ctr).basevalues = '20') THEN
2272 					l_tot1_16 := l_tot1_16 + cur_ctr.p4_cnt;
2273 					-- Complainants by Basis
2274 					IF (l_tot3_16 > 0) AND (l_tot2_16 > 0) THEN
2275 					   NULL;
2276 					ELSE
2277 						FOR cur_totissue IN cur_p4_totprsn_disab_value(p_from_date,p_to_date,v_P4Matrix(p4_ctr).bases,'20', p_agency_code) LOOP
2278 						   l_tot3_16 := cur_totissue.p4_prsn_cnt;
2279 						   l_tot2_16 := cur_totissue.p4_cnt;
2280 						END LOOP;
2281 					END IF;
2282 				END IF;
2283 			vCtr := vCtr + 1;
2284 			END LOOP;
2285 		END IF;
2286 	END LOOP;
2287 	fnd_file.put_line(fnd_file.log,'Finished populating Part4 - Fields');
2288 
2289 	l_P4_e17 := l_P4_e1 + l_P4_e2 + l_P4_e3 + l_P4_e4 + l_P4_e5 + l_P4_e6 + l_P4_e7 + l_P4_e8 + l_P4_e9 + l_P4_e10 + l_P4_e11 + l_P4_e14 + l_P4_e15 + l_P4_e16;
2290 	l_P4_m17 := l_P4_m1 + l_P4_m2 + l_P4_m3 + l_P4_m4 + l_P4_m5 + l_P4_m6 + l_P4_m7 + l_P4_m8 + l_P4_m9 + l_P4_m10 + l_P4_m11 + l_P4_m14 + l_P4_m15 + l_P4_m16;
2291 	l_P4_i17 := l_P4_i1 + l_P4_i2 + l_P4_i3 + l_P4_i4 + l_P4_i5 + l_P4_i6 + l_P4_i7 + l_P4_i8 + l_P4_i9 + l_P4_i10 + l_P4_i11 + l_P4_i14 + l_P4_i15 + l_P4_i16;
2292 
2293 	-- Calculating the header row for disciplinary action.
2294 	FOR cur_totissue IN cur_p4_tot_discip_issue(p_from_date,p_to_date,p_agency_code) LOOP
2295 	   l_P4_e19 := cur_totissue.p4_prsn_cnt;
2296 	   l_P4_e18 := cur_totissue.p4_cnt;
2297 	END LOOP;
2298 
2299 	-- Calculating the header row for Reassignment
2300 	FOR cur_totissue IN cur_p4_tot_reassign_issue(p_from_date,p_to_date,p_agency_code) LOOP
2301 	   l_P4_m19 := cur_totissue.p4_prsn_cnt;
2302 	   l_P4_m18 := cur_totissue.p4_cnt;
2303 	END LOOP;
2304 
2305 	-- Calculating the header row for  Harassment
2306 	FOR cur_totissue IN cur_p4_tot_harass_issue(p_from_date,p_to_date,p_agency_code) LOOP
2307 	   l_P4_i19 := cur_totissue.p4_prsn_cnt;
2308 	   l_P4_i18 := cur_totissue.p4_cnt;
2309 	END LOOP;
2310 
2311 	-- Added after test plan review
2312 	vXMLTable(vCtr).TagName := 'P4_e1';
2313 	vXMLTable(vCtr).TagValue := to_char(l_P4_e1);
2314 	vCtr := vCtr + 1;
2315 	vXMLTable(vCtr).TagName := 'P4_e2';
2316 	vXMLTable(vCtr).TagValue := to_char(l_P4_e2);
2317 	vCtr := vCtr + 1;
2318 	vXMLTable(vCtr).TagName := 'P4_e3';
2319 	vXMLTable(vCtr).TagValue := to_char(l_P4_e3);
2320 	vCtr := vCtr + 1;
2321 	vXMLTable(vCtr).TagName := 'P4_e4';
2322 	vXMLTable(vCtr).TagValue := to_char(l_P4_e4);
2323 	vCtr := vCtr + 1;
2324 	vXMLTable(vCtr).TagName := 'P4_e5';
2325 	vXMLTable(vCtr).TagValue := to_char(l_P4_e5);
2326 	vCtr := vCtr + 1;
2327 	vXMLTable(vCtr).TagName := 'P4_e6';
2328 	vXMLTable(vCtr).TagValue := to_char(l_P4_e6);
2329 	vCtr := vCtr + 1;
2330 	vXMLTable(vCtr).TagName := 'P4_e7';
2331 	vXMLTable(vCtr).TagValue := to_char(l_P4_e7);
2332 	vCtr := vCtr + 1;
2333 	vXMLTable(vCtr).TagName := 'P4_e8';
2334 	vXMLTable(vCtr).TagValue := to_char(l_P4_e8);
2335 	vCtr := vCtr + 1;
2336 	vXMLTable(vCtr).TagName := 'P4_e9';
2337 	vXMLTable(vCtr).TagValue := to_char(l_P4_e9);
2338 	vCtr := vCtr + 1;
2339 	vXMLTable(vCtr).TagName := 'P4_e10';
2340 	vXMLTable(vCtr).TagValue := to_char(l_P4_e10);
2341 	vCtr := vCtr + 1;
2342 	vXMLTable(vCtr).TagName := 'P4_e11';
2343 	vXMLTable(vCtr).TagValue := to_char(l_P4_e11);
2344 	vCtr := vCtr + 1;
2345 	vXMLTable(vCtr).TagName := 'P4_e14';
2346 	vXMLTable(vCtr).TagValue := to_char(l_P4_e14);
2347 	vCtr := vCtr + 1;
2348 	vXMLTable(vCtr).TagName := 'P4_e15';
2349 	vXMLTable(vCtr).TagValue := to_char(l_P4_e15);
2350 	vCtr := vCtr + 1;
2351 	vXMLTable(vCtr).TagName := 'P4_e16';
2352 	vXMLTable(vCtr).TagValue := to_char(l_P4_e16);
2353 	vCtr := vCtr + 1;
2354 	vXMLTable(vCtr).TagName := 'P4_e17';
2355 	vXMLTable(vCtr).TagValue := to_char(l_P4_e17);
2356 	vCtr := vCtr + 1;
2357 	vXMLTable(vCtr).TagName := 'P4_e18';
2358 	vXMLTable(vCtr).TagValue := to_char(l_P4_e18);
2359 	vCtr := vCtr + 1;
2360 	vXMLTable(vCtr).TagName := 'P4_e19';
2361 	vXMLTable(vCtr).TagValue := to_char(l_P4_e19);
2362 	vCtr := vCtr + 1;
2363 	vXMLTable(vCtr).TagName := 'P4_m1';
2364 	vXMLTable(vCtr).TagValue := to_char(l_P4_m1);
2365 	vCtr := vCtr + 1;
2366 	vXMLTable(vCtr).TagName := 'P4_m2';
2367 	vXMLTable(vCtr).TagValue := to_char(l_P4_m2);
2368 	vCtr := vCtr + 1;
2369 	vXMLTable(vCtr).TagName := 'P4_m3';
2370 	vXMLTable(vCtr).TagValue := to_char(l_P4_m3);
2371 	vCtr := vCtr + 1;
2372 	vXMLTable(vCtr).TagName := 'P4_m4';
2373 	vXMLTable(vCtr).TagValue := to_char(l_P4_m4);
2374 	vCtr := vCtr + 1;
2375 	vXMLTable(vCtr).TagName := 'P4_m5';
2376 	vXMLTable(vCtr).TagValue := to_char(l_P4_m5);
2377 	vCtr := vCtr + 1;
2378 	vXMLTable(vCtr).TagName := 'P4_m6';
2379 	vXMLTable(vCtr).TagValue := to_char(l_P4_m6);
2380 	vCtr := vCtr + 1;
2381 	vXMLTable(vCtr).TagName := 'P4_m7';
2382 	vXMLTable(vCtr).TagValue := to_char(l_P4_m7);
2383 	vCtr := vCtr + 1;
2384 	vXMLTable(vCtr).TagName := 'P4_m8';
2385 	vXMLTable(vCtr).TagValue := to_char(l_P4_m8);
2386 	vCtr := vCtr + 1;
2387 	vXMLTable(vCtr).TagName := 'P4_m9';
2388 	vXMLTable(vCtr).TagValue := to_char(l_P4_m9);
2389 	vCtr := vCtr + 1;
2390 	vXMLTable(vCtr).TagName := 'P4_m10';
2391 	vXMLTable(vCtr).TagValue := to_char(l_P4_m10);
2392 	vCtr := vCtr + 1;
2393 	vXMLTable(vCtr).TagName := 'P4_m11';
2394 	vXMLTable(vCtr).TagValue := to_char(l_P4_m11);
2395 	vCtr := vCtr + 1;
2396 	vXMLTable(vCtr).TagName := 'P4_m14';
2397 	vXMLTable(vCtr).TagValue := to_char(l_P4_m14);
2398 	vCtr := vCtr + 1;
2399 	vXMLTable(vCtr).TagName := 'P4_m15';
2400 	vXMLTable(vCtr).TagValue := to_char(l_P4_m15);
2401 	vCtr := vCtr + 1;
2402 	vXMLTable(vCtr).TagName := 'P4_m16';
2403 	vXMLTable(vCtr).TagValue := to_char(l_P4_m16);
2404 	vCtr := vCtr + 1;
2405 	vXMLTable(vCtr).TagName := 'P4_m17';
2406 	vXMLTable(vCtr).TagValue := to_char(l_P4_m17);
2407 	vCtr := vCtr + 1;
2408 	vXMLTable(vCtr).TagName := 'P4_m18';
2409 	vXMLTable(vCtr).TagValue := to_char(l_P4_m18);
2410 	vCtr := vCtr + 1;
2411 	vXMLTable(vCtr).TagName := 'P4_m19';
2412 	vXMLTable(vCtr).TagValue := to_char(l_P4_m19);
2413 	vCtr := vCtr + 1;
2414 
2415 	vXMLTable(vCtr).TagName := 'P4_i1';
2416 	vXMLTable(vCtr).TagValue := to_char(l_P4_i1);
2417 	vCtr := vCtr + 1;
2418 	vXMLTable(vCtr).TagName := 'P4_i2';
2419 	vXMLTable(vCtr).TagValue := to_char(l_P4_i2);
2420 	vCtr := vCtr + 1;
2421 	vXMLTable(vCtr).TagName := 'P4_i3';
2422 	vXMLTable(vCtr).TagValue := to_char(l_P4_i3);
2423 	vCtr := vCtr + 1;
2424 	vXMLTable(vCtr).TagName := 'P4_i4';
2425 	vXMLTable(vCtr).TagValue := to_char(l_P4_i4);
2426 	vCtr := vCtr + 1;
2427 	vXMLTable(vCtr).TagName := 'P4_i5';
2428 	vXMLTable(vCtr).TagValue := to_char(l_P4_i5);
2429 	vCtr := vCtr + 1;
2430 	vXMLTable(vCtr).TagName := 'P4_i6';
2431 	vXMLTable(vCtr).TagValue := to_char(l_P4_i6);
2432 	vCtr := vCtr + 1;
2433 	vXMLTable(vCtr).TagName := 'P4_i7';
2434 	vXMLTable(vCtr).TagValue := to_char(l_P4_i7);
2435 	vCtr := vCtr + 1;
2436 	vXMLTable(vCtr).TagName := 'P4_i8';
2437 	vXMLTable(vCtr).TagValue := to_char(l_P4_i8);
2438 	vCtr := vCtr + 1;
2439 	vXMLTable(vCtr).TagName := 'P4_i9';
2440 	vXMLTable(vCtr).TagValue := to_char(l_P4_i9);
2441 	vCtr := vCtr + 1;
2442 	vXMLTable(vCtr).TagName := 'P4_i10';
2443 	vXMLTable(vCtr).TagValue := to_char(l_P4_i10);
2444 	vCtr := vCtr + 1;
2445 	vXMLTable(vCtr).TagName := 'P4_i11';
2446 	vXMLTable(vCtr).TagValue := to_char(l_P4_i11);
2447 	vCtr := vCtr + 1;
2448 	vXMLTable(vCtr).TagName := 'P4_i14';
2449 	vXMLTable(vCtr).TagValue := to_char(l_P4_i14);
2450 	vCtr := vCtr + 1;
2451 	vXMLTable(vCtr).TagName := 'P4_i15';
2452 	vXMLTable(vCtr).TagValue := to_char(l_P4_i15);
2453 	vCtr := vCtr + 1;
2454 	vXMLTable(vCtr).TagName := 'P4_i16';
2455 	vXMLTable(vCtr).TagValue := to_char(l_P4_i16);
2456 	vCtr := vCtr + 1;
2457 	vXMLTable(vCtr).TagName := 'P4_i17';
2458 	vXMLTable(vCtr).TagValue := to_char(l_P4_i17);
2459 	vCtr := vCtr + 1;
2460 	vXMLTable(vCtr).TagName := 'P4_i18';
2461 	vXMLTable(vCtr).TagValue := to_char(l_P4_i18);
2462 	vCtr := vCtr + 1;
2463 	vXMLTable(vCtr).TagName := 'P4_i19';
2464 	vXMLTable(vCtr).TagValue := to_char(l_P4_i19);
2465 	vCtr := vCtr + 1;
2466 
2467 	-- Populating values into the PL/SQL Table
2468 	vXMLTable(vCtr).TagName := 'P4_a17';
2469 	vXMLTable(vCtr).TagValue := to_char(l_P4_a17);
2470 	vCtr := vCtr + 1;
2471 	vXMLTable(vCtr).TagName := 'P4_a18';
2472 	vXMLTable(vCtr).TagValue := to_char(l_P4_a18);
2473 	vCtr := vCtr + 1;
2474 	vXMLTable(vCtr).TagName := 'P4_a19';
2475 	vXMLTable(vCtr).TagValue := to_char(l_P4_a19);
2476 	vCtr := vCtr + 1;
2477 	vXMLTable(vCtr).TagName := 'P4_b17';
2478 	vXMLTable(vCtr).TagValue := to_char(l_P4_b17);
2479 	vCtr := vCtr + 1;
2480 	vXMLTable(vCtr).TagName := 'P4_b18';
2481 	vXMLTable(vCtr).TagValue := to_char(l_P4_b18);
2482 	vCtr := vCtr + 1;
2483 	vXMLTable(vCtr).TagName := 'P4_b19';
2484 	vXMLTable(vCtr).TagValue := to_char(l_P4_b19);
2485 	vCtr := vCtr + 1;
2486 	vXMLTable(vCtr).TagName := 'P4_c17';
2487 	vXMLTable(vCtr).TagValue := to_char(l_P4_c17);
2488 	vCtr := vCtr + 1;
2489 	vXMLTable(vCtr).TagName := 'P4_c18';
2490 	vXMLTable(vCtr).TagValue := to_char(l_P4_c18);
2491 	vCtr := vCtr + 1;
2492 	vXMLTable(vCtr).TagName := 'P4_c19';
2493 	vXMLTable(vCtr).TagValue := to_char(l_P4_c19);
2494 	vCtr := vCtr + 1;
2495 	vXMLTable(vCtr).TagName := 'P4_d17';
2496 	vXMLTable(vCtr).TagValue := to_char(l_P4_d17);
2497 	vCtr := vCtr + 1;
2498 	vXMLTable(vCtr).TagName := 'P4_d18';
2499 	vXMLTable(vCtr).TagValue := to_char(l_P4_d18);
2500 	vCtr := vCtr + 1;
2501 	vXMLTable(vCtr).TagName := 'P4_d19';
2502 	vXMLTable(vCtr).TagValue := to_char(l_P4_d19);
2503 	vCtr := vCtr + 1;
2504 	vXMLTable(vCtr).TagName := 'P4_e1_17';
2505 	vXMLTable(vCtr).TagValue := to_char(l_P4_e1_17);
2506 	vCtr := vCtr + 1;
2507 	vXMLTable(vCtr).TagName := 'P4_e1_18';
2508 	vXMLTable(vCtr).TagValue := to_char(l_P4_e1_18);
2509 	vCtr := vCtr + 1;
2510 	vXMLTable(vCtr).TagName := 'P4_e1_19';
2511 	vXMLTable(vCtr).TagValue := to_char(l_P4_e1_19);
2512 	vCtr := vCtr + 1;
2513 	vXMLTable(vCtr).TagName := 'P4_e2_17';
2514 	vXMLTable(vCtr).TagValue := to_char(l_P4_e2_17);
2515 	vCtr := vCtr + 1;
2516 	vXMLTable(vCtr).TagName := 'P4_e2_18';
2517 	vXMLTable(vCtr).TagValue := to_char(l_P4_e2_18);
2518 	vCtr := vCtr + 1;
2519 	vXMLTable(vCtr).TagName := 'P4_e2_19';
2520 	vXMLTable(vCtr).TagValue := to_char(l_P4_e2_19);
2521 	vCtr := vCtr + 1;
2522 	vXMLTable(vCtr).TagName := 'P4_e3_17';
2523 	vXMLTable(vCtr).TagValue := to_char(l_P4_e3_17);
2524 	vCtr := vCtr + 1;
2525 	vXMLTable(vCtr).TagName := 'P4_e3_18';
2526 	vXMLTable(vCtr).TagValue := to_char(l_P4_e3_18);
2527 	vCtr := vCtr + 1;
2528 	vXMLTable(vCtr).TagName := 'P4_e3_19';
2529 	vXMLTable(vCtr).TagValue := to_char(l_P4_e3_19);
2530 	vCtr := vCtr + 1;
2531 	vXMLTable(vCtr).TagName := 'P4_e4_17';
2532 	vXMLTable(vCtr).TagValue := to_char(l_P4_e4_17);
2533 	vCtr := vCtr + 1;
2534 	vXMLTable(vCtr).TagName := 'P4_e4_18';
2535 	vXMLTable(vCtr).TagValue := to_char(l_P4_e4_18);
2536 	vCtr := vCtr + 1;
2537 	vXMLTable(vCtr).TagName := 'P4_e4_19';
2538 	vXMLTable(vCtr).TagValue := to_char(l_P4_e4_19);
2539 	vCtr := vCtr + 1;
2540 	vXMLTable(vCtr).TagName := 'P4_e5_17';
2541 	vXMLTable(vCtr).TagValue := to_char(l_P4_e5_17);
2542 	vCtr := vCtr + 1;
2543 	vXMLTable(vCtr).TagName := 'P4_e5_18';
2544 	vXMLTable(vCtr).TagValue := to_char(l_P4_e5_18);
2545 	vCtr := vCtr + 1;
2546 	vXMLTable(vCtr).TagName := 'P4_e5_19';
2547 	vXMLTable(vCtr).TagValue := to_char(l_P4_e5_19);
2548 	vCtr := vCtr + 1;
2549 
2550 	vXMLTable(vCtr).TagName := 'P4_e5_17';
2551 	vXMLTable(vCtr).TagValue := to_char(l_P4_e5_17);
2552 	vCtr := vCtr + 1;
2553 	vXMLTable(vCtr).TagName := 'P4_e5_18';
2554 	vXMLTable(vCtr).TagValue := to_char(l_P4_e5_18);
2555 	vCtr := vCtr + 1;
2556 	vXMLTable(vCtr).TagName := 'P4_e5_19';
2557 	vXMLTable(vCtr).TagValue := to_char(l_P4_e5_19);
2558 	vCtr := vCtr + 1;
2559 
2560 	-- Filling zeros for other fields
2561 	FOR cur_ctr IN 1..19 LOOP
2562 		IF (cur_ctr = 12) OR (cur_ctr = 13) THEN
2563 			NULL;
2564 		ELSE
2565 		   vXMLTable(vCtr).TagName := 'P4_e6_' || cur_ctr;
2566 		   vXMLTable(vCtr).TagValue := '0';
2567 		   vCtr := vCtr + 1;
2568 		END IF;
2569 	END LOOP;
2570 
2571 	FOR cur_ctr IN 1..19 LOOP
2572 		IF (cur_ctr = 12) OR (cur_ctr = 13) THEN
2573 			NULL;
2574 		ELSE
2575 		   vXMLTable(vCtr).TagName := 'P4_e7_' || cur_ctr;
2576 		   vXMLTable(vCtr).TagValue := '0';
2577 		   vCtr := vCtr + 1;
2578 		END IF;
2579 	END LOOP;
2580 
2581 	vXMLTable(vCtr).TagName := 'P4_f17';
2582 	vXMLTable(vCtr).TagValue := to_char(l_P4_f17);
2583 	vCtr := vCtr + 1;
2584 	vXMLTable(vCtr).TagName := 'P4_f18';
2585 	vXMLTable(vCtr).TagValue := to_char(l_P4_f18);
2586 	vCtr := vCtr + 1;
2587 	vXMLTable(vCtr).TagName := 'P4_f19';
2588 	vXMLTable(vCtr).TagValue := to_char(l_P4_f19);
2589 	vCtr := vCtr + 1;
2590 	vXMLTable(vCtr).TagName := 'P4_g17';
2591 	vXMLTable(vCtr).TagValue := to_char(l_P4_g17);
2592 	vCtr := vCtr + 1;
2593 	vXMLTable(vCtr).TagName := 'P4_g18';
2594 	vXMLTable(vCtr).TagValue := to_char(l_P4_g18);
2595 	vCtr := vCtr + 1;
2596 	vXMLTable(vCtr).TagName := 'P4_g19';
2597 	vXMLTable(vCtr).TagValue := to_char(l_P4_g19);
2598 	vCtr := vCtr + 1;
2599 	vXMLTable(vCtr).TagName := 'P4_h17';
2600 	vXMLTable(vCtr).TagValue := to_char(l_P4_h17);
2601 	vCtr := vCtr + 1;
2602 	vXMLTable(vCtr).TagName := 'P4_h18';
2603 	vXMLTable(vCtr).TagValue := to_char(l_P4_h18);
2604 	vCtr := vCtr + 1;
2605 	vXMLTable(vCtr).TagName := 'P4_h19';
2606 	vXMLTable(vCtr).TagValue := to_char(l_P4_h19);
2607 	vCtr := vCtr + 1;
2608 	vXMLTable(vCtr).TagName := 'P4_i1_17';
2609 	vXMLTable(vCtr).TagValue := to_char(l_P4_i1_17);
2610 	vCtr := vCtr + 1;
2611 	vXMLTable(vCtr).TagName := 'P4_i1_18';
2612 	vXMLTable(vCtr).TagValue := to_char(l_P4_i1_18);
2613 	vCtr := vCtr + 1;
2614 	vXMLTable(vCtr).TagName := 'P4_i1_19';
2615 	vXMLTable(vCtr).TagValue := to_char(l_P4_i1_19);
2616 	vCtr := vCtr + 1;
2617 	vXMLTable(vCtr).TagName := 'P4_i2_17';
2618 	vXMLTable(vCtr).TagValue := to_char(l_P4_i2_17);
2619 	vCtr := vCtr + 1;
2620 	vXMLTable(vCtr).TagName := 'P4_i2_18';
2621 	vXMLTable(vCtr).TagValue := to_char(l_P4_i2_18);
2622 	vCtr := vCtr + 1;
2623 	vXMLTable(vCtr).TagName := 'P4_i2_19';
2624 	vXMLTable(vCtr).TagValue := to_char(l_P4_i2_19);
2625 	vCtr := vCtr + 1;
2626 	vXMLTable(vCtr).TagName := 'P4_j17';
2627 	vXMLTable(vCtr).TagValue := to_char(l_P4_j17);
2628 	vCtr := vCtr + 1;
2629 	vXMLTable(vCtr).TagName := 'P4_j18';
2630 	vXMLTable(vCtr).TagValue := to_char(l_P4_j18);
2631 	vCtr := vCtr + 1;
2632 	vXMLTable(vCtr).TagName := 'P4_j19';
2633 	vXMLTable(vCtr).TagValue := to_char(l_P4_j19);
2634 	vCtr := vCtr + 1;
2635 	vXMLTable(vCtr).TagName := 'P4_k17';
2636 	vXMLTable(vCtr).TagValue := to_char(l_P4_k17);
2637 	vCtr := vCtr + 1;
2638 	vXMLTable(vCtr).TagName := 'P4_k18';
2639 	vXMLTable(vCtr).TagValue := to_char(l_P4_k18);
2640 	vCtr := vCtr + 1;
2641 	vXMLTable(vCtr).TagName := 'P4_k19';
2642 	vXMLTable(vCtr).TagValue := to_char(l_P4_k19);
2643 	vCtr := vCtr + 1;
2644 	vXMLTable(vCtr).TagName := 'P4_l17';
2645 	vXMLTable(vCtr).TagValue := to_char(l_P4_l17);
2646 	vCtr := vCtr + 1;
2647 	vXMLTable(vCtr).TagName := 'P4_l18';
2648 	vXMLTable(vCtr).TagValue := to_char(l_P4_l18);
2649 	vCtr := vCtr + 1;
2650 	vXMLTable(vCtr).TagName := 'P4_l19';
2651 	vXMLTable(vCtr).TagValue := to_char(l_P4_l19);
2652 	vCtr := vCtr + 1;
2653 	vXMLTable(vCtr).TagName := 'P4_m1_17';
2654 	vXMLTable(vCtr).TagValue := to_char(l_P4_m1_17);
2655 	vCtr := vCtr + 1;
2656 	vXMLTable(vCtr).TagName := 'P4_m1_18';
2657 	vXMLTable(vCtr).TagValue := to_char(l_P4_m1_18);
2658 	vCtr := vCtr + 1;
2659 	vXMLTable(vCtr).TagName := 'P4_m1_19';
2660 	vXMLTable(vCtr).TagValue := to_char(l_P4_m1_19);
2661 	vCtr := vCtr + 1;
2662 	vXMLTable(vCtr).TagName := 'P4_m2_17';
2663 	vXMLTable(vCtr).TagValue := to_char(l_P4_m2_17);
2664 	vCtr := vCtr + 1;
2665 	vXMLTable(vCtr).TagName := 'P4_m2_18';
2666 	vXMLTable(vCtr).TagValue := to_char(l_P4_m2_18);
2667 	vCtr := vCtr + 1;
2668 	vXMLTable(vCtr).TagName := 'P4_m2_19';
2669 	vXMLTable(vCtr).TagValue := to_char(l_P4_m2_19);
2670 	vCtr := vCtr + 1;
2671 	vXMLTable(vCtr).TagName := 'P4_n17';
2672 	vXMLTable(vCtr).TagValue := to_char(l_P4_n17);
2673 	vCtr := vCtr + 1;
2674 	vXMLTable(vCtr).TagName := 'P4_n18';
2675 	vXMLTable(vCtr).TagValue := to_char(l_P4_n18);
2676 	vCtr := vCtr + 1;
2677 	vXMLTable(vCtr).TagName := 'P4_n19';
2678 	vXMLTable(vCtr).TagValue := to_char(l_P4_n19);
2679 	vCtr := vCtr + 1;
2680 	vXMLTable(vCtr).TagName := 'P4_o17';
2681 	vXMLTable(vCtr).TagValue := to_char(l_P4_o17);
2682 	vCtr := vCtr + 1;
2683 	vXMLTable(vCtr).TagName := 'P4_o18';
2684 	vXMLTable(vCtr).TagValue := to_char(l_P4_o18);
2685 	vCtr := vCtr + 1;
2686 	vXMLTable(vCtr).TagName := 'P4_o19';
2687 	vXMLTable(vCtr).TagValue := to_char(l_P4_o19);
2688 	vCtr := vCtr + 1;
2689 	vXMLTable(vCtr).TagName := 'P4_p17';
2690 	vXMLTable(vCtr).TagValue := to_char(l_P4_p17);
2691 	vCtr := vCtr + 1;
2692 	vXMLTable(vCtr).TagName := 'P4_p18';
2693 	vXMLTable(vCtr).TagValue := to_char(l_P4_p18);
2694 	vCtr := vCtr + 1;
2695 	vXMLTable(vCtr).TagName := 'P4_p19';
2696 	vXMLTable(vCtr).TagValue := to_char(l_P4_p19);
2697 	vCtr := vCtr + 1;
2698 	vXMLTable(vCtr).TagName := 'P4_q17';
2699 	vXMLTable(vCtr).TagValue := to_char(l_P4_q17);
2700 	vCtr := vCtr + 1;
2701 	vXMLTable(vCtr).TagName := 'P4_q18';
2702 	vXMLTable(vCtr).TagValue := to_char(l_P4_q18);
2703 	vCtr := vCtr + 1;
2704 	vXMLTable(vCtr).TagName := 'P4_q19';
2705 	vXMLTable(vCtr).TagValue := to_char(l_P4_q19);
2706 	vCtr := vCtr + 1;
2707 	vXMLTable(vCtr).TagName := 'P4_r17';
2708 	vXMLTable(vCtr).TagValue := to_char(l_P4_r17);
2709 	vCtr := vCtr + 1;
2710 	vXMLTable(vCtr).TagName := 'P4_r18';
2711 	vXMLTable(vCtr).TagValue := to_char(l_P4_r18);
2712 	vCtr := vCtr + 1;
2713 	vXMLTable(vCtr).TagName := 'P4_r19';
2714 	vXMLTable(vCtr).TagValue := to_char(l_P4_r19);
2715 	vCtr := vCtr + 1;
2716 	vXMLTable(vCtr).TagName := 'P4_s17';
2717 	vXMLTable(vCtr).TagValue := to_char(l_P4_s17);
2718 	vCtr := vCtr + 1;
2719 	vXMLTable(vCtr).TagName := 'P4_s18';
2720 	vXMLTable(vCtr).TagValue := to_char(l_P4_s18);
2721 	vCtr := vCtr + 1;
2722 	vXMLTable(vCtr).TagName := 'P4_s19';
2723 	vXMLTable(vCtr).TagValue := to_char(l_P4_s19);
2724 	vCtr := vCtr + 1;
2725 	vXMLTable(vCtr).TagName := 'P4_t17';
2726 	vXMLTable(vCtr).TagValue := to_char(l_P4_t17);
2727 	vCtr := vCtr + 1;
2728 	vXMLTable(vCtr).TagName := 'P4_t18';
2729 	vXMLTable(vCtr).TagValue := to_char(l_P4_t18);
2730 	vCtr := vCtr + 1;
2731 	vXMLTable(vCtr).TagName := 'P4_t19';
2732 	vXMLTable(vCtr).TagValue := to_char(l_P4_t19);
2733 	vCtr := vCtr + 1;
2734 	vXMLTable(vCtr).TagName := 'P4_u17';
2735 	vXMLTable(vCtr).TagValue := to_char(l_P4_u17);
2736 	vCtr := vCtr + 1;
2737 	vXMLTable(vCtr).TagName := 'P4_u18';
2738 	vXMLTable(vCtr).TagValue := to_char(l_P4_u18);
2739 	vCtr := vCtr + 1;
2740 	vXMLTable(vCtr).TagName := 'P4_u19';
2741 	vXMLTable(vCtr).TagValue := to_char(l_P4_u19);
2742 	vCtr := vCtr + 1;
2743 
2744 	-- Filling zeros for other fields
2745 	FOR cur_i IN 1..5 LOOP
2746 	   FOR cur_j IN 1..19 LOOP
2747 			IF (cur_j = 12) OR (cur_j = 13) THEN
2748 				NULL;
2749 			ELSE
2750 				vXMLTable(vCtr).TagName := 'P4_u' ||cur_i || '_' || cur_j;
2751 				vXMLTable(vCtr).TagValue := '0';
2752 				vCtr := vCtr + 1;
2753 			END IF;
2754 	   END LOOP;
2755 	END LOOP;
2756 
2757 	fnd_file.put_line(fnd_file.log,'Finished populating Part4 - Total fields by Issues');
2758 --------------
2759 	vXMLTable(vCtr).TagName := 'P4_tot1_1';
2760 	vXMLTable(vCtr).TagValue := to_char(l_tot1_1);
2761 	vCtr := vCtr + 1;
2762 	vXMLTable(vCtr).TagName := 'P4_tot2_1';
2763 	vXMLTable(vCtr).TagValue := to_char(l_tot2_1);
2764 	vCtr := vCtr + 1;
2765 	vXMLTable(vCtr).TagName := 'P4_tot3_1';
2766 	vXMLTable(vCtr).TagValue := to_char(l_tot3_1);
2767 	vCtr := vCtr + 1;
2768 	vXMLTable(vCtr).TagName := 'P4_tot1_2';
2769 	vXMLTable(vCtr).TagValue := to_char(l_tot1_2);
2770 	vCtr := vCtr + 1;
2771 	vXMLTable(vCtr).TagName := 'P4_tot2_2';
2772 	vXMLTable(vCtr).TagValue := to_char(l_tot2_2);
2773 	vCtr := vCtr + 1;
2774 	vXMLTable(vCtr).TagName := 'P4_tot3_2';
2775 	vXMLTable(vCtr).TagValue := to_char(l_tot3_2);
2776 	vCtr := vCtr + 1;
2777 	vXMLTable(vCtr).TagName := 'P4_tot1_3';
2778 	vXMLTable(vCtr).TagValue := to_char(l_tot1_3);
2779 	vCtr := vCtr + 1;
2780 	vXMLTable(vCtr).TagName := 'P4_tot2_3';
2781 	vXMLTable(vCtr).TagValue := to_char(l_tot2_3);
2782 	vCtr := vCtr + 1;
2783 	vXMLTable(vCtr).TagName := 'P4_tot3_3';
2784 	vXMLTable(vCtr).TagValue := to_char(l_tot3_3);
2785 	vCtr := vCtr + 1;
2786 	vXMLTable(vCtr).TagName := 'P4_tot1_4';
2787 	vXMLTable(vCtr).TagValue := to_char(l_tot1_4);
2788 	vCtr := vCtr + 1;
2789 	vXMLTable(vCtr).TagName := 'P4_tot2_4';
2790 	vXMLTable(vCtr).TagValue := to_char(l_tot2_4);
2791 	vCtr := vCtr + 1;
2792 	vXMLTable(vCtr).TagName := 'P4_tot3_4';
2793 	vXMLTable(vCtr).TagValue := to_char(l_tot3_4);
2794 	vCtr := vCtr + 1;
2795 	vXMLTable(vCtr).TagName := 'P4_tot1_5';
2796 	vXMLTable(vCtr).TagValue := to_char(l_tot1_5);
2797 	vCtr := vCtr + 1;
2798 	vXMLTable(vCtr).TagName := 'P4_tot2_5';
2799 	vXMLTable(vCtr).TagValue := to_char(l_tot2_5);
2800 	vCtr := vCtr + 1;
2801 	vXMLTable(vCtr).TagName := 'P4_tot3_5';
2802 	vXMLTable(vCtr).TagValue := to_char(l_tot3_5);
2803 	vCtr := vCtr + 1;
2804 	vXMLTable(vCtr).TagName := 'P4_tot1_6';
2805 	vXMLTable(vCtr).TagValue := to_char(l_tot1_6);
2806 	vCtr := vCtr + 1;
2807 	vXMLTable(vCtr).TagName := 'P4_tot2_6';
2808 	vXMLTable(vCtr).TagValue := to_char(l_tot2_6);
2809 	vCtr := vCtr + 1;
2810 	vXMLTable(vCtr).TagName := 'P4_tot3_6';
2811 	vXMLTable(vCtr).TagValue := to_char(l_tot3_6);
2812 	vCtr := vCtr + 1;
2813 	vXMLTable(vCtr).TagName := 'P4_tot1_7';
2814 	vXMLTable(vCtr).TagValue := to_char(l_tot1_7);
2815 	vCtr := vCtr + 1;
2816 	vXMLTable(vCtr).TagName := 'P4_tot2_7';
2817 	vXMLTable(vCtr).TagValue := to_char(l_tot2_7);
2818 	vCtr := vCtr + 1;
2819 	vXMLTable(vCtr).TagName := 'P4_tot3_7';
2820 	vXMLTable(vCtr).TagValue := to_char(l_tot3_7);
2821 	vCtr := vCtr + 1;
2822 	vXMLTable(vCtr).TagName := 'P4_tot1_8';
2823 	vXMLTable(vCtr).TagValue := to_char(l_tot1_8);
2824 	vCtr := vCtr + 1;
2825 	vXMLTable(vCtr).TagName := 'P4_tot2_8';
2826 	vXMLTable(vCtr).TagValue := to_char(l_tot2_8);
2827 	vCtr := vCtr + 1;
2828 	vXMLTable(vCtr).TagName := 'P4_tot3_8';
2829 	vXMLTable(vCtr).TagValue := to_char(l_tot3_8);
2830 	vCtr := vCtr + 1;
2831 	vXMLTable(vCtr).TagName := 'P4_tot1_9';
2832 	vXMLTable(vCtr).TagValue := to_char(l_tot1_9);
2833 	vCtr := vCtr + 1;
2834 	vXMLTable(vCtr).TagName := 'P4_tot2_9';
2835 	vXMLTable(vCtr).TagValue := to_char(l_tot2_9);
2836 	vCtr := vCtr + 1;
2837 	vXMLTable(vCtr).TagName := 'P4_tot3_9';
2838 	vXMLTable(vCtr).TagValue := to_char(l_tot3_9);
2839 	vCtr := vCtr + 1;
2840 	vXMLTable(vCtr).TagName := 'P4_tot1_10';
2841 	vXMLTable(vCtr).TagValue := to_char(l_tot1_10);
2842 	vCtr := vCtr + 1;
2843 	vXMLTable(vCtr).TagName := 'P4_tot2_10';
2844 	vXMLTable(vCtr).TagValue := to_char(l_tot2_10);
2845 	vCtr := vCtr + 1;
2846 	vXMLTable(vCtr).TagName := 'P4_tot3_10';
2847 	vXMLTable(vCtr).TagValue := to_char(l_tot3_10);
2848 	vCtr := vCtr + 1;
2849 	vXMLTable(vCtr).TagName := 'P4_tot1_11';
2850 	vXMLTable(vCtr).TagValue := to_char(l_tot1_11);
2851 	vCtr := vCtr + 1;
2852 	vXMLTable(vCtr).TagName := 'P4_tot2_11';
2853 	vXMLTable(vCtr).TagValue := to_char(l_tot2_11);
2854 	vCtr := vCtr + 1;
2855 	vXMLTable(vCtr).TagName := 'P4_tot3_11';
2859 	vXMLTable(vCtr).TagValue := to_char(l_tot1_12);
2856 	vXMLTable(vCtr).TagValue := to_char(l_tot3_11);
2857 	vCtr := vCtr + 1;
2858 	vXMLTable(vCtr).TagName := 'P4_tot1_12';
2860 	vCtr := vCtr + 1;
2861 	vXMLTable(vCtr).TagName := 'P4_tot2_12';
2862 	vXMLTable(vCtr).TagValue := to_char(l_tot2_12);
2863 	vCtr := vCtr + 1;
2864 	vXMLTable(vCtr).TagName := 'P4_tot3_12';
2865 	vXMLTable(vCtr).TagValue := to_char(l_tot3_12);
2866 	vCtr := vCtr + 1;
2867 	vXMLTable(vCtr).TagName := 'P4_tot1_13';
2868 	vXMLTable(vCtr).TagValue := to_char(l_tot1_13);
2869 	vCtr := vCtr + 1;
2870 	vXMLTable(vCtr).TagName := 'P4_tot2_13';
2871 	vXMLTable(vCtr).TagValue := to_char(l_tot2_13);
2872 	vCtr := vCtr + 1;
2873 	vXMLTable(vCtr).TagName := 'P4_tot3_13';
2874 	vXMLTable(vCtr).TagValue := to_char(l_tot3_13);
2875 	vCtr := vCtr + 1;
2876 	vXMLTable(vCtr).TagName := 'P4_tot1_14';
2877 	vXMLTable(vCtr).TagValue := to_char(l_tot1_14);
2878 	vCtr := vCtr + 1;
2879 	vXMLTable(vCtr).TagName := 'P4_tot2_14';
2880 	vXMLTable(vCtr).TagValue := to_char(l_tot2_14);
2881 	vCtr := vCtr + 1;
2882 	vXMLTable(vCtr).TagName := 'P4_tot3_14';
2883 	vXMLTable(vCtr).TagValue := to_char(l_tot3_14);
2884 	vCtr := vCtr + 1;
2885 	vXMLTable(vCtr).TagName := 'P4_tot1_15';
2886 	vXMLTable(vCtr).TagValue := to_char(l_tot1_15);
2887 	vCtr := vCtr + 1;
2888 	vXMLTable(vCtr).TagName := 'P4_tot2_15';
2889 	vXMLTable(vCtr).TagValue := to_char(l_tot2_15);
2890 	vCtr := vCtr + 1;
2891 	vXMLTable(vCtr).TagName := 'P4_tot3_15';
2892 	vXMLTable(vCtr).TagValue := to_char(l_tot3_15);
2893 	vCtr := vCtr + 1;
2894 	vXMLTable(vCtr).TagName := 'P4_tot1_16';
2895 	vXMLTable(vCtr).TagValue := to_char(l_tot1_16);
2896 	vCtr := vCtr + 1;
2897 	vXMLTable(vCtr).TagName := 'P4_tot2_16';
2898 	vXMLTable(vCtr).TagValue := to_char(l_tot2_16);
2899 	vCtr := vCtr + 1;
2900 	vXMLTable(vCtr).TagName := 'P4_tot3_16';
2901 	vXMLTable(vCtr).TagValue := to_char(l_tot3_16);
2902 	vCtr := vCtr + 1;
2903 	fnd_file.put_line(fnd_file.log,'Finished populating Part4 - Total fields by Bases');
2904 	fnd_file.put_line(fnd_file.log,'------------End of Part4----------------');
2905 
2906 END populate_part4;
2907 
2908 PROCEDURE populate_part5(
2909     p_from_date   in date,
2910 	p_to_date     in date,
2911 	p_agency_code in varchar2)
2912 IS
2913 CURSOR cur_p5(c_from_date date, c_to_date date, c_statute ghr_compl_bases.statute%type,c_agency_code ghr_complaints2.agency_code%type) IS
2914    SELECT COUNT(*) p5_cnt
2915    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_CLAIMS claims, GHR_COMPL_BASES bases
2916    WHERE bases.compl_claim_id = claims.compl_claim_id
2917    AND claims.complaint_id = cmp.complaint_id
2918    AND claims.phase IN (20,30)
2919    AND cmp.complaint_closed BETWEEN c_from_date AND c_to_date
2920    AND cmp.formal_com_filed IS NOT NULL
2921    AND cmp.agency_code = c_agency_code
2922    AND bases.statute = c_statute;
2923 
2924 l_P5_a1 NUMBER;
2925 l_P5_a2 NUMBER;
2926 l_P5_a3 NUMBER;
2927 l_P5_a4 NUMBER;
2928 l_P5_b NUMBER;
2929 
2930 BEGIN
2931 	-- Title VII
2932 	FOR cur_ctr IN cur_p5(p_from_date,p_to_date,'10', p_agency_code) LOOP
2933 		vXMLTable(vCtr).TagName := 'P5_a1';
2934 		vXMLTable(vCtr).TagValue := to_char(cur_ctr.p5_cnt);
2935 		l_P5_a1 := cur_ctr.p5_cnt;
2936 		vCtr := vCtr + 1;
2937 	END LOOP;
2938 	fnd_file.put_line(fnd_file.log,'Finished populating Part5 - Title VII');
2939 	-- Age Discrimination
2940 	FOR cur_ctr IN cur_p5(p_from_date,p_to_date,'20', p_agency_code) LOOP
2941 		vXMLTable(vCtr).TagName := 'P5_a2';
2942 		vXMLTable(vCtr).TagValue := to_char(cur_ctr.p5_cnt);
2943 		l_P5_a2 := cur_ctr.p5_cnt;
2944 		vCtr := vCtr + 1;
2945 	END LOOP;
2946 	fnd_file.put_line(fnd_file.log,'Finished populating Part5 - Age Discrimination');
2947 	-- Rehabilitation act
2948 	FOR cur_ctr IN cur_p5(p_from_date,p_to_date,'30', p_agency_code) LOOP
2949 		vXMLTable(vCtr).TagName := 'P5_a3';
2950 		vXMLTable(vCtr).TagValue := to_char(cur_ctr.p5_cnt);
2951 		l_P5_a3 := cur_ctr.p5_cnt;
2952 		vCtr := vCtr + 1;
2953 	END LOOP;
2954 	fnd_file.put_line(fnd_file.log,'Finished populating Part5 - Rehabilitation act');
2955 	-- Equal Pay act.
2956 	FOR cur_ctr IN cur_p5(p_from_date,p_to_date,'40', p_agency_code) LOOP
2957 		vXMLTable(vCtr).TagName := 'P5_a4';
2958 		vXMLTable(vCtr).TagValue := to_char(cur_ctr.p5_cnt);
2959 		l_P5_a4 := cur_ctr.p5_cnt;
2960 		vCtr := vCtr + 1;
2961 	END LOOP;
2962 	fnd_file.put_line(fnd_file.log,'Finished populating Part5 - Equal Pay act.');
2963 	-- Total by statutes
2964 	l_P5_b := l_P5_a1 + l_P5_a2 + l_P5_a3 + l_P5_a4;
2965 
2966 	vXMLTable(vCtr).TagName := 'P5_b';
2967 	vXMLTable(vCtr).TagValue := to_char(l_P5_b);
2968 	vCtr := vCtr + 1;
2969 	fnd_file.put_line(fnd_file.log,'Finished populating Part5 - Total by statutes');
2970 	fnd_file.put_line(fnd_file.log,'------------End of Part5----------------');
2971 END populate_part5;
2972 
2973 PROCEDURE populate_part6(
2974     p_from_date   in date,
2975 	p_to_date     in date,
2976 	p_agency_code in varchar2)
2977 IS
2978 CURSOR cur_total_nodays(c_from_date date, c_to_date date, c_noc GHR_COMPLAINTS2.nature_of_closure%TYPE,c_agency_code ghr_complaints2.agency_code%type) IS
2979    SELECT COUNT(*) p6_cnt, NVL(SUM(ROUND((cmp.complaint_closed - cmp.formal_com_filed),0)+1),0) p6_sum
2980    FROM GHR_COMPLAINTS2 cmp
2981    WHERE cmp.formal_com_filed IS NOT NULL
2982    AND cmp.nature_of_closure = c_noc
2983    AND cmp.agency_code = c_agency_code
2984    AND cmp.complaint_closed BETWEEN c_from_date AND c_to_date;
2985 
2986 CURSOR cur_settlements(c_from_date date, c_to_date date,c_agency_code ghr_complaints2.agency_code%type) IS
2987    SELECT COUNT(*) p6_cnt, NVL(SUM(ROUND((cmp.complaint_closed - cmp.formal_com_filed),0)+1),0) p6_sum
2988    FROM GHR_COMPLAINTS2 cmp
2989    WHERE cmp.formal_com_filed IS NOT NULL
2990    AND cmp.nature_of_closure IN (110,120,130,140,150,160)
2994 
2991    AND cmp.agency_code = c_agency_code
2992    AND cmp.complaint_closed BETWEEN c_from_date AND c_to_date;
2993 
2995 l_P6_a1_num NUMBER;
2996 l_P6_a1_day NUMBER;
2997 l_P6_a2_num NUMBER;
2998 l_P6_a2_day NUMBER;
2999 l_P6_a3_num NUMBER;
3000 l_P6_a3_day NUMBER;
3001 l_P6_a_num NUMBER;
3002 l_P6_a_day NUMBER;
3003 
3004 l_P6_bnum NUMBER;
3005 l_P6_bday NUMBER;
3006 l_P6_b1_num NUMBER;
3007 l_P6_b1_day NUMBER;
3008 l_P6_b2_num NUMBER;
3009 l_P6_b2_day NUMBER;
3010 l_P6_b3_num NUMBER;
3011 l_P6_b3_day NUMBER;
3012 
3013 l_P6_cnum NUMBER;
3014 l_P6_cday NUMBER;
3015 l_P6_c1_num NUMBER;
3016 l_P6_c1_day NUMBER;
3017 l_P6_c1a_num NUMBER;
3018 l_P6_c1a_day NUMBER;
3019 l_P6_c1b_num NUMBER;
3020 l_P6_c1b_day NUMBER;
3021 l_P6_c2_num NUMBER;
3022 l_P6_c2_day NUMBER;
3023 l_P6_c2a_num NUMBER;
3024 l_P6_c2a_day NUMBER;
3025 l_P6_c2a_1num NUMBER;
3026 l_P6_c2a_1day NUMBER;
3027 l_P6_c2a_2num NUMBER;
3028 l_P6_c2a_2day NUMBER;
3029 l_P6_c2a_3num NUMBER;
3030 l_P6_c2a_3day NUMBER;
3031 l_P6_c2b_num NUMBER;
3032 l_P6_c2b_day NUMBER;
3033 l_P6_c3_num NUMBER;
3034 l_P6_c3_day NUMBER;
3035 
3036 -- Fields for average
3037 l_P6_a1_avg NUMBER;
3038 l_P6_a2_avg NUMBER;
3039 l_P6_b1_avg NUMBER;
3040 l_P6_b2_avg NUMBER;
3041 l_P6_b3_avg NUMBER;
3042 l_P6_c1a_avg NUMBER;
3043 l_P6_c1b_avg NUMBER;
3044 l_P6_c2a_1avg NUMBER;
3045 l_P6_c2a_2avg NUMBER;
3046 l_P6_c2a_3avg NUMBER;
3047 l_P6_c2a_avg NUMBER;
3048 l_P6_c2b_avg NUMBER;
3049 l_P6_c3_avg NUMBER;
3050 l_P6_a3_avg NUMBER;
3051 l_P6_a_avg NUMBER;
3052 
3053 BEGIN
3054 	-- Withdrawals
3055 	FOR cur_ctr IN cur_total_nodays(p_from_date,p_to_date,'170', p_agency_code) LOOP
3056 	   l_P6_a1_num := cur_ctr.p6_cnt;
3057 	   l_P6_a1_day := cur_ctr.p6_sum;
3058 	END LOOP;
3059 	vXMLTable(vCtr).TagName := 'P6_a1_num';
3060 	vXMLTable(vCtr).TagValue := to_char(l_P6_a1_num);
3061 	vCtr := vCtr + 1;
3062 
3063 	vXMLTable(vCtr).TagName := 'P6_a1_day';
3064 	vXMLTable(vCtr).TagValue := to_char(l_P6_a1_day);
3065 	vCtr := vCtr + 1;
3066 	-- Average Days
3067 /*	IF (l_P6_a1_num > 0) THEN
3068 		l_P6_a1_avg := CEIL(l_P6_a1_day/l_P6_a1_num);
3069 	ELSE
3070 		l_P6_a1_avg := 0;
3071 	END IF;
3072 	vXMLTable(vCtr).TagName := 'P6_a1_avg';
3073 	vXMLTable(vCtr).TagValue := to_char(l_P6_a1_avg);
3074 	vCtr := vCtr + 1;
3075 */
3076 	fnd_file.put_line(fnd_file.log,'Finished populating Part6 - Total no. of closures - Withdrawals');
3077 
3078 	-- Settlements
3079 	FOR cur_ctr IN cur_settlements(p_from_date,p_to_date, p_agency_code) LOOP
3080 	   l_P6_a2_num := cur_ctr.p6_cnt;
3081 	   l_P6_a2_day := cur_ctr.p6_sum;
3082 	END LOOP;
3083 
3084 	vXMLTable(vCtr).TagName := 'P6_a2_num';
3085 	vXMLTable(vCtr).TagValue := to_char(l_P6_a2_num);
3086 	vCtr := vCtr + 1;
3087 
3088 	vXMLTable(vCtr).TagName := 'P6_a2_day';
3089 	vXMLTable(vCtr).TagValue := to_char(l_P6_a2_day);
3090 	vCtr := vCtr + 1;
3091 	fnd_file.put_line(fnd_file.log,'Finished populating Part6 - Total no. of closures - Settlements');
3092 
3093 	-- Average Days
3094 /*	IF (l_P6_a2_num > 0) THEN
3095 		l_P6_a2_avg := CEIL(l_P6_a2_day/l_P6_a2_num);
3096 	ELSE
3097 		l_P6_a2_avg := 0;
3098 	END IF;
3099 	vXMLTable(vCtr).TagName := 'P6_a2_avg';
3100 	vXMLTable(vCtr).TagValue := to_char(l_P6_a2_avg);
3101 	vCtr := vCtr + 1;
3102 */
3103 	-- Finding Discrimination
3104 	FOR cur_ctr IN cur_total_nodays(p_from_date,p_to_date,'90', p_agency_code) LOOP
3105 	   l_P6_b1_num := cur_ctr.p6_cnt;
3106 	   l_P6_b1_day := cur_ctr.p6_sum;
3107 	END LOOP;
3108 	vXMLTable(vCtr).TagName := 'P6_b1_num';
3109 	vXMLTable(vCtr).TagValue := to_char(l_P6_b1_num);
3110 	vCtr := vCtr + 1;
3111 	vXMLTable(vCtr).TagName := 'P6_b1_day';
3112 	vXMLTable(vCtr).TagValue := to_char(l_P6_b1_day);
3113 	vCtr := vCtr + 1;
3114 
3115 	-- Average Day
3116 /*	IF (l_P6_b1_num > 0) THEN
3117 		l_P6_b1_avg := CEIL(l_P6_b1_day/l_P6_b1_num);
3118 	ELSE
3119 		l_P6_b1_avg := 0;
3120 	END IF;
3121 
3122 	vXMLTable(vCtr).TagName := 'P6_b1_avg';
3123 	vXMLTable(vCtr).TagValue := to_char(l_P6_b1_avg);
3124 	vCtr := vCtr + 1;
3125 */
3126 	-- Finding No discrimination
3127 	FOR cur_ctr IN cur_total_nodays(p_from_date,p_to_date,'100', p_agency_code) LOOP
3128 	   l_P6_b2_num := cur_ctr.p6_cnt;
3129 	   l_P6_b2_day := cur_ctr.p6_sum;
3130 	END LOOP;
3131 	vXMLTable(vCtr).TagName := 'P6_b2_num';
3132 	vXMLTable(vCtr).TagValue := to_char(l_P6_b2_num);
3133 	vCtr := vCtr + 1;
3134 	vXMLTable(vCtr).TagName := 'P6_b2_day';
3135 	vXMLTable(vCtr).TagValue := to_char(l_P6_b2_day);
3136 	vCtr := vCtr + 1;
3137 
3138 	-- Average Day
3139 /*	IF (l_P6_b2_num > 0) THEN
3140 		l_P6_b2_avg := CEIL(l_P6_b2_day/l_P6_b2_num);
3141 	ELSE
3142 		l_P6_b2_avg := 0;
3143 	END IF;
3144 	vXMLTable(vCtr).TagName := 'P6_b2_avg';
3145 	vXMLTable(vCtr).TagValue := to_char(l_P6_b2_avg);
3146 	vCtr := vCtr + 1;
3147 */
3148 	-- Dismissal of complaints
3149 	FOR cur_ctr IN cur_total_nodays(p_from_date,p_to_date,'80', p_agency_code) LOOP
3150 	   l_P6_b3_num := cur_ctr.p6_cnt;
3151 	   l_P6_b3_day := cur_ctr.p6_sum;
3152 	END LOOP;
3153 	vXMLTable(vCtr).TagName := 'P6_b3_num';
3154 	vXMLTable(vCtr).TagValue := to_char(l_P6_b3_num);
3155 	vCtr := vCtr + 1;
3156 	vXMLTable(vCtr).TagName := 'P6_b3_day';
3157 	vXMLTable(vCtr).TagValue := to_char(l_P6_b3_day);
3158 	vCtr := vCtr + 1;
3159 
3160 	-- Average Days
3161 /*	IF (l_P6_b3_num > 0) THEN
3162 		l_P6_b3_avg := CEIL(l_P6_b3_day/l_P6_b3_num);
3163 	ELSE
3164 		l_P6_b3_avg := 0;
3165 	END IF;
3166 	vXMLTable(vCtr).TagName := 'P6_b3_avg';
3170 
3167 	vXMLTable(vCtr).TagValue := to_char(l_P6_b3_avg);
3168 	vCtr := vCtr + 1;
3169 */
3171 	-- Final Agency Actions without AJ Decisions
3172 	l_P6_bnum := l_P6_b1_num + l_P6_b2_num + l_P6_b3_num;
3173 	l_P6_bday := l_P6_b1_day + l_P6_b2_day + l_P6_b3_day;
3174 
3175 	vXMLTable(vCtr).TagName := 'P6_b_num';
3176 	vXMLTable(vCtr).TagValue := to_char(l_P6_bnum);
3177 	vCtr := vCtr + 1;
3178 	vXMLTable(vCtr).TagName := 'P6_b_day';
3179 	vXMLTable(vCtr).TagValue := to_char(l_P6_bday);
3180 	vCtr := vCtr + 1;
3181 	fnd_file.put_line(fnd_file.log,'Finished populating Part6 - Final Agency Actions without AJ Decisions');
3182 	-- Final Agency action with AJ Decision ---------
3183 
3184 	-- AJ Decision Fully implemented - Finding Discrimination
3185 	FOR cur_ctr IN cur_total_nodays(p_from_date,p_to_date,'20', p_agency_code) LOOP
3186 	   l_P6_c1a_num := cur_ctr.p6_cnt;
3187 	   l_P6_c1a_day := cur_ctr.p6_sum;
3188 	END LOOP;
3189 
3190 	vXMLTable(vCtr).TagName := 'P6_c1a_num';
3191 	vXMLTable(vCtr).TagValue := to_char(l_P6_c1a_num);
3192 	vCtr := vCtr + 1;
3193 	vXMLTable(vCtr).TagName := 'P6_c1a_day';
3194 	vXMLTable(vCtr).TagValue := to_char(l_P6_c1a_day);
3195 	vCtr := vCtr + 1;
3196 
3197 	-- Average Days
3198 /*	IF (l_P6_c1a_num > 0) THEN
3199 		l_P6_c1a_avg := CEIL(l_P6_c1a_day/l_P6_c1a_num);
3200 	ELSE
3201 		l_P6_c1a_avg := 0;
3202 	END IF;
3203 	vXMLTable(vCtr).TagName := 'P6_c1a_avg';
3204 	vXMLTable(vCtr).TagValue := to_char(l_P6_c1a_avg);
3205 	vCtr := vCtr + 1;
3206 */
3207 	-- AJ Decision Fully implemented - Finding No Discrimination
3208 	FOR cur_ctr IN cur_total_nodays(p_from_date,p_to_date,'30', p_agency_code) LOOP
3209 	   l_P6_c1b_num := cur_ctr.p6_cnt;
3210 	   l_P6_c1b_day := cur_ctr.p6_sum;
3211 	END LOOP;
3212 
3213 	vXMLTable(vCtr).TagName := 'P6_c1b_num';
3214 	vXMLTable(vCtr).TagValue := to_char(l_P6_c1b_num);
3215 	vCtr := vCtr + 1;
3216 	vXMLTable(vCtr).TagName := 'P6_c1b_day';
3217 	vXMLTable(vCtr).TagValue := to_char(l_P6_c1b_day);
3218 	vCtr := vCtr + 1;
3219 
3220 	-- Average Days
3221 /*	IF (l_P6_c1b_num > 0) THEN
3222 		l_P6_c1b_avg := CEIL(l_P6_c1b_day/l_P6_c1b_num);
3223 	ELSE
3224 		l_P6_c1b_avg := 0;
3225 	END IF;
3226 	vXMLTable(vCtr).TagName := 'P6_c1b_avg';
3227 	vXMLTable(vCtr).TagValue := to_char(l_P6_c1b_avg);
3228 	vCtr := vCtr + 1;
3229 */
3230 	-- AJ Decision Fully implemented
3231 	l_P6_c1_num := l_P6_c1a_num + l_P6_c1b_num;
3232 	l_P6_c1_day := l_P6_c1a_day + l_P6_c1b_day;
3233 
3234 	vXMLTable(vCtr).TagName := 'P6_c1_num';
3235 	vXMLTable(vCtr).TagValue := to_char(l_P6_c1_num);
3236 	vCtr := vCtr + 1;
3237 	vXMLTable(vCtr).TagName := 'P6_c1_day';
3238 	vXMLTable(vCtr).TagValue := to_char(l_P6_c1_day);
3239 	vCtr := vCtr + 1;
3240 	fnd_file.put_line(fnd_file.log,'Finished populating Part6 - AJ Decision Fully implemented');
3241 	-- Finding Discrimination
3242 	-- a. AGENCY APPEALED FINDING BUT NOT REMEDY
3243 	FOR cur_ctr IN cur_total_nodays(p_from_date,p_to_date,'50', p_agency_code) LOOP
3244 	   l_P6_c2a_1num := cur_ctr.p6_cnt;
3245 	   l_P6_c2a_1day := cur_ctr.p6_sum;
3246 	END LOOP;
3247 
3248 	vXMLTable(vCtr).TagName := 'P6_c2a_1num';
3249 	vXMLTable(vCtr).TagValue := to_char(l_P6_c2a_1num);
3250 	vCtr := vCtr + 1;
3251 	vXMLTable(vCtr).TagName := 'P6_c2a_1day';
3252 	vXMLTable(vCtr).TagValue := to_char(l_P6_c2a_1day);
3253 	vCtr := vCtr + 1;
3254 
3255 	-- Average Days
3256 /*	IF (l_P6_c2a_1num > 0) THEN
3257 		l_P6_c2a_1avg := CEIL(l_P6_c2a_1day/l_P6_c2a_1num);
3258 	ELSE
3259 		l_P6_c2a_1avg := 0;
3260 	END IF;
3261 	vXMLTable(vCtr).TagName := 'P6_c2a_1avg';
3262 	vXMLTable(vCtr).TagValue := to_char(l_P6_c2a_1avg);
3263 	vCtr := vCtr + 1;
3264 */
3265 	-- b. AGENCY APPEALED REMEDY BUT NOT FINDING
3266 	FOR cur_ctr IN cur_total_nodays(p_from_date,p_to_date,'60', p_agency_code) LOOP
3267 	   l_P6_c2a_2num := cur_ctr.p6_cnt;
3268 	   l_P6_c2a_2day := cur_ctr.p6_sum;
3269 	END LOOP;
3270 
3271 	vXMLTable(vCtr).TagName := 'P6_c2a_2num';
3272 	vXMLTable(vCtr).TagValue := to_char(l_P6_c2a_2num);
3273 	vCtr := vCtr + 1;
3274 	vXMLTable(vCtr).TagName := 'P6_c2a_2day';
3275 	vXMLTable(vCtr).TagValue := to_char(l_P6_c2a_2day);
3276 	vCtr := vCtr + 1;
3277 
3278 	-- Average Days
3279 /*	IF (l_P6_c2a_2num > 0) THEN
3280 		l_P6_c2a_2avg := CEIL(l_P6_c2a_2day/l_P6_c2a_2num);
3281 	ELSE
3282 		l_P6_c2a_2avg := 0;
3283 	END IF;
3284 	vXMLTable(vCtr).TagName := 'P6_c2a_2avg';
3285 	vXMLTable(vCtr).TagValue := to_char(l_P6_c2a_2avg);
3286 	vCtr := vCtr + 1;
3287 */
3288 	-- c. AGENCY APPEALED BOTH FINDING AND REMEDY
3289 	FOR cur_ctr IN cur_total_nodays(p_from_date,p_to_date,'40', p_agency_code) LOOP
3290 	   l_P6_c2a_3num := cur_ctr.p6_cnt;
3291 	   l_P6_c2a_3day := cur_ctr.p6_sum;
3292 	END LOOP;
3293 
3294 	vXMLTable(vCtr).TagName := 'P6_c2a_3num';
3295 	vXMLTable(vCtr).TagValue := to_char(l_P6_c2a_3num);
3296 	vCtr := vCtr + 1;
3297 	vXMLTable(vCtr).TagName := 'P6_c2a_3day';
3298 	vXMLTable(vCtr).TagValue := to_char(l_P6_c2a_3day);
3299 	vCtr := vCtr + 1;
3300 
3301 	-- Average Days
3302 /*	IF (l_P6_c2a_3num > 0) THEN
3303 		l_P6_c2a_3avg := CEIL(l_P6_c2a_3day/l_P6_c2a_3num);
3304 	ELSE
3305 		l_P6_c2a_3avg := 0;
3306 	END IF;
3307 	vXMLTable(vCtr).TagName := 'P6_c2a_3avg';
3308 	vXMLTable(vCtr).TagValue := to_char(l_P6_c2a_3avg);
3309 	vCtr := vCtr + 1;
3310 */
3311 
3312 	-- Finding Discrimination
3313 	l_P6_c2a_num := l_P6_c2a_1num + l_P6_c2a_2num + l_P6_c2a_3num;
3314 	l_P6_c2a_day := l_P6_c2a_1day + l_P6_c2a_2day + l_P6_c2a_3day;
3315 
3316 
3317 	vXMLTable(vCtr).TagName := 'P6_c2a_num';
3318 	vXMLTable(vCtr).TagValue := to_char(l_P6_c2a_num);
3319 	vCtr := vCtr + 1;
3320 	vXMLTable(vCtr).TagName := 'P6_c2a_day';
3321 	vXMLTable(vCtr).TagValue := to_char(l_P6_c2a_day);
3322 	vCtr := vCtr + 1;
3323 
3324 	-- Average Days
3325 /*	IF (l_P6_c2a_num > 0) THEN
3326 		l_P6_c2a_avg := CEIL(l_P6_c2a_day/l_P6_c2a_num);
3327 	ELSE
3328 		l_P6_c2a_avg := 0;
3329 	END IF;
3330 	vXMLTable(vCtr).TagName := 'P6_c2a_avg';
3331 	vXMLTable(vCtr).TagValue := to_char(l_P6_c2a_avg);
3332 	vCtr := vCtr + 1;
3333 */
3334 
3335 	-- AJ DECISION NOT FULLY IMPLEMENTED - FINDING NO DISCRIMINATION
3336 	FOR cur_ctr IN cur_total_nodays(p_from_date,p_to_date,'70', p_agency_code) LOOP
3337 	   l_P6_c2b_num := cur_ctr.p6_cnt;
3338 	   l_P6_c2b_day := cur_ctr.p6_sum;
3339 	END LOOP;
3340 
3341 	vXMLTable(vCtr).TagName := 'P6_c2b_num';
3342 	vXMLTable(vCtr).TagValue := to_char(l_P6_c2b_num);
3343 	vCtr := vCtr + 1;
3344 	vXMLTable(vCtr).TagName := 'P6_c2b_day';
3345 	vXMLTable(vCtr).TagValue := to_char(l_P6_c2b_day);
3346 	vCtr := vCtr + 1;
3347 
3348 	-- Average Days
3349 /*	IF (l_P6_c2b_num > 0) THEN
3350 		l_P6_c2b_avg := CEIL(l_P6_c2b_day/l_P6_c2b_num);
3351 	ELSE
3352 		l_P6_c2b_avg := 0;
3353 	END IF;
3354 	vXMLTable(vCtr).TagName := 'P6_c2b_avg';
3355 	vXMLTable(vCtr).TagValue := to_char(l_P6_c2b_avg);
3356 	vCtr := vCtr + 1;
3357 */
3358 	fnd_file.put_line(fnd_file.log,'Finished populating Part6 - AJ Decision Not fully implemented');
3359 	-- Finding No Discrimination
3360 
3361 	-- AJ Decision Fully Implemented
3362 	l_P6_c2_num := l_P6_c2a_num + l_P6_c2b_num;
3363 	l_P6_c2_day := l_P6_c2a_day + l_P6_c2b_day;
3364 
3365 	vXMLTable(vCtr).TagName := 'P6_c2_num';
3366 	vXMLTable(vCtr).TagValue := to_char(l_P6_c2_num);
3367 	vCtr := vCtr + 1;
3368 	vXMLTable(vCtr).TagName := 'P6_c2_day';
3369 	vXMLTable(vCtr).TagValue := to_char(l_P6_c2_day);
3370 	vCtr := vCtr + 1;
3371 
3372 	-- Dismissal of complaints
3373 	FOR cur_ctr IN cur_total_nodays(p_from_date,p_to_date,'10', p_agency_code) LOOP
3374 	   l_P6_c3_num := cur_ctr.p6_cnt;
3375 	   l_P6_c3_day := cur_ctr.p6_sum;
3376 	END LOOP;
3377 
3378 	vXMLTable(vCtr).TagName := 'P6_c3_num';
3379 	vXMLTable(vCtr).TagValue := to_char(l_P6_c3_num);
3380 	vCtr := vCtr + 1;
3381 	vXMLTable(vCtr).TagName := 'P6_c3_day';
3382 	vXMLTable(vCtr).TagValue := to_char(l_P6_c3_day);
3383 	vCtr := vCtr + 1;
3384 
3385 	-- Average Days
3386 /*	IF (l_P6_c3_num > 0) THEN
3387 		l_P6_c3_avg := CEIL(l_P6_c3_day/l_P6_c3_num);
3388 	ELSE
3389 		l_P6_c3_avg := 0;
3390 	END IF;
3391 	vXMLTable(vCtr).TagName := 'P6_c3_avg';
3392 	vXMLTable(vCtr).TagValue := to_char(l_P6_c3_avg);
3393 	vCtr := vCtr + 1;
3394 */
3395 	-- FINAL AGENCY ACTIONS WITH AN ADMINISTRATIVE JUDGE (AJ) DECISION
3396 	l_P6_cnum := l_P6_c1_num + l_P6_c2_num + l_P6_c3_num;
3397 	l_P6_cday := l_P6_c1_day + l_P6_c2_day + l_P6_c3_day;
3398 
3399 	vXMLTable(vCtr).TagName := 'P6_c_num';
3400 	vXMLTable(vCtr).TagValue := to_char(l_P6_cnum);
3401 	vCtr := vCtr + 1;
3402 	vXMLTable(vCtr).TagName := 'P6_c_day';
3403 	vXMLTable(vCtr).TagValue := to_char(l_P6_cday);
3404 	vCtr := vCtr + 1;
3405 
3406 	-- Final Agency Actions with AJ Decisions
3407 	l_P6_a3_num := l_P6_bnum + l_P6_cnum;
3408 	l_P6_a3_day := l_P6_bday + l_P6_cday;
3409 
3410 	vXMLTable(vCtr).TagName := 'P6_a3_num';
3411 	vXMLTable(vCtr).TagValue := to_char(l_P6_a3_num);
3412 	vCtr := vCtr + 1;
3413 	vXMLTable(vCtr).TagName := 'P6_a3_day';
3414 	vXMLTable(vCtr).TagValue := to_char(l_P6_a3_day);
3415 	vCtr := vCtr + 1;
3416 
3417 	-- Average Days
3418 /*	IF (l_P6_a3_num > 0) THEN
3419 		l_P6_a3_avg := CEIL(l_P6_a3_day/l_P6_a3_num);
3420 	ELSE
3421 		l_P6_a3_avg := 0;
3422 	END IF;
3423 	vXMLTable(vCtr).TagName := 'P6_a3_avg';
3424 	vXMLTable(vCtr).TagValue := to_char(l_P6_a3_avg);
3425 	vCtr := vCtr + 1;
3426 */
3427 	fnd_file.put_line(fnd_file.log,'Finished populating Part6 - Final Agency Actions with AJ Decisions');
3428 
3429 -- Total No. of Closures
3430 	l_P6_a_num := l_P6_a1_num + l_P6_a2_num + l_P6_a3_num;
3431 	l_P6_a_day := l_P6_a1_day + l_P6_a2_day + l_P6_a3_day;
3432 
3433 	vXMLTable(vCtr).TagName := 'P6_a_num';
3434 	vXMLTable(vCtr).TagValue := to_char(l_P6_a_num);
3435 	vCtr := vCtr + 1;
3436 	vXMLTable(vCtr).TagName := 'P6_a_day';
3437 	vXMLTable(vCtr).TagValue := to_char(l_P6_a_day);
3438 	vCtr := vCtr + 1;
3439 
3440 	-- Average Days
3441 /*	IF (l_P6_a_num > 0) THEN
3442 		l_P6_a_avg := CEIL(l_P6_a_day/l_P6_a_num);
3443 	ELSE
3444 		l_P6_a_avg := 0;
3445 	END IF;
3446 	vXMLTable(vCtr).TagName := 'P6_a_avg';
3447 	vXMLTable(vCtr).TagValue := to_char(l_P6_a_avg);
3448 	vCtr := vCtr + 1;
3449 */
3450 	fnd_file.put_line(fnd_file.log,'Finished populating Part6 - Total No. of Closures');
3451 	fnd_file.put_line(fnd_file.log,'------------End of Part6----------------');
3452 END populate_part6;
3453 
3454 PROCEDURE populate_part7(
3455     p_from_date   in date,
3456 	p_to_date     in date,
3457 	p_agency_code in varchar2)
3458 IS
3459 -- Cursor for total complaints with corrective actions
3460 CURSOR cur_complaints_ca(c_from_date date, c_to_date date,c_agency_code ghr_complaints2.agency_code%type) IS
3461    SELECT COUNT(distinct cmp.complaint_id) p7_cnt
3462    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_CA_HEADERS cah, GHR_COMPL_CA_DETAILS ca
3463    WHERE ca.compl_ca_header_id = cah.compl_ca_header_id
3464    AND cah.complaint_id = cmp.complaint_id
3465    AND ca.phase = '10'
3466    AND cmp.formal_com_filed IS NOT NULL
3467    AND cmp.agency_code = c_agency_code
3468    AND cmp.complaint_closed BETWEEN c_from_date AND c_to_date;
3469 
3470 -- Cursor for total Amount for all the complaints with Corrective actions
3471 CURSOR cur_totamt_ca(c_from_date date, c_to_date date,c_agency_code ghr_complaints2.agency_code%type) IS
3472 SELECT nvl(SUM(CEIL(ca.amount)),0) p7_amount
3473    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_CA_HEADERS cah, GHR_COMPL_CA_DETAILS ca
3474    WHERE ca.compl_ca_header_id = cah.compl_ca_header_id
3475    AND cah.complaint_id = cmp.complaint_id
3476    AND ca.phase = '10'
3477    AND cmp.formal_com_filed IS NOT NULL
3478    AND cmp.agency_code = c_agency_code
3479    AND cmp.complaint_closed BETWEEN c_from_date AND c_to_date;
3480 
3481 -- Cursor for Closures with monetary benefits
3482 CURSOR cur_complaints_ca_monetary(c_from_date date, c_to_date date,c_payment_type IN GHR_COMPL_CA_DETAILS.payment_type%TYPE,c_agency_code ghr_complaints2.agency_code%type) IS
3483 	SELECT COUNT(distinct cmp.complaint_id) p7_cnt, nvl(SUM(CEIL(ca.amount)),0) p7_amount
3484 	FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_CA_HEADERS cah, GHR_COMPL_CA_DETAILS ca
3485 	WHERE ca.compl_ca_header_id = cah.compl_ca_header_id
3486 	AND cah.complaint_id = cmp.complaint_id
3487     AND ca.phase = '10'
3488 	AND cmp.complaint_closed BETWEEN c_from_date AND c_to_date
3489 	AND cmp.formal_com_filed IS NOT NULL
3490 	AND cmp.agency_code = c_agency_code
3491 	AND ca.category = '10'
3492 	AND ca.payment_type = c_payment_type;
3493 
3494 -- Cursor for Compensatory damages
3495 CURSOR cur_compensatory(c_from_date date, c_to_date date,c_agency_code ghr_complaints2.agency_code%type) IS
3496 	SELECT COUNT(distinct cmp.complaint_id) p7_cnt, nvl(SUM(CEIL(ca.amount)),0) p7_amount
3497 	FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_CA_HEADERS cah, GHR_COMPL_CA_DETAILS ca
3498 	WHERE ca.compl_ca_header_id = cah.compl_ca_header_id
3499 	AND cah.complaint_id = cmp.complaint_id
3500     AND ca.phase = '10'
3501 	AND cmp.complaint_closed BETWEEN c_from_date AND c_to_date
3502 	AND cmp.formal_com_filed IS NOT NULL
3503 	AND cmp.agency_code = c_agency_code
3504 	AND ca.category = '10'
3505 	AND ca.payment_type IN ('30','40');
3506 
3507 
3508 -- Cursor for Closures with non-monetary benefits
3509 CURSOR cur_complaints_ca_nm(c_from_date date, c_to_date date,c_agency_code ghr_complaints2.agency_code%type) IS
3510 	SELECT COUNT(distinct cmp.complaint_id) p7_cnt
3511 	FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_CA_HEADERS cah, GHR_COMPL_CA_DETAILS ca
3512 	WHERE ca.compl_ca_header_id = cah.compl_ca_header_id
3513 	AND cah.complaint_id = cmp.complaint_id
3514 	AND ca.phase = '10'
3515 	AND cmp.complaint_closed BETWEEN c_from_date AND c_to_date
3516 	AND cmp.formal_com_filed IS NOT NULL
3517 	AND cmp.agency_code = c_agency_code
3518 	AND ca.category = '20';
3519 
3520 -- Cursor for CA types
3521 CURSOR cur_cmp_ca_action(c_from_date date, c_to_date date,c_category IN GHR_COMPL_CA_DETAILS.category%TYPE, c_action_type IN GHR_COMPL_CA_DETAILS.action_type%TYPE,c_agency_code ghr_complaints2.agency_code%type) IS
3522 	SELECT COUNT(*) p7_cnt
3523 	FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_CA_HEADERS cah, GHR_COMPL_CA_DETAILS ca
3524 	WHERE ca.compl_ca_header_id = cah.compl_ca_header_id
3525 	AND cah.complaint_id = cmp.complaint_id
3526 	AND ca.phase = '10'
3527 	AND cmp.complaint_closed BETWEEN c_from_date AND c_to_date
3528 	AND cmp.formal_com_filed IS NOT NULL
3529 	AND cmp.agency_code = c_agency_code
3530 	AND ca.category = c_category
3531 	AND ca.action_type = c_action_type;
3532 
3533 	l_P7_a_num NUMBER;
3534 	l_P7_a_amt NUMBER;
3535 	l_P7_b_amt NUMBER;
3536 	l_P7_b_num NUMBER;
3537 
3538 	l_P7_b1_num NUMBER;
3539 	l_P7_b1_amt NUMBER;
3540 	l_P7_b2_num NUMBER;
3541 	l_P7_b2_amt NUMBER;
3542 	l_P7_c_num NUMBER;
3543 	l_P7_d_num NUMBER;
3544 	l_P7_d_amt NUMBER;
3545 	l_P7_e_num NUMBER;
3546 	l_P7_e_amt NUMBER;
3547 	l_P7_f1_num NUMBER;
3548 	l_P7_f1_amt NUMBER;
3549 	l_P7_f1a_num NUMBER;
3550 	l_P7_f1a_amt NUMBER;
3551 	l_P7_f1b_num NUMBER;
3552 	l_P7_f1b_amt NUMBER;
3553 	l_P7_f2_num NUMBER;
3554 	l_P7_f2_amt NUMBER;
3555 	l_P7_f2a_amt NUMBER;
3556 	l_P7_f2a_num NUMBER;
3557 	l_P7_f2b_num NUMBER;
3558 	l_P7_f2b_amt NUMBER;
3559 	l_P7_f3_num  NUMBER;
3560 	l_P7_f3_amt  NUMBER;
3561 	l_P7_f3a_num NUMBER;
3562 	l_P7_f3a_amt NUMBER;
3563 	l_P7_f3b_num NUMBER;
3564 	l_P7_f3b_amt NUMBER;
3565 	l_P7_f4_num NUMBER;
3566 	l_P7_f4_amt NUMBER;
3567 	l_P7_f5_num NUMBER;
3568 	l_P7_f5_amt NUMBER;
3569 	l_P7_f6_amt NUMBER;
3570 	l_P7_f6_num NUMBER;
3571 	l_P7_f7_num NUMBER;
3572 	l_P7_f7_amt NUMBER;
3573 	l_P7_f8_amt NUMBER;
3574 	l_P7_f8_num NUMBER;
3575 	l_P7_f9_num NUMBER;
3576 	l_P7_f9_amt NUMBER;
3577 	l_P7_f10_num NUMBER;
3578 	l_P7_f10_amt NUMBER;
3579 	l_P7_f11_num NUMBER;
3580 	l_P7_f11_amt NUMBER;
3581 BEGIN
3582 	-- Total complaints closed with corrective actions.
3583 	FOR cur_ctr IN cur_complaints_ca(p_from_date,p_to_date, p_agency_code) LOOP
3584 	   l_P7_a_num := cur_ctr.p7_cnt;
3585 	END LOOP;
3586 	vXMLTable(vCtr).TagName := 'P7_a_num';
3587 	vXMLTable(vCtr).TagValue := to_char(l_P7_a_num);
3588 	vCtr := vCtr + 1;
3589 
3590 	-- Total complaints closed with corrective actions.
3591 	FOR cur_ctr IN cur_totamt_ca(p_from_date,p_to_date, p_agency_code) LOOP
3592 	   l_P7_a_amt := cur_ctr.p7_amount;
3593 	END LOOP;
3594 	vXMLTable(vCtr).TagName := 'P7_a_amt';
3595 	vXMLTable(vCtr).TagValue := to_char(l_P7_a_amt);
3596 	vCtr := vCtr + 1;
3597 	fnd_file.put_line(fnd_file.log,'Finished populating Part7 - Total Complaints closed with corrective actions');
3598 	-- Closures with monetary benefits
3599 
3600 	-- Back pay/Front Pay
3601 	FOR cur_ctr IN cur_complaints_ca_monetary(p_from_date,p_to_date,'20', p_agency_code) LOOP
3602 		l_P7_b1_num := cur_ctr.p7_cnt;
3603 		l_P7_b1_amt := cur_ctr.p7_amount;
3604 	END LOOP;
3605 
3606 	vXMLTable(vCtr).TagName := 'P7_b1_num';
3607 	vXMLTable(vCtr).TagValue := to_char(l_P7_b1_num);
3608 	vCtr := vCtr + 1;
3609 
3610 	vXMLTable(vCtr).TagName := 'P7_b1_amt';
3611 	vXMLTable(vCtr).TagValue := to_char(l_P7_b1_amt);
3612 	vCtr := vCtr + 1;
3613 
3614 	-- Lumpsum Payment
3615 	FOR cur_ctr IN cur_complaints_ca_monetary(p_from_date,p_to_date,'50', p_agency_code) LOOP
3616 		l_P7_b2_num := cur_ctr.p7_cnt;
3617 		l_P7_b2_amt := cur_ctr.p7_amount;
3618 	END LOOP;
3619 
3620 	vXMLTable(vCtr).TagName := 'P7_b2_num';
3621 	vXMLTable(vCtr).TagValue := to_char(l_P7_b2_num);
3622 	vCtr := vCtr + 1;
3623 
3624 	vXMLTable(vCtr).TagName := 'P7_b2_amt';
3625 	vXMLTable(vCtr).TagValue := to_char(l_P7_b2_amt);
3626 	vCtr := vCtr + 1;
3627 
3628 	l_P7_b_num := l_P7_b1_num + l_P7_b2_num;
3629 	l_P7_b_amt := l_P7_b1_amt + l_P7_b2_amt;
3630 
3631 	vXMLTable(vCtr).TagName := 'P7_b_num';
3632 	vXMLTable(vCtr).TagValue := to_char(l_P7_b_num);
3633 	vCtr := vCtr + 1;
3634 
3635 	vXMLTable(vCtr).TagName := 'P7_b_amt';
3636 	vXMLTable(vCtr).TagValue := to_char(l_P7_b_amt);
3637 	vCtr := vCtr + 1;
3638 
3639 	fnd_file.put_line(fnd_file.log,'Finished populating Part7-  Complaints closed with monetary benefits');
3640 	-- Closures with non-monetary benefits
3641 	FOR cur_ctr IN cur_complaints_ca_nm(p_from_date,p_to_date, p_agency_code) LOOP
3642 		l_P7_c_num := cur_ctr.p7_cnt;
3643 	END LOOP;
3644 
3645 	vXMLTable(vCtr).TagName := 'P7_c_num';
3646 	vXMLTable(vCtr).TagValue := to_char(l_P7_c_num);
3647 	vCtr := vCtr + 1;
3648 	fnd_file.put_line(fnd_file.log,'Finished populating Part7 - Complaints closed with non-monetary benefits');
3649 	-- Closures with compensatory damages
3650 	FOR cur_ctr IN cur_compensatory(p_from_date,p_to_date, p_agency_code) LOOP
3651 		l_P7_d_num := cur_ctr.p7_cnt;
3652 		l_P7_d_amt := cur_ctr.p7_amount;
3653 	END LOOP;
3654 
3655 	vXMLTable(vCtr).TagName := 'P7_d_num';
3656 	vXMLTable(vCtr).TagValue := to_char(l_P7_d_num);
3657 	vCtr := vCtr + 1;
3658 	vXMLTable(vCtr).TagName := 'P7_d_amt';
3659 	vXMLTable(vCtr).TagValue := to_char(l_P7_d_amt);
3660 	vCtr := vCtr + 1;
3661 	fnd_file.put_line(fnd_file.log,'Finished populating Part7 - Complaints closed with compensatory damages');
3662 	-- Closures with Attorney fees and costs
3663 	FOR cur_ctr IN cur_complaints_ca_monetary(p_from_date,p_to_date,'10', p_agency_code) LOOP
3664 		l_P7_e_num := cur_ctr.p7_cnt;
3665 		l_P7_e_amt := cur_ctr.p7_amount;
3666 	END LOOP;
3667 
3668 	vXMLTable(vCtr).TagName := 'P7_e_num';
3669 	vXMLTable(vCtr).TagValue := to_char(l_P7_e_num);
3670 	vCtr := vCtr + 1;
3671 	vXMLTable(vCtr).TagName := 'P7_e_amt';
3672 	vXMLTable(vCtr).TagValue := to_char(l_P7_e_amt);
3673 	vCtr := vCtr + 1;
3674 	fnd_file.put_line(fnd_file.log,'Finished populating Part7 - Complaints closed with Attorney fees and costs');
3675 	-- Types of Corrective action
3676 	-- Hire Retroactive Monetary
3677 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'10','80', p_agency_code) LOOP
3678 		l_P7_f1a_num := cur_ctr.p7_cnt;
3679 	END LOOP;
3680 
3681 	vXMLTable(vCtr).TagName := 'P7_f1a_num';
3682 	vXMLTable(vCtr).TagValue := to_char(l_P7_f1a_num);
3683 	vCtr := vCtr + 1;
3684 
3685 	-- Hire Retroactive Non-Monetary
3686 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'20','80', p_agency_code) LOOP
3687 		l_P7_f1a_amt := cur_ctr.p7_cnt;
3688 	END LOOP;
3689 
3690 	vXMLTable(vCtr).TagName := 'P7_f1a_amt';
3691 	vXMLTable(vCtr).TagValue := to_char(l_P7_f1a_amt);
3692 	vCtr := vCtr + 1;
3693 
3694 	-- Hire Non-Retroactive Monetary
3695 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'10','70', p_agency_code) LOOP
3696 		l_P7_f1b_num := cur_ctr.p7_cnt;
3697 	END LOOP;
3698 
3699 	vXMLTable(vCtr).TagName := 'P7_f1b_num';
3700 	vXMLTable(vCtr).TagValue := to_char(l_P7_f1b_num);
3701 	vCtr := vCtr + 1;
3702 
3703 	-- Hire Non-Retroactive Non-Monetary
3704 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'20','70', p_agency_code) LOOP
3705 		l_P7_f1b_amt := cur_ctr.p7_cnt;
3706 	END LOOP;
3707 
3708 	vXMLTable(vCtr).TagName := 'P7_f1b_amt';
3709 	vXMLTable(vCtr).TagValue := to_char(l_P7_f1b_amt);
3710 	vCtr := vCtr + 1;
3711 
3712 	-- Total under Hire
3713 	l_P7_f1_num := l_P7_f1a_num + l_P7_f1b_num;
3714 	l_P7_f1_amt := l_P7_f1a_amt + l_P7_f1b_amt;
3715 
3716 	vXMLTable(vCtr).TagName := 'P7_f1_num';
3717 	vXMLTable(vCtr).TagValue := to_char(l_P7_f1_num);
3718 	vCtr := vCtr + 1;
3719 
3720 	vXMLTable(vCtr).TagName := 'P7_f1_amt';
3721 	vXMLTable(vCtr).TagValue := to_char(l_P7_f1_amt);
3722 	vCtr := vCtr + 1;
3723 
3724 	-- Promotion Retroactive Monetary
3725 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'10','140', p_agency_code) LOOP
3726 		l_P7_f2a_num := cur_ctr.p7_cnt;
3727 	END LOOP;
3728 
3729 	vXMLTable(vCtr).TagName := 'P7_f2a_num';
3730 	vXMLTable(vCtr).TagValue := to_char(l_P7_f2a_num);
3731 	vCtr := vCtr + 1;
3732 
3733 	-- Promotion Retroactive Non-Monetary
3734 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'20','140', p_agency_code) LOOP
3735 		l_P7_f2a_amt := cur_ctr.p7_cnt;
3736 	END LOOP;
3737 
3738 	vXMLTable(vCtr).TagName := 'P7_f2a_amt';
3739 	vXMLTable(vCtr).TagValue := to_char(l_P7_f2a_amt);
3740 	vCtr := vCtr + 1;
3741 
3742 	-- Promotion Non-Retroactive Monetary
3743 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'10','130', p_agency_code) LOOP
3744 		l_P7_f2b_num := cur_ctr.p7_cnt;
3745 	END LOOP;
3746 
3747 	vXMLTable(vCtr).TagName := 'P7_f2b_num';
3748 	vXMLTable(vCtr).TagValue := to_char(l_P7_f2b_num);
3749 	vCtr := vCtr + 1;
3750 
3751 	-- Promotion Non-Retroactive Non-Monetary
3752 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'20','130', p_agency_code) LOOP
3753 		l_P7_f2b_amt := cur_ctr.p7_cnt;
3754 	END LOOP;
3755 
3756 	vXMLTable(vCtr).TagName := 'P7_f2b_amt';
3757 	vXMLTable(vCtr).TagValue := to_char(l_P7_f2b_amt);
3758 	vCtr := vCtr + 1;
3759 
3760 	-- Total under Promotion
3761 	l_P7_f2_num := l_P7_f2a_num + l_P7_f2b_num;
3762 	l_P7_f2_amt := l_P7_f2a_amt + l_P7_f2b_amt;
3763 
3764 	vXMLTable(vCtr).TagName := 'P7_f2_num';
3765 	vXMLTable(vCtr).TagValue := to_char(l_P7_f2_num);
3766 	vCtr := vCtr + 1;
3767 
3768 	vXMLTable(vCtr).TagName := 'P7_f2_amt';
3769 	vXMLTable(vCtr).TagValue := to_char(l_P7_f2_amt);
3770 	vCtr := vCtr + 1;
3771 
3772 	-- Disciplinary Action Rescinded Monetary
3773 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'10','50', p_agency_code) LOOP
3774 		l_P7_f3a_num := cur_ctr.p7_cnt;
3775 	END LOOP;
3776 
3777 	vXMLTable(vCtr).TagName := 'P7_f3a_num';
3778 	vXMLTable(vCtr).TagValue := to_char(l_P7_f3a_num);
3779 	vCtr := vCtr + 1;
3780 
3781 	-- Disciplinary Action Rescinded Monetary
3782 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'20','50', p_agency_code) LOOP
3783 		l_P7_f3a_amt := cur_ctr.p7_cnt;
3784 	END LOOP;
3785 
3786 	vXMLTable(vCtr).TagName := 'P7_f3a_amt';
3787 	vXMLTable(vCtr).TagValue := to_char(l_P7_f3a_amt);
3788 	vCtr := vCtr + 1;
3789 
3790 	-- Disciplinary Action Modified Monetary
3791 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'10','40', p_agency_code) LOOP
3792 		l_P7_f3b_num := cur_ctr.p7_cnt;
3793 	END LOOP;
3794 
3795 	vXMLTable(vCtr).TagName := 'P7_f3b_num';
3796 	vXMLTable(vCtr).TagValue := to_char(l_P7_f3b_num);
3797 	vCtr := vCtr + 1;
3798 
3799 	-- Disciplinary Action Modified Non-Monetary
3800 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'20','40', p_agency_code) LOOP
3801 		l_P7_f3b_amt := cur_ctr.p7_cnt;
3802 	END LOOP;
3803 
3804 	vXMLTable(vCtr).TagName := 'P7_f3b_amt';
3805 	vXMLTable(vCtr).TagValue := to_char(l_P7_f3b_amt);
3806 	vCtr := vCtr + 1;
3807 
3808 	-- Total under Disciplinary Action
3809 	l_P7_f3_num := l_P7_f3a_num + l_P7_f3b_num;
3810 	l_P7_f3_amt := l_P7_f3a_amt + l_P7_f3b_amt;
3811 
3812 	vXMLTable(vCtr).TagName := 'P7_f3_num';
3813 	vXMLTable(vCtr).TagValue := to_char(l_P7_f3_num);
3814 	vCtr := vCtr + 1;
3815 
3816 	vXMLTable(vCtr).TagName := 'P7_f3_amt';
3817 	vXMLTable(vCtr).TagValue := to_char(l_P7_f3_amt);
3818 	vCtr := vCtr + 1;
3819 
3820 	-- Reinstatement Monetary
3821 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'10','160', p_agency_code) LOOP
3822 		l_P7_f4_num := cur_ctr.p7_cnt;
3823 	END LOOP;
3824 
3825 	vXMLTable(vCtr).TagName := 'P7_f4_num';
3826 	vXMLTable(vCtr).TagValue := to_char(l_P7_f4_num);
3827 	vCtr := vCtr + 1;
3828 
3829 	-- Reinstatement Non-Monetary
3830 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'20','160', p_agency_code) LOOP
3831 		l_P7_f4_amt := cur_ctr.p7_cnt;
3832 	END LOOP;
3833 
3834 	vXMLTable(vCtr).TagName := 'P7_f4_amt';
3835 	vXMLTable(vCtr).TagValue := to_char(l_P7_f4_amt);
3836 	vCtr := vCtr + 1;
3837 
3838 	-- Reassignment Monetary
3839 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'10','150', p_agency_code) LOOP
3840 		l_P7_f5_num := cur_ctr.p7_cnt;
3841 	END LOOP;
3842 
3843 	vXMLTable(vCtr).TagName := 'P7_f5_num';
3844 	vXMLTable(vCtr).TagValue := to_char(l_P7_f5_num);
3845 	vCtr := vCtr + 1;
3846 
3847 	-- Reassignment Non-Monetary
3848 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'20','150', p_agency_code) LOOP
3849 		l_P7_f5_amt := cur_ctr.p7_cnt;
3850 	END LOOP;
3851 
3852 	vXMLTable(vCtr).TagName := 'P7_f5_amt';
3853 	vXMLTable(vCtr).TagValue := to_char(l_P7_f5_amt);
3854 	vCtr := vCtr + 1;
3855 
3856 	-- Performance Evaluation Monetary
3857 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'10','110', p_agency_code) LOOP
3858 		l_P7_f6_num := cur_ctr.p7_cnt;
3859 	END LOOP;
3860 
3861 	vXMLTable(vCtr).TagName := 'P7_f6_num';
3862 	vXMLTable(vCtr).TagValue := to_char(l_P7_f6_num);
3863 	vCtr := vCtr + 1;
3864 
3865 	-- Performance Evaluation Non-Monetary
3866 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'20','110', p_agency_code) LOOP
3867 		l_P7_f6_amt := cur_ctr.p7_cnt;
3868 	END LOOP;
3869 
3870 	vXMLTable(vCtr).TagName := 'P7_f6_amt';
3871 	vXMLTable(vCtr).TagValue := to_char(l_P7_f6_amt);
3872 	vCtr := vCtr + 1;
3873 
3874 	-- Personnel File Purged Of Adverse Material Monetary
3875 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'10','120', p_agency_code) LOOP
3876 		l_P7_f7_num := cur_ctr.p7_cnt;
3877 	END LOOP;
3878 
3879 	vXMLTable(vCtr).TagName := 'P7_f7_num';
3880 	vXMLTable(vCtr).TagValue := to_char(l_P7_f7_num);
3881 	vCtr := vCtr + 1;
3882 
3883 	-- Personnel File Purged Of Adverse Material Non-Monetary
3884 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'20','120', p_agency_code) LOOP
3885 		l_P7_f7_amt := cur_ctr.p7_cnt;
3886 	END LOOP;
3887 
3888 	vXMLTable(vCtr).TagName := 'P7_f7_amt';
3889 	vXMLTable(vCtr).TagValue := to_char(l_P7_f7_amt);
3890 	vCtr := vCtr + 1;
3891 
3892 
3893 	-- Accomodation Monetary
3894 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'10','10', p_agency_code) LOOP
3895 		l_P7_f8_num := cur_ctr.p7_cnt;
3896 	END LOOP;
3897 
3898 	vXMLTable(vCtr).TagName := 'P7_f8_num';
3899 	vXMLTable(vCtr).TagValue := to_char(l_P7_f8_num);
3900 	vCtr := vCtr + 1;
3901 
3902 	-- Accomodation Non-Monetary
3903 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'20','10', p_agency_code) LOOP
3904 		l_P7_f8_amt := cur_ctr.p7_cnt;
3905 	END LOOP;
3906 
3907 	vXMLTable(vCtr).TagName := 'P7_f8_amt';
3908 	vXMLTable(vCtr).TagValue := to_char(l_P7_f8_amt);
3909 	vCtr := vCtr + 1;
3910 
3911 	-- Training/Tuition/Etc. Monetary
3912 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'10','180', p_agency_code) LOOP
3913 		l_P7_f9_num := cur_ctr.p7_cnt;
3914 	END LOOP;
3915 
3916 	vXMLTable(vCtr).TagName := 'P7_f9_num';
3917 	vXMLTable(vCtr).TagValue := to_char(l_P7_f9_num);
3918 	vCtr := vCtr + 1;
3919 
3920 	-- Training/Tuition/Etc. Non-Monetary
3921 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'20','180', p_agency_code) LOOP
3922 		l_P7_f9_amt := cur_ctr.p7_cnt;
3923 	END LOOP;
3924 
3925 	vXMLTable(vCtr).TagName := 'P7_f9_amt';
3926 	vXMLTable(vCtr).TagValue := to_char(l_P7_f9_amt);
3927 	vCtr := vCtr + 1;
3928 
3929 	-- Leave Restored Monetary
3930 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'10','90', p_agency_code) LOOP
3931 		l_P7_f10_num := cur_ctr.p7_cnt;
3932 	END LOOP;
3933 
3934 	vXMLTable(vCtr).TagName := 'P7_f10_num';
3935 	vXMLTable(vCtr).TagValue := to_char(l_P7_f10_num);
3936 	vCtr := vCtr + 1;
3937 
3938 	-- Leave Restored Non-Monetary
3939 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'20','90', p_agency_code) LOOP
3940 		l_P7_f10_amt := cur_ctr.p7_cnt;
3941 	END LOOP;
3942 
3943 	vXMLTable(vCtr).TagName := 'P7_f10_amt';
3944 	vXMLTable(vCtr).TagValue := to_char(l_P7_f10_amt);
3945 	vCtr := vCtr + 1;
3946 
3947 	-- Other
3948 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'10','100', p_agency_code) LOOP
3949 		l_P7_f11_num := cur_ctr.p7_cnt;
3950 	END LOOP;
3951 
3952 	vXMLTable(vCtr).TagName := 'P7_f11_num';
3953 	vXMLTable(vCtr).TagValue := to_char(l_P7_f11_num);
3954 	vCtr := vCtr + 1;
3955 
3956 	-- Other
3957 	FOR cur_ctr IN cur_cmp_ca_action(p_from_date,p_to_date,'20','100', p_agency_code) LOOP
3958 		l_P7_f11_amt := cur_ctr.p7_cnt;
3959 	END LOOP;
3960 
3961 	vXMLTable(vCtr).TagName := 'P7_f11_amt';
3962 	vXMLTable(vCtr).TagValue := to_char(l_P7_f11_amt);
3963 	vCtr := vCtr + 1;
3964 
3965 	vXMLTable(vCtr).TagName := 'P7_f12_num';
3966 	vXMLTable(vCtr).TagValue := '0';
3967 	vCtr := vCtr + 1;
3968 
3969 	vXMLTable(vCtr).TagName := 'P7_f12_amt';
3970 	vXMLTable(vCtr).TagValue := '0';
3971 	vCtr := vCtr + 1;
3972 
3973 	vXMLTable(vCtr).TagName := 'P7_f13_num';
3974 	vXMLTable(vCtr).TagValue := '0';
3975 	vCtr := vCtr + 1;
3976 
3977 	vXMLTable(vCtr).TagName := 'P7_f13_amt';
3978 	vXMLTable(vCtr).TagValue := '0';
3979 	vCtr := vCtr + 1;
3980 
3981 	fnd_file.put_line(fnd_file.log,'Finished populating Part7 - Complaints closed with corrective actions');
3982 	fnd_file.put_line(fnd_file.log,'------------End of Part7----------------');
3983 END populate_part7;
3984 
3985 PROCEDURE populate_part8(
3986     p_from_date   in date,
3987 	p_to_date     in date,
3988 	p_agency_code in varchar2)
3989 IS
3990 -- Complaints Pending written notification
3991 
3992 CURSOR cur_notif(c_from_date date, c_to_date date,c_agency_code ghr_complaints2.agency_code%type) IS
3993 SELECT COUNT(*) p8_cnt, NVL(SUM(ROUND((c_to_date - cmp.formal_com_filed),0)+1),0) p8_sum, NVL(MAX(ROUND((c_to_date - cmp.formal_com_filed),0)+1),0) p8_max
3994    FROM GHR_COMPLAINTS2 cmp
3995    WHERE (cmp.complaint_closed IS NULL OR cmp.complaint_closed > c_to_date)
3996    AND cmp.formal_com_filed <= c_to_date
3997    AND cmp.agency_code = c_agency_code
3998    AND cmp.letter_type IS NULL
3999    AND cmp.letter_date IS NULL;
4000 
4001 CURSOR cur_investigation(c_from_date date, c_to_date date,c_agency_code ghr_complaints2.agency_code%type) IS
4002    SELECT COUNT(*) p8_cnt, NVL(SUM(ROUND((c_to_date - NVL(cmp.investigation_start,cmp.investigator_recvd_req)),0)+1),0) p8_sum, NVL(MAX(ROUND((c_to_date - NVL(cmp.investigation_start,cmp.investigator_recvd_req)),0)+1),0) p8_max
4003    FROM GHR_COMPLAINTS2 cmp
4004    WHERE (cmp.complaint_closed IS NULL OR cmp.complaint_closed > c_to_date)
4005    AND cmp.formal_com_filed IS NOT NULL
4006    AND cmp.agency_code = c_agency_code
4007    AND (
4008    (cmp.investigation_start < c_to_date) OR (cmp.investigator_recvd_req < c_to_date))
4009    AND investigation_end IS NULL;
4010 
4011 CURSOR cur_hearing(c_from_date date, c_to_date date,c_agency_code ghr_complaints2.agency_code%type) IS
4012    SELECT COUNT(*) p8_cnt, NVL(SUM(ROUND((c_to_date - cmp.hearing_req),0)+1),0) p8_sum, NVL(MAX(ROUND((c_to_date - cmp.hearing_req),0)+1),0) p8_max
4013    FROM GHR_COMPLAINTS2 cmp
4014    WHERE cmp.formal_com_filed IS NOT NULL
4015    AND (cmp.complaint_closed IS NULL OR cmp.complaint_closed > c_to_date)
4016    AND cmp.hearing_req < c_to_date
4017    AND cmp.agency_code = c_agency_code
4018    AND (cmp.aj_merit_decision_date IS NULL OR cmp.aj_merit_decision_date > c_to_date)
4019    AND cmp.aj_ca_decision_date IS NULL;
4020 
4021 CURSOR cur_agency(c_from_date date, c_to_date date,c_agency_code ghr_complaints2.agency_code%type) IS
4022    SELECT COUNT(*) p8_cnt, NVL(SUM(ROUND((c_to_date - NVL(cmp.fad_requested,cmp.fad_due)),0)+1),0) p8_sum, NVL(MAX(ROUND((c_to_date - NVL(cmp.fad_requested,cmp.fad_due)),0)+1),0) p8_max
4023    FROM GHR_COMPLAINTS2 cmp
4024    WHERE cmp.formal_com_filed IS NOT NULL
4025    AND (cmp.complaint_closed IS NULL OR cmp.complaint_closed > c_to_date)
4026    AND cmp.agency_code = c_agency_code
4027    AND NVL(cmp.fad_requested,cmp.fad_due) < c_to_date
4028    AND cmp.fad_date IS NULL;
4029 
4030 	l_p8_a1_num NUMBER;
4031 	l_p8_a1_day NUMBER;
4032 	l_p8_a1_old NUMBER;
4033 	l_P8_a1_avg NUMBER;
4034 	l_p8_a2_num NUMBER;
4035 	l_p8_a2_day NUMBER;
4036 	l_p8_a2_old NUMBER;
4037 	l_P8_a2_avg NUMBER;
4038 	l_p8_a3_num NUMBER;
4039 	l_p8_a3_day NUMBER;
4040 	l_p8_a3_old NUMBER;
4041 	l_P8_a3_avg NUMBER;
4042 	l_p8_a4_num NUMBER;
4043 	l_p8_a4_day NUMBER;
4044 	l_p8_a4_old NUMBER;
4045 	l_P8_a4_avg NUMBER;
4046 	l_p8_a_num NUMBER;
4047 	l_p8_a_day NUMBER;
4048 
4049 
4050 BEGIN
4051 	-- Complaints pending written notification
4052 	FOR cur_ctr IN cur_notif(p_from_date, p_to_date, p_agency_code) LOOP
4053 		l_p8_a1_num := cur_ctr.p8_cnt;
4054 		l_p8_a1_day := cur_ctr.p8_sum;
4055 		l_p8_a1_old := cur_ctr.p8_max;
4056 	END LOOP;
4057 
4058 	-- Average Days
4059 /*	IF (l_p8_a1_num > 0) THEN
4060 		l_P8_a1_avg := CEIL(l_p8_a1_day/l_p8_a1_num);
4061 	ELSE
4062 		l_P8_a1_avg := 0;
4063 	END IF;
4064 	vXMLTable(vCtr).TagName := 'P8_a1_avg';
4065 	vXMLTable(vCtr).TagValue := to_char(l_P8_a1_avg);
4066 	vCtr := vCtr + 1;
4067 */
4068 	vXMLTable(vCtr).TagName := 'P8_a1_num';
4069 	vXMLTable(vCtr).TagValue := to_char(l_p8_a1_num);
4070 	vCtr := vCtr + 1;
4071 	vXMLTable(vCtr).TagName := 'P8_a1_day';
4072 	vXMLTable(vCtr).TagValue := to_char(l_p8_a1_day);
4073 	vCtr := vCtr + 1;
4074 	vXMLTable(vCtr).TagName := 'P8_a1_old';
4075 	vXMLTable(vCtr).TagValue := to_char(l_p8_a1_old);
4076 	vCtr := vCtr + 1;
4077 	fnd_file.put_line(fnd_file.log,'Finished populating Part8 - Complaints pending written notification');
4078 	-- Complaints Pending in investigation
4079 	FOR cur_ctr IN cur_investigation(p_from_date, p_to_date, p_agency_code) LOOP
4080 		l_p8_a2_num := cur_ctr.p8_cnt;
4081 		l_p8_a2_day := cur_ctr.p8_sum;
4082 		l_p8_a2_old := cur_ctr.p8_max;
4083 	END LOOP;
4084 
4085 	-- Average Days
4086 /*	IF (l_p8_a2_num > 0) THEN
4087 		l_P8_a2_avg := CEIL(l_p8_a2_day/l_p8_a2_num);
4088 	ELSE
4089 		l_P8_a2_avg := 0;
4090 	END IF;
4091 	vXMLTable(vCtr).TagName := 'P8_a2_avg';
4092 	vXMLTable(vCtr).TagValue := to_char(l_P8_a2_avg);
4093 	vCtr := vCtr + 1;
4094 */
4095 	vXMLTable(vCtr).TagName := 'P8_a2_num';
4096 	vXMLTable(vCtr).TagValue := to_char(l_p8_a2_num);
4097 	vCtr := vCtr + 1;
4098 	vXMLTable(vCtr).TagName := 'P8_a2_day';
4099 	vXMLTable(vCtr).TagValue := to_char(l_p8_a2_day);
4100 	vCtr := vCtr + 1;
4101 	vXMLTable(vCtr).TagName := 'P8_a2_old';
4102 	vXMLTable(vCtr).TagValue := to_char(l_p8_a2_old);
4103 	vCtr := vCtr + 1;
4104 	fnd_file.put_line(fnd_file.log,'Finished populating Part8 - Complaints Pending in investigation');
4105 	-- Complaints Pending in hearing
4106 	FOR cur_ctr IN cur_hearing(p_from_date, p_to_date, p_agency_code) LOOP
4107 		l_p8_a3_num := cur_ctr.p8_cnt;
4108 		l_p8_a3_day := cur_ctr.p8_sum;
4109 		l_p8_a3_old := cur_ctr.p8_max;
4110 	END LOOP;
4111 
4112 	-- Average Days
4113 /*	IF (l_p8_a3_num > 0) THEN
4114 		l_P8_a3_avg := CEIL(l_p8_a3_day/l_p8_a3_num);
4115 	ELSE
4116 		l_P8_a3_avg := 0;
4117 	END IF;
4118 	vXMLTable(vCtr).TagName := 'P8_a3_avg';
4119 	vXMLTable(vCtr).TagValue := to_char(l_P8_a3_avg);
4120 	vCtr := vCtr + 1;
4121 */
4122 	vXMLTable(vCtr).TagName := 'P8_a3_num';
4123 	vXMLTable(vCtr).TagValue := to_char(l_p8_a3_num);
4124 	vCtr := vCtr + 1;
4125 	vXMLTable(vCtr).TagName := 'P8_a3_day';
4126 	vXMLTable(vCtr).TagValue := to_char(l_p8_a3_day);
4127 	vCtr := vCtr + 1;
4128 	vXMLTable(vCtr).TagName := 'P8_a3_old';
4129 	vXMLTable(vCtr).TagValue := to_char(l_p8_a3_old);
4130 	vCtr := vCtr + 1;
4131 	fnd_file.put_line(fnd_file.log,'Finished populating Part8 - Complaints Pending in hearing');
4132 	-- Complaints Pending FAD
4133 	FOR cur_ctr IN cur_agency(p_from_date, p_to_date, p_agency_code) LOOP
4134 		l_p8_a4_num := cur_ctr.p8_cnt;
4135 		l_p8_a4_day := cur_ctr.p8_sum;
4136 		l_p8_a4_old := cur_ctr.p8_max;
4137 	END LOOP;
4138 
4139 	-- Average Days
4140 /*	IF (l_p8_a4_num > 0) THEN
4141 		l_P8_a4_avg := CEIL(l_p8_a4_day/l_p8_a4_num);
4142 	ELSE
4143 		l_P8_a4_avg := 0;
4144 	END IF;
4145 	vXMLTable(vCtr).TagName := 'P8_a4_avg';
4146 	vXMLTable(vCtr).TagValue := to_char(l_P8_a4_avg);
4147 	vCtr := vCtr + 1;
4148 */
4149 	vXMLTable(vCtr).TagName := 'P8_a4_num';
4150 	vXMLTable(vCtr).TagValue := to_char(l_p8_a4_num);
4151 	vCtr := vCtr + 1;
4152 	vXMLTable(vCtr).TagName := 'P8_a4_day';
4153 	vXMLTable(vCtr).TagValue := to_char(l_p8_a4_day);
4154 	vCtr := vCtr + 1;
4155 	vXMLTable(vCtr).TagName := 'P8_a4_old';
4156 	vXMLTable(vCtr).TagValue := to_char(l_p8_a4_old);
4157 	vCtr := vCtr + 1;
4158 
4159 
4160 	fnd_file.put_line(fnd_file.log,'Finished populating Part8 - Complaints Pending FAD');
4161 	l_p8_a_num := l_p8_a1_num + l_p8_a2_num + l_p8_a3_num + l_p8_a4_num;
4162 	l_p8_a_day := l_p8_a1_day + l_p8_a2_day + l_p8_a3_day + l_p8_a4_day;
4163 
4164 	vXMLTable(vCtr).TagName := 'P8_a_num';
4165 	vXMLTable(vCtr).TagValue := to_char(l_p8_a_num);
4166 	vCtr := vCtr + 1;
4167 	vXMLTable(vCtr).TagName := 'P8_a_day';
4168 	vXMLTable(vCtr).TagValue := to_char(l_p8_a_day);
4169 	vCtr := vCtr + 1;
4170 	fnd_file.put_line(fnd_file.log,'Finished populating Part8 - Totals');
4171 	fnd_file.put_line(fnd_file.log,'------------End of Part8----------------');
4172 END populate_part8;
4173 
4174 PROCEDURE populate_part10(
4175    p_from_date   in date,
4176    p_to_date     in date,
4177    p_agency_code in varchar2) IS
4178 
4179 -- Cursor for ADR Pending from previous reporting period
4180 CURSOR cur_adr_pending(c_from_date date, c_to_date date,c_stage ghr_compl_adrs.stage%TYPE,c_agency_code ghr_complaints2.agency_code%type) IS
4181    SELECT COUNT(distinct cmp.complaint_id) p10_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) p10_prsn,    NVL(SUM(ROUND((c_to_date - NVL(adrs.date_accepted,adrs.start_date)) ,0) + 1),0) p10_days
4182    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs
4183    WHERE adrs.complaint_id = cmp.complaint_id
4184    AND adrs.stage = c_stage
4185    AND cmp.agency_code = c_agency_code
4186    AND (cmp.formal_com_filed IS NULL OR cmp.formal_com_filed > c_to_date)
4187    AND (cmp.complaint_closed IS NULL OR cmp.complaint_closed > c_to_date)
4188    AND NVL(adrs.date_accepted,adrs.start_date) < c_from_date
4189    AND (adrs.end_date IS NULL OR adrs.end_date > c_to_date);
4190 
4191 -- Cursor for Individuals counseled through ADR
4192 CURSOR cur_adr(c_from_date date, c_to_date date,c_stage ghr_compl_adrs.stage%TYPE,c_agency_code ghr_complaints2.agency_code%type) IS
4193    SELECT COUNT(distinct cmp.complaint_id) p10_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) p10_prsn,   NVL(SUM(ROUND((c_to_date - NVL(adrs.date_accepted,adrs.start_date)) ,0) + 1),0) p10_days
4194    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs
4195    WHERE adrs.complaint_id = cmp.complaint_id
4196    AND adrs.stage = c_stage
4197    AND cmp.agency_code = c_agency_code
4198    AND (cmp.formal_com_filed IS NULL OR cmp.formal_com_filed > c_to_date)
4199    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
4200    AND (adrs.end_date IS NULL OR adrs.end_date > c_to_date)
4201    AND cmp.counselor_asg IS NULL;
4202 
4203 -- Cursor for ADR actions
4204 CURSOR cur_adr_actions(c_from_date date, c_to_date date,c_stage ghr_compl_adrs.stage%TYPE,c_adr_offered ghr_compl_adrs.adr_offered%type,c_agency_code ghr_complaints2.agency_code%type) IS
4205    SELECT COUNT(distinct cmp.complaint_id) p10_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) p10_prsn,   NVL(SUM(ROUND((NVL(adrs.end_date,c_to_date) - NVL(adrs.date_accepted,adrs.start_date)),0)+1),0) p10_days
4206    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs
4207    WHERE adrs.complaint_id = cmp.complaint_id
4208    AND adrs.stage = c_stage
4209    AND cmp.agency_code = c_agency_code
4210    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
4211    AND adrs.adr_offered = c_adr_offered
4212    AND NVL(adrs.date_accepted,adrs.start_date) = (SELECT MAX(nvl(date_accepted,start_date))
4213 													FROM GHR_COMPL_ADRS adrs1
4214 													WHERE adrs1.complaint_id = adrs.complaint_id
4215 													AND adrs.stage = c_stage);
4216 
4217 CURSOR cur_adr_offered(c_from_date date, c_to_date date,c_stage ghr_compl_adrs.stage%TYPE,c_agency_code ghr_complaints2.agency_code%type) IS
4221    AND adrs.stage = c_stage
4218    SELECT COUNT(distinct cmp.complaint_id) p10_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) p10_prsn,   NVL(SUM(ROUND((NVL(adrs.end_date,c_to_date) - NVL(adrs.date_accepted,adrs.start_date)),0)+1),0) p10_days
4219    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs
4220    WHERE adrs.complaint_id = cmp.complaint_id
4222    AND cmp.agency_code = c_agency_code
4223    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
4224    AND adrs.adr_offered IN (10,20,30)
4225    AND NVL(adrs.date_accepted,adrs.start_date) = (SELECT MAX(nvl(date_accepted,start_date))
4226 													FROM GHR_COMPL_ADRS adrs1
4227 													WHERE adrs1.complaint_id = adrs.complaint_id
4228 													AND adrs.stage = c_stage);
4229 -- Cursor for Resources
4230 CURSOR cur_resources(c_from_date date, c_to_date date, c_stage ghr_compl_adrs.stage%TYPE, c_resource ghr_compl_adrs.adr_resource%TYPE,c_agency_code ghr_complaints2.agency_code%type) IS
4231    SELECT COUNT(distinct cmp.complaint_id) p10_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) p10_prsn
4232    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs
4233    WHERE adrs.complaint_id = cmp.complaint_id
4234    AND cmp.agency_code = c_agency_code
4235    AND adrs.stage = c_stage
4236    AND adrs.adr_resource = c_resource
4237    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date;
4238 
4239 -- Cursor for Multiple Resources
4240 CURSOR cur_multires(c_from_date date, c_to_date date,c_stage ghr_compl_adrs.stage%TYPE,c_agency_code ghr_complaints2.agency_code%type) IS
4241 SELECT cmp.complaint_id, adrs.adr_resource
4242    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs
4243    WHERE adrs.complaint_id = cmp.complaint_id
4244    AND cmp.agency_code = c_agency_code
4245    AND adrs.stage = c_stage
4246    AND adrs.adr_resource IS NOT NULL
4247    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
4248    ORDER BY cmp.complaint_id;
4249 
4250 -- Cursor for Techniques
4251 CURSOR cur_techniques(c_from_date date, c_to_date date,c_stage ghr_compl_adrs.stage%TYPE, c_technique ghr_compl_adrs.technique%TYPE,c_agency_code ghr_complaints2.agency_code%type) IS
4252    SELECT COUNT(distinct cmp.complaint_id) p10_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) p10_prsn,
4253    NVL(SUM(ROUND((NVL(adrs.end_date,c_to_date) - NVL(adrs.date_accepted,adrs.start_date) ),0)+1),0) p10_days -- Check whether this is to date or from date.
4254    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs
4255    WHERE adrs.complaint_id = cmp.complaint_id
4256    AND cmp.agency_code = c_agency_code
4257    AND adrs.stage = c_stage
4258    AND adrs.technique = c_technique
4259    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date;
4260 
4261 -- Cursor for Multi-techniques
4262 CURSOR cur_multitechniques(c_from_date date, c_to_date date,c_stage ghr_compl_adrs.stage%TYPE,c_agency_code ghr_complaints2.agency_code%type) IS
4263 SELECT cmp.complaint_id, adrs.technique, NVL(ROUND((NVL(adrs.end_date,c_to_date) - NVL(adrs.date_accepted,adrs.start_date)),0)+1,0) p10_days
4264    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs
4265    WHERE adrs.complaint_id = cmp.complaint_id
4266    AND adrs.stage = c_stage
4267    AND cmp.agency_code = c_agency_code
4268    AND adrs.technique IS NOT NULL
4269    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
4270    ORDER BY cmp.complaint_id;
4271 
4272 CURSOR cur_case_status(c_from_date date, c_to_date date,c_stage ghr_compl_adrs.stage%TYPE, c_closure_nature ghr_complaints2.precom_closure_nature%TYPE,c_agency_code ghr_complaints2.agency_code%type) IS
4273    SELECT COUNT(distinct cmp.complaint_id) p10_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) p10_prsn, NVL(SUM(ROUND((precom_closed - NVL(adrs.date_accepted,adrs.start_date)),0)+1),0) P10_days
4274    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs
4275    WHERE adrs.complaint_id = cmp.complaint_id
4276    AND cmp.agency_code = c_agency_code
4277    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
4278    AND adrs.stage = c_stage
4279    AND adrs.adr_offered IS NOT NULL
4280    AND adrs.end_date <= c_to_date
4281    AND precom_closure_nature = c_closure_nature;
4282 
4283 CURSOR cur_case_status_settle(c_from_date date, c_to_date date,c_stage ghr_compl_adrs.stage%TYPE,c_agency_code ghr_complaints2.agency_code%type) IS
4284    SELECT COUNT(distinct cmp.complaint_id) p10_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) p10_prsn, NVL(SUM(ROUND((precom_closed - NVL(adrs.date_accepted,adrs.start_date)),0)+1),0 ) P10_days
4285    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs
4286    WHERE adrs.complaint_id = cmp.complaint_id
4287    AND cmp.agency_code = c_agency_code
4288    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
4289    AND adrs.stage = c_stage
4290    AND adrs.adr_offered IS NOT NULL
4291    AND adrs.end_date <= c_to_date
4292    AND precom_closure_nature IN (60,70,80);
4293 
4294 CURSOR cur_open_inventory (c_from_date date, c_to_date date,c_stage ghr_compl_adrs.stage%TYPE,c_agency_code ghr_complaints2.agency_code%type) IS
4295    SELECT COUNT(distinct cmp.complaint_id) p10_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) p10_prsn, NVL(SUM(ROUND((precom_closed - NVL(adrs.date_accepted,adrs.start_date)),0)+1),0) P10_days
4296    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs
4297    WHERE adrs.complaint_id = cmp.complaint_id
4298    AND cmp.agency_code = c_agency_code
4299    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
4300    AND adrs.stage = c_stage
4301    AND adrs.end_date IS NULL;
4302 
4303 CURSOR cur_benefits (c_from_date date, c_to_date date,c_stage ghr_compl_adrs.stage%TYPE, c_phase ghr_compl_ca_details.phase%TYPE
4304 , c_payment_type ghr_compl_ca_details.payment_type%TYPE,c_agency_code ghr_complaints2.agency_code%type) IS
4305    SELECT COUNT(distinct cmp.complaint_id) p10_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) P10_prsn, NVL(SUM(CEIL(ca.amount)),0) p10_amt
4306    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs, GHR_COMPL_CA_HEADERS cah, GHR_COMPL_CA_DETAILS ca
4307    WHERE ca.compl_ca_header_id = cah.compl_ca_header_id
4311    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
4308    AND cah.complaint_id = cmp.complaint_id
4309    AND adrs.complaint_id = cmp.complaint_id
4310    AND cmp.agency_code = c_agency_code
4312    AND adrs.stage = c_stage
4313    AND ca.phase = c_phase
4314    AND ca.payment_type = c_payment_type
4315    AND ca.category = 10 -- Monetary
4316    AND adrs.end_date IS NOT NULL;
4317 
4318 CURSOR cur_tot_benefits (c_from_date date, c_to_date date,c_stage ghr_compl_adrs.stage%TYPE, c_phase ghr_compl_ca_details.phase%TYPE
4319 ,c_agency_code ghr_complaints2.agency_code%type) IS
4320    SELECT COUNT(distinct cmp.complaint_id) p10_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) P10_prsn
4321    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs, GHR_COMPL_CA_HEADERS cah, GHR_COMPL_CA_DETAILS ca
4322    WHERE ca.compl_ca_header_id = cah.compl_ca_header_id
4323    AND cah.complaint_id = cmp.complaint_id
4324    AND adrs.complaint_id = cmp.complaint_id
4325    AND cmp.agency_code = c_agency_code
4326    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
4327    AND adrs.stage = c_stage
4328    AND ca.phase = c_phase
4329    AND ca.payment_type IS NOT NULL
4330    AND ca.category = 10 -- Monetary
4331    AND adrs.end_date IS NOT NULL;
4332 
4333 
4334 CURSOR cur_benefits_pt2 (c_from_date date, c_to_date date,c_stage ghr_compl_adrs.stage%TYPE, c_phase ghr_compl_ca_details.phase%TYPE,
4335 c_payment_type1 ghr_compl_ca_details.payment_type%TYPE,c_payment_type2 ghr_compl_ca_details.payment_type%TYPE,c_agency_code ghr_complaints2.agency_code%type) IS
4336    SELECT COUNT(distinct cmp.complaint_id) p10_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) P10_prsn, NVL(SUM(CEIL(ca.amount)),0) p10_amt
4337    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs, GHR_COMPL_CA_HEADERS cah, GHR_COMPL_CA_DETAILS ca
4338    WHERE ca.compl_ca_header_id = cah.compl_ca_header_id
4339    AND cah.complaint_id = cmp.complaint_id
4340    AND adrs.complaint_id = cmp.complaint_id
4341    AND cmp.agency_code = c_agency_code
4342    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
4343    AND adrs.stage = c_stage
4344    AND ca.phase = c_phase
4345    AND ca.payment_type IN (c_payment_type1,c_payment_type2)
4346    AND ca.category = 10 -- Monetary
4347    AND adrs.end_date IS NOT NULL;
4348 
4349 CURSOR cur_benefits_nm (c_from_date date, c_to_date date,c_stage ghr_compl_adrs.stage%TYPE, c_phase ghr_compl_ca_details.phase%TYPE
4350 , c_action_type ghr_compl_ca_details.action_type%TYPE,c_agency_code ghr_complaints2.agency_code%type) IS
4351    SELECT COUNT(distinct cmp.complaint_id) p10_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) P10_prsn, NVL(SUM(CEIL(ca.amount)),0) p10_amt
4352    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs, GHR_COMPL_CA_HEADERS cah, GHR_COMPL_CA_DETAILS ca
4353    WHERE ca.compl_ca_header_id = cah.compl_ca_header_id
4354    AND cah.complaint_id = cmp.complaint_id
4355    AND adrs.complaint_id = cmp.complaint_id
4356    AND cmp.agency_code = c_agency_code
4357    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
4358    AND adrs.stage = c_stage
4359    AND ca.phase = c_phase
4360    AND ca.action_type = c_action_type
4361    AND ca.category = 20 -- Non-Monetary
4362    AND adrs.end_date IS NOT NULL;
4363 
4364 CURSOR cur_benefits_nm_pt2 (c_from_date date, c_to_date date,c_stage ghr_compl_adrs.stage%TYPE, c_phase ghr_compl_ca_details.phase%TYPE,
4365 c_action_type1 ghr_compl_ca_details.action_type%TYPE,c_action_type2 ghr_compl_ca_details.action_type%TYPE,c_agency_code ghr_complaints2.agency_code%type) IS
4366    SELECT COUNT(distinct cmp.complaint_id) p10_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) P10_prsn
4367    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs, GHR_COMPL_CA_HEADERS cah, GHR_COMPL_CA_DETAILS ca
4368    WHERE ca.compl_ca_header_id = cah.compl_ca_header_id
4369    AND cah.complaint_id = cmp.complaint_id
4370    AND adrs.complaint_id = cmp.complaint_id
4371    AND cmp.agency_code = c_agency_code
4372    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
4373    AND adrs.stage = c_stage
4374    AND ca.phase = c_phase
4375    AND ca.action_type IN (c_action_type1,c_action_type2)
4376    AND ca.category = 20 -- Non-Monetary
4377    AND adrs.end_date IS NOT NULL;
4378 
4379  CURSOR cur_tot_benefits_nm (c_from_date date, c_to_date date,c_stage ghr_compl_adrs.stage%TYPE, c_phase ghr_compl_ca_details.phase%TYPE,c_agency_code ghr_complaints2.agency_code%type
4380 ) IS
4381    SELECT COUNT(distinct cmp.complaint_id) p10_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) P10_prsn
4382    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs, GHR_COMPL_CA_HEADERS cah, GHR_COMPL_CA_DETAILS ca
4383    WHERE ca.compl_ca_header_id = cah.compl_ca_header_id
4384    AND cah.complaint_id = cmp.complaint_id
4385    AND adrs.complaint_id = cmp.complaint_id
4386    AND cmp.agency_code = c_agency_code
4387    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
4388    AND adrs.stage = c_stage
4389    AND ca.phase = c_phase
4390    AND ca.action_type IS NOT NULL
4391    AND ca.category = 20 -- Non-Monetary
4392    AND adrs.end_date IS NOT NULL;
4393 
4394 l_p10_d_cmp NUMBER;
4395 l_p10_d1_cmp NUMBER;
4396 l_p10_d2_cmp NUMBER;
4397 l_p10_d3_cmp NUMBER;
4398 l_p10_d5_cmp NUMBER;
4399 l_p10_d1_ant NUMBER;
4400 l_p10_d2_ant NUMBER;
4401 l_p10_d3_ant NUMBER;
4402 l_p10_d5_ant NUMBER;
4403 l_p10_e1_cmp NUMBER;
4404 l_p10_e1_ant NUMBER;
4405 l_p10_e1_day NUMBER;
4406 l_p10_e2_cmp NUMBER;
4407 l_p10_e2_ant NUMBER;
4408 l_p10_e2_day NUMBER;
4409 l_p10_e3_cmp NUMBER;
4410 l_p10_e3_ant NUMBER;
4411 l_p10_e3_day NUMBER;
4412 l_p10_e4_cmp NUMBER;
4413 l_p10_e4_ant NUMBER;
4414 l_p10_e4_day NUMBER;
4415 l_p10_e5_cmp NUMBER;
4416 l_p10_e5_ant NUMBER;
4417 l_p10_e5_day NUMBER;
4418 l_p10_e6_cmp NUMBER;
4419 l_p10_e6_ant NUMBER;
4420 l_p10_e6_day NUMBER;
4421 l_p10_e7_cmp NUMBER;
4422 l_p10_e7_ant NUMBER;
4423 l_p10_e7_day NUMBER;
4424 l_p10_e8_cmp NUMBER;
4425 l_p10_e8_ant NUMBER;
4426 l_p10_e8_day NUMBER;
4427 l_p10_e9_cmp NUMBER;
4428 l_p10_e9_ant NUMBER;
4429 l_p10_e9_day NUMBER;
4430 l_p10_e_cmp NUMBER;
4431 l_p10_e_ant NUMBER;
4432 l_p10_e_day NUMBER;
4433 l_p10_f1a_cmp NUMBER;
4434 l_p10_f1a_ant NUMBER;
4435 l_P10_f1a_avg NUMBER;
4436 l_p10_f1a_day NUMBER;
4437 l_p10_f1b_cmp NUMBER;
4438 l_p10_f1b_ant NUMBER;
4439 l_P10_f1b_avg NUMBER;
4440 l_p10_f1b_day NUMBER;
4441 l_p10_f1c_cmp NUMBER;
4442 l_p10_f1c_ant NUMBER;
4443 l_P10_f1c_avg NUMBER;
4444 l_p10_f1c_day NUMBER;
4445 l_p10_f1d_cmp NUMBER;
4446 l_p10_f1d_ant NUMBER;
4447 l_P10_f1d_avg NUMBER;
4448 l_p10_f1d_day NUMBER;
4449 l_p10_f1_cmp NUMBER;
4450 l_p10_f1_ant NUMBER;
4451 l_P10_f1_avg NUMBER;
4452 l_p10_f1_day NUMBER;
4453 l_p10_f2_cmp NUMBER;
4454 l_p10_f2_ant NUMBER;
4455 l_P10_f2_avg NUMBER;
4456 l_p10_f2_day NUMBER;
4457 l_p10_g1_cmp NUMBER;
4458 l_p10_g1_ant NUMBER;
4459 l_p10_g1_amt NUMBER;
4460 l_p10_g1a_cmp NUMBER;
4461 l_p10_g1a_ant NUMBER;
4462 l_p10_g1a_amt NUMBER;
4463 l_p10_g1b_cmp NUMBER;
4464 l_p10_g1b_ant NUMBER;
4465 l_p10_g1b_amt NUMBER;
4466 l_p10_g1c_cmp NUMBER;
4467 l_p10_g1c_ant NUMBER;
4468 l_p10_g1c_amt NUMBER;
4469 l_p10_g1d_cmp NUMBER;
4470 l_p10_g1d_ant NUMBER;
4471 l_p10_g1d_amt NUMBER;
4472 l_p10_g1e_cmp NUMBER;
4473 l_p10_g1e_ant NUMBER;
4474 l_p10_g1e_amt NUMBER;
4475 l_p10_g2a_cmp NUMBER;
4476 l_p10_g2a_ant NUMBER;
4477 l_p10_g2b_cmp NUMBER;
4478 l_p10_g2b_ant NUMBER;
4479 l_p10_g2c_cmp NUMBER;
4480 l_p10_g2c_ant NUMBER;
4481 l_p10_g2d_cmp NUMBER;
4482 l_p10_g2d_ant NUMBER;
4483 l_p10_g2e_cmp NUMBER;
4484 l_p10_g2e_ant NUMBER;
4485 l_p10_g2f_cmp NUMBER;
4486 l_p10_g2f_ant NUMBER;
4487 l_p10_g2g_cmp NUMBER;
4488 l_p10_g2g_ant NUMBER;
4489 l_p10_g2h_cmp NUMBER;
4490 l_p10_g2h_ant NUMBER;
4491 l_p10_g2i_cmp NUMBER;
4492 l_p10_g2i_ant NUMBER;
4493 l_p10_g2j_cmp NUMBER;
4494 l_p10_g2j_ant NUMBER;
4495 l_p10_g2_cmp NUMBER;
4496 l_p10_g2_ant NUMBER;
4497 l_p10_d_ant NUMBER;
4498 l_p10_e1_avg NUMBER;
4499 l_p10_e2_avg NUMBER;
4500 l_p10_e3_avg NUMBER;
4501 l_p10_e4_avg NUMBER;
4502 l_p10_e5_avg NUMBER;
4503 l_p10_e6_avg NUMBER;
4504 l_p10_e7_avg NUMBER;
4505 l_p10_e8_avg NUMBER;
4506 l_p10_e9_avg NUMBER;
4507 l_p10_e_avg NUMBER;
4508 l_p10_e10_cmp NUMBER;
4509 l_p10_e10_ant NUMBER;
4510 l_p10_e10_day NUMBER;
4511 l_p10_e10_avg NUMBER;
4512 -- Variables for Multi-techniques
4513 l_ctr NUMBER:= 1;
4514 l_lb_flag NUMBER := 0;
4515 l_total_count NUMBER := 0;
4516 l_total_days NUMBER := 0;
4517 l_old_cmp_id NUMBER(15) := 0;
4518 l_old_days NUMBER := 0;
4519 l_new_cmp_id NUMBER(15) := 0;
4520 TYPE t_prsn_cur IS REF CURSOR;
4521 l_prsn_cur t_prsn_cur;
4522 l_tot_prsn NUMBER(15) := 0;
4523 l_sql_str VARCHAR2(10000) := NULL;
4524 
4525 l_p10_a_cmp NUMBER;
4526 l_p10_a_ant  NUMBER;
4527 l_p10_a_day  NUMBER;
4528 l_p10_c1_cmp NUMBER;
4529 l_p10_c1_ant NUMBER;
4530 l_p10_c1_day NUMBER;
4531 l_p10_c2_cmp NUMBER;
4532 l_p10_c2_ant NUMBER;
4533 l_p10_c2_day NUMBER;
4534 l_p10_c3_cmp NUMBER;
4535 l_p10_c3_ant  NUMBER;
4536 l_p10_c3_day  NUMBER;
4537 l_p10_c4_cmp NUMBER;
4538 l_p10_c4_ant NUMBER;
4539 l_p10_c4_day NUMBER;
4540 l_p10_b_cmp NUMBER;
4541 l_p10_b_ant NUMBER;
4542 
4543 BEGIN
4544 	-- ADR Pending from previous reporting period
4545 	FOR cur_ctr IN cur_adr_pending(p_from_date, p_to_date,'10', p_agency_code) LOOP
4546 	   l_p10_a_cmp := cur_ctr.p10_cnt;
4547 	   l_p10_a_ant := cur_ctr.p10_prsn;
4548 	   l_p10_a_day := cur_ctr.p10_days;
4549 	END LOOP;
4550 
4551 	vXMLTable(vCtr).TagName := 'P10_a_cmp';
4552 	vXMLTable(vCtr).TagValue := to_char(l_p10_a_cmp);
4553 	vCtr := vCtr + 1;
4554 
4555 	vXMLTable(vCtr).TagName := 'P10_a_ant';
4556 	vXMLTable(vCtr).TagValue := to_char(l_p10_a_ant);
4557 	vCtr := vCtr + 1;
4558 	-- Bug#3124648
4559 	IF (l_p10_a_day IS NULL) THEN
4560 		l_p10_a_day := 0;
4561 	END IF;
4562 
4563 	fnd_file.put_line(fnd_file.log,'Finished populating Part10 - ADR Pending from previous reporting period');
4564 	-- Individuals Counseled through ADR
4565 	FOR cur_ctr IN cur_adr(p_from_date, p_to_date,'10', p_agency_code) LOOP
4566 	   l_p10_b_cmp := cur_ctr.p10_cnt;
4567 	   l_p10_b_ant := cur_ctr.p10_prsn;
4568 	END LOOP;
4569 
4570 	vXMLTable(vCtr).TagName := 'P10_b_cmp';
4571 	vXMLTable(vCtr).TagValue := to_char(l_p10_b_cmp);
4572 	vCtr := vCtr + 1;
4573 
4574 	vXMLTable(vCtr).TagName := 'P10_b_ant';
4575 	vXMLTable(vCtr).TagValue := to_char(l_p10_b_ant);
4576 	vCtr := vCtr + 1;
4577 	fnd_file.put_line(fnd_file.log,'Finished populating Part10 - Individuals Counseled through ADR');
4578 
4579 	-- ADR Actions for current reporting period
4580 	-- ADR Offered
4584 	   l_p10_c1_day := cur_ctr.p10_days;
4581 	FOR cur_ctr IN cur_adr_offered(p_from_date, p_to_date,'10', p_agency_code) LOOP
4582 	   l_p10_c1_cmp := cur_ctr.p10_cnt;
4583 	   l_p10_c1_ant := cur_ctr.p10_prsn;
4585 	END LOOP;
4586 
4587 	vXMLTable(vCtr).TagName := 'P10_c1_cmp';
4588 	vXMLTable(vCtr).TagValue := to_char(l_p10_c1_cmp);
4589 	vCtr := vCtr + 1;
4590 
4591 	vXMLTable(vCtr).TagName := 'P10_c1_ant';
4592 	vXMLTable(vCtr).TagValue := to_char(l_p10_c1_ant);
4593 	vCtr := vCtr + 1;
4594 
4595 	-- Bug#3124648
4596 	IF (l_p10_c1_day IS NULL) THEN
4597 		l_p10_c1_day := 0;
4598 	END IF;
4599 
4600 	fnd_file.put_line(fnd_file.log,'Finished populating Part10 - ADR Offered');
4601 
4602 	-- Rejected by Complainant
4603 	FOR cur_ctr IN cur_adr_actions(p_from_date, p_to_date,'10','20', p_agency_code) LOOP
4604 	   l_p10_c2_cmp := cur_ctr.p10_cnt;
4605 	   l_p10_c2_ant := cur_ctr.p10_prsn;
4606 	   l_p10_c2_day := cur_ctr.p10_days;
4607 	END LOOP;
4608 
4609 	vXMLTable(vCtr).TagName := 'P10_c2_cmp';
4610 	vXMLTable(vCtr).TagValue := to_char(l_p10_c2_cmp);
4611 	vCtr := vCtr + 1;
4612 
4613 	vXMLTable(vCtr).TagName := 'P10_c2_ant';
4614 	vXMLTable(vCtr).TagValue := to_char(l_p10_c2_ant);
4615 	vCtr := vCtr + 1;
4616 
4617 	-- Bug#3124648
4618 	IF (l_p10_c2_day IS NULL) THEN
4619 		l_p10_c2_day := 0;
4620 	END IF;
4621 
4622 	fnd_file.put_line(fnd_file.log,'Finished populating Part10 - Rejected by Complainant');
4623 
4624 	-- Rejected by Agency
4625 	FOR cur_ctr IN cur_adr_actions(p_from_date, p_to_date,'10','30', p_agency_code) LOOP
4626 	   l_p10_c3_cmp := cur_ctr.p10_cnt;
4627 	   l_p10_c3_ant := cur_ctr.p10_prsn;
4628 	   l_p10_c3_day := cur_ctr.p10_days;
4629 	END LOOP;
4630 
4631 	vXMLTable(vCtr).TagName := 'P10_c3_cmp';
4632 	vXMLTable(vCtr).TagValue := to_char(l_p10_c3_cmp);
4633 	vCtr := vCtr + 1;
4634 
4635 	vXMLTable(vCtr).TagName := 'P10_c3_ant';
4636 	vXMLTable(vCtr).TagValue := to_char(l_p10_c3_ant);
4637 	vCtr := vCtr + 1;
4638 
4639 	-- Bug#3124648
4640 	IF (l_p10_c3_day IS NULL) THEN
4641 		l_p10_c3_day := 0;
4642 	END IF;
4643 
4644 	fnd_file.put_line(fnd_file.log,'Finished populating Part10 - Rejected by Agency');
4645 
4646 	-- Total ADR
4647 	l_p10_c4_cmp := l_p10_c1_cmp - (l_p10_c2_cmp + l_p10_c3_cmp);
4648 	l_p10_c4_ant := l_p10_c1_ant - (l_p10_c2_ant + l_p10_c3_ant);
4649 	l_p10_c4_day := l_p10_c1_day - (l_p10_c2_day + l_p10_c3_day);
4650 
4651 	vXMLTable(vCtr).TagName := 'P10_c4_cmp';
4652 	vXMLTable(vCtr).TagValue := to_char(l_p10_c4_cmp);
4653 	vCtr := vCtr + 1;
4654 
4655 	vXMLTable(vCtr).TagName := 'P10_c4_ant';
4656 	vXMLTable(vCtr).TagValue := to_char(l_p10_c4_ant);
4657 	vCtr := vCtr + 1;
4658 	fnd_file.put_line(fnd_file.log,'Finished populating Part10 - Total ADR');
4659 	-- Resources Used
4660 
4661 	-- Inhouse
4662 	FOR cur_ctr IN cur_resources(p_from_date, p_to_date,'10','20', p_agency_code) LOOP
4663 		l_p10_d1_cmp := cur_ctr.p10_cnt;
4664 		l_p10_d1_ant := cur_ctr.p10_prsn;
4665 	END LOOP;
4666 
4667 	vXMLTable(vCtr).TagName := 'P10_d1_cmp';
4668 	vXMLTable(vCtr).TagValue := to_char(l_p10_d1_cmp);
4669 	vCtr := vCtr + 1;
4670 
4671 	vXMLTable(vCtr).TagName := 'P10_d1_ant';
4672 	vXMLTable(vCtr).TagValue := to_char(l_p10_d1_ant);
4673 	vCtr := vCtr + 1;
4674 
4675 	-- Another Federal Agency
4676 	FOR cur_ctr IN cur_resources(p_from_date, p_to_date,'10','10', p_agency_code) LOOP
4677 		l_p10_d2_cmp := cur_ctr.p10_cnt;
4678 		l_p10_d2_ant := cur_ctr.p10_prsn;
4679 	END LOOP;
4680 
4681 	vXMLTable(vCtr).TagName := 'P10_d2_cmp';
4682 	vXMLTable(vCtr).TagValue := to_char(l_p10_d2_cmp);
4683 	vCtr := vCtr + 1;
4684 
4685 	vXMLTable(vCtr).TagName := 'P10_d2_ant';
4686 	vXMLTable(vCtr).TagValue := to_char(l_p10_d2_ant);
4687 	vCtr := vCtr + 1;
4688 
4689 	-- Private Organization
4690 	FOR cur_ctr IN cur_resources(p_from_date, p_to_date,'10','50', p_agency_code) LOOP
4691 		l_p10_d3_cmp := cur_ctr.p10_cnt;
4692 		l_p10_d3_ant := cur_ctr.p10_prsn;
4693 	END LOOP;
4694 
4695 	vXMLTable(vCtr).TagName := 'P10_d3_cmp';
4696 	vXMLTable(vCtr).TagValue := to_char(l_p10_d3_cmp);
4697 	vCtr := vCtr + 1;
4698 
4699 	vXMLTable(vCtr).TagName := 'P10_d3_ant';
4700 	vXMLTable(vCtr).TagValue := to_char(l_p10_d3_ant);
4701 	vCtr := vCtr + 1;
4702 
4703 -- Multiple Resources
4704 
4705 	l_total_count := 0;
4706 	l_total_days := 0;
4707 	l_old_cmp_id := 0;
4708 	l_old_days := 0;
4709 	v_temp.DELETE;
4710 	l_ctr := 1;
4711 
4712 
4713 	FOR cur_ctr IN cur_multires(p_from_date, p_to_date,'10', p_agency_code) LOOP
4714 		IF (cur_ctr.adr_resource = '30') THEN
4715 			v_temp(l_ctr).complaint_id := cur_ctr.complaint_id;
4716 			l_total_count := l_total_count + 1;
4717 			l_old_cmp_id := cur_ctr.complaint_id;
4718 			l_ctr := l_ctr + 1;
4719 		ELSE
4720 			l_new_cmp_id := cur_ctr.complaint_id;
4721 
4722 			IF (l_old_cmp_id = l_new_cmp_id) THEN
4723 
4724 				-- Search whether entry for the same complaint exist already, if exists update the same.
4725 				l_lb_flag := 0 ;
4726 				IF (v_temp.COUNT>0) THEN
4727 					FOR l_ctr1 IN v_temp.FIRST .. v_temp.LAST LOOP
4728 					   IF (v_temp(l_ctr1).complaint_id = l_new_cmp_id) THEN
4729 						  l_total_count := l_total_count + 1;
4730 						  l_lb_flag := 1;
4731 					   END IF;
4732 					END LOOP;
4733 				END IF;
4734 				-- If the complaint doesnt exist already, add new entry.
4735 				IF (l_lb_flag = 0) THEN
4736 				    v_temp(l_ctr).complaint_id := cur_ctr.complaint_id;
4737 					l_total_count := l_total_count + 2;
4738 				END IF;
4739 			END IF;
4740 			l_old_cmp_id := cur_ctr.complaint_id;
4741 		END IF;
4742 	END LOOP;
4743 	-- To Find out the complainants for these complaints
4747 	END IF;
4744 	l_sql_str := '';
4745 	IF (v_temp.COUNT > 0) THEN
4746 		l_sql_str := v_temp(1).complaint_id;
4748 
4749 	IF (v_temp.COUNT > 1) THEN
4750 		FOR l_ctr  IN 2 .. v_temp.COUNT LOOP
4751 		   l_sql_str := l_sql_str || ',' || to_char(v_temp(l_ctr).complaint_id);
4752 		END LOOP;
4753 	END IF;
4754 	IF (l_sql_str IS NOT NULL) THEN
4755 		l_sql_str := 'SELECT COUNT(distinct nvl(cmp.complainant_person_id,0)) FROM GHR_COMPLAINTS2 cmp  WHERE cmp.complaint_id in (' || l_sql_str || ')';
4756 		OPEN l_prsn_cur FOR l_sql_str;
4757 		FETCH l_prsn_cur INTO l_tot_prsn;
4758 		CLOSE l_prsn_cur;
4759 	END IF;
4760 
4761 
4762 	vXMLTable(vCtr).TagName := 'P10_d4_cmp';
4763 	vXMLTable(vCtr).TagValue := to_char(l_total_count);
4764 	vCtr := vCtr + 1;
4765 
4766 	vXMLTable(vCtr).TagName := 'P10_d4_ant';
4767 	vXMLTable(vCtr).TagValue := to_char(l_tot_prsn);
4768 	vCtr := vCtr + 1;
4769 
4770 	--------- End Multiple Resources
4771 	-- Other
4772 	FOR cur_ctr IN cur_resources(p_from_date, p_to_date,'10','40', p_agency_code) LOOP
4773 		l_p10_d5_cmp := cur_ctr.p10_cnt;
4774 		l_p10_d5_ant := cur_ctr.p10_prsn;
4775 	END LOOP;
4776 
4777 	vXMLTable(vCtr).TagName := 'P10_d5_cmp';
4778 	vXMLTable(vCtr).TagValue := to_char(l_p10_d5_cmp);
4779 	vCtr := vCtr + 1;
4780 
4781 	vXMLTable(vCtr).TagName := 'P10_d5_ant';
4782 	vXMLTable(vCtr).TagValue := to_char(l_p10_d5_ant);
4783 	vCtr := vCtr + 1;
4784 
4785 	vXMLTable(vCtr).TagName := 'P10_d6_cmp';
4786 	vXMLTable(vCtr).TagValue := '0';
4787 	vCtr := vCtr + 1;
4788 
4789 	vXMLTable(vCtr).TagName := 'P10_d6_ant';
4790 	vXMLTable(vCtr).TagValue := '0';
4791 	vCtr := vCtr + 1;
4792 
4793 	vXMLTable(vCtr).TagName := 'P10_d7_cmp';
4794 	vXMLTable(vCtr).TagValue := '0';
4795 	vCtr := vCtr + 1;
4796 
4797 	vXMLTable(vCtr).TagName := 'P10_d7_ant';
4798 	vXMLTable(vCtr).TagValue := '0';
4799 	vCtr := vCtr + 1;
4800 
4801 	-- Total Resources
4802 
4803 	l_p10_d_cmp := l_p10_d1_cmp + l_p10_d2_cmp + l_p10_d3_cmp + l_total_count + l_p10_d5_cmp;
4804 	l_p10_d_ant := l_p10_d1_ant + l_p10_d2_ant + l_p10_d3_ant + l_tot_prsn + l_p10_d5_ant;
4805 
4806 
4807 	vXMLTable(vCtr).TagName := 'P10_d_cmp';
4808 	vXMLTable(vCtr).TagValue := to_char(l_p10_d_cmp);
4809 	vCtr := vCtr + 1;
4810 
4811 	vXMLTable(vCtr).TagName := 'P10_d_ant';
4812 	vXMLTable(vCtr).TagValue := to_char(l_p10_d_ant);
4813 	vCtr := vCtr + 1;
4814 	fnd_file.put_line(fnd_file.log,'Finished populating Part10 - Resources');
4815 	-- Techniques used
4816 	-- Mediation
4817 	FOR cur_ctr IN cur_techniques(p_from_date, p_to_date,'10','40', p_agency_code) LOOP
4818 		l_p10_e1_cmp := cur_ctr.p10_cnt;
4819 		l_p10_e1_ant := cur_ctr.p10_prsn;
4820 		l_p10_e1_day := cur_ctr.p10_days;
4821 	END LOOP;
4822 
4823 	vXMLTable(vCtr).TagName := 'P10_e1_cmp';
4824 	vXMLTable(vCtr).TagValue := to_char(l_p10_e1_cmp);
4825 	vCtr := vCtr + 1;
4826 
4827 	vXMLTable(vCtr).TagName := 'P10_e1_ant';
4828 	vXMLTable(vCtr).TagValue := to_char(l_p10_e1_ant);
4829 	vCtr := vCtr + 1;
4830 
4831 	IF (l_p10_e1_day IS NULL) THEN
4832 	   l_p10_e1_day := 0;
4833 	END IF;
4834 
4835 	vXMLTable(vCtr).TagName := 'P10_e1_day';
4836 	vXMLTable(vCtr).TagValue := to_char(l_p10_e1_day);
4837 	vCtr := vCtr + 1;
4838 
4839 	-- Average Days
4840 /*	IF (l_p10_e1_cmp > 0) THEN
4841 		l_P10_e1_avg := CEIL(l_p10_e1_day/l_p10_e1_cmp);
4842 	ELSE
4843 		l_P10_e1_avg := 0;
4844 	END IF;
4845 	vXMLTable(vCtr).TagName := 'P10_e1_avg';
4846 	vXMLTable(vCtr).TagValue := to_char(l_P10_e1_avg);
4847 	vCtr := vCtr + 1;
4848 */
4849 
4850 	-- Settlement Conferences
4851 	FOR cur_ctr IN cur_techniques(p_from_date, p_to_date,'10','100', p_agency_code) LOOP
4852 		l_p10_e2_cmp := cur_ctr.p10_cnt;
4853 		l_p10_e2_ant := cur_ctr.p10_prsn;
4854 		l_p10_e2_day := cur_ctr.p10_days;
4855 	END LOOP;
4856 
4857 	vXMLTable(vCtr).TagName := 'P10_e2_cmp';
4858 	vXMLTable(vCtr).TagValue := to_char(l_p10_e2_cmp);
4859 	vCtr := vCtr + 1;
4860 
4861 	vXMLTable(vCtr).TagName := 'P10_e2_ant';
4862 	vXMLTable(vCtr).TagValue := to_char(l_p10_e2_ant);
4863 	vCtr := vCtr + 1;
4864 
4865 	IF (l_p10_e2_day IS NULL) THEN
4866 	   l_p10_e2_day := 0;
4867 	END IF;
4868 
4869 	vXMLTable(vCtr).TagName := 'P10_e2_day';
4870 	vXMLTable(vCtr).TagValue := to_char(l_p10_e2_day);
4871 	vCtr := vCtr + 1;
4872 
4873 	-- Average Days
4874 /*	IF (l_p10_e2_cmp > 0) THEN
4875 		l_P10_e2_avg := CEIL(l_p10_e2_day/l_p10_e2_cmp);
4876 	ELSE
4877 		l_P10_e2_avg := 0;
4878 	END IF;
4879 	vXMLTable(vCtr).TagName := 'P10_e2_avg';
4880 	vXMLTable(vCtr).TagValue := to_char(l_P10_e2_avg);
4881 	vCtr := vCtr + 1;
4882 */
4883 	-- Early Neutral evaluations
4884 	FOR cur_ctr IN cur_techniques(p_from_date, p_to_date,'10','10', p_agency_code) LOOP
4885 		l_p10_e3_cmp := cur_ctr.p10_cnt;
4886 		l_p10_e3_ant := cur_ctr.p10_prsn;
4887 		l_p10_e3_day := cur_ctr.p10_days;
4888 	END LOOP;
4889 
4890 	vXMLTable(vCtr).TagName := 'P10_e3_cmp';
4891 	vXMLTable(vCtr).TagValue := to_char(l_p10_e3_cmp);
4892 	vCtr := vCtr + 1;
4893 
4894 	vXMLTable(vCtr).TagName := 'P10_e3_ant';
4895 	vXMLTable(vCtr).TagValue := to_char(l_p10_e3_ant);
4896 	vCtr := vCtr + 1;
4897 
4898 	IF (l_p10_e3_day IS NULL) THEN
4899 	   l_p10_e3_day := 0;
4900 	END IF;
4901 
4902 	vXMLTable(vCtr).TagName := 'P10_e3_day';
4903 	vXMLTable(vCtr).TagValue := to_char(l_p10_e3_day);
4904 	vCtr := vCtr + 1;
4905 
4906 	-- Average Days
4907 /*	IF (l_p10_e3_cmp > 0) THEN
4908 		l_P10_e3_avg := CEIL(l_p10_e3_day/l_p10_e3_cmp);
4909 	ELSE
4910 		l_P10_e3_avg := 0;
4911 	END IF;
4912 	vXMLTable(vCtr).TagName := 'P10_e3_avg';
4913 	vXMLTable(vCtr).TagValue := to_char(l_P10_e3_avg);
4914 	vCtr := vCtr + 1;
4915 */
4916 	-- Factfinding
4917 
4918 	FOR cur_ctr IN cur_techniques(p_from_date, p_to_date,'10','30', p_agency_code) LOOP
4919 		l_p10_e4_cmp := cur_ctr.p10_cnt;
4920 		l_p10_e4_ant := cur_ctr.p10_prsn;
4921 		l_p10_e4_day := cur_ctr.p10_days;
4922 	END LOOP;
4923 
4924 	vXMLTable(vCtr).TagName := 'P10_e4_cmp';
4925 	vXMLTable(vCtr).TagValue := to_char(l_p10_e4_cmp);
4926 	vCtr := vCtr + 1;
4927 
4928 	vXMLTable(vCtr).TagName := 'P10_e4_ant';
4929 	vXMLTable(vCtr).TagValue := to_char(l_p10_e4_ant);
4930 	vCtr := vCtr + 1;
4931 
4932 	IF (l_p10_e4_day IS NULL) THEN
4933 	   l_p10_e4_day := 0;
4934 	END IF;
4935 
4936 	vXMLTable(vCtr).TagName := 'P10_e4_day';
4937 	vXMLTable(vCtr).TagValue := to_char(l_p10_e4_day);
4938 	vCtr := vCtr + 1;
4939 
4940 	-- Average Days
4941 /*	IF (l_p10_e4_cmp > 0) THEN
4942 		l_P10_e4_avg := CEIL(l_p10_e4_day/l_p10_e4_cmp);
4943 	ELSE
4944 		l_P10_e4_avg := 0;
4945 	END IF;
4946 	vXMLTable(vCtr).TagName := 'P10_e4_avg';
4947 	vXMLTable(vCtr).TagValue := to_char(l_P10_e4_avg);
4948 	vCtr := vCtr + 1;
4949 */
4950 	-- Facilitation
4951 	FOR cur_ctr IN cur_techniques(p_from_date, p_to_date,'10','20', p_agency_code) LOOP
4952 		l_p10_e5_cmp := cur_ctr.p10_cnt;
4953 		l_p10_e5_ant := cur_ctr.p10_prsn;
4954 		l_p10_e5_day := cur_ctr.p10_days;
4955 	END LOOP;
4956 
4957 	vXMLTable(vCtr).TagName := 'P10_e5_cmp';
4958 	vXMLTable(vCtr).TagValue := to_char(l_p10_e5_cmp);
4959 	vCtr := vCtr + 1;
4960 
4961 	vXMLTable(vCtr).TagName := 'P10_e5_ant';
4962 	vXMLTable(vCtr).TagValue := to_char(l_p10_e5_ant);
4963 	vCtr := vCtr + 1;
4964 
4965 	IF (l_p10_e5_day IS NULL) THEN
4966 	   l_p10_e5_day := 0;
4967 	END IF;
4968 
4969 	vXMLTable(vCtr).TagName := 'P10_e5_day';
4970 	vXMLTable(vCtr).TagValue := to_char(l_p10_e5_day);
4971 	vCtr := vCtr + 1;
4972 
4973 	-- Average Days
4974 /*	IF (l_p10_e5_cmp > 0) THEN
4975 		l_P10_e5_avg := CEIL(l_p10_e5_day/l_p10_e5_cmp);
4976 	ELSE
4977 		l_P10_e5_avg := 0;
4978 	END IF;
4979 	vXMLTable(vCtr).TagName := 'P10_e5_avg';
4980 	vXMLTable(vCtr).TagValue := to_char(l_P10_e5_avg);
4981 	vCtr := vCtr + 1;
4982 */
4983 	-- Ombudsman
4984 	FOR cur_ctr IN cur_techniques(p_from_date, p_to_date,'10','80', p_agency_code) LOOP
4985 		l_p10_e6_cmp := cur_ctr.p10_cnt;
4986 		l_p10_e6_ant := cur_ctr.p10_prsn;
4987 		l_p10_e6_day := cur_ctr.p10_days;
4988 	END LOOP;
4989 
4990 	vXMLTable(vCtr).TagName := 'P10_e6_cmp';
4991 	vXMLTable(vCtr).TagValue := to_char(l_p10_e6_cmp);
4992 	vCtr := vCtr + 1;
4993 
4994 	vXMLTable(vCtr).TagName := 'P10_e6_ant';
4995 	vXMLTable(vCtr).TagValue := to_char(l_p10_e6_ant);
4996 	vCtr := vCtr + 1;
4997 
4998 	IF (l_p10_e6_day IS NULL) THEN
4999 	   l_p10_e6_day := 0;
5000 	END IF;
5001 
5002 	vXMLTable(vCtr).TagName := 'P10_e6_day';
5003 	vXMLTable(vCtr).TagValue := to_char(l_p10_e6_day);
5004 	vCtr := vCtr + 1;
5005 
5006 	-- Average Days
5007 /*	IF (l_p10_e6_cmp > 0) THEN
5008 		l_P10_e6_avg := CEIL(l_p10_e6_day/l_p10_e6_cmp);
5009 	ELSE
5010 		l_P10_e6_avg := 0;
5011 	END IF;
5012 	vXMLTable(vCtr).TagName := 'P10_e6_avg';
5013 	vXMLTable(vCtr).TagValue := to_char(l_P10_e6_avg);
5014 	vCtr := vCtr + 1;
5015 */
5016 	-- Mini-trials
5017 	FOR cur_ctr IN cur_techniques(p_from_date, p_to_date,'10','60', p_agency_code) LOOP
5018 		l_p10_e7_cmp := cur_ctr.p10_cnt;
5019 		l_p10_e7_ant := cur_ctr.p10_prsn;
5020 		l_p10_e7_day := cur_ctr.p10_days;
5021 	END LOOP;
5022 
5023 	vXMLTable(vCtr).TagName := 'P10_e7_cmp';
5024 	vXMLTable(vCtr).TagValue := to_char(l_p10_e7_cmp);
5025 	vCtr := vCtr + 1;
5026 
5027 	vXMLTable(vCtr).TagName := 'P10_e7_ant';
5028 	vXMLTable(vCtr).TagValue := to_char(l_p10_e7_ant);
5029 	vCtr := vCtr + 1;
5030 
5031 	IF (l_p10_e7_day IS NULL) THEN
5032 	   l_p10_e7_day := 0;
5033 	END IF;
5034 
5035 
5036 	vXMLTable(vCtr).TagName := 'P10_e7_day';
5037 	vXMLTable(vCtr).TagValue := to_char(l_p10_e7_day);
5038 	vCtr := vCtr + 1;
5039 
5040 	-- Average Days
5041 /*	IF (l_p10_e7_cmp > 0) THEN
5042 		l_P10_e7_avg := CEIL(l_p10_e7_day/l_p10_e7_cmp);
5043 	ELSE
5044 		l_P10_e7_avg := 0;
5045 	END IF;
5046 	vXMLTable(vCtr).TagName := 'P10_e7_avg';
5047 	vXMLTable(vCtr).TagValue := to_char(l_P10_e7_avg);
5048 	vCtr := vCtr + 1;
5049 */
5050 	-- Peer review
5051 	FOR cur_ctr IN cur_techniques(p_from_date, p_to_date,'10','90', p_agency_code) LOOP
5052 		l_p10_e8_cmp := cur_ctr.p10_cnt;
5053 		l_p10_e8_ant := cur_ctr.p10_prsn;
5054 		l_p10_e8_day := cur_ctr.p10_days;
5055 	END LOOP;
5056 
5057 	vXMLTable(vCtr).TagName := 'P10_e8_cmp';
5058 	vXMLTable(vCtr).TagValue := to_char(l_p10_e8_cmp);
5059 	vCtr := vCtr + 1;
5060 
5061 	vXMLTable(vCtr).TagName := 'P10_e8_ant';
5062 	vXMLTable(vCtr).TagValue := to_char(l_p10_e8_ant);
5063 	vCtr := vCtr + 1;
5064 
5065 	IF (l_p10_e8_day IS NULL) THEN
5066 	   l_p10_e8_day := 0;
5067 	END IF;
5068 
5069 	vXMLTable(vCtr).TagName := 'P10_e8_day';
5070 	vXMLTable(vCtr).TagValue := to_char(l_p10_e8_day);
5071 	vCtr := vCtr + 1;
5072 
5073 	-- Average Days
5074 /*	IF (l_p10_e8_cmp > 0) THEN
5075 		l_P10_e8_avg := CEIL(l_p10_e8_day/l_p10_e8_cmp);
5076 	ELSE
5077 		l_P10_e8_avg := 0;
5078 	END IF;
5079 	vXMLTable(vCtr).TagName := 'P10_e8_avg';
5080 	vXMLTable(vCtr).TagValue := to_char(l_P10_e8_avg);
5081 	vCtr := vCtr + 1;
5082 */
5083 	-- Other
5084 
5085 	FOR cur_ctr IN cur_techniques(p_from_date, p_to_date,'10','70', p_agency_code) LOOP
5086 		l_p10_e10_cmp := cur_ctr.p10_cnt;
5087 		l_p10_e10_ant := cur_ctr.p10_prsn;
5088 		l_p10_e10_day := cur_ctr.p10_days;
5089 	END LOOP;
5090 
5091 	vXMLTable(vCtr).TagName := 'P10_e10_cmp';
5092 	vXMLTable(vCtr).TagValue := to_char(l_p10_e10_cmp);
5093 	vCtr := vCtr + 1;
5094 
5095 	vXMLTable(vCtr).TagName := 'P10_e10_ant';
5096 	vXMLTable(vCtr).TagValue := to_char(l_p10_e10_ant);
5097 	vCtr := vCtr + 1;
5098 
5099 	IF (l_p10_e10_day IS NULL) THEN
5100 	   l_p10_e10_day := 0;
5101 	END IF;
5102 
5103 	vXMLTable(vCtr).TagName := 'P10_e10_day';
5104 	vXMLTable(vCtr).TagValue := to_char(l_p10_e10_day);
5105 	vCtr := vCtr + 1;
5106 
5107 	-- Average Days
5108 /*	IF (l_p10_e10_cmp > 0) THEN
5109 		l_P10_e10_avg := CEIL(l_p10_e10_day/l_p10_e10_cmp);
5110 	ELSE
5111 		l_P10_e10_avg := 0;
5112 	END IF;
5113 	vXMLTable(vCtr).TagName := 'P10_e10_avg';
5114 	vXMLTable(vCtr).TagValue := to_char(l_P10_e10_avg);
5115 	vCtr := vCtr + 1;
5116 */
5117 	-- Multiple Techniques
5118 
5119 	l_total_count := 0;
5120 	l_total_days := 0;
5121 	l_old_cmp_id := 0;
5122 	l_old_days := 0;
5123 	l_ctr := 1;
5124 	v_temp.DELETE;
5125 
5126 
5127 	FOR cur_ctr IN cur_multitechniques(p_from_date, p_to_date,'10', p_agency_code) LOOP
5128 		IF (cur_ctr.technique = '50') THEN
5129 			v_temp(l_ctr).complaint_id := cur_ctr.complaint_id;
5130 			l_total_count := l_total_count + 1;
5131 			l_total_days := l_total_days + cur_ctr.p10_days;
5132 			l_old_cmp_id := cur_ctr.complaint_id;
5133 			l_old_days := cur_ctr.p10_days;
5134 			l_ctr := l_ctr + 1;
5135 		ELSE
5136 			l_new_cmp_id := cur_ctr.complaint_id;
5137 			IF (l_old_cmp_id = l_new_cmp_id) THEN
5138 				-- Search whether entry for the same complaint exist already, if exists update the same.
5139 				l_lb_flag := 0 ;
5140 				IF (v_temp.COUNT > 0) THEN
5141 					FOR l_ctr1 IN v_temp.FIRST .. v_temp.LAST LOOP
5142 					   IF (v_temp(l_ctr1).complaint_id = l_new_cmp_id) THEN
5143 						  l_total_count := l_total_count + 1;
5144 						  l_total_days := l_total_days + cur_ctr.p10_days;
5145 						  l_lb_flag := 1;
5146 					   END IF;
5147 					END LOOP;
5148 				END IF;
5149 				-- If the complaint doesnt exist already, add new entry.
5150 				IF (l_lb_flag = 0) THEN
5151 				    v_temp(l_ctr).complaint_id := cur_ctr.complaint_id;
5152 					l_total_count := l_total_count + 2;
5153 					l_total_days := l_total_days + l_old_days + cur_ctr.p10_days;
5154 				END IF;
5155 			END IF;
5156 			l_old_cmp_id := cur_ctr.complaint_id;
5157 			l_old_days := cur_ctr.p10_days;
5158 		END IF;
5159 	END LOOP;
5160 
5161 	-- To Find out the complainants for these complaints
5162 	l_sql_str := '';
5163 
5164 	IF (v_temp.COUNT > 0) THEN
5165 		l_sql_str := v_temp(1).complaint_id;
5166 	END IF;
5167 
5168 	IF (v_temp.COUNT > 1) THEN
5169 		FOR l_ctr  IN 2 .. v_temp.COUNT LOOP
5170 		   l_sql_str := l_sql_str || ',' || to_char(v_temp(l_ctr).complaint_id);
5171 		END LOOP;
5172 	END IF;
5173 	IF (l_sql_str IS NOT NULL) THEN
5174 		l_sql_str := 'SELECT COUNT(distinct nvl(cmp.complainant_person_id,0)) FROM GHR_COMPLAINTS2 cmp  WHERE cmp.complaint_id in (' || l_sql_str || ')';
5175 		OPEN l_prsn_cur FOR l_sql_str;
5176 		FETCH l_prsn_cur INTO l_tot_prsn;
5177 		CLOSE l_prsn_cur;
5178 	END IF;
5179 
5180 	--------- End Multiple Techniques
5181 
5182 	vXMLTable(vCtr).TagName := 'P10_e9_cmp';
5183 	vXMLTable(vCtr).TagValue := to_char(l_total_count);
5184 	vCtr := vCtr + 1;
5185 
5186 	vXMLTable(vCtr).TagName := 'P10_e9_ant';
5187 	vXMLTable(vCtr).TagValue := to_char(l_tot_prsn);
5188 	vCtr := vCtr + 1;
5189 
5190 	IF (l_total_days IS NULL) THEN
5191 	   l_total_days := 0;
5192 	END IF;
5193 
5194 	vXMLTable(vCtr).TagName := 'P10_e9_day';
5195 	vXMLTable(vCtr).TagValue := to_char(l_total_days);
5196 	vCtr := vCtr + 1;
5197 
5198 	-- Average Days
5199 /*	IF (l_total_count > 0) THEN
5200 		l_P10_e9_avg := CEIL(l_total_days/l_total_count);
5201 	ELSE
5202 		l_P10_e9_avg := 0;
5203 	END IF;
5204 	vXMLTable(vCtr).TagName := 'P10_e9_avg';
5205 	vXMLTable(vCtr).TagValue := to_char(l_P10_e9_avg);
5206 	vCtr := vCtr + 1;
5207 */
5208 	-- Filling zeroes for other fields
5209 	vXMLTable(vCtr).TagName := 'P10_e11_cmp';
5210 	vXMLTable(vCtr).TagValue := '0';
5211 	vCtr := vCtr + 1;
5212 
5213 	vXMLTable(vCtr).TagName := 'P10_e11_ant';
5214 	vXMLTable(vCtr).TagValue := '0';
5215 	vCtr := vCtr + 1;
5216 
5217 	vXMLTable(vCtr).TagName := 'P10_e11_day';
5218 	vXMLTable(vCtr).TagValue := '0';
5219 	vCtr := vCtr + 1;
5220 
5221 /*	vXMLTable(vCtr).TagName := 'P10_e11_avg';
5222 	vXMLTable(vCtr).TagValue := '0';
5223 	vCtr := vCtr + 1;
5224 */
5225 	vXMLTable(vCtr).TagName := 'P10_e12_cmp';
5226 	vXMLTable(vCtr).TagValue := '0';
5227 	vCtr := vCtr + 1;
5228 
5229 	vXMLTable(vCtr).TagName := 'P10_e12_ant';
5230 	vXMLTable(vCtr).TagValue := '0';
5231 	vCtr := vCtr + 1;
5232 
5233 	vXMLTable(vCtr).TagName := 'P10_e12_day';
5234 	vXMLTable(vCtr).TagValue := '0';
5235 	vCtr := vCtr + 1;
5236 
5237 /*	vXMLTable(vCtr).TagName := 'P10_e12_avg';
5238 	vXMLTable(vCtr).TagValue := '0';
5239 	vCtr := vCtr + 1;
5240 */
5241 	l_p10_e_cmp :=  l_p10_e1_cmp + l_p10_e2_cmp + l_p10_e3_cmp + l_p10_e4_cmp + l_p10_e5_cmp + l_p10_e6_cmp + l_p10_e7_cmp + l_p10_e8_cmp + l_total_count + l_p10_e10_cmp;
5245 	vXMLTable(vCtr).TagName := 'P10_e_cmp';
5242 	l_p10_e_ant := l_p10_e1_ant + l_p10_e2_ant + l_p10_e3_ant + l_p10_e4_ant + l_p10_e5_ant + l_p10_e6_ant + l_p10_e7_ant + l_p10_e8_ant + l_tot_prsn + l_p10_e10_ant;
5243 	l_p10_e_day := l_p10_e1_day + l_p10_e2_day + l_p10_e3_day + l_p10_e4_day + l_p10_e5_day + l_p10_e6_day + l_p10_e7_day + l_p10_e8_day + l_total_days + l_p10_e10_day;
5244 
5246 	vXMLTable(vCtr).TagValue := to_char(l_p10_e_cmp);
5247 	vCtr := vCtr + 1;
5248 
5249 	vXMLTable(vCtr).TagName := 'P10_e_ant';
5250 	vXMLTable(vCtr).TagValue := to_char(l_p10_e_ant);
5251 	vCtr := vCtr + 1;
5252 
5253 	vXMLTable(vCtr).TagName := 'P10_e_day';
5254 	vXMLTable(vCtr).TagValue := to_char(l_p10_e_day);
5255 	vCtr := vCtr + 1;
5256 
5257 	-- Average Days
5258 /*	IF (l_p10_e_cmp > 0) THEN
5259 		l_P10_e_avg := CEIL(l_p10_e_day/l_p10_e_cmp);
5260 	END IF;
5261 	vXMLTable(vCtr).TagName := 'P10_e_avg';
5262 	vXMLTable(vCtr).TagValue := to_char(l_P10_e_avg);
5263 	vCtr := vCtr + 1;
5264 */
5265 	fnd_file.put_line(fnd_file.log,'Finished populating Part10 - Techniques');
5266 	-- Status of Cases
5267 	-- Settlement with benefits
5268 	FOR cur_ctr IN cur_case_status_settle(p_from_date, p_to_date,'10', p_agency_code) LOOP
5269 		l_p10_f1a_cmp := cur_ctr.p10_cnt;
5270 		l_p10_f1a_ant := cur_ctr.p10_prsn;
5271 		l_p10_f1a_day := cur_ctr.p10_days;
5272 	END LOOP;
5273 
5274 	vXMLTable(vCtr).TagName := 'P10_f1a_cmp';
5275 	vXMLTable(vCtr).TagValue := to_char(l_p10_f1a_cmp);
5276 	vCtr := vCtr + 1;
5277 
5278 	vXMLTable(vCtr).TagName := 'P10_f1a_ant';
5279 	vXMLTable(vCtr).TagValue := to_char(l_p10_f1a_ant);
5280 	vCtr := vCtr + 1;
5281 
5282 	IF (l_p10_f1a_day IS NULL) THEN
5283 	   l_p10_f1a_day := 0;
5284 	END IF;
5285 
5286 	vXMLTable(vCtr).TagName := 'P10_f1a_day';
5287 	vXMLTable(vCtr).TagValue := to_char(l_p10_f1a_day);
5288 	vCtr := vCtr + 1;
5289 
5290 	-- Average Days
5291 /*	IF (l_p10_f1a_cmp > 0) THEN
5292 		l_P10_f1a_avg := CEIL(l_p10_f1a_day/l_p10_f1a_cmp);
5293 	ELSE
5294 		l_P10_f1a_avg := 0;
5295 	END IF;
5296 	vXMLTable(vCtr).TagName := 'P10_f1a_avg';
5297 	vXMLTable(vCtr).TagValue := to_char(l_P10_f1a_avg);
5298 	vCtr := vCtr + 1;
5299 */
5300 	-- Notice of Right to file(Did not file formal complaint)
5301 	FOR cur_ctr IN cur_case_status(p_from_date, p_to_date,'10','20', p_agency_code) LOOP
5302 		l_p10_f1b_cmp := cur_ctr.p10_cnt;
5303 		l_p10_f1b_ant := cur_ctr.p10_prsn;
5304 		l_p10_f1b_day := cur_ctr.p10_days;
5305 	END LOOP;
5306 
5307 	vXMLTable(vCtr).TagName := 'P10_f1b_cmp';
5308 	vXMLTable(vCtr).TagValue := to_char(l_p10_f1b_cmp);
5309 	vCtr := vCtr + 1;
5310 
5311 	vXMLTable(vCtr).TagName := 'P10_f1b_ant';
5312 	vXMLTable(vCtr).TagValue := to_char(l_p10_f1b_ant);
5313 	vCtr := vCtr + 1;
5314 
5315 	IF (l_p10_f1b_day IS NULL) THEN
5316 	   l_p10_f1b_day := 0;
5317 	END IF;
5318 
5319 	vXMLTable(vCtr).TagName := 'P10_f1b_day';
5320 	vXMLTable(vCtr).TagValue := to_char(l_p10_f1b_day);
5321 	vCtr := vCtr + 1;
5322 
5323 	-- Average Days
5324 /*	IF (l_p10_f1b_cmp > 0) THEN
5325 		l_P10_f1b_avg := CEIL(l_p10_f1b_day/l_p10_f1b_cmp);
5326 	ELSE
5327 		l_P10_f1b_avg := 0;
5328 	END IF;
5329 	vXMLTable(vCtr).TagName := 'P10_f1b_avg';
5330 	vXMLTable(vCtr).TagValue := to_char(l_P10_f1b_avg);
5331 	vCtr := vCtr + 1;
5332 */
5333 	-- Notice of Right to file(Filed Formal complaint)
5334 	FOR cur_ctr IN cur_case_status(p_from_date, p_to_date,'10','25', p_agency_code) LOOP
5335 		l_p10_f1c_cmp := cur_ctr.p10_cnt;
5336 		l_p10_f1c_ant := cur_ctr.p10_prsn;
5337 		l_p10_f1c_day := cur_ctr.p10_days;
5338 	END LOOP;
5339 
5340 	vXMLTable(vCtr).TagName := 'P10_f1c_cmp';
5341 	vXMLTable(vCtr).TagValue := to_char(l_p10_f1c_cmp);
5342 	vCtr := vCtr + 1;
5343 
5344 	vXMLTable(vCtr).TagName := 'P10_f1c_ant';
5345 	vXMLTable(vCtr).TagValue := to_char(l_p10_f1c_ant);
5346 	vCtr := vCtr + 1;
5347 
5348 	IF (l_p10_f1c_day IS NULL) THEN
5349 	   l_p10_f1c_day := 0;
5350 	END IF;
5351 
5352 	vXMLTable(vCtr).TagName := 'P10_f1c_day';
5353 	vXMLTable(vCtr).TagValue := to_char(l_p10_f1c_day);
5354 	vCtr := vCtr + 1;
5355 
5356 	-- Average Days
5357 /*	IF (l_p10_f1c_cmp > 0) THEN
5358 		l_P10_f1c_avg := CEIL(l_p10_f1c_day/l_p10_f1c_cmp);
5359 	ELSE
5360 		l_P10_f1c_avg := 0;
5361 	END IF;
5362 	vXMLTable(vCtr).TagName := 'P10_f1c_avg';
5363 	vXMLTable(vCtr).TagValue := to_char(l_P10_f1c_avg);
5364 	vCtr := vCtr + 1;
5365 */
5366 
5367 	-- Other
5368 	FOR cur_ctr IN cur_case_status(p_from_date, p_to_date,'10','90', p_agency_code) LOOP
5369 		l_p10_f1d_cmp := cur_ctr.p10_cnt;
5370 		l_p10_f1d_ant := cur_ctr.p10_prsn;
5371 		l_p10_f1d_day := cur_ctr.p10_days;
5372 	END LOOP;
5373 
5374 	vXMLTable(vCtr).TagName := 'P10_f1d_cmp';
5375 	vXMLTable(vCtr).TagValue := to_char(l_p10_f1d_cmp);
5376 	vCtr := vCtr + 1;
5377 
5378 	vXMLTable(vCtr).TagName := 'P10_f1d_ant';
5379 	vXMLTable(vCtr).TagValue := to_char(l_p10_f1d_ant);
5380 	vCtr := vCtr + 1;
5381 
5382 	IF (l_p10_f1d_day IS NULL) THEN
5383 	   l_p10_f1d_day := 0;
5384 	END IF;
5385 
5386 	vXMLTable(vCtr).TagName := 'P10_f1d_day';
5387 	vXMLTable(vCtr).TagValue := to_char(l_p10_f1d_day);
5388 	vCtr := vCtr + 1;
5389 
5390 	-- Average Days
5391 /*	IF (l_p10_f1d_cmp > 0) THEN
5392 		l_P10_f1d_avg := CEIL(l_p10_f1d_day/l_p10_f1d_cmp);
5393 	ELSE
5394 		l_P10_f1d_avg := 0;
5395 	END IF;
5396 	vXMLTable(vCtr).TagName := 'P10_f1d_avg';
5397 	vXMLTable(vCtr).TagValue := to_char(l_P10_f1d_avg);
5398 	vCtr := vCtr + 1;
5399 */
5403 
5400 	vXMLTable(vCtr).TagName := 'P10_f1d_cmp';
5401 	vXMLTable(vCtr).TagValue := to_char(l_p10_f1d_cmp);
5402 	vCtr := vCtr + 1;
5404 	vXMLTable(vCtr).TagName := 'P10_f1d_ant';
5405 	vXMLTable(vCtr).TagValue := to_char(l_p10_f1d_ant);
5406 	vCtr := vCtr + 1;
5407 
5408 	-- Filling zeroes for other fields
5409 
5410 	vXMLTable(vCtr).TagName := 'P10_f1e_day';
5411 	vXMLTable(vCtr).TagValue := '0';
5412 	vCtr := vCtr + 1;
5413 
5414 /*	vXMLTable(vCtr).TagName := 'P10_f1e_avg';
5415 	vXMLTable(vCtr).TagValue := '0';
5416 	vCtr := vCtr + 1;
5417 */
5418 	vXMLTable(vCtr).TagName := 'P10_f1e_cmp';
5419 	vXMLTable(vCtr).TagValue := '0';
5420 	vCtr := vCtr + 1;
5421 
5422 	vXMLTable(vCtr).TagName := 'P10_f1e_ant';
5423 	vXMLTable(vCtr).TagValue := '0';
5424 	vCtr := vCtr + 1;
5425 
5426 	vXMLTable(vCtr).TagName := 'P10_f1f_day';
5427 	vXMLTable(vCtr).TagValue := '0';
5428 	vCtr := vCtr + 1;
5429 
5430 /*	vXMLTable(vCtr).TagName := 'P10_f1f_avg';
5431 	vXMLTable(vCtr).TagValue := '0';
5432 	vCtr := vCtr + 1;
5433 */
5434 	vXMLTable(vCtr).TagName := 'P10_f1f_cmp';
5435 	vXMLTable(vCtr).TagValue := '0';
5436 	vCtr := vCtr + 1;
5437 
5438 	vXMLTable(vCtr).TagName := 'P10_f1f_ant';
5439 	vXMLTable(vCtr).TagValue := '0';
5440 	vCtr := vCtr + 1;
5441 
5442 	-- Total Closed
5443 	l_p10_f1_cmp := l_p10_f1a_cmp + l_p10_f1b_cmp + l_p10_f1c_cmp + l_p10_f1d_cmp;
5444 	l_p10_f1_ant := l_p10_f1a_ant + l_p10_f1b_ant + l_p10_f1c_ant + l_p10_f1d_ant;
5445 	l_p10_f1_day := l_p10_f1a_day + l_p10_f1b_day + l_p10_f1c_day + l_p10_f1d_day;
5446 
5447 	vXMLTable(vCtr).TagName := 'P10_f1_cmp';
5448 	vXMLTable(vCtr).TagValue := to_char(l_p10_f1_cmp);
5449 	vCtr := vCtr + 1;
5450 
5451 	vXMLTable(vCtr).TagName := 'P10_f1_ant';
5452 	vXMLTable(vCtr).TagValue := to_char(l_p10_f1_ant);
5453 	vCtr := vCtr + 1;
5454 
5455 	IF (l_p10_f1_day IS NULL) THEN
5456 	   l_p10_f1_day := 0;
5457 	END IF;
5458 
5459 	vXMLTable(vCtr).TagName := 'P10_f1_day';
5460 	vXMLTable(vCtr).TagValue := to_char(l_p10_f1_day);
5461 	vCtr := vCtr + 1;
5462 
5463 	-- Average Days
5464 /*	IF (l_p10_f1_cmp > 0) THEN
5465 		l_P10_f1_avg := CEIL(l_p10_f1_day/l_p10_f1_cmp);
5466 	ELSE
5467 		l_P10_f1_avg := 0;
5468 	END IF;
5469 	vXMLTable(vCtr).TagName := 'P10_f1_avg';
5470 	vXMLTable(vCtr).TagValue := to_char(l_P10_f1_avg);
5471 	vCtr := vCtr + 1;
5472 */
5473 	fnd_file.put_line(fnd_file.log,'Finished populating Part10 - Closed Complaints');
5474 
5475 	-- Open inventory
5476 	-- Formula changed to A + C4 - F1
5477 /*	FOR cur_ctr IN cur_open_inventory(p_from_date, p_to_date,'10', p_agency_code) LOOP
5478 		l_p10_f2_cmp := cur_ctr.p10_cnt;
5479 		l_p10_f2_ant := cur_ctr.p10_prsn;
5480 		l_p10_f2_day := cur_ctr.p10_days;
5481 	END LOOP; */
5482 
5483 	l_p10_f2_cmp := l_p10_a_cmp + l_p10_c4_cmp - l_p10_f1_cmp;
5484 	l_p10_f2_ant := l_p10_a_ant + l_p10_c4_ant - l_p10_f1_ant;
5485 	l_p10_f2_day := l_p10_a_day + l_p10_c4_day - l_p10_f1_day;
5486 
5487 	vXMLTable(vCtr).TagName := 'P10_f2_cmp';
5488 	vXMLTable(vCtr).TagValue := to_char(l_p10_f2_cmp);
5489 	vCtr := vCtr + 1;
5490 
5491 	vXMLTable(vCtr).TagName := 'P10_f2_ant';
5492 	vXMLTable(vCtr).TagValue := to_char(l_p10_f2_ant);
5493 	vCtr := vCtr + 1;
5494 
5495 	IF (l_p10_f2_day IS NULL) THEN
5496 	   l_p10_f2_day := 0;
5497 	END IF;
5498 
5499 	vXMLTable(vCtr).TagName := 'P10_f2_day';
5500 	vXMLTable(vCtr).TagValue := to_char(l_p10_f2_day);
5501 	vCtr := vCtr + 1;
5502 
5503 	-- Average Days
5504 /*	IF (l_p10_f2_cmp > 0) THEN
5505 		l_P10_f2_avg := CEIL(l_p10_f2_day/l_p10_f2_cmp);
5506 	ELSE
5507 		l_P10_f2_avg := 0;
5508 	END IF;
5509 	vXMLTable(vCtr).TagName := 'P10_f2_avg';
5510 	vXMLTable(vCtr).TagValue := to_char(l_P10_f2_avg);
5511 	vCtr := vCtr + 1;
5512 */
5513 	fnd_file.put_line(fnd_file.log,'Finished populating Part10 - Open inventory');
5514 	-- Benefits Received
5515 	-- Compensatory Damages
5516 	FOR cur_ctr IN cur_benefits_pt2(p_from_date, p_to_date,'10','40','30','40', p_agency_code) LOOP
5517 		l_p10_g1a_cmp := cur_ctr.p10_cnt;
5518 		l_p10_g1a_ant := cur_ctr.p10_prsn;
5519 		l_p10_g1a_amt := cur_ctr.p10_amt;
5520 	END LOOP;
5521 
5522 	vXMLTable(vCtr).TagName := 'P10_g1a_cmp';
5523 	vXMLTable(vCtr).TagValue := to_char(l_p10_g1a_cmp);
5524 	vCtr := vCtr + 1;
5525 
5526 	vXMLTable(vCtr).TagName := 'P10_g1a_ant';
5527 	vXMLTable(vCtr).TagValue := to_char(l_p10_g1a_ant);
5528 	vCtr := vCtr + 1;
5529 
5530 	vXMLTable(vCtr).TagName := 'P10_g1a_amt';
5531 	vXMLTable(vCtr).TagValue := to_char(l_p10_g1a_amt);
5532 	vCtr := vCtr + 1;
5533 
5534 
5535 	-- BackPay and front pay
5536 	FOR cur_ctr IN cur_benefits(p_from_date, p_to_date,'10','40','20', p_agency_code) LOOP
5537 		l_p10_g1b_cmp := cur_ctr.p10_cnt;
5538 		l_p10_g1b_ant := cur_ctr.p10_prsn;
5539 		l_p10_g1b_amt := cur_ctr.p10_amt;
5540 	END LOOP;
5541 
5542 	vXMLTable(vCtr).TagName := 'P10_g1b_cmp';
5543 	vXMLTable(vCtr).TagValue := to_char(l_p10_g1b_cmp);
5544 	vCtr := vCtr + 1;
5545 
5546 	vXMLTable(vCtr).TagName := 'P10_g1b_ant';
5547 	vXMLTable(vCtr).TagValue := to_char(l_p10_g1b_ant);
5548 	vCtr := vCtr + 1;
5549 
5550 	vXMLTable(vCtr).TagName := 'P10_g1b_amt';
5551 	vXMLTable(vCtr).TagValue := to_char(l_p10_g1b_amt);
5552 	vCtr := vCtr + 1;
5553 
5554 	-- Lump Sum
5555 	FOR cur_ctr IN cur_benefits(p_from_date, p_to_date,'10','40','50', p_agency_code) LOOP
5556 		l_p10_g1c_cmp := cur_ctr.p10_cnt;
5557 		l_p10_g1c_ant := cur_ctr.p10_prsn;
5558 		l_p10_g1c_amt := cur_ctr.p10_amt;
5559 	END LOOP;
5560 
5561 	vXMLTable(vCtr).TagName := 'P10_g1c_cmp';
5562 	vXMLTable(vCtr).TagValue := to_char(l_p10_g1c_cmp);
5563 	vCtr := vCtr + 1;
5564 
5568 
5565 	vXMLTable(vCtr).TagName := 'P10_g1c_ant';
5566 	vXMLTable(vCtr).TagValue := to_char(l_p10_g1c_ant);
5567 	vCtr := vCtr + 1;
5569 	vXMLTable(vCtr).TagName := 'P10_g1c_amt';
5570 	vXMLTable(vCtr).TagValue := to_char(l_p10_g1c_amt);
5571 	vCtr := vCtr + 1;
5572 
5573 	-- Attorney's fees and costs
5574 	FOR cur_ctr IN cur_benefits(p_from_date, p_to_date,'10','40','10', p_agency_code) LOOP
5575 		l_p10_g1d_cmp := cur_ctr.p10_cnt;
5576 		l_p10_g1d_ant := cur_ctr.p10_prsn;
5577 		l_p10_g1d_amt := cur_ctr.p10_amt;
5578 	END LOOP;
5579 
5580 	vXMLTable(vCtr).TagName := 'P10_g1d_cmp';
5581 	vXMLTable(vCtr).TagValue := to_char(l_p10_g1d_cmp);
5582 	vCtr := vCtr + 1;
5583 
5584 	vXMLTable(vCtr).TagName := 'P10_g1d_ant';
5585 	vXMLTable(vCtr).TagValue := to_char(l_p10_g1d_ant);
5586 	vCtr := vCtr + 1;
5587 
5588 	vXMLTable(vCtr).TagName := 'P10_g1d_amt';
5589 	vXMLTable(vCtr).TagValue := to_char(l_p10_g1d_amt);
5590 	vCtr := vCtr + 1;
5591 
5592 	-- Other
5593 	FOR cur_ctr IN cur_benefits(p_from_date, p_to_date,'10','40','60', p_agency_code) LOOP
5594 		l_p10_g1e_cmp := cur_ctr.p10_cnt;
5595 		l_p10_g1e_ant := cur_ctr.p10_prsn;
5596 		l_p10_g1e_amt := cur_ctr.p10_amt;
5597 	END LOOP;
5598 
5599 	vXMLTable(vCtr).TagName := 'P10_g1e_cmp';
5600 	vXMLTable(vCtr).TagValue := to_char(l_p10_g1e_cmp);
5601 	vCtr := vCtr + 1;
5602 
5603 	vXMLTable(vCtr).TagName := 'P10_g1e_ant';
5604 	vXMLTable(vCtr).TagValue := to_char(l_p10_g1e_ant);
5605 	vCtr := vCtr + 1;
5606 
5607 	vXMLTable(vCtr).TagName := 'P10_g1e_amt';
5608 	vXMLTable(vCtr).TagValue := to_char(l_p10_g1e_amt);
5609 	vCtr := vCtr + 1;
5610 
5611 	-- Filling zeroes in other fields
5612 
5613 	vXMLTable(vCtr).TagName := 'P10_g1f_cmp';
5614 	vXMLTable(vCtr).TagValue := '0';
5615 	vCtr := vCtr + 1;
5616 
5617 	vXMLTable(vCtr).TagName := 'P10_g1f_ant';
5618 	vXMLTable(vCtr).TagValue := '0';
5619 	vCtr := vCtr + 1;
5620 
5621 	vXMLTable(vCtr).TagName := 'P10_g1f_amt';
5622 	vXMLTable(vCtr).TagValue := '0';
5623 	vCtr := vCtr + 1;
5624 
5625 	vXMLTable(vCtr).TagName := 'P10_g1g_cmp';
5626 	vXMLTable(vCtr).TagValue := '0';
5627 	vCtr := vCtr + 1;
5628 
5629 	vXMLTable(vCtr).TagName := 'P10_g1g_ant';
5630 	vXMLTable(vCtr).TagValue := '0';
5631 	vCtr := vCtr + 1;
5632 
5633 	vXMLTable(vCtr).TagName := 'P10_g1g_amt';
5634 	vXMLTable(vCtr).TagValue := '0';
5635 	vCtr := vCtr + 1;
5636 
5637 
5638 	FOR cur_ctr IN cur_tot_benefits(p_from_date, p_to_date,'10','40', p_agency_code) LOOP
5639 		l_p10_g1_cmp := cur_ctr.p10_cnt;
5640 		l_p10_g1_ant := cur_ctr.p10_prsn;
5641 	END LOOP;
5642 
5643 --	l_p10_5a_cmp := l_p10_5a1_cmp + l_p10_5a2_cmp + l_p10_5a3_cmp + l_p10_5a4_cmp + l_p10_5a5_cmp;
5644 --	l_p10_5a_ant := l_p10_5a1_ant + l_p10_5a2_ant + l_p10_5a3_ant + l_p10_5a4_ant + l_p10_5a5_ant;
5645 	l_p10_g1_amt := l_p10_g1a_amt + l_p10_g1b_amt + l_p10_g1c_amt + l_p10_g1d_amt + l_p10_g1e_amt;
5646 
5647 	vXMLTable(vCtr).TagName := 'P10_g1_cmp';
5648 	vXMLTable(vCtr).TagValue := to_char(l_p10_g1_cmp);
5649 	vCtr := vCtr + 1;
5650 
5651 	vXMLTable(vCtr).TagName := 'P10_g1_ant';
5652 	vXMLTable(vCtr).TagValue := to_char(l_p10_g1_ant);
5653 	vCtr := vCtr + 1;
5654 
5655 	vXMLTable(vCtr).TagName := 'P10_g1_amt';
5656 	vXMLTable(vCtr).TagValue := to_char(l_p10_g1_amt);
5657 	vCtr := vCtr + 1;
5658 	fnd_file.put_line(fnd_file.log,'Finished populating Part10 - Benefits received Monetary');
5659 	-- Non-Monetary
5660 	-- New Hires
5661 	FOR cur_ctr IN cur_benefits_nm_pt2(p_from_date, p_to_date,'10','40','70','80', p_agency_code) LOOP
5662 		l_p10_g2a_cmp := cur_ctr.p10_cnt;
5663 		l_p10_g2a_ant := cur_ctr.p10_prsn;
5664 	END LOOP;
5665 
5666 	vXMLTable(vCtr).TagName := 'P10_g2a_cmp';
5667 	vXMLTable(vCtr).TagValue := to_char(l_p10_g2a_cmp);
5668 	vCtr := vCtr + 1;
5669 
5670 	vXMLTable(vCtr).TagName := 'P10_g2a_ant';
5671 	vXMLTable(vCtr).TagValue := to_char(l_p10_g2a_ant);
5672 	vCtr := vCtr + 1;
5673 
5674 	-- Promotions
5675 	FOR cur_ctr IN cur_benefits_nm_pt2(p_from_date, p_to_date,'10','40','130','140', p_agency_code) LOOP
5676 		l_p10_g2b_cmp := cur_ctr.p10_cnt;
5677 		l_p10_g2b_ant := cur_ctr.p10_prsn;
5678 	END LOOP;
5679 
5680 	vXMLTable(vCtr).TagName := 'P10_g2b_cmp';
5681 	vXMLTable(vCtr).TagValue := to_char(l_p10_g2b_cmp);
5682 	vCtr := vCtr + 1;
5683 
5684 	vXMLTable(vCtr).TagName := 'P10_g2b_ant';
5685 	vXMLTable(vCtr).TagValue := to_char(l_p10_g2b_ant);
5686 	vCtr := vCtr + 1;
5687 
5688 	-- Reinstatements
5689 	FOR cur_ctr IN cur_benefits_nm(p_from_date, p_to_date,'10','40','160', p_agency_code) LOOP
5690 		l_p10_g2c_cmp := cur_ctr.p10_cnt;
5691 		l_p10_g2c_ant := cur_ctr.p10_prsn;
5692 	END LOOP;
5693 
5694 	vXMLTable(vCtr).TagName := 'P10_g2c_cmp';
5695 	vXMLTable(vCtr).TagValue := to_char(l_p10_g2c_cmp);
5696 	vCtr := vCtr + 1;
5697 
5698 	vXMLTable(vCtr).TagName := 'P10_g2c_ant';
5699 	vXMLTable(vCtr).TagValue := to_char(l_p10_g2c_ant);
5700 	vCtr := vCtr + 1;
5701 
5702 	-- Expungements
5703 	FOR cur_ctr IN cur_benefits_nm(p_from_date, p_to_date,'10','40','60', p_agency_code) LOOP
5704 		l_p10_g2d_cmp := cur_ctr.p10_cnt;
5705 		l_p10_g2d_ant := cur_ctr.p10_prsn;
5706 	END LOOP;
5707 
5708 	vXMLTable(vCtr).TagName := 'P10_g2d_cmp';
5709 	vXMLTable(vCtr).TagValue := to_char(l_p10_g2d_cmp);
5710 	vCtr := vCtr + 1;
5711 
5712 	vXMLTable(vCtr).TagName := 'P10_g2d_ant';
5713 	vXMLTable(vCtr).TagValue := to_char(l_p10_g2d_ant);
5714 	vCtr := vCtr + 1;
5715 
5716 	-- Transfers
5717 	FOR cur_ctr IN cur_benefits_nm(p_from_date, p_to_date,'10','40','190', p_agency_code) LOOP
5718 		l_p10_g2e_cmp := cur_ctr.p10_cnt;
5719 		l_p10_g2e_ant := cur_ctr.p10_prsn;
5720 	END LOOP;
5721 
5722 	vXMLTable(vCtr).TagName := 'P10_g2e_cmp';
5726 	vXMLTable(vCtr).TagName := 'P10_g2e_ant';
5723 	vXMLTable(vCtr).TagValue := to_char(l_p10_g2e_cmp);
5724 	vCtr := vCtr + 1;
5725 
5727 	vXMLTable(vCtr).TagValue := to_char(l_p10_g2e_ant);
5728 	vCtr := vCtr + 1;
5729 
5730 	-- Removals Rescinded and Voluntary Resignations
5731 	FOR cur_ctr IN cur_benefits_nm(p_from_date, p_to_date,'10','40','170', p_agency_code) LOOP
5732 		l_p10_g2f_cmp := cur_ctr.p10_cnt;
5733 		l_p10_g2f_ant := cur_ctr.p10_prsn;
5734 	END LOOP;
5735 
5736 	vXMLTable(vCtr).TagName := 'P10_g2f_cmp';
5737 	vXMLTable(vCtr).TagValue := to_char(l_p10_g2f_cmp);
5738 	vCtr := vCtr + 1;
5739 
5740 	vXMLTable(vCtr).TagName := 'P10_g2f_ant';
5741 	vXMLTable(vCtr).TagValue := to_char(l_p10_g2f_ant);
5742 	vCtr := vCtr + 1;
5743 
5744 	-- Reasonable accomodations
5745 	FOR cur_ctr IN cur_benefits_nm(p_from_date, p_to_date,'10','40','10', p_agency_code) LOOP
5746 		l_p10_g2g_cmp := cur_ctr.p10_cnt;
5747 		l_p10_g2g_ant := cur_ctr.p10_prsn;
5748 	END LOOP;
5749 
5750 	vXMLTable(vCtr).TagName := 'P10_g2g_cmp';
5751 	vXMLTable(vCtr).TagValue := to_char(l_p10_g2g_cmp);
5752 	vCtr := vCtr + 1;
5753 
5754 	vXMLTable(vCtr).TagName := 'P10_g2g_ant';
5755 	vXMLTable(vCtr).TagValue := to_char(l_p10_g2g_ant);
5756 	vCtr := vCtr + 1;
5757 
5758 
5759 	-- Training
5760 	FOR cur_ctr IN cur_benefits_nm(p_from_date, p_to_date,'10','40','180', p_agency_code) LOOP
5761 		l_p10_g2h_cmp := cur_ctr.p10_cnt;
5762 		l_p10_g2h_ant := cur_ctr.p10_prsn;
5763 	END LOOP;
5764 
5765 	vXMLTable(vCtr).TagName := 'P10_g2h_cmp';
5766 	vXMLTable(vCtr).TagValue := to_char(l_p10_g2h_cmp);
5767 	vCtr := vCtr + 1;
5768 
5769 	vXMLTable(vCtr).TagName := 'P10_g2h_ant';
5770 	vXMLTable(vCtr).TagValue := to_char(l_p10_g2h_ant);
5771 	vCtr := vCtr + 1;
5772 
5773 	-- Apology
5774 	FOR cur_ctr IN cur_benefits_nm(p_from_date, p_to_date,'10','40','20', p_agency_code) LOOP
5775 		l_p10_g2i_cmp := cur_ctr.p10_cnt;
5776 		l_p10_g2i_ant := cur_ctr.p10_prsn;
5777 	END LOOP;
5778 
5779 	vXMLTable(vCtr).TagName := 'P10_g2i_cmp';
5780 	vXMLTable(vCtr).TagValue := to_char(l_p10_g2i_cmp);
5781 	vCtr := vCtr + 1;
5782 
5783 	vXMLTable(vCtr).TagName := 'P10_g2i_ant';
5784 	vXMLTable(vCtr).TagValue := to_char(l_p10_g2i_ant);
5785 	vCtr := vCtr + 1;
5786 
5787 	-- Other
5788 
5789 	FOR cur_ctr IN cur_benefits_nm(p_from_date, p_to_date,'10','40','100', p_agency_code) LOOP
5790 		l_p10_g2j_cmp := cur_ctr.p10_cnt;
5791 		l_p10_g2j_ant := cur_ctr.p10_prsn;
5792 	END LOOP;
5793 
5794 	vXMLTable(vCtr).TagName := 'P10_g2j_cmp';
5795 	vXMLTable(vCtr).TagValue := to_char(l_p10_g2j_cmp);
5796 	vCtr := vCtr + 1;
5797 
5798 	vXMLTable(vCtr).TagName := 'P10_g2j_ant';
5799 	vXMLTable(vCtr).TagValue := to_char(l_p10_g2j_ant);
5800 	vCtr := vCtr + 1;
5801 
5802 	vXMLTable(vCtr).TagName := 'P10_g2k_cmp';
5803 	vXMLTable(vCtr).TagValue := '0';
5804 	vCtr := vCtr + 1;
5805 
5806 	vXMLTable(vCtr).TagName := 'P10_g2k_ant';
5807 	vXMLTable(vCtr).TagValue := '0';
5808 	vCtr := vCtr + 1;
5809 
5810 	vXMLTable(vCtr).TagName := 'P10_g2l_cmp';
5811 	vXMLTable(vCtr).TagValue := '0';
5812 	vCtr := vCtr + 1;
5813 
5814 	vXMLTable(vCtr).TagName := 'P10_g2l_ant';
5815 	vXMLTable(vCtr).TagValue := '0';
5816 	vCtr := vCtr + 1;
5817 
5818 /*	l_p10_5b_cmp := l_p10_5b1_cmp + l_p10_5b2_cmp + l_p10_5b3_cmp + l_p10_5b4_cmp + l_p10_5b5_cmp + l_p10_5b6_cmp +
5819 						l_p10_5b7_cmp + l_p10_5b8_cmp + l_p10_5b9_cmp;
5820 	l_p10_5b_ant := l_p10_5b1_ant + l_p10_5b2_ant + l_p10_5b3_ant + l_p10_5b4_ant + l_p10_5b5_ant + l_p10_5b6_ant +
5821 						l_p10_5b7_ant + l_p10_5b8_ant + l_p10_5b9_ant; */
5822 
5823 
5824 	-- Total Non-Monetary Complaints and  Complainants
5825 	FOR cur_ctr IN cur_tot_benefits_nm(p_from_date, p_to_date,'10','40', p_agency_code) LOOP
5826 		l_p10_g2_cmp := cur_ctr.p10_cnt;
5827 		l_p10_g2_ant := cur_ctr.p10_prsn;
5828 	END LOOP;
5829 
5830 	vXMLTable(vCtr).TagName := 'P10_g2_cmp';
5831 	vXMLTable(vCtr).TagValue := to_char(l_p10_g2_cmp);
5832 	vCtr := vCtr + 1;
5833 
5834 	vXMLTable(vCtr).TagName := 'P10_g2_ant';
5835 	vXMLTable(vCtr).TagValue := to_char(l_p10_g2_ant);
5836 	vCtr := vCtr + 1;
5837 	fnd_file.put_line(fnd_file.log,'Finished populating Part10 - Benefits received Non-monetary');
5838 	fnd_file.put_line(fnd_file.log,'------------End of Part10----------------');
5839 END populate_part10;
5840 
5841 PROCEDURE populate_part11(
5842    p_from_date   in date,
5843    p_to_date     in date,
5844    p_agency_code in varchar2) IS
5845 
5846 -- Cursor for ADR Pending from previous reporting period
5847 CURSOR cur_adr_pending(c_from_date date, c_to_date date,c_stage NUMBER,c_agency_code ghr_complaints2.agency_code%type) IS
5848    SELECT COUNT(distinct cmp.complaint_id) p11_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) p11_prsn,NVL(SUM(ROUND((c_to_date - NVL(adrs.date_accepted,adrs.start_date)) ,0) + 1),0) p11_days
5849    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs
5850    WHERE adrs.complaint_id = cmp.complaint_id
5851    AND adrs.stage in ('20','30','40','50','60','70','75')
5852    AND cmp.formal_com_filed IS NOT NULL
5853    AND (cmp.complaint_closed IS NULL OR cmp.complaint_closed > c_to_date)
5854    AND cmp.agency_code = c_agency_code
5855    AND NVL(adrs.date_accepted,adrs.start_date) < c_from_date
5856    AND (adrs.end_date IS NULL OR adrs.end_date > c_to_date);
5857 
5858 
5859 -- Cursor for ADR actions
5860 CURSOR cur_adr_actions(c_from_date date, c_to_date date,c_stage NUMBER,c_adr_offered ghr_compl_adrs.adr_offered%type,c_agency_code ghr_complaints2.agency_code%type) IS
5861    SELECT COUNT(distinct cmp.complaint_id) p11_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) p11_prsn,NVL(SUM(ROUND((NVL(adrs.end_date,c_to_date) - NVL(adrs.date_accepted,adrs.start_date)),0)+1),0) p11_days
5862    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs
5863    WHERE adrs.complaint_id = cmp.complaint_id
5867    AND adrs.adr_offered = c_adr_offered
5864    AND cmp.agency_code = c_agency_code
5865    AND adrs.stage in ('20','30','40','50','60','70','75')
5866    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
5868    AND NVL(adrs.date_accepted,adrs.start_date) = (SELECT MAX(nvl(date_accepted,start_date))
5869 													FROM GHR_COMPL_ADRS adrs1
5870 													WHERE adrs1.complaint_id = adrs.complaint_id
5871 													AND adrs.stage in ('20','30','40','50','60','70','75'));
5872 
5873 CURSOR cur_adr_offered(c_from_date date, c_to_date date,c_stage NUMBER,c_agency_code ghr_complaints2.agency_code%type) IS
5874    SELECT COUNT(distinct cmp.complaint_id) p11_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) p11_prsn,NVL(SUM(ROUND((NVL(adrs.end_date,c_to_date) - NVL(adrs.date_accepted,adrs.start_date)),0)+1),0) p11_days
5875    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs
5876    WHERE adrs.complaint_id = cmp.complaint_id
5877    AND cmp.agency_code = c_agency_code
5878    AND adrs.stage in ('20','30','40','50','60','70','75')
5879    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
5880    AND adrs.adr_offered IN (10,20,30)
5881    AND NVL(adrs.date_accepted,adrs.start_date) = (SELECT MAX(nvl(date_accepted,start_date))
5882 													FROM GHR_COMPL_ADRS adrs1
5883 													WHERE adrs1.complaint_id = adrs.complaint_id
5884 													AND adrs.stage in ('20','30','40','50','60','70','75'));
5885 
5886 -- Cursor for Resources
5887 CURSOR cur_resources(c_from_date date, c_to_date date, c_stage NUMBER, c_resource ghr_compl_adrs.adr_resource%TYPE,c_agency_code ghr_complaints2.agency_code%type) IS
5888    SELECT COUNT(distinct cmp.complaint_id) p11_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) p11_prsn
5889    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs
5890    WHERE adrs.complaint_id = cmp.complaint_id
5891    AND cmp.agency_code = c_agency_code
5892    AND adrs.stage in ('20','30','40','50','60','70','75')
5893    AND adrs.adr_resource = c_resource
5894    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date;
5895 
5896 -- Cursor for Multiple Resources
5897 CURSOR cur_multires(c_from_date date, c_to_date date,c_stage NUMBER,c_agency_code ghr_complaints2.agency_code%type) IS
5898 SELECT cmp.complaint_id, adrs.adr_resource
5899    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs
5900    WHERE adrs.complaint_id = cmp.complaint_id
5901    AND cmp.agency_code = c_agency_code
5902    AND adrs.stage in ('20','30','40','50','60','70','75')
5903    AND adrs.adr_resource IS NOT NULL
5904    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
5905    ORDER BY cmp.complaint_id;
5906 
5907 
5908 -- Cursor for Techniques
5909 CURSOR cur_techniques(c_from_date date, c_to_date date,c_stage NUMBER, c_technique ghr_compl_adrs.technique%TYPE,c_agency_code ghr_complaints2.agency_code%type) IS
5910    SELECT COUNT(distinct cmp.complaint_id) p11_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) p11_prsn,
5911    NVL(SUM(ROUND((NVL(adrs.end_date,c_to_date) - NVL(adrs.date_accepted,adrs.start_date)),0)+1),0) p11_days -- Check whether this is to date or from date.
5912    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs
5913    WHERE adrs.complaint_id = cmp.complaint_id
5914    AND cmp.agency_code = c_agency_code
5915    AND adrs.stage in ('20','30','40','50','60','70','75')
5916    AND adrs.technique = c_technique
5917    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date;
5918 
5919 -- Cursor for Multi-techniques
5920 CURSOR cur_multitechniques(c_from_date date, c_to_date date,c_stage NUMBER,c_agency_code ghr_complaints2.agency_code%type) IS
5921 SELECT cmp.complaint_id, adrs.technique, NVL(ROUND((NVL(adrs.end_date,c_to_date) - NVL(adrs.date_accepted,adrs.start_date)),0)+1,0) p11_days
5922    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs
5923    WHERE adrs.complaint_id = cmp.complaint_id
5924    AND cmp.agency_code = c_agency_code
5925    AND adrs.stage in ('20','30','40','50','60','70','75')
5926    AND adrs.technique IS NOT NULL
5927    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
5928    ORDER BY cmp.complaint_id;
5929 
5930 CURSOR cur_case_status(c_from_date date, c_to_date date,c_stage NUMBER, c_closure_nature ghr_complaints2.nature_of_closure%TYPE,c_agency_code ghr_complaints2.agency_code%type) IS
5931    SELECT COUNT(cmp.complaint_id) p11_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) p11_prsn, NVL(SUM(ROUND((complaint_closed - NVL(adrs.date_accepted,adrs.start_date)),0)+1),0) p11_days
5932    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs
5933    WHERE adrs.complaint_id = cmp.complaint_id
5934    AND cmp.agency_code = c_agency_code
5935    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
5936    AND adrs.stage in ('20','30','40','50','60','70','75')
5937    AND adrs.end_date <= c_to_date
5938    AND cmp.nature_of_closure = c_closure_nature;
5939 
5940 CURSOR cur_case_status_settle(c_from_date date, c_to_date date,c_stage NUMBER,c_agency_code ghr_complaints2.agency_code%type) IS
5941    SELECT COUNT(cmp.complaint_id) p11_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) p11_prsn, NVL(SUM(ROUND((complaint_closed - NVL(adrs.date_accepted,adrs.start_date)),0)+1),0) p11_days
5942    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs
5943    WHERE adrs.complaint_id = cmp.complaint_id
5944    AND cmp.agency_code = c_agency_code
5945    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
5946    AND adrs.stage in ('20','30','40','50','60','70','75')
5947    AND adrs.end_date <= c_to_date
5948    AND cmp.nature_of_closure IN (140,150,160);
5949 
5950 CURSOR cur_open_inventory (c_from_date date, c_to_date date,c_stage NUMBER,c_agency_code ghr_complaints2.agency_code%type) IS
5951    SELECT COUNT(cmp.complaint_id) p11_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) p11_prsn, NVL(SUM(ROUND((complaint_closed - NVL(adrs.date_accepted,adrs.start_date)),0)+1),0) p11_days
5952    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs
5953    WHERE adrs.complaint_id = cmp.complaint_id
5954    AND cmp.agency_code = c_agency_code
5955    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
5959 CURSOR cur_benefits (c_from_date date, c_to_date date,c_stage NUMBER, c_phase ghr_compl_ca_details.phase%TYPE
5956    AND adrs.stage in ('20','30','40','50','60','70','75')
5957    AND adrs.end_date IS NULL;
5958 
5960 , c_payment_type ghr_compl_ca_details.payment_type%TYPE,c_agency_code ghr_complaints2.agency_code%type) IS
5961    SELECT COUNT(cmp.complaint_id) p11_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) p11_prsn, NVL(SUM(CEIL(ca.amount)),0) p11_amt
5962    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs, GHR_COMPL_CA_HEADERS cah, GHR_COMPL_CA_DETAILS ca
5963    WHERE ca.compl_ca_header_id = cah.compl_ca_header_id
5964    AND cah.complaint_id = cmp.complaint_id
5965    AND adrs.complaint_id = cmp.complaint_id
5966    AND cmp.agency_code = c_agency_code
5967    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
5968    AND adrs.stage in ('20','30','40','50','60','70','75')
5969    AND ca.phase = c_phase
5970    AND ca.payment_type = c_payment_type
5971    AND ca.category = 10 -- Monetary
5972    AND adrs.end_date IS NOT NULL;
5973 
5974 CURSOR cur_tot_benefits (c_from_date date, c_to_date date,c_stage NUMBER, c_phase ghr_compl_ca_details.phase%TYPE,c_agency_code ghr_complaints2.agency_code%type
5975 ) IS
5976    SELECT COUNT(distinct cmp.complaint_id) p11_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) P11_prsn
5977    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs, GHR_COMPL_CA_HEADERS cah, GHR_COMPL_CA_DETAILS ca
5978    WHERE ca.compl_ca_header_id = cah.compl_ca_header_id
5979    AND cah.complaint_id = cmp.complaint_id
5980    AND adrs.complaint_id = cmp.complaint_id
5981    AND cmp.agency_code = c_agency_code
5982    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
5983    AND adrs.stage in ('20','30','40','50','60','70','75')
5984    AND ca.phase = c_phase
5985    AND ca.payment_type IN (10,20,30,40,50,60)
5986    AND ca.category = 10 -- Monetary
5987    AND adrs.end_date IS NOT NULL;
5988 
5989 CURSOR cur_benefits_pt2 (c_from_date date, c_to_date date,c_stage NUMBER, c_phase ghr_compl_ca_details.phase%TYPE,
5990 c_payment_type1 ghr_compl_ca_details.payment_type%TYPE,c_payment_type2 ghr_compl_ca_details.payment_type%TYPE,c_agency_code ghr_complaints2.agency_code%type) IS
5991    SELECT COUNT(cmp.complaint_id) p11_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) p11_prsn, NVL(SUM(CEIL(ca.amount)),0) p11_amt
5992    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs, GHR_COMPL_CA_HEADERS cah, GHR_COMPL_CA_DETAILS ca
5993    WHERE ca.compl_ca_header_id = cah.compl_ca_header_id
5994    AND cah.complaint_id = cmp.complaint_id
5995    AND adrs.complaint_id = cmp.complaint_id
5996    AND cmp.agency_code = c_agency_code
5997    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
5998    AND adrs.stage in ('20','30','40','50','60','70','75')
5999    AND ca.phase = c_phase
6000    AND ca.payment_type IN (c_payment_type1,c_payment_type2)
6001    AND ca.category = 10 -- Monetary
6002    AND adrs.end_date IS NOT NULL;
6003 
6004 CURSOR cur_benefits_nm (c_from_date date, c_to_date date,c_stage NUMBER, c_phase ghr_compl_ca_details.phase%TYPE
6005 , c_action_type ghr_compl_ca_details.action_type%TYPE,c_agency_code ghr_complaints2.agency_code%type) IS
6006    SELECT COUNT(cmp.complaint_id) p11_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) p11_prsn
6007    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs, GHR_COMPL_CA_HEADERS cah, GHR_COMPL_CA_DETAILS ca
6008    WHERE ca.compl_ca_header_id = cah.compl_ca_header_id
6009    AND cah.complaint_id = cmp.complaint_id
6010    AND adrs.complaint_id = cmp.complaint_id
6011    AND cmp.agency_code = c_agency_code
6012    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
6013    AND adrs.stage in ('20','30','40','50','60','70','75')
6014    AND ca.phase = c_phase
6015    AND ca.action_type = c_action_type
6016    AND ca.category = 20 -- Non-Monetary
6017    AND adrs.end_date IS NOT NULL;
6018 
6019 CURSOR cur_benefits_nm_pt2 (c_from_date date, c_to_date date,c_stage NUMBER, c_phase ghr_compl_ca_details.phase%TYPE,
6020 c_action_type1 ghr_compl_ca_details.action_type%TYPE,c_action_type2 ghr_compl_ca_details.action_type%TYPE,c_agency_code ghr_complaints2.agency_code%type) IS
6021    SELECT COUNT(cmp.complaint_id) p11_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) p11_prsn
6022    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs, GHR_COMPL_CA_HEADERS cah, GHR_COMPL_CA_DETAILS ca
6023    WHERE ca.compl_ca_header_id = cah.compl_ca_header_id
6024    AND cah.complaint_id = cmp.complaint_id
6025    AND adrs.complaint_id = cmp.complaint_id
6026    AND cmp.agency_code = c_agency_code
6027    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
6028    AND adrs.stage in ('20','30','40','50','60','70','75')
6029    AND ca.phase = c_phase
6030    AND ca.action_type IN (c_action_type1,c_action_type2)
6031    AND ca.category = 20 -- Non-Monetary
6032    AND adrs.end_date IS NOT NULL;
6033 
6034 CURSOR cur_tot_benefits_nm (c_from_date date, c_to_date date,c_stage NUMBER, c_phase ghr_compl_ca_details.phase%TYPE
6035 ,c_agency_code ghr_complaints2.agency_code%type) IS
6036    SELECT COUNT(distinct cmp.complaint_id) p11_cnt, COUNT(distinct nvl(cmp.complainant_person_id,0)) P11_prsn
6037    FROM GHR_COMPLAINTS2 cmp, GHR_COMPL_ADRS adrs, GHR_COMPL_CA_HEADERS cah, GHR_COMPL_CA_DETAILS ca
6038    WHERE ca.compl_ca_header_id = cah.compl_ca_header_id
6039    AND cah.complaint_id = cmp.complaint_id
6040    AND adrs.complaint_id = cmp.complaint_id
6041    AND cmp.agency_code = c_agency_code
6042    AND NVL(adrs.date_accepted,adrs.start_date) BETWEEN c_from_date AND c_to_date
6043    AND adrs.stage in ('20','30','40','50','60','70','75')
6044    AND ca.phase = c_phase
6045    AND ca.action_type IS NOT NULL
6046    AND ca.category = 20 -- Non-Monetary
6047    AND adrs.end_date IS NOT NULL;
6048 
6049 
6050 l_p11_c1_cmp NUMBER;
6051 l_p11_c1_ant NUMBER;
6052 l_p11_c2_cmp NUMBER;
6053 l_p11_c2_ant NUMBER;
6054 
6055 l_p11_c_cmp NUMBER;
6056 l_p11_c_ant NUMBER;
6057 
6058 l_p11_1a_ant NUMBER;
6059 
6060 
6061 l_p11_c3_cmp NUMBER;
6065 
6062 l_p11_c3_ant NUMBER;
6063 l_p11_c5_cmp NUMBER;
6064 l_p11_c5_ant NUMBER;
6066 l_p11_d_cmp NUMBER;
6067 l_p11_d_ant NUMBER;
6068 l_p11_d_day NUMBER;
6069 
6070 l_p11_d1_cmp NUMBER;
6071 l_p11_d1_ant NUMBER;
6072 l_p11_d1_day NUMBER;
6073 l_p11_d2_cmp NUMBER;
6074 l_p11_d2_ant NUMBER;
6075 l_p11_d2_day NUMBER;
6076 l_p11_d3_cmp NUMBER;
6077 l_p11_d3_ant NUMBER;
6078 l_p11_d3_day NUMBER;
6079 l_P11_d4_cmp NUMBER;
6080 l_p11_d4_ant NUMBER;
6081 l_p11_d4_day NUMBER;
6082 l_p11_d5_cmp NUMBER;
6083 l_p11_d5_ant NUMBER;
6084 l_p11_d5_day NUMBER;
6085 l_p11_d6_cmp NUMBER;
6086 l_p11_d6_ant NUMBER;
6087 l_p11_d6_day NUMBER;
6088 l_p11_d7_cmp NUMBER;
6089 l_p11_d7_ant NUMBER;
6090 l_p11_d7_day NUMBER;
6091 l_p11_d8_cmp  NUMBER;
6092 l_p11_d8_ant  NUMBER;
6093 l_p11_d8_day  NUMBER;
6094 l_p11_3i_cmp NUMBER;
6095 l_p11_3i_ant NUMBER;
6096 l_p11_3i_day NUMBER;
6097 l_p11_d10_cmp NUMBER;
6098 l_p11_d10_ant NUMBER;
6099 l_p11_d10_day NUMBER;
6100 l_p11_e1a_cmp NUMBER;
6101 l_p11_e1a_ant NUMBER;
6102 l_p11_e1a_day NUMBER;
6103 l_p11_e1b_cmp  NUMBER;
6104 l_p11_e1b_ant  NUMBER;
6105 l_p11_e1b_day  NUMBER;
6106 l_p11_e1c_cmp NUMBER;
6107 l_p11_e1c_ant NUMBER;
6108 l_p11_e1c_day NUMBER;
6109 l_p11_e1d_cmp NUMBER;
6110 l_p11_e1d_ant NUMBER;
6111 l_p11_e1d_day NUMBER;
6112 l_p11_e1_cmp NUMBER;
6113 l_p11_e1_ant NUMBER;
6114 l_p11_e1_day NUMBER;
6115 l_p11_e2_cmp NUMBER;
6116 l_p11_e2_ant NUMBER;
6117 l_p11_e2_day NUMBER;
6118 l_p11_f1_cmp NUMBER;
6119 l_p11_f1_ant NUMBER;
6120 l_p11_f1_amt NUMBER;
6121 l_p11_f1a_cmp NUMBER;
6122 l_p11_f1a_ant NUMBER;
6123 l_p11_f1a_amt NUMBER;
6124 l_p11_f1b_cmp NUMBER;
6125 l_p11_f1b_ant NUMBER;
6126 l_p11_f1b_amt NUMBER;
6127 l_p11_f1c_cmp NUMBER;
6128 l_p11_f1c_ant NUMBER;
6129 l_p11_f1c_amt NUMBER;
6130 l_p11_f1d_cmp  NUMBER;
6131 l_p11_f1d_ant  NUMBER;
6132 l_p11_f1d_amt  NUMBER;
6133 l_p11_f1e_cmp NUMBER;
6134 l_p11_f1e_ant NUMBER;
6135 l_p11_f1e_amt NUMBER;
6136 l_p11_f2_cmp NUMBER;
6137 l_p11_f2_ant NUMBER;
6138 l_p11_f2a_cmp NUMBER;
6139 l_p11_f2a_ant NUMBER;
6140 l_p11_f2b_cmp NUMBER;
6141 l_p11_f2b_ant NUMBER;
6142 l_p11_f2c_cmp NUMBER;
6143 l_p11_f2c_ant NUMBER;
6144 l_p11_f2d_cmp NUMBER;
6145 l_p11_f2d_ant NUMBER;
6146 l_p11_f2e_cmp NUMBER;
6147 l_p11_f2e_ant NUMBER;
6148 l_p11_5b6_cmp NUMBER;
6149 l_P11_f2f_ant NUMBER;
6150 l_p11_f2g_cmp NUMBER;
6151 l_p11_f2g_ant NUMBER;
6152 l_p11_f2h_cmp  NUMBER;
6153 l_p11_f2h_ant  NUMBER;
6154 l_p11_f2i_cmp NUMBER;
6155 l_p11_f2i_ant NUMBER;
6156 l_p11_f2j_cmp NUMBER;
6157 l_p11_f2j_ant NUMBER;
6158 
6159 -- Average fields
6160 l_P11_d1_avg NUMBER;
6161 l_P11_d2_avg NUMBER;
6162 l_P11_d3_avg NUMBER;
6163 l_P11_d4_avg NUMBER;
6164 l_P11_d5_avg NUMBER;
6165 l_P11_d6_avg NUMBER;
6166 l_P11_d7_avg NUMBER;
6167 l_P11_d8_avg NUMBER;
6168 l_P11_d9_avg NUMBER;
6169 l_P11_d10_avg NUMBER;
6170 l_P11_e1a_avg NUMBER;
6171 l_P11_e1b_avg NUMBER;
6172 l_P11_e1c_avg NUMBER;
6173 l_P11_e1d_avg NUMBER;
6174 l_P11_e2_avg NUMBER;
6175 l_P11_d_avg NUMBER;
6176 l_P11_e1_avg NUMBER;
6177 
6178 
6179 -- Variables for Multi-techniques
6180 l_ctr NUMBER:= 1;
6181 l_lb_flag NUMBER := 0;
6182 l_total_count NUMBER := 0;
6183 l_total_days NUMBER := 0;
6184 l_old_cmp_id NUMBER := 0;
6185 l_old_days NUMBER := 0;
6186 l_new_cmp_id NUMBER := 0;
6187 TYPE t_prsn_cur IS REF CURSOR;
6188 l_prsn_cur t_prsn_cur;
6189 l_tot_prsn NUMBER(15) := 0;
6190 l_sql_str VARCHAR2(10000) := NULL;
6191 
6192 l_p11_a_cmp NUMBER;
6193 l_p11_a_ant  NUMBER;
6194 l_p11_a_day  NUMBER;
6195 l_p11_b1_cmp NUMBER;
6196 l_p11_b1_ant NUMBER;
6197 l_p11_b1_day NUMBER;
6198 l_p11_b2_cmp NUMBER;
6199 l_p11_b2_ant NUMBER;
6200 l_p11_b2_day NUMBER;
6201 l_p11_b3_cmp NUMBER;
6202 l_p11_b3_ant  NUMBER;
6203 l_p11_b3_day  NUMBER;
6204 l_p11_b4_cmp NUMBER;
6205 l_p11_b4_ant NUMBER;
6206 l_p11_b4_day NUMBER;
6207 
6208 BEGIN
6209 	--
6210 	fnd_file.put_line(fnd_file.log,'Starting populating Part11 - Total accepted into ADR');
6211 	-- ADR Pending from previous reporting period
6212 	FOR cur_ctr IN cur_adr_pending(p_from_date, p_to_date,20, p_agency_code) LOOP
6213 	   l_p11_a_cmp := cur_ctr.p11_cnt;
6214 	   l_p11_a_ant := cur_ctr.p11_prsn;
6215 	   l_p11_a_day := cur_ctr.p11_days;
6216 	END LOOP;
6217 	fnd_file.put_line(fnd_file.log,'Starting populating Part11 - End of cursor');
6218 
6219 	vXMLTable(vCtr).TagName := 'P11_a_cmp';
6220 	vXMLTable(vCtr).TagValue := to_char(l_p11_a_cmp);
6221 	vCtr := vCtr + 1;
6222 
6223 	vXMLTable(vCtr).TagName := 'P11_a_ant';
6224 	vXMLTable(vCtr).TagValue := to_char(l_p11_a_ant);
6225 	vCtr := vCtr + 1;
6226 
6227 	-- Bug#3124648
6228 	IF (l_p11_a_day IS NULL) THEN
6229 		l_p11_a_day := 0;
6230 	END IF;
6231 
6232 	fnd_file.put_line(fnd_file.log,'Finished populating Part11 - ADR Pending from previous reporting period');
6233 
6234 	-- ADR Actions for current reporting period
6235 	-- ADR Offered
6236 	-- Cursor changed to included the rejected ones also. Bug#3126112
6237 	FOR cur_ctr IN cur_adr_offered(p_from_date, p_to_date,20, p_agency_code) LOOP
6238 	   l_p11_b1_cmp := cur_ctr.p11_cnt;
6239 	   l_p11_b1_ant := cur_ctr.p11_prsn;
6240 	   l_p11_b1_day := cur_ctr.p11_days;
6241 	END LOOP;
6242 
6243 	vXMLTable(vCtr).TagName := 'P11_b1_cmp';
6244 	vXMLTable(vCtr).TagValue := to_char(l_p11_b1_cmp);
6248 	vXMLTable(vCtr).TagValue := to_char(l_p11_b1_ant);
6245 	vCtr := vCtr + 1;
6246 
6247 	vXMLTable(vCtr).TagName := 'P11_b1_ant';
6249 	vCtr := vCtr + 1;
6250 
6251 	-- Bug#3124648
6252 	IF (l_p11_b1_day IS NULL) THEN
6253 		l_p11_b1_day := 0;
6254 	END IF;
6255 	fnd_file.put_line(fnd_file.log,'Finished populating Part11 - ADR Offered');
6256 
6257 
6258 	-- Bug#3122514 Phase shd be formal complaint 20 or above.
6259 	-- Rejected by Complainant
6260 	FOR cur_ctr IN cur_adr_actions(p_from_date, p_to_date,20,'20', p_agency_code) LOOP
6261 	   l_p11_b2_cmp := cur_ctr.p11_cnt;
6262 	   l_p11_b2_ant := cur_ctr.p11_prsn;
6263 	   l_p11_b2_day := cur_ctr.p11_days;
6264 	END LOOP;
6265 
6266 	vXMLTable(vCtr).TagName := 'P11_b2_cmp';
6267 	vXMLTable(vCtr).TagValue := to_char(l_p11_b2_cmp);
6268 	vCtr := vCtr + 1;
6269 
6270 	vXMLTable(vCtr).TagName := 'P11_b2_ant';
6271 	vXMLTable(vCtr).TagValue := to_char(l_p11_b2_ant);
6272 	vCtr := vCtr + 1;
6273 
6274 	-- Bug#3124648
6275 	IF (l_p11_b2_day IS NULL) THEN
6276 		l_p11_b2_day := 0;
6277 	END IF;
6278 	fnd_file.put_line(fnd_file.log,'Finished populating Part11 - Rejected by Complainant');
6279 
6280 	-- Bug#3122514 Phase shd be formal complaint 20 or above.
6281 	-- Rejected by Agency
6282 	FOR cur_ctr IN cur_adr_actions(p_from_date, p_to_date,20,'30', p_agency_code) LOOP
6283 	   l_p11_b3_cmp := cur_ctr.p11_cnt;
6284 	   l_p11_b3_ant := cur_ctr.p11_prsn;
6285 	   l_p11_b3_day := cur_ctr.p11_days;
6286 	END LOOP;
6287 
6288 	vXMLTable(vCtr).TagName := 'P11_b3_cmp';
6289 	vXMLTable(vCtr).TagValue := to_char(l_p11_b3_cmp);
6290 	vCtr := vCtr + 1;
6291 
6292 	vXMLTable(vCtr).TagName := 'P11_b3_ant';
6293 	vXMLTable(vCtr).TagValue := to_char(l_p11_b3_ant);
6294 	vCtr := vCtr + 1;
6295 
6296 	-- Bug#3124648
6297 	IF (l_p11_b3_day IS NULL) THEN
6298 		l_p11_b3_day := 0;
6299 	END IF;
6300 	fnd_file.put_line(fnd_file.log,'Finished populating Part11 - Rejected by Agency');
6301 	-- Total ADR
6302 	l_p11_b4_cmp := l_p11_b1_cmp - (l_p11_b2_cmp + l_p11_b3_cmp);
6303 	l_p11_b4_ant := l_p11_b1_ant - (l_p11_b2_ant + l_p11_b3_ant);
6304 	l_p11_b4_day := l_p11_b1_day - (l_p11_b2_day + l_p11_b3_day);
6305 
6306 	vXMLTable(vCtr).TagName := 'P11_b4_cmp';
6307 	vXMLTable(vCtr).TagValue := to_char(l_p11_b4_cmp);
6308 	vCtr := vCtr + 1;
6309 
6310 	vXMLTable(vCtr).TagName := 'P11_b4_ant';
6311 	vXMLTable(vCtr).TagValue := to_char(l_p11_b4_ant);
6312 	vCtr := vCtr + 1;
6313 
6314 	fnd_file.put_line(fnd_file.log,'Finished populating Part11 - Total accepted into ADR');
6315 
6316 	--------------------------------------------
6317 	-- Resources Used
6318 	-- Inhouse
6319 	FOR cur_ctr IN cur_resources(p_from_date, p_to_date,20,'20', p_agency_code) LOOP
6320 		l_p11_c1_cmp := cur_ctr.p11_cnt;
6321 		l_p11_c1_ant := cur_ctr.p11_prsn;
6322 	END LOOP;
6323 
6324 	vXMLTable(vCtr).TagName := 'P11_c1_cmp';
6325 	vXMLTable(vCtr).TagValue := to_char(l_p11_c1_cmp);
6326 	vCtr := vCtr + 1;
6327 
6328 	vXMLTable(vCtr).TagName := 'P11_c1_ant';
6329 	vXMLTable(vCtr).TagValue := to_char(l_p11_c1_ant);
6330 	vCtr := vCtr + 1;
6331 
6332 	-- Another Federal Agency
6333 	FOR cur_ctr IN cur_resources(p_from_date, p_to_date,20,'10', p_agency_code) LOOP
6334 		l_p11_c2_cmp := cur_ctr.p11_cnt;
6335 		l_p11_c2_ant := cur_ctr.p11_prsn;
6336 	END LOOP;
6337 
6338 	vXMLTable(vCtr).TagName := 'P11_c2_cmp';
6339 	vXMLTable(vCtr).TagValue := to_char(l_p11_c2_cmp);
6340 	vCtr := vCtr + 1;
6341 
6342 	vXMLTable(vCtr).TagName := 'P11_c2_ant';
6343 	vXMLTable(vCtr).TagValue := to_char(l_p11_c2_ant);
6344 	vCtr := vCtr + 1;
6345 
6346 	-- Private Organization
6347 	FOR cur_ctr IN cur_resources(p_from_date, p_to_date,20,'50', p_agency_code) LOOP
6348 		l_p11_c3_cmp := cur_ctr.p11_cnt;
6349 		l_p11_c3_ant := cur_ctr.p11_prsn;
6350 	END LOOP;
6351 
6352 	vXMLTable(vCtr).TagName := 'P11_c3_cmp';
6353 	vXMLTable(vCtr).TagValue := to_char(l_p11_c3_cmp);
6354 	vCtr := vCtr + 1;
6355 
6356 	vXMLTable(vCtr).TagName := 'P11_c3_ant';
6357 	vXMLTable(vCtr).TagValue := to_char(l_p11_c3_ant);
6358 	vCtr := vCtr + 1;
6359 
6360 -- Multiple Resources
6361 
6362 	l_total_count := 0;
6363 	l_total_days := 0;
6364 	l_old_cmp_id := 0;
6365 	l_old_days := 0;
6366 	v_temp.DELETE;
6367 
6368 	FOR cur_ctr IN cur_multires(p_from_date, p_to_date,20, p_agency_code) LOOP
6369 		IF (cur_ctr.adr_resource = '30') THEN
6370 			v_temp(l_ctr).complaint_id := cur_ctr.complaint_id;
6371 			l_total_count := l_total_count + 1;
6372 			l_old_cmp_id := cur_ctr.complaint_id;
6373 			l_ctr := l_ctr + 1;
6374 		ELSE
6375 			l_new_cmp_id := cur_ctr.complaint_id;
6376 			IF (l_old_cmp_id = l_new_cmp_id) THEN
6377 				-- Search whether entry for the same complaint exist already, if exists update the same.
6378 				l_lb_flag := 0 ;
6379 				IF (v_temp.COUNT > 0) THEN
6380 					FOR l_ctr1 IN v_temp.FIRST .. v_temp.LAST LOOP
6381 					   IF (v_temp(l_ctr1).complaint_id = l_new_cmp_id) THEN
6382 						  l_total_count := l_total_count + 1;
6383 						  l_lb_flag := 1;
6384 					   END IF;
6385 					END LOOP;
6386 				END IF;
6387 				-- If the complaint doesnt exist already, add new entry.
6388 				IF (l_lb_flag = 0) THEN
6389 				    v_temp(l_ctr).complaint_id := cur_ctr.complaint_id;
6390 					l_total_count := l_total_count + 2;
6391 				END IF;
6392 			END IF;
6393 			l_old_cmp_id := cur_ctr.complaint_id;
6394 		END IF;
6395 	END LOOP;
6396 	-- To Find out the complainants for these complaints
6397 	l_sql_str := '';
6398 
6399 	IF (v_temp.COUNT > 0) THEN
6400 		l_sql_str := v_temp(1).complaint_id;
6401 	END IF;
6402 
6403 	IF (v_temp.COUNT > 1) THEN
6404 		FOR l_ctr  IN 2 .. v_temp.COUNT LOOP
6408 	IF (l_sql_str IS NOT NULL) THEN
6405 		   l_sql_str := l_sql_str || ',' || to_char(v_temp(l_ctr).complaint_id);
6406 		END LOOP;
6407 	END IF;
6409 		l_sql_str := 'SELECT COUNT(distinct nvl(cmp.complainant_person_id,0)) FROM GHR_COMPLAINTS2 cmp  WHERE cmp.complaint_id in (' || l_sql_str || ')';
6410 		OPEN l_prsn_cur FOR l_sql_str;
6411 		FETCH l_prsn_cur INTO l_tot_prsn;
6412 		CLOSE l_prsn_cur;
6413 	ELSE
6414 		l_tot_prsn := 0;
6415 	END IF;
6416 
6417 
6418 	vXMLTable(vCtr).TagName := 'P11_c4_cmp';
6419 	vXMLTable(vCtr).TagValue := to_char(l_total_count);
6420 	vCtr := vCtr + 1;
6421 
6422 	vXMLTable(vCtr).TagName := 'P11_c4_ant';
6423 	vXMLTable(vCtr).TagValue := to_char(l_tot_prsn);
6424 	vCtr := vCtr + 1;
6425 
6426 	-- Other
6427 	FOR cur_ctr IN cur_resources(p_from_date, p_to_date,20,'40', p_agency_code) LOOP
6428 		l_p11_c5_cmp := cur_ctr.p11_cnt;
6429 		l_p11_c5_ant := cur_ctr.p11_prsn;
6430 	END LOOP;
6431 
6432 	vXMLTable(vCtr).TagName := 'P11_c5_cmp';
6433 	vXMLTable(vCtr).TagValue := to_char(l_p11_c5_cmp);
6434 	vCtr := vCtr + 1;
6435 
6436 	vXMLTable(vCtr).TagName := 'P11_c5_ant';
6437 	vXMLTable(vCtr).TagValue := to_char(l_p11_c5_ant);
6438 	vCtr := vCtr + 1;
6439 
6440 	-- Filling zeroes for Other fields
6441 	vXMLTable(vCtr).TagName := 'P11_c6_cmp';
6442 	vXMLTable(vCtr).TagValue := '0';
6443 	vCtr := vCtr + 1;
6444 
6445 	vXMLTable(vCtr).TagName := 'P11_c6_ant';
6446 	vXMLTable(vCtr).TagValue := '0';
6447 	vCtr := vCtr + 1;
6448 
6449 /*	vXMLTable(vCtr).TagName := 'P11_d11_avg';
6450 	vXMLTable(vCtr).TagValue := '0';
6451 	vCtr := vCtr + 1;
6452 */
6453 	vXMLTable(vCtr).TagName := 'P11_c7_cmp';
6454 	vXMLTable(vCtr).TagValue := '0';
6455 	vCtr := vCtr + 1;
6456 
6457 	vXMLTable(vCtr).TagName := 'P11_c7_ant';
6458 	vXMLTable(vCtr).TagValue := '0';
6459 	vCtr := vCtr + 1;
6460 
6461 
6462 
6463 	--------- End Multiple Resources
6464 	l_p11_c_cmp := l_p11_c1_cmp + l_p11_c2_cmp + l_p11_c3_cmp + l_total_count + l_p11_c5_cmp;
6465 	l_p11_c_ant := l_p11_c1_ant + l_p11_c2_ant + l_p11_c3_ant + l_tot_prsn + l_p11_c5_ant;
6466 
6467 	vXMLTable(vCtr).TagName := 'P11_c_cmp';
6468 	vXMLTable(vCtr).TagValue := to_char(l_p11_c_cmp);
6469 	vCtr := vCtr + 1;
6470 
6471 	vXMLTable(vCtr).TagName := 'P11_c_ant';
6472 	vXMLTable(vCtr).TagValue := to_char(l_p11_c_ant);
6473 	vCtr := vCtr + 1;
6474 	fnd_file.put_line(fnd_file.log,'Finished populating Part11 - Resources');
6475 	-- Techniques used
6476 	-- Mediation
6477 	FOR cur_ctr IN cur_techniques(p_from_date, p_to_date,20,'40', p_agency_code) LOOP
6478 		l_p11_d1_cmp := cur_ctr.p11_cnt;
6479 		l_p11_d1_ant := cur_ctr.p11_prsn;
6480 		l_p11_d1_day := cur_ctr.p11_days;
6481 	END LOOP;
6482 
6483 	vXMLTable(vCtr).TagName := 'P11_d1_cmp';
6484 	vXMLTable(vCtr).TagValue := to_char(l_p11_d1_cmp);
6485 	vCtr := vCtr + 1;
6486 
6487 	vXMLTable(vCtr).TagName := 'P11_d1_ant';
6488 	vXMLTable(vCtr).TagValue := to_char(l_p11_d1_ant);
6489 	vCtr := vCtr + 1;
6490 
6491 	IF (l_p11_d1_day IS NULL) THEN
6492 	   l_p11_d1_day := 0;
6493 	END IF;
6494 
6495 	vXMLTable(vCtr).TagName := 'P11_d1_day';
6496 	vXMLTable(vCtr).TagValue := to_char(l_p11_d1_day);
6497 	vCtr := vCtr + 1;
6498 
6499 	-- Average Days
6500 /*	IF (l_p11_d1_cmp > 0) THEN
6501 		l_P11_d1_avg := CEIL(l_p11_d1_day/l_p11_d1_cmp);
6502 	ELSE
6503 		l_P11_d1_avg := '0';
6504 	END IF;
6505 	vXMLTable(vCtr).TagName := 'P11_d1_avg';
6506 	vXMLTable(vCtr).TagValue := to_char(l_P11_d1_avg);
6507 	vCtr := vCtr + 1;
6508 */
6509 	-- Settlement Conferences
6510 	FOR cur_ctr IN cur_techniques(p_from_date, p_to_date,20,'100', p_agency_code) LOOP
6511 		l_p11_d2_cmp := cur_ctr.p11_cnt;
6512 		l_p11_d2_ant := cur_ctr.p11_prsn;
6513 		l_p11_d2_day := cur_ctr.p11_days;
6514 	END LOOP;
6515 
6516 	vXMLTable(vCtr).TagName := 'P11_d2_cmp';
6517 	vXMLTable(vCtr).TagValue := to_char(l_p11_d2_cmp);
6518 	vCtr := vCtr + 1;
6519 
6520 	vXMLTable(vCtr).TagName := 'P11_d2_ant';
6521 	vXMLTable(vCtr).TagValue := to_char(l_p11_d2_ant);
6522 	vCtr := vCtr + 1;
6523 
6524 	IF (l_p11_d2_day IS NULL) THEN
6525 	   l_p11_d2_day := 0;
6526 	END IF;
6527 
6528 
6529 	vXMLTable(vCtr).TagName := 'P11_d2_day';
6530 	vXMLTable(vCtr).TagValue := to_char(l_p11_d2_day);
6531 	vCtr := vCtr + 1;
6532 
6533 	-- Average Days
6534 /*	IF (l_p11_d2_cmp > 0) THEN
6535 		l_P11_d2_avg := CEIL(l_p11_d2_day/l_p11_d2_cmp);
6536 	ELSE
6537 		l_P11_d2_avg := '0';
6538 	END IF;
6539 	vXMLTable(vCtr).TagName := 'P11_d2_avg';
6540 	vXMLTable(vCtr).TagValue := to_char(l_P11_d2_avg);
6541 	vCtr := vCtr + 1;
6542 */
6543 	-- Early Neutral evaluations
6544 	FOR cur_ctr IN cur_techniques(p_from_date, p_to_date,20,'10', p_agency_code) LOOP
6545 		l_p11_d3_cmp := cur_ctr.p11_cnt;
6546 		l_p11_d3_ant := cur_ctr.p11_prsn;
6547 		l_p11_d3_day := cur_ctr.p11_days;
6548 	END LOOP;
6549 
6550 	vXMLTable(vCtr).TagName := 'P11_d3_cmp';
6551 	vXMLTable(vCtr).TagValue := to_char(l_p11_d3_cmp);
6552 	vCtr := vCtr + 1;
6553 
6554 	vXMLTable(vCtr).TagName := 'P11_d3_ant';
6555 	vXMLTable(vCtr).TagValue := to_char(l_p11_d3_ant);
6556 	vCtr := vCtr + 1;
6557 
6558 	IF (l_p11_d3_day IS NULL) THEN
6559 	   l_p11_d3_day := 0;
6560 	END IF;
6561 
6562 
6563 	vXMLTable(vCtr).TagName := 'P11_d3_day';
6564 	vXMLTable(vCtr).TagValue := to_char(l_p11_d3_day);
6565 	vCtr := vCtr + 1;
6566 
6567 	-- Average Days
6568 /*	IF (l_p11_d3_cmp > 0) THEN
6569 		l_P11_d3_avg := CEIL(l_p11_d3_day/l_p11_d3_cmp);
6570 	ELSE
6571 		l_P11_d3_avg := '0';
6572 	END IF;
6573 	vXMLTable(vCtr).TagName := 'P11_d3_avg';
6574 	vXMLTable(vCtr).TagValue := to_char(l_P11_d3_avg);
6578 	FOR cur_ctr IN cur_techniques(p_from_date, p_to_date,20,'30', p_agency_code) LOOP
6575 	vCtr := vCtr + 1;
6576 */
6577 	-- Factfinding
6579 		l_P11_d4_cmp := cur_ctr.p11_cnt;
6580 		l_p11_d4_ant := cur_ctr.p11_prsn;
6581 		l_p11_d4_day := cur_ctr.p11_days;
6582 	END LOOP;
6583 
6584 	vXMLTable(vCtr).TagName := 'P11_d4_cmp';
6585 	vXMLTable(vCtr).TagValue := to_char(l_P11_d4_cmp);
6586 	vCtr := vCtr + 1;
6587 
6588 	vXMLTable(vCtr).TagName := 'P11_d4_ant';
6589 	vXMLTable(vCtr).TagValue := to_char(l_p11_d4_ant);
6590 	vCtr := vCtr + 1;
6591 
6592 	IF (l_p11_d4_day IS NULL) THEN
6593 	   l_p11_d4_day := 0;
6594 	END IF;
6595 
6596 
6597 	vXMLTable(vCtr).TagName := 'P11_d4_day';
6598 	vXMLTable(vCtr).TagValue := to_char(l_p11_d4_day);
6599 	vCtr := vCtr + 1;
6600 
6601 	-- Average Days
6602 /*	IF (l_P11_d4_cmp > 0) THEN
6603 		l_P11_d4_avg := CEIL(l_p11_d4_day/l_P11_d4_cmp);
6604 	ELSE
6605 		l_P11_d4_avg := '0';
6606 	END IF;
6607 	vXMLTable(vCtr).TagName := 'P11_d4_avg';
6608 	vXMLTable(vCtr).TagValue := to_char(l_P11_d4_avg);
6609 	vCtr := vCtr + 1;
6610 */
6611 	-- Facilitation
6612 	FOR cur_ctr IN cur_techniques(p_from_date, p_to_date,20,'20', p_agency_code) LOOP
6613 		l_p11_d5_cmp := cur_ctr.p11_cnt;
6614 		l_p11_d5_ant := cur_ctr.p11_prsn;
6615 		l_p11_d5_day := cur_ctr.p11_days;
6616 	END LOOP;
6617 
6618 	vXMLTable(vCtr).TagName := 'P11_d5_cmp';
6619 	vXMLTable(vCtr).TagValue := to_char(l_p11_d5_cmp);
6620 	vCtr := vCtr + 1;
6621 
6622 	vXMLTable(vCtr).TagName := 'P11_d5_ant';
6623 	vXMLTable(vCtr).TagValue := to_char(l_p11_d5_ant);
6624 	vCtr := vCtr + 1;
6625 
6626 	IF (l_p11_d5_day IS NULL) THEN
6627 	   l_p11_d5_day := 0;
6628 	END IF;
6629 
6630 
6631 	vXMLTable(vCtr).TagName := 'P11_d5_day';
6632 	vXMLTable(vCtr).TagValue := to_char(l_p11_d5_day);
6633 	vCtr := vCtr + 1;
6634 
6635 	-- Average Days
6636 /*	IF (l_p11_d5_cmp > 0) THEN
6637 		l_P11_d5_avg := CEIL(l_p11_d5_day/l_p11_d5_cmp);
6638 	ELSE
6639 		l_P11_d5_avg := '0';
6640 	END IF;
6641 	vXMLTable(vCtr).TagName := 'P11_d5_avg';
6642 	vXMLTable(vCtr).TagValue := to_char(l_P11_d5_avg);
6643 	vCtr := vCtr + 1;
6644 */
6645 	-- Ombudsman
6646 	FOR cur_ctr IN cur_techniques(p_from_date, p_to_date,20,'80', p_agency_code) LOOP
6647 		l_p11_d6_cmp := cur_ctr.p11_cnt;
6648 		l_p11_d6_ant := cur_ctr.p11_prsn;
6649 		l_p11_d6_day := cur_ctr.p11_days;
6650 	END LOOP;
6651 
6652 	vXMLTable(vCtr).TagName := 'P11_d6_cmp';
6653 	vXMLTable(vCtr).TagValue := to_char(l_p11_d6_cmp);
6654 	vCtr := vCtr + 1;
6655 
6656 	vXMLTable(vCtr).TagName := 'P11_d6_ant';
6657 	vXMLTable(vCtr).TagValue := to_char(l_p11_d6_ant);
6658 	vCtr := vCtr + 1;
6659 
6660 	IF (l_p11_d6_day IS NULL) THEN
6661 	   l_p11_d6_day := 0;
6662 	END IF;
6663 
6664 
6665 	vXMLTable(vCtr).TagName := 'P11_d6_day';
6666 	vXMLTable(vCtr).TagValue := to_char(l_p11_d6_day);
6667 	vCtr := vCtr + 1;
6668 
6669 	-- Average Days
6670 /*	IF (l_p11_d6_cmp > 0) THEN
6671 		l_P11_d6_avg := CEIL(l_p11_d6_day/l_p11_d6_cmp);
6672 	ELSE
6673 		l_P11_d6_avg := '0';
6674 	END IF;
6675 	vXMLTable(vCtr).TagName := 'P11_d6_avg';
6676 	vXMLTable(vCtr).TagValue := to_char(l_P11_d6_avg);
6677 	vCtr := vCtr + 1;
6678 */
6679 	-- Mini-trials
6680 	FOR cur_ctr IN cur_techniques(p_from_date, p_to_date,20,'60', p_agency_code) LOOP
6681 		l_p11_d7_cmp := cur_ctr.p11_cnt;
6682 		l_p11_d7_ant := cur_ctr.p11_prsn;
6683 		l_p11_d7_day := cur_ctr.p11_days;
6684 	END LOOP;
6685 
6686 	vXMLTable(vCtr).TagName := 'P11_d7_cmp';
6687 	vXMLTable(vCtr).TagValue := to_char(l_p11_d7_cmp);
6688 	vCtr := vCtr + 1;
6689 
6690 	vXMLTable(vCtr).TagName := 'P11_d7_ant';
6691 	vXMLTable(vCtr).TagValue := to_char(l_p11_d7_ant);
6692 	vCtr := vCtr + 1;
6693 
6694 	IF (l_p11_d7_day IS NULL) THEN
6695 	   l_p11_d7_day := 0;
6696 	END IF;
6697 
6698 
6699 	vXMLTable(vCtr).TagName := 'P11_d7_day';
6700 	vXMLTable(vCtr).TagValue := to_char(l_p11_d7_day);
6701 	vCtr := vCtr + 1;
6702 
6703 	-- Average Days
6704 /*	IF (l_p11_d7_cmp > 0) THEN
6705 		l_P11_d7_avg := CEIL(l_p11_d7_day/l_p11_d7_cmp);
6706 	ELSE
6707 		l_P11_d7_avg := '0';
6708 	END IF;
6709 	vXMLTable(vCtr).TagName := 'P11_d7_avg';
6710 	vXMLTable(vCtr).TagValue := to_char(l_P11_d7_avg);
6711 	vCtr := vCtr + 1;
6712 */
6713 
6714 	-- Peer review
6715 	FOR cur_ctr IN cur_techniques(p_from_date, p_to_date,20,'90', p_agency_code) LOOP
6716 		l_p11_d8_cmp := cur_ctr.p11_cnt;
6717 		l_p11_d8_ant := cur_ctr.p11_prsn;
6718 		l_p11_d8_day := cur_ctr.p11_days;
6719 	END LOOP;
6720 
6721 	vXMLTable(vCtr).TagName := 'P11_d8_cmp';
6722 	vXMLTable(vCtr).TagValue := to_char(l_p11_d8_cmp);
6723 	vCtr := vCtr + 1;
6724 
6725 	vXMLTable(vCtr).TagName := 'P11_d8_ant';
6726 	vXMLTable(vCtr).TagValue := to_char(l_p11_d8_ant);
6727 	vCtr := vCtr + 1;
6728 
6729 	IF (l_p11_d8_day IS NULL) THEN
6730 	   l_p11_d8_day := 0;
6731 	END IF;
6732 
6733 	vXMLTable(vCtr).TagName := 'P11_d8_day';
6734 	vXMLTable(vCtr).TagValue := to_char(l_p11_d8_day);
6735 	vCtr := vCtr + 1;
6736 
6737 	-- Average Days
6738 /*	IF (l_p11_d8_cmp > 0) THEN
6739 		l_P11_d8_avg := CEIL(l_p11_d8_day/l_p11_d8_cmp);
6740 	ELSE
6741 		l_P11_d8_avg := '0';
6742 	END IF;
6743 	vXMLTable(vCtr).TagName := 'P11_d8_avg';
6744 	vXMLTable(vCtr).TagValue := to_char(l_P11_d8_avg);
6745 	vCtr := vCtr + 1;
6746 */
6747 	-- Other
6748 
6749 	FOR cur_ctr IN cur_techniques(p_from_date, p_to_date,20,'70', p_agency_code) LOOP
6750 		l_p11_d10_cmp := cur_ctr.p11_cnt;
6751 		l_p11_d10_ant := cur_ctr.p11_prsn;
6752 		l_p11_d10_day := cur_ctr.p11_days;
6756 	vXMLTable(vCtr).TagValue := to_char(l_p11_d10_cmp);
6753 	END LOOP;
6754 
6755 	vXMLTable(vCtr).TagName := 'P11_d10_cmp';
6757 	vCtr := vCtr + 1;
6758 
6759 	vXMLTable(vCtr).TagName := 'P11_d10_ant';
6760 	vXMLTable(vCtr).TagValue := to_char(l_p11_d10_ant);
6761 	vCtr := vCtr + 1;
6762 
6763 	IF (l_p11_d10_day IS NULL) THEN
6764 	   l_p11_d10_day := 0;
6765 	END IF;
6766 
6767 	vXMLTable(vCtr).TagName := 'P11_d10_day';
6768 	vXMLTable(vCtr).TagValue := to_char(l_p11_d10_day);
6769 	vCtr := vCtr + 1;
6770 
6771 	-- Average Days
6772 /*	IF (l_p11_d10_cmp > 0) THEN
6773 		l_P11_d10_avg := CEIL(l_p11_d10_day/l_p11_d10_cmp);
6774 	ELSE
6775 		l_P11_d10_avg := '0';
6776 	END IF;
6777 	vXMLTable(vCtr).TagName := 'P11_d10_avg';
6778 	vXMLTable(vCtr).TagValue := to_char(l_P11_d10_avg);
6779 	vCtr := vCtr + 1;
6780 */
6781 	-- Multiple Techniques
6782 
6783 	l_total_count := 0;
6784 	l_total_days := 0;
6785 	l_old_cmp_id := 0;
6786 	l_old_days := 0;
6787 	l_ctr := 1;
6788 	v_temp.DELETE;
6789 
6790 
6791 	FOR cur_ctr IN cur_multitechniques(p_from_date, p_to_date,20, p_agency_code) LOOP
6792 		IF (cur_ctr.technique = '50') THEN
6793 			v_temp(l_ctr).complaint_id := cur_ctr.complaint_id;
6794 			l_total_count := l_total_count + 1;
6795 			l_total_days := l_total_days + cur_ctr.p11_days;
6796 			l_old_cmp_id := cur_ctr.complaint_id;
6797 			l_old_days := cur_ctr.p11_days;
6798 			l_ctr := l_ctr + 1;
6799 		ELSE
6800 			l_new_cmp_id := cur_ctr.complaint_id;
6801 			IF (l_old_cmp_id = l_new_cmp_id) THEN
6802 				-- Search whether entry for the same complaint exist already, if exists update the same.
6803 				l_lb_flag := 0 ;
6804 				IF (v_temp.COUNT > 0) THEN
6805 					FOR l_ctr1 IN v_temp.FIRST .. v_temp.LAST LOOP
6806 					   IF (v_temp(l_ctr1).complaint_id = l_new_cmp_id) THEN
6807 						  l_total_count := l_total_count + 1;
6808 						  l_total_days := l_total_days + cur_ctr.p11_days;
6809 						  l_lb_flag := 1;
6810 					   END IF;
6811 					END LOOP;
6812 				END IF;
6813 				-- If the complaint doesnt exist already, add new entry.
6814 				IF (l_lb_flag = 0) THEN
6815 				    v_temp(l_ctr).complaint_id := cur_ctr.complaint_id;
6816 					l_total_count := l_total_count + 2;
6817 					l_total_days := l_total_days + l_old_days + cur_ctr.p11_days;
6818 				END IF;
6819 			END IF;
6820 			l_old_cmp_id := cur_ctr.complaint_id;
6821 			l_old_days := cur_ctr.p11_days;
6822 		END IF;
6823 	END LOOP;
6824 	-- To Find out the complainants for these complaints
6825 	l_sql_str := '';
6826 
6827 	IF (v_temp.COUNT > 0) THEN
6828 		l_sql_str := v_temp(1).complaint_id;
6829 	END IF;
6830 
6831 	IF (v_temp.COUNT > 1) THEN
6832 		FOR l_ctr  IN 2 .. v_temp.COUNT LOOP
6833 		   l_sql_str := l_sql_str || ',' || to_char(v_temp(l_ctr).complaint_id);
6834 		END LOOP;
6835 	END IF;
6836 	IF (l_sql_str IS NOT NULL) THEN
6837 		l_sql_str := 'SELECT COUNT(distinct nvl(cmp.complainant_person_id,0)) FROM GHR_COMPLAINTS2 cmp  WHERE cmp.complaint_id in (' || l_sql_str || ')';
6838 		OPEN l_prsn_cur FOR l_sql_str;
6839 		FETCH l_prsn_cur INTO l_tot_prsn;
6840 		CLOSE l_prsn_cur;
6841 	ELSE
6842 		l_tot_prsn := 0;
6843 	END IF;
6844 
6845 	--------- End Multiple Techniques
6846 
6847 	vXMLTable(vCtr).TagName := 'P11_d9_cmp';
6848 	vXMLTable(vCtr).TagValue := to_char(l_total_count);
6849 	vCtr := vCtr + 1;
6850 
6851 	vXMLTable(vCtr).TagName := 'P11_d9_ant';
6852 	vXMLTable(vCtr).TagValue := to_char(l_tot_prsn);
6853 	vCtr := vCtr + 1;
6854 
6855 	IF (l_p11_3i_day IS NULL) THEN
6856 	   l_p11_3i_day := 0;
6857 	END IF;
6858 
6859 	vXMLTable(vCtr).TagName := 'P11_d9_day';
6860 	vXMLTable(vCtr).TagValue := to_char(l_total_days);
6861 	vCtr := vCtr + 1;
6862 
6863 	-- Average Days
6864 /*	IF (l_total_count > 0) THEN
6865 		l_P11_d9_avg := CEIL(l_total_days/l_total_count);
6866 	ELSE
6867 		l_P11_d9_avg := '0';
6868 	END IF;
6869 	vXMLTable(vCtr).TagName := 'P11_d9_avg';
6870 	vXMLTable(vCtr).TagValue := to_char(l_P11_d9_avg);
6871 	vCtr := vCtr + 1;
6872 */
6873 	-- Filling zeroes for Other fields
6874 	vXMLTable(vCtr).TagName := 'P11_d11_cmp';
6875 	vXMLTable(vCtr).TagValue := '0';
6876 	vCtr := vCtr + 1;
6877 
6878 	vXMLTable(vCtr).TagName := 'P11_d11_ant';
6879 	vXMLTable(vCtr).TagValue := '0';
6880 	vCtr := vCtr + 1;
6881 
6882 	vXMLTable(vCtr).TagName := 'P11_d11_day';
6883 	vXMLTable(vCtr).TagValue := '0';
6884 	vCtr := vCtr + 1;
6885 
6886 /*	vXMLTable(vCtr).TagName := 'P11_d11_avg';
6887 	vXMLTable(vCtr).TagValue := '0';
6888 	vCtr := vCtr + 1;
6889 */
6890 	vXMLTable(vCtr).TagName := 'P11_d12_cmp';
6891 	vXMLTable(vCtr).TagValue := '0';
6892 	vCtr := vCtr + 1;
6893 
6894 	vXMLTable(vCtr).TagName := 'P11_d12_ant';
6895 	vXMLTable(vCtr).TagValue := '0';
6896 	vCtr := vCtr + 1;
6897 
6898 	vXMLTable(vCtr).TagName := 'P11_d12_day';
6899 	vXMLTable(vCtr).TagValue := '0';
6900 	vCtr := vCtr + 1;
6901 
6902 /*	vXMLTable(vCtr).TagName := 'P11_d12_avg';
6903 	vXMLTable(vCtr).TagValue := '0';
6904 	vCtr := vCtr + 1;
6905 */
6906 	l_p11_d_cmp :=  l_p11_d1_cmp + l_p11_d2_cmp + l_p11_d3_cmp + l_P11_d4_cmp + l_p11_d5_cmp + l_p11_d6_cmp + l_p11_d7_cmp + l_p11_d8_cmp + l_total_count + l_p11_d10_cmp;
6907 	l_p11_d_ant := l_p11_d1_ant + l_p11_d2_ant + l_p11_d3_ant + l_p11_d4_ant + l_p11_d5_ant + l_p11_d6_ant + l_p11_d7_ant + l_p11_d8_ant + l_tot_prsn + l_p11_d10_ant;
6908 	l_p11_d_day := l_p11_d1_day + l_p11_d2_day + l_p11_d3_day + l_p11_d4_day + l_p11_d5_day + l_p11_d6_day + l_p11_d7_day + l_p11_d8_day + l_total_days + l_p11_d10_day;
6909 	l_p11_d_avg := l_p11_d1_avg + l_p11_d2_avg + l_p11_d3_avg + l_p11_d4_avg + l_p11_d5_avg + l_p11_d6_avg + l_p11_d7_avg + l_p11_d8_avg + l_p11_d9_avg + l_p11_d10_avg;
6910 
6914 
6911 	vXMLTable(vCtr).TagName := 'P11_d_cmp';
6912 	vXMLTable(vCtr).TagValue := to_char(l_p11_d_cmp);
6913 	vCtr := vCtr + 1;
6915 	vXMLTable(vCtr).TagName := 'P11_d_ant';
6916 	vXMLTable(vCtr).TagValue := to_char(l_p11_d_ant);
6917 	vCtr := vCtr + 1;
6918 
6919 	vXMLTable(vCtr).TagName := 'P11_d_day';
6920 	vXMLTable(vCtr).TagValue := to_char(l_p11_d_day);
6921 	vCtr := vCtr + 1;
6922 
6923 /*	vXMLTable(vCtr).TagName := 'P11_d_avg';
6924 	vXMLTable(vCtr).TagValue := to_char(l_p11_d_avg);
6925 	vCtr := vCtr + 1;
6926 */
6927 		fnd_file.put_line(fnd_file.log,'Finished populating Part11 - Techniques');
6928 	-- Status of Cases
6929 	-- Settlement with benefits
6930 	FOR cur_ctr IN cur_case_status_settle(p_from_date, p_to_date,20, p_agency_code) LOOP
6931 		l_p11_e1a_cmp := cur_ctr.p11_cnt;
6932 		l_p11_e1a_ant := cur_ctr.p11_prsn;
6933 		l_p11_e1a_day := cur_ctr.p11_days;
6934 	END LOOP;
6935 
6936 	vXMLTable(vCtr).TagName := 'P11_e1a_cmp';
6937 	vXMLTable(vCtr).TagValue := to_char(l_p11_e1a_cmp);
6938 	vCtr := vCtr + 1;
6939 
6940 	vXMLTable(vCtr).TagName := 'P11_e1a_ant';
6941 	vXMLTable(vCtr).TagValue := to_char(l_p11_e1a_ant);
6942 	vCtr := vCtr + 1;
6943 
6944 	IF (l_p11_e1a_day IS NULL) THEN
6945 	   l_p11_e1a_day := 0;
6946 	END IF;
6947 
6948 
6949 	vXMLTable(vCtr).TagName := 'P11_e1a_day';
6950 	vXMLTable(vCtr).TagValue := to_char(l_p11_e1a_day);
6951 	vCtr := vCtr + 1;
6952 
6953 	-- Average Days
6954 /*	IF (l_p11_e1a_cmp > 0) THEN
6955 		l_P11_e1a_avg := CEIL(l_p11_e1a_day/l_p11_e1a_cmp);
6956 	ELSE
6957 		l_P11_e1a_avg := 0;
6958 	END IF;
6959 	vXMLTable(vCtr).TagName := 'P11_e1a_avg';
6960 	vXMLTable(vCtr).TagValue := to_char(l_P11_e1a_avg);
6961 	vCtr := vCtr + 1;
6962 */
6963 	-- Withdrawals
6964 	FOR cur_ctr IN cur_case_status(p_from_date, p_to_date,20,'170', p_agency_code) LOOP
6965 		l_p11_e1b_cmp := cur_ctr.p11_cnt;
6966 		l_p11_e1b_ant := cur_ctr.p11_prsn;
6967 		l_p11_e1b_day := cur_ctr.p11_days;
6968 	END LOOP;
6969 
6970 	vXMLTable(vCtr).TagName := 'P11_e1b_cmp';
6971 	vXMLTable(vCtr).TagValue := to_char(l_p11_e1b_cmp);
6972 	vCtr := vCtr + 1;
6973 
6974 	vXMLTable(vCtr).TagName := 'P11_e1b_ant';
6975 	vXMLTable(vCtr).TagValue := to_char(l_p11_e1b_ant);
6976 	vCtr := vCtr + 1;
6977 
6978 	IF (l_p11_e1b_day IS NULL) THEN
6979 	   l_p11_e1b_day := 0;
6980 	END IF;
6981 
6982 
6983 	vXMLTable(vCtr).TagName := 'P11_e1b_day';
6984 	vXMLTable(vCtr).TagValue := to_char(l_p11_e1b_day);
6985 	vCtr := vCtr + 1;
6986 
6987 	-- Average Days
6988 /*	IF (l_p11_e1b_cmp > 0) THEN
6989 		l_P11_e1b_avg := CEIL(l_p11_e1b_day/l_p11_e1b_cmp);
6990 	ELSE
6991 		l_P11_e1b_avg := 0;
6992 	END IF;
6993 	vXMLTable(vCtr).TagName := 'P11_e1b_avg';
6994 	vXMLTable(vCtr).TagValue := to_char(l_P11_e1b_avg);
6995 	vCtr := vCtr + 1;
6996 */
6997 	-- No Resolution
6998 	FOR cur_ctr IN cur_case_status(p_from_date, p_to_date,20,'220', p_agency_code) LOOP
6999 		l_p11_e1c_cmp := cur_ctr.p11_cnt;
7000 		l_p11_e1c_ant := cur_ctr.p11_prsn;
7001 		l_p11_e1c_day := cur_ctr.p11_days;
7002 	END LOOP;
7003 
7004 	vXMLTable(vCtr).TagName := 'P11_e1c_cmp';
7005 	vXMLTable(vCtr).TagValue := to_char(l_p11_e1c_cmp);
7006 	vCtr := vCtr + 1;
7007 
7008 	vXMLTable(vCtr).TagName := 'P11_e1c_ant';
7009 	vXMLTable(vCtr).TagValue := to_char(l_p11_e1c_ant);
7010 	vCtr := vCtr + 1;
7011 
7012 	IF (l_p11_e1c_day IS NULL) THEN
7013 	   l_p11_e1c_day := 0;
7014 	END IF;
7015 
7016 	vXMLTable(vCtr).TagName := 'P11_e1c_day';
7017 	vXMLTable(vCtr).TagValue := to_char(l_p11_e1c_day);
7018 	vCtr := vCtr + 1;
7019 
7020 	-- Average Days
7021 /*	IF (l_p11_e1c_cmp > 0) THEN
7022 		l_P11_e1c_avg := CEIL(l_p11_e1c_day/l_p11_e1c_cmp);
7023 	ELSE
7024 		l_P11_e1c_avg := 0;
7025 	END IF;
7026 	vXMLTable(vCtr).TagName := 'P11_e1c_avg';
7027 	vXMLTable(vCtr).TagValue := to_char(l_P11_e1c_avg);
7028 	vCtr := vCtr + 1;
7029 */
7030 
7031 	-- Other
7032 	FOR cur_ctr IN cur_case_status(p_from_date, p_to_date,20,'230', p_agency_code) LOOP
7033 		l_p11_e1d_cmp := cur_ctr.p11_cnt;
7034 		l_p11_e1d_ant := cur_ctr.p11_prsn;
7035 		l_p11_e1d_day := cur_ctr.p11_days;
7036 	END LOOP;
7037 
7038 	vXMLTable(vCtr).TagName := 'P11_e1d_cmp';
7039 	vXMLTable(vCtr).TagValue := to_char(l_p11_e1d_cmp);
7040 	vCtr := vCtr + 1;
7041 
7042 	vXMLTable(vCtr).TagName := 'P11_e1d_ant';
7043 	vXMLTable(vCtr).TagValue := to_char(l_p11_e1d_ant);
7044 	vCtr := vCtr + 1;
7045 
7046 	IF (l_p11_e1d_day IS NULL) THEN
7047 	   l_p11_e1d_day := 0;
7048 	END IF;
7049 
7050 	vXMLTable(vCtr).TagName := 'P11_e1d_day';
7051 	vXMLTable(vCtr).TagValue := to_char(l_p11_e1d_day);
7052 	vCtr := vCtr + 1;
7053 
7054 	-- Average Days
7055 /*	IF (l_p11_e1d_cmp > 0) THEN
7056 		l_P11_e1d_avg := CEIL(l_p11_e1d_day/l_p11_e1d_cmp);
7057 	ELSE
7058 		l_P11_e1d_avg := 0;
7059 	END IF;
7060 	vXMLTable(vCtr).TagName := 'P11_e1d_avg';
7061 	vXMLTable(vCtr).TagValue := to_char(l_P11_e1d_avg);
7062 	vCtr := vCtr + 1;
7063 */
7064 	-- Filling zeroes for other fields
7065 
7066 	vXMLTable(vCtr).TagName := 'P11_e1e_cmp';
7067 	vXMLTable(vCtr).TagValue := '0';
7068 	vCtr := vCtr + 1;
7069 
7070 	vXMLTable(vCtr).TagName := 'P11_e1e_ant';
7071 	vXMLTable(vCtr).TagValue := '0';
7072 	vCtr := vCtr + 1;
7073 
7074 	vXMLTable(vCtr).TagName := 'P11_e1e_day';
7075 	vXMLTable(vCtr).TagValue := '0';
7076 	vCtr := vCtr + 1;
7077 
7078 /*	vXMLTable(vCtr).TagName := 'P11_e1e_avg';
7079 	vXMLTable(vCtr).TagValue := '0';
7080 	vCtr := vCtr + 1;
7081 */
7082 	vXMLTable(vCtr).TagName := 'P11_e1f_cmp';
7083 	vXMLTable(vCtr).TagValue := '0';
7087 	vXMLTable(vCtr).TagValue := '0';
7084 	vCtr := vCtr + 1;
7085 
7086 	vXMLTable(vCtr).TagName := 'P11_e1f_ant';
7088 	vCtr := vCtr + 1;
7089 
7090 	vXMLTable(vCtr).TagName := 'P11_e1f_day';
7091 	vXMLTable(vCtr).TagValue := '0';
7092 	vCtr := vCtr + 1;
7093 
7094 /*	vXMLTable(vCtr).TagName := 'P11_e1f_avg';
7095 	vXMLTable(vCtr).TagValue := '0';
7096 	vCtr := vCtr + 1;
7097 */
7098 	-- Total Closed
7099 	l_p11_e1_cmp := l_p11_e1a_cmp + l_p11_e1b_cmp + l_p11_e1c_cmp + l_p11_e1d_cmp;
7100 	l_p11_e1_ant := l_p11_e1a_ant + l_p11_e1b_ant + l_p11_e1c_ant + l_p11_e1d_ant;
7101 	l_p11_e1_day := l_p11_e1a_day + l_p11_e1b_day + l_p11_e1c_day + l_p11_e1d_day;
7102 	l_p11_e1_avg := l_p11_e1a_avg + l_p11_e1b_avg + l_p11_e1c_avg + l_p11_e1d_avg;
7103 
7104 	vXMLTable(vCtr).TagName := 'P11_e1_cmp';
7105 	vXMLTable(vCtr).TagValue := to_char(l_p11_e1_cmp);
7106 	vCtr := vCtr + 1;
7107 
7108 	vXMLTable(vCtr).TagName := 'P11_e1_ant';
7109 	vXMLTable(vCtr).TagValue := to_char(l_p11_e1_ant);
7110 	vCtr := vCtr + 1;
7111 
7112 	vXMLTable(vCtr).TagName := 'P11_e1_day';
7113 	vXMLTable(vCtr).TagValue := to_char(l_p11_e1_day);
7114 	vCtr := vCtr + 1;
7115 
7116 /*	vXMLTable(vCtr).TagName := 'P11_e1_avg';
7117 	vXMLTable(vCtr).TagValue := to_char(l_p11_e1_avg);
7118 	vCtr := vCtr + 1;
7119 */
7120 	fnd_file.put_line(fnd_file.log,'Finished populating Part11 - Closed Status');
7121 	-- Open inventory
7122 	-- Result of (A + B4 - E1)
7123 
7124 	/*(FOR cur_ctr IN cur_open_inventory(p_from_date, p_to_date,'20', p_agency_code) LOOP
7125 		l_p11_e2_cmp := cur_ctr.p11_cnt;
7126 		l_p11_e2_ant := cur_ctr.p11_prsn;
7127 		l_p11_e2_day := cur_ctr.p11_days;
7128 	END LOOP; */
7129 	l_p11_e2_cmp := l_p11_a_cmp + l_p11_b4_cmp - l_p11_e1_cmp;
7130 	l_p11_e2_ant := l_p11_a_ant + l_p11_b4_ant - l_p11_e1_ant;
7131 	l_p11_e2_day := l_p11_a_day + l_p11_b4_day - l_p11_e1_day;
7132 
7133 	vXMLTable(vCtr).TagName := 'P11_e2_cmp';
7134 	vXMLTable(vCtr).TagValue := to_char(l_p11_e2_cmp);
7135 	vCtr := vCtr + 1;
7136 
7137 	vXMLTable(vCtr).TagName := 'P11_e2_ant';
7138 	vXMLTable(vCtr).TagValue := to_char(l_p11_e2_ant);
7139 	vCtr := vCtr + 1;
7140 
7141 	IF (l_p11_e2_day IS NULL) THEN
7142 		l_p11_e2_day := 0;
7143 	END IF;
7144 
7145 	vXMLTable(vCtr).TagName := 'P11_e2_day';
7146 	vXMLTable(vCtr).TagValue := to_char(l_p11_e2_day);
7147 	vCtr := vCtr + 1;
7148 
7149 	-- Average Days
7150 /*	IF (l_p11_e2_cmp > 0) THEN
7151 		l_P11_e2_avg := CEIL(l_p11_e2_day/l_p11_e2_cmp);
7152 	ELSE
7153 		l_P11_e2_avg := 0;
7154 	END IF;
7155 	vXMLTable(vCtr).TagName := 'P11_e2_avg';
7156 	vXMLTable(vCtr).TagValue := to_char(l_P11_e2_avg);
7157 	vCtr := vCtr + 1;
7158 */
7159 
7160 	fnd_file.put_line(fnd_file.log,'Finished populating Part11 - Open Inventory');
7161 	-- Benefits Received
7162 	-- Compensatory Damages
7163 	FOR cur_ctr IN cur_benefits_pt2(p_from_date, p_to_date,20,'30','30','40', p_agency_code) LOOP
7164 		l_p11_f1a_cmp := cur_ctr.p11_cnt;
7165 		l_p11_f1a_ant := cur_ctr.p11_prsn;
7166 		l_p11_f1a_amt := cur_ctr.p11_amt;
7167 	END LOOP;
7168 
7169 	vXMLTable(vCtr).TagName := 'P11_f1a_cmp';
7170 	vXMLTable(vCtr).TagValue := to_char(l_p11_f1a_cmp);
7171 	vCtr := vCtr + 1;
7172 
7173 	vXMLTable(vCtr).TagName := 'P11_f1a_ant';
7174 	vXMLTable(vCtr).TagValue := to_char(l_p11_f1a_ant);
7175 	vCtr := vCtr + 1;
7176 
7177 	vXMLTable(vCtr).TagName := 'P11_f1a_amt';
7178 	vXMLTable(vCtr).TagValue := to_char(l_p11_f1a_amt);
7179 	vCtr := vCtr + 1;
7180 
7181 	-- BackPay and front pay
7182 	FOR cur_ctr IN cur_benefits(p_from_date, p_to_date,20,'30','20', p_agency_code) LOOP
7183 		l_p11_f1b_cmp := cur_ctr.p11_cnt;
7184 		l_p11_f1b_ant := cur_ctr.p11_prsn;
7185 		l_p11_f1b_amt := cur_ctr.p11_amt;
7186 	END LOOP;
7187 
7188 	vXMLTable(vCtr).TagName := 'P11_f1b_cmp';
7189 	vXMLTable(vCtr).TagValue := to_char(l_p11_f1b_cmp);
7190 	vCtr := vCtr + 1;
7191 
7192 	vXMLTable(vCtr).TagName := 'P11_f1b_ant';
7193 	vXMLTable(vCtr).TagValue := to_char(l_p11_f1b_ant);
7194 	vCtr := vCtr + 1;
7195 
7196 	vXMLTable(vCtr).TagName := 'P11_f1b_amt';
7197 	vXMLTable(vCtr).TagValue := to_char(l_p11_f1b_amt);
7198 	vCtr := vCtr + 1;
7199 
7200 	-- Lump Sum
7201 	FOR cur_ctr IN cur_benefits(p_from_date, p_to_date,20,'30','50', p_agency_code) LOOP
7202 		l_p11_f1c_cmp := cur_ctr.p11_cnt;
7203 		l_p11_f1c_ant := cur_ctr.p11_prsn;
7204 		l_p11_f1c_amt := cur_ctr.p11_amt;
7205 	END LOOP;
7206 
7207 	vXMLTable(vCtr).TagName := 'P11_f1c_cmp';
7208 	vXMLTable(vCtr).TagValue := to_char(l_p11_f1c_cmp);
7209 	vCtr := vCtr + 1;
7210 
7211 	vXMLTable(vCtr).TagName := 'P11_f1c_ant';
7212 	vXMLTable(vCtr).TagValue := to_char(l_p11_f1c_ant);
7213 	vCtr := vCtr + 1;
7214 
7215 	vXMLTable(vCtr).TagName := 'P11_f1c_amt';
7216 	vXMLTable(vCtr).TagValue := to_char(l_p11_f1c_amt);
7217 	vCtr := vCtr + 1;
7218 
7219 	-- Attorney's fees and costs
7220 	FOR cur_ctr IN cur_benefits(p_from_date, p_to_date,20,'30','10', p_agency_code) LOOP
7221 		l_p11_f1d_cmp := cur_ctr.p11_cnt;
7222 		l_p11_f1d_ant := cur_ctr.p11_prsn;
7223 		l_p11_f1d_amt := cur_ctr.p11_amt;
7224 	END LOOP;
7225 
7226 	vXMLTable(vCtr).TagName := 'P11_f1d_cmp';
7227 	vXMLTable(vCtr).TagValue := to_char(l_p11_f1d_cmp);
7228 	vCtr := vCtr + 1;
7229 
7230 	vXMLTable(vCtr).TagName := 'P11_f1d_ant';
7231 	vXMLTable(vCtr).TagValue := to_char(l_p11_f1d_ant);
7232 	vCtr := vCtr + 1;
7233 
7234 	vXMLTable(vCtr).TagName := 'P11_f1d_amt';
7235 	vXMLTable(vCtr).TagValue := to_char(l_p11_f1d_amt);
7236 	vCtr := vCtr + 1;
7237 
7238 	-- Other
7242 		l_p11_f1e_amt := cur_ctr.p11_amt;
7239 	FOR cur_ctr IN cur_benefits(p_from_date, p_to_date,20,'30','60', p_agency_code) LOOP
7240 		l_p11_f1e_cmp := cur_ctr.p11_cnt;
7241 		l_p11_f1e_ant := cur_ctr.p11_prsn;
7243 	END LOOP;
7244 
7245 	vXMLTable(vCtr).TagName := 'P11_f1e_cmp';
7246 	vXMLTable(vCtr).TagValue := to_char(l_p11_f1e_cmp);
7247 	vCtr := vCtr + 1;
7248 
7249 	vXMLTable(vCtr).TagName := 'P11_f1e_ant';
7250 	vXMLTable(vCtr).TagValue := to_char(l_p11_f1e_ant);
7251 	vCtr := vCtr + 1;
7252 
7253 	vXMLTable(vCtr).TagName := 'P11_f1e_amt';
7254 	vXMLTable(vCtr).TagValue := to_char(l_p11_f1e_amt);
7255 	vCtr := vCtr + 1;
7256 
7257 	-- Filling zeroes for other fields
7258 
7259 	vXMLTable(vCtr).TagName := 'P11_f1f_cmp';
7260 	vXMLTable(vCtr).TagValue := '0';
7261 	vCtr := vCtr + 1;
7262 
7263 	vXMLTable(vCtr).TagName := 'P11_f1f_ant';
7264 	vXMLTable(vCtr).TagValue := '0';
7265 	vCtr := vCtr + 1;
7266 
7267 	vXMLTable(vCtr).TagName := 'P11_f1f_amt';
7268 	vXMLTable(vCtr).TagValue := '0';
7269 	vCtr := vCtr + 1;
7270 
7271 	vXMLTable(vCtr).TagName := 'P11_f1g_cmp';
7272 	vXMLTable(vCtr).TagValue := '0';
7273 	vCtr := vCtr + 1;
7274 
7275 	vXMLTable(vCtr).TagName := 'P11_f1g_ant';
7276 	vXMLTable(vCtr).TagValue := '0';
7277 	vCtr := vCtr + 1;
7278 
7279 	vXMLTable(vCtr).TagName := 'P11_f1g_amt';
7280 	vXMLTable(vCtr).TagValue := '0';
7281 	vCtr := vCtr + 1;
7282 
7283 
7284 	-- Total
7285 	FOR cur_ctr IN cur_tot_benefits(p_from_date, p_to_date,20,'30', p_agency_code) LOOP
7286 		l_p11_f1_cmp := cur_ctr.p11_cnt;
7287 		l_p11_f1_ant := cur_ctr.p11_prsn;
7288 	END LOOP;
7289 --	l_p11_f1_cmp := l_p11_f1a_cmp + l_p11_f1b_cmp + l_p11_f1c_cmp + l_p11_f1d_cmp + l_p11_f1e_cmp;
7290 --	l_p11_f1_ant := l_p11_f1a_ant + l_p11_f1b_ant + l_p11_f1c_ant + l_p11_f1d_ant + l_p11_f1e_ant;
7291 	l_p11_f1_amt := l_p11_f1a_amt + l_p11_f1b_amt + l_p11_f1c_amt + l_p11_f1d_amt + l_p11_f1e_amt;
7292 
7293 	vXMLTable(vCtr).TagName := 'P11_f1_cmp';
7294 	vXMLTable(vCtr).TagValue := to_char(l_p11_f1_cmp);
7295 	vCtr := vCtr + 1;
7296 
7297 	vXMLTable(vCtr).TagName := 'P11_f1_ant';
7298 	vXMLTable(vCtr).TagValue := to_char(l_p11_f1_ant);
7299 	vCtr := vCtr + 1;
7300 
7301 	vXMLTable(vCtr).TagName := 'P11_f1_amt';
7302 	vXMLTable(vCtr).TagValue := to_char(l_p11_f1_amt);
7303 	vCtr := vCtr + 1;
7304 	fnd_file.put_line(fnd_file.log,'Finished populating Part11 - Benefits Received Monetary');
7305 	-- Non-Monetary
7306 	-- New Hires
7307 	FOR cur_ctr IN cur_benefits_nm_pt2(p_from_date, p_to_date,20,'30','70','80', p_agency_code) LOOP
7308 		l_p11_f2a_cmp := cur_ctr.p11_cnt;
7309 		l_p11_f2a_ant := cur_ctr.p11_prsn;
7310 	END LOOP;
7311 
7312 	vXMLTable(vCtr).TagName := 'P11_f2a_cmp';
7313 	vXMLTable(vCtr).TagValue := to_char(l_p11_f2a_cmp);
7314 	vCtr := vCtr + 1;
7315 
7316 	vXMLTable(vCtr).TagName := 'P11_f2a_ant';
7317 	vXMLTable(vCtr).TagValue := to_char(l_p11_f2a_ant);
7318 	vCtr := vCtr + 1;
7319 
7320 	-- Promotions
7321 	FOR cur_ctr IN cur_benefits_nm_pt2(p_from_date, p_to_date,20,'30','130','140', p_agency_code) LOOP
7322 		l_p11_f2b_cmp := cur_ctr.p11_cnt;
7323 		l_p11_f2b_ant := cur_ctr.p11_prsn;
7324 	END LOOP;
7325 
7326 	vXMLTable(vCtr).TagName := 'P11_f2b_cmp';
7327 	vXMLTable(vCtr).TagValue := to_char(l_p11_f2b_cmp);
7328 	vCtr := vCtr + 1;
7329 
7330 	vXMLTable(vCtr).TagName := 'P11_f2b_ant';
7331 	vXMLTable(vCtr).TagValue := to_char(l_p11_f2b_ant);
7332 	vCtr := vCtr + 1;
7333 
7334 	-- Reinstatements
7335 	FOR cur_ctr IN cur_benefits_nm(p_from_date, p_to_date,20,'30','160', p_agency_code) LOOP
7336 		l_p11_f2c_cmp := cur_ctr.p11_cnt;
7337 		l_p11_f2c_ant := cur_ctr.p11_prsn;
7338 	END LOOP;
7339 
7340 	vXMLTable(vCtr).TagName := 'P11_f2c_cmp';
7341 	vXMLTable(vCtr).TagValue := to_char(l_p11_f2c_cmp);
7342 	vCtr := vCtr + 1;
7343 
7344 	vXMLTable(vCtr).TagName := 'P11_f2c_ant';
7345 	vXMLTable(vCtr).TagValue := to_char(l_p11_f2c_ant);
7346 	vCtr := vCtr + 1;
7347 
7348 	-- Expungements
7349 	FOR cur_ctr IN cur_benefits_nm(p_from_date, p_to_date,20,'30','60', p_agency_code) LOOP
7350 		l_p11_f2d_cmp := cur_ctr.p11_cnt;
7351 		l_p11_f2d_ant := cur_ctr.p11_prsn;
7352 	END LOOP;
7353 
7354 	vXMLTable(vCtr).TagName := 'P11_f2d_cmp';
7355 	vXMLTable(vCtr).TagValue := to_char(l_p11_f2d_cmp);
7356 	vCtr := vCtr + 1;
7357 
7358 	vXMLTable(vCtr).TagName := 'P11_f2d_ant';
7359 	vXMLTable(vCtr).TagValue := to_char(l_p11_f2d_ant);
7360 	vCtr := vCtr + 1;
7361 
7362 	-- Transfers
7363 	FOR cur_ctr IN cur_benefits_nm(p_from_date, p_to_date,20,'30','190', p_agency_code) LOOP
7364 		l_p11_f2e_cmp := cur_ctr.p11_cnt;
7365 		l_p11_f2e_ant := cur_ctr.p11_prsn;
7366 	END LOOP;
7367 
7368 	vXMLTable(vCtr).TagName := 'P11_f2e_cmp';
7369 	vXMLTable(vCtr).TagValue := to_char(l_p11_f2e_cmp);
7370 	vCtr := vCtr + 1;
7371 
7372 	vXMLTable(vCtr).TagName := 'P11_f2e_ant';
7373 	vXMLTable(vCtr).TagValue := to_char(l_p11_f2e_ant);
7374 	vCtr := vCtr + 1;
7375 
7376 	-- Removals Rescinded and Voluntary Resignations
7377 	FOR cur_ctr IN cur_benefits_nm(p_from_date, p_to_date,20,'30','170', p_agency_code) LOOP
7378 		l_p11_5b6_cmp := cur_ctr.p11_cnt;
7379 		l_P11_f2f_ant := cur_ctr.p11_prsn;
7380 	END LOOP;
7381 
7382 	vXMLTable(vCtr).TagName := 'P11_f2f_cmp';
7383 	vXMLTable(vCtr).TagValue := to_char(l_p11_5b6_cmp);
7384 	vCtr := vCtr + 1;
7385 
7386 	vXMLTable(vCtr).TagName := 'P11_f2f_ant';
7387 	vXMLTable(vCtr).TagValue := to_char(l_P11_f2f_ant);
7388 	vCtr := vCtr + 1;
7389 
7390 	-- Reasonable accomodations
7394 	END LOOP;
7391 	FOR cur_ctr IN cur_benefits_nm(p_from_date, p_to_date,20,'30','10', p_agency_code) LOOP
7392 		l_p11_f2g_cmp := cur_ctr.p11_cnt;
7393 		l_p11_f2g_ant := cur_ctr.p11_prsn;
7395 
7396 	vXMLTable(vCtr).TagName := 'P11_f2g_cmp';
7397 	vXMLTable(vCtr).TagValue := to_char(l_p11_f2g_cmp);
7398 	vCtr := vCtr + 1;
7399 
7400 	vXMLTable(vCtr).TagName := 'P11_f2g_ant';
7401 	vXMLTable(vCtr).TagValue := to_char(l_p11_f2g_ant);
7402 	vCtr := vCtr + 1;
7403 
7404 
7405 	-- Training
7406 	FOR cur_ctr IN cur_benefits_nm(p_from_date, p_to_date,20,'30','180', p_agency_code) LOOP
7407 		l_p11_f2h_cmp := cur_ctr.p11_cnt;
7408 		l_p11_f2h_ant := cur_ctr.p11_prsn;
7409 	END LOOP;
7410 
7411 	vXMLTable(vCtr).TagName := 'P11_f2h_cmp';
7412 	vXMLTable(vCtr).TagValue := to_char(l_p11_f2h_cmp);
7413 	vCtr := vCtr + 1;
7414 
7415 	vXMLTable(vCtr).TagName := 'P11_f2h_ant';
7416 	vXMLTable(vCtr).TagValue := to_char(l_p11_f2h_ant);
7417 	vCtr := vCtr + 1;
7418 
7419 	-- Apology
7420 
7421 	FOR cur_ctr IN cur_benefits_nm(p_from_date, p_to_date,20,'30','20', p_agency_code) LOOP
7422 		l_p11_f2i_cmp := cur_ctr.p11_cnt;
7423 		l_p11_f2i_ant := cur_ctr.p11_prsn;
7424 	END LOOP;
7425 
7426 	vXMLTable(vCtr).TagName := 'P11_f2i_cmp';
7427 	vXMLTable(vCtr).TagValue := to_char(l_p11_f2i_cmp);
7428 	vCtr := vCtr + 1;
7429 
7430 	vXMLTable(vCtr).TagName := 'P11_f2i_ant';
7431 	vXMLTable(vCtr).TagValue := to_char(l_p11_f2i_ant);
7432 	vCtr := vCtr + 1;
7433 
7434 	-- Other
7435 
7436 	FOR cur_ctr IN cur_benefits_nm(p_from_date, p_to_date,20,'30','100', p_agency_code) LOOP
7437 		l_p11_f2j_cmp := cur_ctr.p11_cnt;
7438 		l_p11_f2j_ant := cur_ctr.p11_prsn;
7439 	END LOOP;
7440 
7441 	vXMLTable(vCtr).TagName := 'P11_f2j_cmp';
7442 	vXMLTable(vCtr).TagValue := to_char(l_p11_f2j_cmp);
7443 	vCtr := vCtr + 1;
7444 
7445 	vXMLTable(vCtr).TagName := 'P11_f2j_ant';
7446 	vXMLTable(vCtr).TagValue := to_char(l_p11_f2j_ant);
7447 	vCtr := vCtr + 1;
7448 
7449 
7450 
7451 	vXMLTable(vCtr).TagName := 'P11_f2k_cmp';
7452 	vXMLTable(vCtr).TagValue := '0';
7453 	vCtr := vCtr + 1;
7454 
7455 	vXMLTable(vCtr).TagName := 'P11_f2k_ant';
7456 	vXMLTable(vCtr).TagValue := '0';
7457 	vCtr := vCtr + 1;
7458 
7459 	vXMLTable(vCtr).TagName := 'P11_f2l_cmp';
7460 	vXMLTable(vCtr).TagValue := '0';
7461 	vCtr := vCtr + 1;
7462 
7463 	vXMLTable(vCtr).TagName := 'P11_f2l_ant';
7464 	vXMLTable(vCtr).TagValue := '0';
7465 	vCtr := vCtr + 1;
7466 
7467 
7468 /*	l_p11_f2_cmp := l_p11_f2a_cmp + l_p11_f2b_cmp + l_p11_f2c_cmp + l_p11_f2d_cmp + l_p11_f2e_cmp + l_p11_5b6_cmp +
7469 						l_p11_f2g_cmp + l_p11_f2h_cmp + l_p11_f2i_cmp;
7470 	l_p11_f2_ant := l_p11_f2a_ant + l_p11_f2b_ant + l_p11_f2c_ant + l_p11_f2d_ant + l_p11_f2e_ant + l_P11_f2f_ant +
7471 						l_p11_f2g_ant + l_p11_f2h_ant + l_p11_f2i_ant; */
7472 
7473 	-- Total Complaints and Complainants
7474 
7475 	FOR cur_ctr IN cur_tot_benefits_nm(p_from_date, p_to_date,20,'30', p_agency_code) LOOP
7476 		l_p11_f2_cmp := cur_ctr.p11_cnt;
7477 		l_p11_f2_ant := cur_ctr.p11_prsn;
7478 	END LOOP;
7479 
7480 	vXMLTable(vCtr).TagName := 'P11_f2_cmp';
7481 	vXMLTable(vCtr).TagValue := to_char(l_p11_f2_cmp);
7482 	vCtr := vCtr + 1;
7483 
7484 	vXMLTable(vCtr).TagName := 'P11_f2_ant';
7485 	vXMLTable(vCtr).TagValue := to_char(l_p11_f2_ant);
7486 	vCtr := vCtr + 1;
7487 	fnd_file.put_line(fnd_file.log,'Finished populating Part11 - Benefits received Non Monetary');
7488 	fnd_file.put_line(fnd_file.log,'------------End of Part11 ----------------');
7489 END populate_part11;
7490 
7491 PROCEDURE WritetoXML (
7492 	p_request_id in number,
7493 	p_agency_code   in varchar,
7494 	p_fiscal_year in number,
7495     p_from_date   in date,
7496 	p_to_date     in date,
7497 	p_output_fname out nocopy varchar2)
7498 IS
7499 	p_l_fp UTL_FILE.FILE_TYPE;
7500 	l_audit_log_dir varchar2(500) := '/sqlcom/outbound';
7501 	l_file_name varchar2(50);
7502 	l_agency_name varchar2(500);
7503 	l_check_flag number;
7504 BEGIN
7505 	-----------------------------------------------------------------------------
7506 	-- Writing into XML File
7507 	-----------------------------------------------------------------------------
7508 	-- Assigning the File name.
7509 	l_file_name :=  to_char(p_request_id) || '.xml';
7510 	-- Getting the Util file directory name.mostly it'll be /sqlcom/outbound )
7511 	BEGIN
7512 		SELECT value
7513 		INTO l_audit_log_dir
7514 		FROM v$parameter
7515 		WHERE LOWER(name) = 'utl_file_dir';
7516 		-- Check whether more than one util file directory is found
7517 		IF INSTR(l_audit_log_dir,',') > 0 THEN
7518 		   l_audit_log_dir := substr(l_audit_log_dir,1,instr(l_audit_log_dir,',')-1);
7519 		END IF;
7520 	EXCEPTION
7521 		when no_data_found then
7522 			null;
7523 	END;
7524 	-- Find out whether the OS is MS or Unix based
7525 	-- If it's greater than 0, it's unix based environment
7526 	IF INSTR(l_audit_log_dir,'/') > 0 THEN
7527 		p_output_fname := l_audit_log_dir || '/' || l_file_name;
7528 	ELSE
7529         p_output_fname := l_audit_log_dir || '\' || l_file_name;
7530 	END IF;
7531 
7532 	-- getting Agency name
7533 	BEGIN
7534 		SELECT meaning
7535 		INTO l_agency_name
7536 		FROM hr_lookups
7537 		WHERE lookup_type = 'GHR_US_AGENCY_CODE_2'
7538 		AND lookup_code = p_agency_code;
7539 	EXCEPTION
7540 		WHEN NO_DATA_FOUND THEN
7541 			l_agency_name := NULL;
7542 	END;
7543 	p_l_fp := utl_file.fopen(l_audit_log_dir,l_file_name,'w');
7544 	utl_file.put_line(p_l_fp,'<?xml version="1.0" encoding="UTF-8"?>');
7545 	utl_file.put_line(p_l_fp,'<xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve">');
7546 	-- Writing from and to dates
7547 	utl_file.put_line(p_l_fp,'<fields>');
7551 	WriteXMLvalues(p_l_fp,'P0_agency',l_agency_name);
7548 	-- Write the header fields to XML File.
7549 	WriteXMLvalues(p_l_fp,'P0_from_date',to_char(p_from_date,'dd') || ' ' || trim(to_char(p_from_date,'Month')) || ' ' || to_char(p_from_date,'yyyy') );
7550 	WriteXMLvalues(p_l_fp,'P0_to_date',to_char(p_to_date,'dd') || ' ' ||to_char(p_to_date,'Month') || ' ' || to_char(p_to_date,'yyyy') );
7552 	WriteXMLvalues(p_l_fp,'P0_year',p_fiscal_year);
7553 	-- Loop through PL/SQL Table and write the values into the XML File.
7554 	-- Need to try FORALL instead of FOR
7555 	FOR ctr_table IN vXMLTable.FIRST .. vXMLTable.LAST LOOP
7556 		WriteXMLvalues(p_l_fp,vXMLTable(ctr_table).TagName ,vXMLTable(ctr_table).TagValue);
7557 	END LOOP;
7558 	-- Write the end tag and close the XML File.
7559 	utl_file.put_line(p_l_fp,'</fields>');
7560 	utl_file.put_line(p_l_fp,'</xfdf>');
7561 	utl_file.fclose(p_l_fp);
7562 
7563 END WritetoXML;
7564 
7565 PROCEDURE WriteXMLvalues(p_l_fp utl_file.file_type,p_tagname IN VARCHAR2, p_value IN VARCHAR2) IS
7566 BEGIN
7567 	-- Writing XML Tag and values to XML File
7568 --	utl_file.put_line(p_l_fp,'<' || p_tagname || '>' || p_value || '</' || p_tagname || '>'  );
7569 	-- New Format XFDF
7570 	utl_file.put_line(p_l_fp,'<field name="' || p_tagname || '">');
7571 	utl_file.put_line(p_l_fp,'<value>' || p_value || '</value>'  );
7572 	utl_file.put_line(p_l_fp,'</field>');
7573 END WriteXMLvalues;
7574 
7575 
7576 
7577 PROCEDURE PopulatePart4Matrix
7578 IS
7579 v_ctr number := 1;
7580 BEGIN
7581 		-------- Claims : Appointment Bases : Race
7582 	v_P4Matrix(v_ctr).claims := '10';
7583 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
7584 	v_P4Matrix(v_ctr).basevalues := '10';
7585 	v_P4Matrix(v_ctr).fieldname:= 'P4_a1';
7586 	v_ctr := v_ctr + 1;
7587 
7588 	v_P4Matrix(v_ctr).claims := '10';
7589 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
7590 	v_P4Matrix(v_ctr).basevalues := '20';
7591 	v_P4Matrix(v_ctr).fieldname:= 'P4_a2';
7592 	v_ctr := v_ctr + 1;
7593 
7594 	v_P4Matrix(v_ctr).claims := '10';
7595 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
7596 	v_P4Matrix(v_ctr).basevalues := '30';
7597 	v_P4Matrix(v_ctr).fieldname:= 'P4_a3';
7598 	v_ctr := v_ctr + 1;
7599 
7600 	v_P4Matrix(v_ctr).claims := '10';
7601 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
7602 	v_P4Matrix(v_ctr).basevalues := '40';
7603 	v_P4Matrix(v_ctr).fieldname:= 'P4_a4';
7604 	v_ctr := v_ctr + 1;
7605 
7606 	------- Claims : Appointment Bases: Color
7607 	v_P4Matrix(v_ctr).claims := '10';
7608 	v_P4Matrix(v_ctr).bases := 'YES_NO';
7609 	v_P4Matrix(v_ctr).basevalues := NULL;
7610 	v_P4Matrix(v_ctr).fieldname:= 'P4_a5';
7611 	v_ctr := v_ctr + 1;
7612 
7613 	-------- Claims : Appointment Bases : Religion
7614 	v_P4Matrix(v_ctr).claims := '10';
7615 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
7616 	v_P4Matrix(v_ctr).basevalues := NULL;
7617 	v_P4Matrix(v_ctr).fieldname:= 'P4_a6';
7618 	v_ctr := v_ctr + 1;
7619 
7620 	-------- Claims : Appointment Bases : Reprisal
7621 	v_P4Matrix(v_ctr).claims := '10';
7622 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
7623 	v_P4Matrix(v_ctr).basevalues := NULL;
7624 	v_P4Matrix(v_ctr).fieldname:= 'P4_a7';
7625 	v_ctr := v_ctr + 1;
7626 
7627 	-------- Claims : Appointment Bases : Sex
7628 	v_P4Matrix(v_ctr).claims := '10';
7629 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
7630 	v_P4Matrix(v_ctr).basevalues := '10';
7631 	v_P4Matrix(v_ctr).fieldname:= 'P4_a8';
7632 	v_ctr := v_ctr + 1;
7633 
7634 	v_P4Matrix(v_ctr).claims := '10';
7635 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
7636 	v_P4Matrix(v_ctr).basevalues := '20';
7637 	v_P4Matrix(v_ctr).fieldname:= 'P4_a9';
7638 	v_ctr := v_ctr + 1;
7639 
7640 	-------- Claims : Appointment Bases : National Origin
7641 	v_P4Matrix(v_ctr).claims := '10';
7642 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
7643 	v_P4Matrix(v_ctr).basevalues := '10';
7644 	v_P4Matrix(v_ctr).fieldname:= 'P4_a10';
7645 	v_ctr := v_ctr + 1;
7646 
7647 	v_P4Matrix(v_ctr).claims := '10';
7648 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
7649 	v_P4Matrix(v_ctr).basevalues := '20';
7650 	v_P4Matrix(v_ctr).fieldname:= 'P4_a11';
7651 	v_ctr := v_ctr + 1;
7652 
7653 	-------- No Equal pact (columns k and l) for appointment
7654 	---- Claims : Appointment Bases : National Origin
7655 	v_P4Matrix(v_ctr).claims := '10';
7656 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
7657 	v_P4Matrix(v_ctr).basevalues := NULL;
7658 	v_P4Matrix(v_ctr).fieldname:= 'P4_a14';
7659 	v_ctr := v_ctr + 1;
7660 
7661 	---- Claims : Appointment Bases : Disability
7662 	v_P4Matrix(v_ctr).claims := '10';
7663 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
7664 	v_P4Matrix(v_ctr).basevalues := '10';
7665 	v_P4Matrix(v_ctr).fieldname:= 'P4_a15';
7666 	v_ctr := v_ctr + 1;
7667 
7668 	v_P4Matrix(v_ctr).claims := '10';
7669 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
7670 	v_P4Matrix(v_ctr).basevalues := '20';
7671 	v_P4Matrix(v_ctr).fieldname:= 'P4_a16';
7672 	v_ctr := v_ctr + 1;
7673 
7674 	-- End of Claim Appointment
7675 
7676 
7677 	-------- Claims : Assignment of Duties Bases : Race
7678 	v_P4Matrix(v_ctr).claims := '20';
7679 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
7680 	v_P4Matrix(v_ctr).basevalues := '10';
7681 	v_P4Matrix(v_ctr).fieldname:= 'P4_b1';
7682 	v_ctr := v_ctr + 1;
7683 
7684 	v_P4Matrix(v_ctr).claims := '20';
7685 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
7686 	v_P4Matrix(v_ctr).basevalues := '20';
7687 	v_P4Matrix(v_ctr).fieldname:= 'P4_b2';
7688 	v_ctr := v_ctr + 1;
7689 
7690 	v_P4Matrix(v_ctr).claims := '20';
7691 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
7692 	v_P4Matrix(v_ctr).basevalues := '30';
7693 	v_P4Matrix(v_ctr).fieldname:= 'P4_b3';
7694 	v_ctr := v_ctr + 1;
7695 
7699 	v_P4Matrix(v_ctr).fieldname:= 'P4_b4';
7696 	v_P4Matrix(v_ctr).claims := '20';
7697 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
7698 	v_P4Matrix(v_ctr).basevalues := '40';
7700 	v_ctr := v_ctr + 1;
7701 
7702 
7703 	------- Claims : Assignment of Duties Bases: Color
7704 	v_P4Matrix(v_ctr).claims := '20';
7705 	v_P4Matrix(v_ctr).bases := 'YES_NO';
7706 	v_P4Matrix(v_ctr).basevalues := NULL;
7707 	v_P4Matrix(v_ctr).fieldname:= 'P4_b5';
7708 	v_ctr := v_ctr + 1;
7709 
7710 
7711 	-------- Claims : Assignment of Duties Bases : Religion
7712 	v_P4Matrix(v_ctr).claims := '20';
7713 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
7714 	v_P4Matrix(v_ctr).basevalues := NULL;
7715 	v_P4Matrix(v_ctr).fieldname:= 'P4_b6';
7716 	v_ctr := v_ctr + 1;
7717 
7718 	-------- Claims : Assignment of Duties Bases : Reprisal
7719 	v_P4Matrix(v_ctr).claims := '20';
7720 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
7721 	v_P4Matrix(v_ctr).basevalues := NULL;
7722 	v_P4Matrix(v_ctr).fieldname:= 'P4_b7';
7723 	v_ctr := v_ctr + 1;
7724 
7725 	-------- Claims : Assignment of Duties Bases : Sex
7726 	v_P4Matrix(v_ctr).claims := '20';
7727 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
7728 	v_P4Matrix(v_ctr).basevalues := '10';
7729 	v_P4Matrix(v_ctr).fieldname:= 'P4_b8';
7730 	v_ctr := v_ctr + 1;
7731 
7732 	v_P4Matrix(v_ctr).claims := '20';
7733 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
7734 	v_P4Matrix(v_ctr).basevalues := '20';
7735 	v_P4Matrix(v_ctr).fieldname:= 'P4_b9';
7736 	v_ctr := v_ctr + 1;
7737 
7738 	-------- Claims : Assignment of Duties Bases : National Origin
7739 	v_P4Matrix(v_ctr).claims := '20';
7740 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
7741 	v_P4Matrix(v_ctr).basevalues := '10';
7742 	v_P4Matrix(v_ctr).fieldname:= 'P4_b10';
7743 	v_ctr := v_ctr + 1;
7744 
7745 	v_P4Matrix(v_ctr).claims := '20';
7746 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
7747 	v_P4Matrix(v_ctr).basevalues := '20';
7748 	v_P4Matrix(v_ctr).fieldname:= 'P4_b11';
7749 	v_ctr := v_ctr + 1;
7750 
7751 	-------- No Equal pact (columns k and l) for Assignment of Duties
7752 	---- Claims : Assignment of Duties Bases : National Origin
7753 	v_P4Matrix(v_ctr).claims := '20';
7754 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
7755 	v_P4Matrix(v_ctr).basevalues := NULL;
7756 	v_P4Matrix(v_ctr).fieldname:= 'P4_b14';
7757 	v_ctr := v_ctr + 1;
7758 
7759 	---- Claims : Assignment of Duties Bases : Disability
7760 	v_P4Matrix(v_ctr).claims := '20';
7761 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
7762 	v_P4Matrix(v_ctr).basevalues := '10';
7763 	v_P4Matrix(v_ctr).fieldname:= 'P4_b15';
7764 	v_ctr := v_ctr + 1;
7765 
7766 	v_P4Matrix(v_ctr).claims := '20';
7767 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
7768 	v_P4Matrix(v_ctr).basevalues := '20';
7769 	v_P4Matrix(v_ctr).fieldname:= 'P4_b16';
7770 	v_ctr := v_ctr + 1;
7771 
7772 	-- End of Claim Assignment of Duties
7773 
7774 
7775 	----------------------------------------
7776 	-------- Claims : Awards Bases : Race
7777 	v_P4Matrix(v_ctr).claims := '30';
7778 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
7779 	v_P4Matrix(v_ctr).basevalues := '10';
7780 	v_P4Matrix(v_ctr).fieldname:= 'P4_c1';
7781 	v_ctr := v_ctr + 1;
7782 
7783 	v_P4Matrix(v_ctr).claims := '30';
7784 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
7785 	v_P4Matrix(v_ctr).basevalues := '20';
7786 	v_P4Matrix(v_ctr).fieldname:= 'P4_c2';
7787 	v_ctr := v_ctr + 1;
7788 
7789 	v_P4Matrix(v_ctr).claims := '30';
7790 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
7791 	v_P4Matrix(v_ctr).basevalues := '30';
7792 	v_P4Matrix(v_ctr).fieldname:= 'P4_c3';
7793 	v_ctr := v_ctr + 1;
7794 
7795 	v_P4Matrix(v_ctr).claims := '30';
7796 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
7797 	v_P4Matrix(v_ctr).basevalues := '40';
7798 	v_P4Matrix(v_ctr).fieldname:= 'P4_c4';
7799 	v_ctr := v_ctr + 1;
7800 
7801 	------- Claims : Appointment Bases: Color
7802 	v_P4Matrix(v_ctr).claims := '30';
7803 	v_P4Matrix(v_ctr).bases := 'YES_NO';
7804 	v_P4Matrix(v_ctr).basevalues := NULL;
7805 	v_P4Matrix(v_ctr).fieldname:= 'P4_c5';
7806 	v_ctr := v_ctr + 1;
7807 
7808 	-------- Claims : Awards Bases : Religion
7809 	v_P4Matrix(v_ctr).claims := '30';
7810 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
7811 	v_P4Matrix(v_ctr).basevalues := NULL;
7812 	v_P4Matrix(v_ctr).fieldname:= 'P4_c6';
7813 	v_ctr := v_ctr + 1;
7814 
7815 	-------- Claims : Awards Bases : Reprisal
7816 	v_P4Matrix(v_ctr).claims := '30';
7817 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
7818 	v_P4Matrix(v_ctr).basevalues := NULL;
7819 	v_P4Matrix(v_ctr).fieldname:= 'P4_c7';
7820 	v_ctr := v_ctr + 1;
7821 
7822 	-------- Claims : Awards Bases : Sex
7823 	v_P4Matrix(v_ctr).claims := '30';
7824 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
7825 	v_P4Matrix(v_ctr).basevalues := '10';
7826 	v_P4Matrix(v_ctr).fieldname:= 'P4_c8';
7827 	v_ctr := v_ctr + 1;
7828 
7829 	v_P4Matrix(v_ctr).claims := '30';
7830 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
7831 	v_P4Matrix(v_ctr).basevalues := '20';
7832 	v_P4Matrix(v_ctr).fieldname:= 'P4_c9';
7833 	v_ctr := v_ctr + 1;
7834 
7835 	-------- Claims : Awards Bases : National Origin
7836 	v_P4Matrix(v_ctr).claims := '30';
7837 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
7838 	v_P4Matrix(v_ctr).basevalues := '10';
7839 	v_P4Matrix(v_ctr).fieldname:= 'P4_c10';
7840 	v_ctr := v_ctr + 1;
7841 
7842 	v_P4Matrix(v_ctr).claims := '30';
7843 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
7844 	v_P4Matrix(v_ctr).basevalues := '20';
7845 	v_P4Matrix(v_ctr).fieldname:= 'P4_c11';
7846 	v_ctr := v_ctr + 1;
7847 
7848 	-------- No Equal pact (columns k and l) for Awards
7852 	v_P4Matrix(v_ctr).basevalues := NULL;
7849 	---- Claims : Awards Bases : National Origin
7850 	v_P4Matrix(v_ctr).claims := '30';
7851 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
7853 	v_P4Matrix(v_ctr).fieldname:= 'P4_c14';
7854 	v_ctr := v_ctr + 1;
7855 
7856 	---- Claims : Awards Bases : Disability
7857 	v_P4Matrix(v_ctr).claims := '30';
7858 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
7859 	v_P4Matrix(v_ctr).basevalues := '10';
7860 	v_P4Matrix(v_ctr).fieldname:= 'P4_c15';
7861 	v_ctr := v_ctr + 1;
7862 
7863 	v_P4Matrix(v_ctr).claims := '30';
7864 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
7865 	v_P4Matrix(v_ctr).basevalues := '20';
7866 	v_P4Matrix(v_ctr).fieldname:= 'P4_c16';
7867 	v_ctr := v_ctr + 1;
7868 
7869 	-- End of Claim Awards
7870 
7871 	-------- Claims : Conversion to Full Time Bases : Race
7872 	v_P4Matrix(v_ctr).claims := '40';
7873 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
7874 	v_P4Matrix(v_ctr).basevalues := '10';
7875 	v_P4Matrix(v_ctr).fieldname:= 'P4_d1';
7876 	v_ctr := v_ctr + 1;
7877 
7878 	v_P4Matrix(v_ctr).claims := '40';
7879 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
7880 	v_P4Matrix(v_ctr).basevalues := '20';
7881 	v_P4Matrix(v_ctr).fieldname:= 'P4_d2';
7882 	v_ctr := v_ctr + 1;
7883 
7884 	v_P4Matrix(v_ctr).claims := '40';
7885 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
7886 	v_P4Matrix(v_ctr).basevalues := '30';
7887 	v_P4Matrix(v_ctr).fieldname:= 'P4_d3';
7888 	v_ctr := v_ctr + 1;
7889 
7890 	v_P4Matrix(v_ctr).claims := '40';
7891 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
7892 	v_P4Matrix(v_ctr).basevalues := '40';
7893 	v_P4Matrix(v_ctr).fieldname:= 'P4_d4';
7894 	v_ctr := v_ctr + 1;
7895 
7896 	------- Claims : Appointment Bases: Color
7897 	v_P4Matrix(v_ctr).claims := '40';
7898 	v_P4Matrix(v_ctr).bases := 'YES_NO';
7899 	v_P4Matrix(v_ctr).basevalues := NULL;
7900 	v_P4Matrix(v_ctr).fieldname:= 'P4_d5';
7901 	v_ctr := v_ctr + 1;
7902 
7903 
7904 	-------- Claims : Conversion to Full Time Bases : Religion
7905 	v_P4Matrix(v_ctr).claims := '40';
7906 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
7907 	v_P4Matrix(v_ctr).basevalues := NULL;
7908 	v_P4Matrix(v_ctr).fieldname:= 'P4_d6';
7909 	v_ctr := v_ctr + 1;
7910 
7911 	-------- Claims : Conversion to Full Time Bases : Reprisal
7912 	v_P4Matrix(v_ctr).claims := '40';
7913 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
7914 	v_P4Matrix(v_ctr).basevalues := NULL;
7915 	v_P4Matrix(v_ctr).fieldname:= 'P4_d7';
7916 	v_ctr := v_ctr + 1;
7917 
7918 	-------- Claims : Conversion to Full Time Bases : Sex
7919 	v_P4Matrix(v_ctr).claims := '40';
7920 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
7921 	v_P4Matrix(v_ctr).basevalues := '10';
7922 	v_P4Matrix(v_ctr).fieldname:= 'P4_d8';
7923 	v_ctr := v_ctr + 1;
7924 
7925 	v_P4Matrix(v_ctr).claims := '40';
7926 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
7927 	v_P4Matrix(v_ctr).basevalues := '20';
7928 	v_P4Matrix(v_ctr).fieldname:= 'P4_d9';
7929 	v_ctr := v_ctr + 1;
7930 
7931 	-------- Claims : Conversion to Full Time Bases : National Origin
7932 	v_P4Matrix(v_ctr).claims := '40';
7933 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
7934 	v_P4Matrix(v_ctr).basevalues := '10';
7935 	v_P4Matrix(v_ctr).fieldname:= 'P4_d10';
7936 	v_ctr := v_ctr + 1;
7937 
7938 	v_P4Matrix(v_ctr).claims := '40';
7939 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
7940 	v_P4Matrix(v_ctr).basevalues := '20';
7941 	v_P4Matrix(v_ctr).fieldname:= 'P4_d11';
7942 	v_ctr := v_ctr + 1;
7943 
7944 	-------- No Equal pact (columns k and l) for Conversion to Full Time
7945 	---- Claims : Conversion to Full Time Bases : National Origin
7946 	v_P4Matrix(v_ctr).claims := '40';
7947 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
7948 	v_P4Matrix(v_ctr).basevalues := NULL;
7949 	v_P4Matrix(v_ctr).fieldname:= 'P4_d14';
7950 	v_ctr := v_ctr + 1;
7951 
7952 	---- Claims : Conversion to Full Time Bases : Disability
7953 	v_P4Matrix(v_ctr).claims := '40';
7954 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
7955 	v_P4Matrix(v_ctr).basevalues := '10';
7956 	v_P4Matrix(v_ctr).fieldname:= 'P4_d15';
7957 	v_ctr := v_ctr + 1;
7958 
7959 	v_P4Matrix(v_ctr).claims := '40';
7960 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
7961 	v_P4Matrix(v_ctr).basevalues := '20';
7962 	v_P4Matrix(v_ctr).fieldname:= 'P4_d16';
7963 	v_ctr := v_ctr + 1;
7964 
7965 	-- End of Claim Conversion to Full Time
7966 
7967 
7968 	-------- Claims : Disciplinary Action(Demotion) Bases : Race
7969 	v_P4Matrix(v_ctr).claims := '50';
7970 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
7971 	v_P4Matrix(v_ctr).basevalues := '10';
7972 	v_P4Matrix(v_ctr).fieldname:= 'P4_e1_1';
7973 	v_ctr := v_ctr + 1;
7974 
7975 	v_P4Matrix(v_ctr).claims := '50';
7976 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
7977 	v_P4Matrix(v_ctr).basevalues := '20';
7978 	v_P4Matrix(v_ctr).fieldname:= 'P4_e1_2';
7979 	v_ctr := v_ctr + 1;
7980 
7981 	v_P4Matrix(v_ctr).claims := '50';
7982 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
7983 	v_P4Matrix(v_ctr).basevalues := '30';
7984 	v_P4Matrix(v_ctr).fieldname:= 'P4_e1_3';
7985 	v_ctr := v_ctr + 1;
7986 
7987 	v_P4Matrix(v_ctr).claims := '50';
7988 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
7989 	v_P4Matrix(v_ctr).basevalues := '40';
7990 	v_P4Matrix(v_ctr).fieldname:= 'P4_e1_4';
7991 	v_ctr := v_ctr + 1;
7992 
7993 	------- Claims : Appointment Bases: Color
7994 	v_P4Matrix(v_ctr).claims := '50';
7995 	v_P4Matrix(v_ctr).bases := 'YES_NO';
7996 	v_P4Matrix(v_ctr).basevalues := NULL;
8000 
7997 	v_P4Matrix(v_ctr).fieldname:= 'P4_e1_5';
7998 	v_ctr := v_ctr + 1;
7999 
8001 	-------- Claims : Disciplinary Action(Demotion) Bases : Religion
8002 	v_P4Matrix(v_ctr).claims := '50';
8003 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
8004 	v_P4Matrix(v_ctr).basevalues := NULL;
8005 	v_P4Matrix(v_ctr).fieldname:= 'P4_e1_6';
8006 	v_ctr := v_ctr + 1;
8007 
8008 	-------- Claims : Disciplinary Action(Demotion) Bases : Reprisal
8009 	v_P4Matrix(v_ctr).claims := '50';
8010 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
8011 	v_P4Matrix(v_ctr).basevalues := NULL;
8012 	v_P4Matrix(v_ctr).fieldname:= 'P4_e1_7';
8013 	v_ctr := v_ctr + 1;
8014 
8015 	-------- Claims : Disciplinary Action(Demotion) Bases : Sex
8016 	v_P4Matrix(v_ctr).claims := '50';
8017 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
8018 	v_P4Matrix(v_ctr).basevalues := '10';
8019 	v_P4Matrix(v_ctr).fieldname:= 'P4_e1_8';
8020 	v_ctr := v_ctr + 1;
8021 
8022 	v_P4Matrix(v_ctr).claims := '50';
8023 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
8024 	v_P4Matrix(v_ctr).basevalues := '20';
8025 	v_P4Matrix(v_ctr).fieldname:= 'P4_e1_9';
8026 	v_ctr := v_ctr + 1;
8027 
8028 	-------- Claims : Disciplinary Action(Demotion) Bases : National Origin
8029 	v_P4Matrix(v_ctr).claims := '50';
8030 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
8031 	v_P4Matrix(v_ctr).basevalues := '10';
8032 	v_P4Matrix(v_ctr).fieldname:= 'P4_e1_10';
8033 	v_ctr := v_ctr + 1;
8034 
8035 	v_P4Matrix(v_ctr).claims := '50';
8036 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
8037 	v_P4Matrix(v_ctr).basevalues := '20';
8038 	v_P4Matrix(v_ctr).fieldname:= 'P4_e1_11';
8039 	v_ctr := v_ctr + 1;
8040 
8041 	-------- No Equal pact (columns k and l) for Disciplinary Action(Demotion)
8042 	---- Claims : Disciplinary Action(Demotion) Bases : National Origin
8043 	v_P4Matrix(v_ctr).claims := '50';
8044 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
8045 	v_P4Matrix(v_ctr).basevalues := NULL;
8046 	v_P4Matrix(v_ctr).fieldname:= 'P4_e1_14';
8047 	v_ctr := v_ctr + 1;
8048 
8049 	---- Claims : Disciplinary Action(Demotion) Bases : Disability
8050 	v_P4Matrix(v_ctr).claims := '50';
8051 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
8052 	v_P4Matrix(v_ctr).basevalues := '10';
8053 	v_P4Matrix(v_ctr).fieldname:= 'P4_e1_15';
8054 	v_ctr := v_ctr + 1;
8055 
8056 	v_P4Matrix(v_ctr).claims := '50';
8057 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
8058 	v_P4Matrix(v_ctr).basevalues := '20';
8059 	v_P4Matrix(v_ctr).fieldname:= 'P4_e1_16';
8060 	v_ctr := v_ctr + 1;
8061 
8062 	-- End of Claim Disciplinary Action(Demotion)
8063 
8064 	-------- Claims : Disciplinary Action(Reprimand) Bases : Race
8065 	v_P4Matrix(v_ctr).claims := '60';
8066 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8067 	v_P4Matrix(v_ctr).basevalues := '10';
8068 	v_P4Matrix(v_ctr).fieldname:= 'P4_e2_1';
8069 	v_ctr := v_ctr + 1;
8070 
8071 	v_P4Matrix(v_ctr).claims := '60';
8072 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8073 	v_P4Matrix(v_ctr).basevalues := '20';
8074 	v_P4Matrix(v_ctr).fieldname:= 'P4_e2_2';
8075 	v_ctr := v_ctr + 1;
8076 
8077 	v_P4Matrix(v_ctr).claims := '60';
8078 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8079 	v_P4Matrix(v_ctr).basevalues := '30';
8080 	v_P4Matrix(v_ctr).fieldname:= 'P4_e2_3';
8081 	v_ctr := v_ctr + 1;
8082 
8083 	v_P4Matrix(v_ctr).claims := '60';
8084 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8085 	v_P4Matrix(v_ctr).basevalues := '40';
8086 	v_P4Matrix(v_ctr).fieldname:= 'P4_e2_4';
8087 	v_ctr := v_ctr + 1;
8088 
8089 	------- Claims : Appointment Bases: Color
8090 	v_P4Matrix(v_ctr).claims := '60';
8091 	v_P4Matrix(v_ctr).bases := 'YES_NO';
8092 	v_P4Matrix(v_ctr).basevalues := NULL;
8093 	v_P4Matrix(v_ctr).fieldname:= 'P4_e2_5';
8094 	v_ctr := v_ctr + 1;
8095 
8096 	-------- Claims : Disciplinary Action(Reprimand) Bases : Religion
8097 	v_P4Matrix(v_ctr).claims := '60';
8098 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
8099 	v_P4Matrix(v_ctr).basevalues := NULL;
8100 	v_P4Matrix(v_ctr).fieldname:= 'P4_e2_6';
8101 	v_ctr := v_ctr + 1;
8102 
8103 	-------- Claims : Disciplinary Action(Reprimand) Bases : Reprisal
8104 	v_P4Matrix(v_ctr).claims := '60';
8105 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
8106 	v_P4Matrix(v_ctr).basevalues := NULL;
8107 	v_P4Matrix(v_ctr).fieldname:= 'P4_e2_7';
8108 	v_ctr := v_ctr + 1;
8109 
8110 	-------- Claims : Disciplinary Action(Reprimand) Bases : Sex
8111 	v_P4Matrix(v_ctr).claims := '60';
8112 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
8113 	v_P4Matrix(v_ctr).basevalues := '10';
8114 	v_P4Matrix(v_ctr).fieldname:= 'P4_e2_8';
8115 	v_ctr := v_ctr + 1;
8116 
8117 	v_P4Matrix(v_ctr).claims := '60';
8118 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
8119 	v_P4Matrix(v_ctr).basevalues := '20';
8120 	v_P4Matrix(v_ctr).fieldname:= 'P4_e2_9';
8121 	v_ctr := v_ctr + 1;
8122 
8123 	-------- Claims : Disciplinary Action(Reprimand) Bases : National Origin
8124 	v_P4Matrix(v_ctr).claims := '60';
8125 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
8126 	v_P4Matrix(v_ctr).basevalues := '10';
8127 	v_P4Matrix(v_ctr).fieldname:= 'P4_e2_10';
8128 	v_ctr := v_ctr + 1;
8129 
8130 	v_P4Matrix(v_ctr).claims := '60';
8131 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
8132 	v_P4Matrix(v_ctr).basevalues := '20';
8133 	v_P4Matrix(v_ctr).fieldname:= 'P4_e2_11';
8134 	v_ctr := v_ctr + 1;
8135 
8136 	-------- No Equal pact (columns k and l) for Disciplinary Action(Reprimand)
8140 	v_P4Matrix(v_ctr).basevalues := NULL;
8137 	---- Claims : Disciplinary Action(Reprimand) Bases : National Origin
8138 	v_P4Matrix(v_ctr).claims := '60';
8139 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
8141 	v_P4Matrix(v_ctr).fieldname:= 'P4_e2_14';
8142 	v_ctr := v_ctr + 1;
8143 
8144 	---- Claims : Disciplinary Action(Reprimand) Bases : Disability
8145 	v_P4Matrix(v_ctr).claims := '60';
8146 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
8147 	v_P4Matrix(v_ctr).basevalues := '10';
8148 	v_P4Matrix(v_ctr).fieldname:= 'P4_e2_15';
8149 	v_ctr := v_ctr + 1;
8150 
8151 	v_P4Matrix(v_ctr).claims := '60';
8152 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
8153 	v_P4Matrix(v_ctr).basevalues := '20';
8154 	v_P4Matrix(v_ctr).fieldname:= 'P4_e2_16';
8155 	v_ctr := v_ctr + 1;
8156 
8157 	-- End of Claim Disciplinary Action(Reprimand)
8158 
8159 	-------- Claims : Disciplinary Action(Suspension) Bases : Race
8160 	v_P4Matrix(v_ctr).claims := '70';
8161 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8162 	v_P4Matrix(v_ctr).basevalues := '10';
8163 	v_P4Matrix(v_ctr).fieldname:= 'P4_e3_1';
8164 	v_ctr := v_ctr + 1;
8165 
8166 	v_P4Matrix(v_ctr).claims := '70';
8167 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8168 	v_P4Matrix(v_ctr).basevalues := '20';
8169 	v_P4Matrix(v_ctr).fieldname:= 'P4_e3_2';
8170 	v_ctr := v_ctr + 1;
8171 
8172 	v_P4Matrix(v_ctr).claims := '70';
8173 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8174 	v_P4Matrix(v_ctr).basevalues := '30';
8175 	v_P4Matrix(v_ctr).fieldname:= 'P4_e3_3';
8176 	v_ctr := v_ctr + 1;
8177 
8178 	v_P4Matrix(v_ctr).claims := '70';
8179 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8180 	v_P4Matrix(v_ctr).basevalues := '40';
8181 	v_P4Matrix(v_ctr).fieldname:= 'P4_e3_4';
8182 	v_ctr := v_ctr + 1;
8183 
8184 	------- Claims : Appointment Bases: Color
8185 	v_P4Matrix(v_ctr).claims := '70';
8186 	v_P4Matrix(v_ctr).bases := 'YES_NO';
8187 	v_P4Matrix(v_ctr).basevalues := NULL;
8188 	v_P4Matrix(v_ctr).fieldname:= 'P4_e3_5';
8189 	v_ctr := v_ctr + 1;
8190 
8191 	-------- Claims : Disciplinary Action(Suspension) Bases : Religion
8192 	v_P4Matrix(v_ctr).claims := '70';
8193 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
8194 	v_P4Matrix(v_ctr).basevalues := NULL;
8195 	v_P4Matrix(v_ctr).fieldname:= 'P4_e3_6';
8196 	v_ctr := v_ctr + 1;
8197 
8198 	-------- Claims : Disciplinary Action(Suspension) Bases : Reprisal
8199 	v_P4Matrix(v_ctr).claims := '70';
8200 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
8201 	v_P4Matrix(v_ctr).basevalues := NULL;
8202 	v_P4Matrix(v_ctr).fieldname:= 'P4_e3_7';
8203 	v_ctr := v_ctr + 1;
8204 
8205 	-------- Claims : Disciplinary Action(Suspension) Bases : Sex
8206 	v_P4Matrix(v_ctr).claims := '70';
8207 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
8208 	v_P4Matrix(v_ctr).basevalues := '10';
8209 	v_P4Matrix(v_ctr).fieldname:= 'P4_e3_8';
8210 	v_ctr := v_ctr + 1;
8211 
8212 	v_P4Matrix(v_ctr).claims := '70';
8213 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
8214 	v_P4Matrix(v_ctr).basevalues := '20';
8215 	v_P4Matrix(v_ctr).fieldname:= 'P4_e3_9';
8216 	v_ctr := v_ctr + 1;
8217 
8218 	-------- Claims : Disciplinary Action(Suspension) Bases : National Origin
8219 	v_P4Matrix(v_ctr).claims := '70';
8220 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
8221 	v_P4Matrix(v_ctr).basevalues := '10';
8222 	v_P4Matrix(v_ctr).fieldname:= 'P4_e3_10';
8223 	v_ctr := v_ctr + 1;
8224 
8225 	v_P4Matrix(v_ctr).claims := '70';
8226 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
8227 	v_P4Matrix(v_ctr).basevalues := '20';
8228 	v_P4Matrix(v_ctr).fieldname:= 'P4_e3_11';
8229 	v_ctr := v_ctr + 1;
8230 
8231 	-------- No Equal pact (columns k and l) for Disciplinary Action(Suspension)
8232 	---- Claims : Disciplinary Action(Suspension) Bases : National Origin
8233 	v_P4Matrix(v_ctr).claims := '70';
8234 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
8235 	v_P4Matrix(v_ctr).basevalues := NULL;
8236 	v_P4Matrix(v_ctr).fieldname:= 'P4_e3_14';
8237 	v_ctr := v_ctr + 1;
8238 
8239 	---- Claims : Disciplinary Action(Suspension) Bases : Disability
8240 	v_P4Matrix(v_ctr).claims := '70';
8241 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
8242 	v_P4Matrix(v_ctr).basevalues := '10';
8243 	v_P4Matrix(v_ctr).fieldname:= 'P4_e3_15';
8244 	v_ctr := v_ctr + 1;
8245 
8246 	v_P4Matrix(v_ctr).claims := '70';
8247 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
8248 	v_P4Matrix(v_ctr).basevalues := '20';
8249 	v_P4Matrix(v_ctr).fieldname:= 'P4_e3_16';
8250 	v_ctr := v_ctr + 1;
8251 
8252 	-- End of Claim Disciplinary Action(Suspension)
8253 
8254 
8255 	-------- Claims : Disciplinary Action(Removal) Bases : Race
8256 	v_P4Matrix(v_ctr).claims := '80';
8257 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8258 	v_P4Matrix(v_ctr).basevalues := '10';
8259 	v_P4Matrix(v_ctr).fieldname:= 'P4_e4_1';
8260 	v_ctr := v_ctr + 1;
8261 
8262 	v_P4Matrix(v_ctr).claims := '80';
8263 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8264 	v_P4Matrix(v_ctr).basevalues := '20';
8265 	v_P4Matrix(v_ctr).fieldname:= 'P4_e4_2';
8266 	v_ctr := v_ctr + 1;
8267 
8268 	v_P4Matrix(v_ctr).claims := '80';
8269 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8270 	v_P4Matrix(v_ctr).basevalues := '30';
8271 	v_P4Matrix(v_ctr).fieldname:= 'P4_e4_3';
8272 	v_ctr := v_ctr + 1;
8273 
8274 	v_P4Matrix(v_ctr).claims := '80';
8275 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8276 	v_P4Matrix(v_ctr).basevalues := '40';
8277 	v_P4Matrix(v_ctr).fieldname:= 'P4_e4_4';
8278 	v_ctr := v_ctr + 1;
8282 	v_P4Matrix(v_ctr).bases := 'YES_NO';
8279 
8280 	------- Claims : Appointment Bases: Color
8281 	v_P4Matrix(v_ctr).claims := '80';
8283 	v_P4Matrix(v_ctr).basevalues := NULL;
8284 	v_P4Matrix(v_ctr).fieldname:= 'P4_e4_5';
8285 	v_ctr := v_ctr + 1;
8286 
8287 
8288 	-------- Claims : Disciplinary Action(Removal) Bases : Religion
8289 	v_P4Matrix(v_ctr).claims := '80';
8290 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
8291 	v_P4Matrix(v_ctr).basevalues := NULL;
8292 	v_P4Matrix(v_ctr).fieldname:= 'P4_e4_6';
8293 	v_ctr := v_ctr + 1;
8294 
8295 	-------- Claims : Disciplinary Action(Removal) Bases : Reprisal
8296 	v_P4Matrix(v_ctr).claims := '80';
8297 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
8298 	v_P4Matrix(v_ctr).basevalues := NULL;
8299 	v_P4Matrix(v_ctr).fieldname:= 'P4_e4_7';
8300 	v_ctr := v_ctr + 1;
8301 
8302 	-------- Claims : Disciplinary Action(Removal) Bases : Sex
8303 	v_P4Matrix(v_ctr).claims := '80';
8304 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
8305 	v_P4Matrix(v_ctr).basevalues := '10';
8306 	v_P4Matrix(v_ctr).fieldname:= 'P4_e4_8';
8307 	v_ctr := v_ctr + 1;
8308 
8309 	v_P4Matrix(v_ctr).claims := '80';
8310 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
8311 	v_P4Matrix(v_ctr).basevalues := '20';
8312 	v_P4Matrix(v_ctr).fieldname:= 'P4_e4_9';
8313 	v_ctr := v_ctr + 1;
8314 
8315 	-------- Claims : Disciplinary Action(Removal) Bases : National Origin
8316 	v_P4Matrix(v_ctr).claims := '80';
8317 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
8318 	v_P4Matrix(v_ctr).basevalues := '10';
8319 	v_P4Matrix(v_ctr).fieldname:= 'P4_e4_10';
8320 	v_ctr := v_ctr + 1;
8321 
8322 	v_P4Matrix(v_ctr).claims := '80';
8323 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
8324 	v_P4Matrix(v_ctr).basevalues := '20';
8325 	v_P4Matrix(v_ctr).fieldname:= 'P4_e4_11';
8326 	v_ctr := v_ctr + 1;
8327 
8328 	-------- No Equal pact (columns k and l) for Disciplinary Action(Removal)
8329 	---- Claims : Disciplinary Action(Removal) Bases : National Origin
8330 	v_P4Matrix(v_ctr).claims := '80';
8331 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
8332 	v_P4Matrix(v_ctr).basevalues := NULL;
8333 	v_P4Matrix(v_ctr).fieldname:= 'P4_e4_14';
8334 	v_ctr := v_ctr + 1;
8335 
8336 	---- Claims : Disciplinary Action(Removal) Bases : Disability
8337 	v_P4Matrix(v_ctr).claims := '80';
8338 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
8339 	v_P4Matrix(v_ctr).basevalues := '10';
8340 	v_P4Matrix(v_ctr).fieldname:= 'P4_e4_15';
8341 	v_ctr := v_ctr + 1;
8342 
8343 	v_P4Matrix(v_ctr).claims := '80';
8344 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
8345 	v_P4Matrix(v_ctr).basevalues := '20';
8346 	v_P4Matrix(v_ctr).fieldname:= 'P4_e4_16';
8347 	v_ctr := v_ctr + 1;
8348 
8349 	-- End of Claim Disciplinary Action(Removal)
8350 
8351 
8352 	-------- Claims : Disciplinary Action(Others) Bases : Race
8353 	v_P4Matrix(v_ctr).claims := '90';
8354 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8355 	v_P4Matrix(v_ctr).basevalues := '10';
8356 	v_P4Matrix(v_ctr).fieldname:= 'P4_e5_1';
8357 	v_ctr := v_ctr + 1;
8358 
8359 	v_P4Matrix(v_ctr).claims := '90';
8360 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8361 	v_P4Matrix(v_ctr).basevalues := '20';
8362 	v_P4Matrix(v_ctr).fieldname:= 'P4_e5_2';
8363 	v_ctr := v_ctr + 1;
8364 
8365 	v_P4Matrix(v_ctr).claims := '90';
8366 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8367 	v_P4Matrix(v_ctr).basevalues := '30';
8368 	v_P4Matrix(v_ctr).fieldname:= 'P4_e5_3';
8369 	v_ctr := v_ctr + 1;
8370 
8371 	v_P4Matrix(v_ctr).claims := '90';
8372 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8373 	v_P4Matrix(v_ctr).basevalues := '40';
8374 	v_P4Matrix(v_ctr).fieldname:= 'P4_e5_4';
8375 	v_ctr := v_ctr + 1;
8376 
8377 	------- Claims : Appointment Bases: Color
8378 	v_P4Matrix(v_ctr).claims := '90';
8379 	v_P4Matrix(v_ctr).bases := 'YES_NO';
8380 	v_P4Matrix(v_ctr).basevalues := NULL;
8381 	v_P4Matrix(v_ctr).fieldname:= 'P4_e5_5';
8382 	v_ctr := v_ctr + 1;
8383 
8384 	-------- Claims : Disciplinary Action(Others) Bases : Religion
8385 	v_P4Matrix(v_ctr).claims := '90';
8386 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
8387 	v_P4Matrix(v_ctr).basevalues := NULL;
8388 	v_P4Matrix(v_ctr).fieldname:= 'P4_e5_6';
8389 	v_ctr := v_ctr + 1;
8390 
8391 	-------- Claims : Disciplinary Action(Others) Bases : Reprisal
8392 	v_P4Matrix(v_ctr).claims := '90';
8393 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
8394 	v_P4Matrix(v_ctr).basevalues := NULL;
8395 	v_P4Matrix(v_ctr).fieldname:= 'P4_e5_7';
8396 	v_ctr := v_ctr + 1;
8397 
8398 	-------- Claims : Disciplinary Action(Others) Bases : Sex
8399 	v_P4Matrix(v_ctr).claims := '90';
8400 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
8401 	v_P4Matrix(v_ctr).basevalues := '10';
8402 	v_P4Matrix(v_ctr).fieldname:= 'P4_e5_8';
8403 	v_ctr := v_ctr + 1;
8404 
8405 	v_P4Matrix(v_ctr).claims := '90';
8406 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
8407 	v_P4Matrix(v_ctr).basevalues := '20';
8408 	v_P4Matrix(v_ctr).fieldname:= 'P4_e5_9';
8409 	v_ctr := v_ctr + 1;
8410 
8411 	-------- Claims : Disciplinary Action(Others) Bases : National Origin
8412 	v_P4Matrix(v_ctr).claims := '90';
8413 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
8414 	v_P4Matrix(v_ctr).basevalues := '10';
8415 	v_P4Matrix(v_ctr).fieldname:= 'P4_e5_10';
8416 	v_ctr := v_ctr + 1;
8417 
8418 	v_P4Matrix(v_ctr).claims := '90';
8419 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
8420 	v_P4Matrix(v_ctr).basevalues := '20';
8421 	v_P4Matrix(v_ctr).fieldname:= 'P4_e5_11';
8422 	v_ctr := v_ctr + 1;
8423 
8424 	-------- No Equal pact (columns k and l) for Disciplinary Action(Others)
8425 	---- Claims : Disciplinary Action(Others) Bases : National Origin
8429 	v_P4Matrix(v_ctr).fieldname:= 'P4_e5_14';
8426 	v_P4Matrix(v_ctr).claims := '90';
8427 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
8428 	v_P4Matrix(v_ctr).basevalues := NULL;
8430 	v_ctr := v_ctr + 1;
8431 
8432 	---- Claims : Disciplinary Action(Others) Bases : Disability
8433 	v_P4Matrix(v_ctr).claims := '90';
8434 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
8435 	v_P4Matrix(v_ctr).basevalues := '10';
8436 	v_P4Matrix(v_ctr).fieldname:= 'P4_e5_15';
8437 	v_ctr := v_ctr + 1;
8438 
8439 	v_P4Matrix(v_ctr).claims := '90';
8440 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
8441 	v_P4Matrix(v_ctr).basevalues := '20';
8442 	v_P4Matrix(v_ctr).fieldname:= 'P4_e5_16';
8443 	v_ctr := v_ctr + 1;
8444 
8445 	-- End of Claim Disciplinary Action(Others)
8446 
8447 	-------- Claims : Duty Work Bases : Race
8448 	v_P4Matrix(v_ctr).claims := '100';
8449 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8450 	v_P4Matrix(v_ctr).basevalues := '10';
8451 	v_P4Matrix(v_ctr).fieldname:= 'P4_f1';
8452 	v_ctr := v_ctr + 1;
8453 
8454 	v_P4Matrix(v_ctr).claims := '100';
8455 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8456 	v_P4Matrix(v_ctr).basevalues := '20';
8457 	v_P4Matrix(v_ctr).fieldname:= 'P4_f2';
8458 	v_ctr := v_ctr + 1;
8459 
8460 	v_P4Matrix(v_ctr).claims := '100';
8461 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8462 	v_P4Matrix(v_ctr).basevalues := '30';
8463 	v_P4Matrix(v_ctr).fieldname:= 'P4_f3';
8464 	v_ctr := v_ctr + 1;
8465 
8466 	v_P4Matrix(v_ctr).claims := '100';
8467 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8468 	v_P4Matrix(v_ctr).basevalues := '40';
8469 	v_P4Matrix(v_ctr).fieldname:= 'P4_f4';
8470 	v_ctr := v_ctr + 1;
8471 
8472 	------- Claims : Appointment Bases: Color
8473 	v_P4Matrix(v_ctr).claims := '100';
8474 	v_P4Matrix(v_ctr).bases := 'YES_NO';
8475 	v_P4Matrix(v_ctr).basevalues := NULL;
8476 	v_P4Matrix(v_ctr).fieldname:= 'P4_f5';
8477 	v_ctr := v_ctr + 1;
8478 
8479 	-------- Claims : Duty Work Bases : Religion
8480 	v_P4Matrix(v_ctr).claims := '100';
8481 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
8482 	v_P4Matrix(v_ctr).basevalues := NULL;
8483 	v_P4Matrix(v_ctr).fieldname:= 'P4_f6';
8484 	v_ctr := v_ctr + 1;
8485 
8486 	-------- Claims : Duty Work Bases : Reprisal
8487 	v_P4Matrix(v_ctr).claims := '100';
8488 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
8489 	v_P4Matrix(v_ctr).basevalues := NULL;
8490 	v_P4Matrix(v_ctr).fieldname:= 'P4_f7';
8491 	v_ctr := v_ctr + 1;
8492 
8493 	-------- Claims : Duty Work Bases : Sex
8494 	v_P4Matrix(v_ctr).claims := '100';
8495 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
8496 	v_P4Matrix(v_ctr).basevalues := '10';
8497 	v_P4Matrix(v_ctr).fieldname:= 'P4_f8';
8498 	v_ctr := v_ctr + 1;
8499 
8500 	v_P4Matrix(v_ctr).claims := '100';
8501 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
8502 	v_P4Matrix(v_ctr).basevalues := '20';
8503 	v_P4Matrix(v_ctr).fieldname:= 'P4_f9';
8504 	v_ctr := v_ctr + 1;
8505 
8506 	-------- Claims : Duty Work Bases : National Origin
8507 	v_P4Matrix(v_ctr).claims := '100';
8508 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
8509 	v_P4Matrix(v_ctr).basevalues := '10';
8510 	v_P4Matrix(v_ctr).fieldname:= 'P4_f10';
8511 	v_ctr := v_ctr + 1;
8512 
8513 	v_P4Matrix(v_ctr).claims := '100';
8514 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
8515 	v_P4Matrix(v_ctr).basevalues := '20';
8516 	v_P4Matrix(v_ctr).fieldname:= 'P4_f11';
8517 	v_ctr := v_ctr + 1;
8518 
8519 	-------- No Equal pact (columns k and l) for Duty Work
8520 	---- Claims : Duty Work Bases : National Origin
8521 	v_P4Matrix(v_ctr).claims := '100';
8522 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
8523 	v_P4Matrix(v_ctr).basevalues := NULL;
8524 	v_P4Matrix(v_ctr).fieldname:= 'P4_f14';
8525 	v_ctr := v_ctr + 1;
8526 
8527 	---- Claims : Duty Work Bases : Disability
8528 	v_P4Matrix(v_ctr).claims := '100';
8529 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
8530 	v_P4Matrix(v_ctr).basevalues := '10';
8531 	v_P4Matrix(v_ctr).fieldname:= 'P4_f15';
8532 	v_ctr := v_ctr + 1;
8533 
8534 	v_P4Matrix(v_ctr).claims := '100';
8535 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
8536 	v_P4Matrix(v_ctr).basevalues := '20';
8537 	v_P4Matrix(v_ctr).fieldname:= 'P4_f16';
8538 	v_ctr := v_ctr + 1;
8539 
8540 	-- End of Claim Duty Work
8541 
8542 
8543 
8544 	-------- Claims : Evaluation / Appraisal Bases : Race
8545 	v_P4Matrix(v_ctr).claims := '110';
8546 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8547 	v_P4Matrix(v_ctr).basevalues := '10';
8548 	v_P4Matrix(v_ctr).fieldname:= 'P4_g1';
8549 	v_ctr := v_ctr + 1;
8550 
8551 	v_P4Matrix(v_ctr).claims := '110';
8552 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8553 	v_P4Matrix(v_ctr).basevalues := '20';
8554 	v_P4Matrix(v_ctr).fieldname:= 'P4_g2';
8555 	v_ctr := v_ctr + 1;
8556 
8557 	v_P4Matrix(v_ctr).claims := '110';
8558 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8559 	v_P4Matrix(v_ctr).basevalues := '30';
8560 	v_P4Matrix(v_ctr).fieldname:= 'P4_g3';
8561 	v_ctr := v_ctr + 1;
8562 
8563 	v_P4Matrix(v_ctr).claims := '110';
8564 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8565 	v_P4Matrix(v_ctr).basevalues := '40';
8566 	v_P4Matrix(v_ctr).fieldname:= 'P4_g4';
8567 	v_ctr := v_ctr + 1;
8568 
8569 	------- Claims : Appointment Bases: Color
8570 	v_P4Matrix(v_ctr).claims := '110';
8571 	v_P4Matrix(v_ctr).bases := 'YES_NO';
8572 	v_P4Matrix(v_ctr).basevalues := NULL;
8573 	v_P4Matrix(v_ctr).fieldname:= 'P4_g5';
8574 	v_ctr := v_ctr + 1;
8575 
8576 
8577 	-------- Claims : Evaluation / Appraisal Bases : Religion
8578 	v_P4Matrix(v_ctr).claims := '110';
8582 	v_ctr := v_ctr + 1;
8579 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
8580 	v_P4Matrix(v_ctr).basevalues := NULL;
8581 	v_P4Matrix(v_ctr).fieldname:= 'P4_g6';
8583 
8584 	-------- Claims : Evaluation / Appraisal Bases : Reprisal
8585 	v_P4Matrix(v_ctr).claims := '110';
8586 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
8587 	v_P4Matrix(v_ctr).basevalues := NULL;
8588 	v_P4Matrix(v_ctr).fieldname:= 'P4_g7';
8589 	v_ctr := v_ctr + 1;
8590 
8591 	-------- Claims : Evaluation / Appraisal Bases : Sex
8592 	v_P4Matrix(v_ctr).claims := '110';
8593 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
8594 	v_P4Matrix(v_ctr).basevalues := '10';
8595 	v_P4Matrix(v_ctr).fieldname:= 'P4_g8';
8596 	v_ctr := v_ctr + 1;
8597 
8598 	v_P4Matrix(v_ctr).claims := '110';
8599 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
8600 	v_P4Matrix(v_ctr).basevalues := '20';
8601 	v_P4Matrix(v_ctr).fieldname:= 'P4_g9';
8602 	v_ctr := v_ctr + 1;
8603 
8604 	-------- Claims : Evaluation / Appraisal Bases : National Origin
8605 	v_P4Matrix(v_ctr).claims := '110';
8606 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
8607 	v_P4Matrix(v_ctr).basevalues := '10';
8608 	v_P4Matrix(v_ctr).fieldname:= 'P4_g10';
8609 	v_ctr := v_ctr + 1;
8610 
8611 	v_P4Matrix(v_ctr).claims := '110';
8612 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
8613 	v_P4Matrix(v_ctr).basevalues := '20';
8614 	v_P4Matrix(v_ctr).fieldname:= 'P4_g11';
8615 	v_ctr := v_ctr + 1;
8616 
8617 	-------- No Equal pact (columns k and l) for Evaluation / Appraisal
8618 	---- Claims : Evaluation / Appraisal Bases : National Origin
8619 	v_P4Matrix(v_ctr).claims := '110';
8620 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
8621 	v_P4Matrix(v_ctr).basevalues := NULL;
8622 	v_P4Matrix(v_ctr).fieldname:= 'P4_g14';
8623 	v_ctr := v_ctr + 1;
8624 
8625 	---- Claims : Evaluation / Appraisal Bases : Disability
8626 	v_P4Matrix(v_ctr).claims := '110';
8627 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
8628 	v_P4Matrix(v_ctr).basevalues := '10';
8629 	v_P4Matrix(v_ctr).fieldname:= 'P4_g15';
8630 	v_ctr := v_ctr + 1;
8631 
8632 	v_P4Matrix(v_ctr).claims := '110';
8633 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
8634 	v_P4Matrix(v_ctr).basevalues := '20';
8635 	v_P4Matrix(v_ctr).fieldname:= 'P4_g16';
8636 	v_ctr := v_ctr + 1;
8637 
8638 	-- End of Claim Evaluation / Appraisal
8639 
8640 
8641 	-------- Claims : Examination / Test Bases : Race
8642 	v_P4Matrix(v_ctr).claims := '120';
8643 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8644 	v_P4Matrix(v_ctr).basevalues := '10';
8645 	v_P4Matrix(v_ctr).fieldname:= 'P4_h1';
8646 	v_ctr := v_ctr + 1;
8647 
8648 	v_P4Matrix(v_ctr).claims := '120';
8649 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8650 	v_P4Matrix(v_ctr).basevalues := '20';
8651 	v_P4Matrix(v_ctr).fieldname:= 'P4_h2';
8652 	v_ctr := v_ctr + 1;
8653 
8654 	v_P4Matrix(v_ctr).claims := '120';
8655 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8656 	v_P4Matrix(v_ctr).basevalues := '30';
8657 	v_P4Matrix(v_ctr).fieldname:= 'P4_h3';
8658 	v_ctr := v_ctr + 1;
8659 
8660 	v_P4Matrix(v_ctr).claims := '120';
8661 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8662 	v_P4Matrix(v_ctr).basevalues := '40';
8663 	v_P4Matrix(v_ctr).fieldname:= 'P4_h4';
8664 	v_ctr := v_ctr + 1;
8665 
8666 	------- Claims : Appointment Bases: Color
8667 	v_P4Matrix(v_ctr).claims := '120';
8668 	v_P4Matrix(v_ctr).bases := 'YES_NO';
8669 	v_P4Matrix(v_ctr).basevalues := NULL;
8670 	v_P4Matrix(v_ctr).fieldname:= 'P4_h5';
8671 	v_ctr := v_ctr + 1;
8672 
8673 
8674 	-------- Claims : Examination / Test Bases : Religion
8675 	v_P4Matrix(v_ctr).claims := '120';
8676 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
8677 	v_P4Matrix(v_ctr).basevalues := NULL;
8678 	v_P4Matrix(v_ctr).fieldname:= 'P4_h6';
8679 	v_ctr := v_ctr + 1;
8680 
8681 	-------- Claims : Examination / Test Bases : Reprisal
8682 	v_P4Matrix(v_ctr).claims := '120';
8683 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
8684 	v_P4Matrix(v_ctr).basevalues := NULL;
8685 	v_P4Matrix(v_ctr).fieldname:= 'P4_h7';
8686 	v_ctr := v_ctr + 1;
8687 
8688 	-------- Claims : Examination / Test Bases : Sex
8689 	v_P4Matrix(v_ctr).claims := '120';
8690 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
8691 	v_P4Matrix(v_ctr).basevalues := '10';
8692 	v_P4Matrix(v_ctr).fieldname:= 'P4_h8';
8693 	v_ctr := v_ctr + 1;
8694 
8695 	v_P4Matrix(v_ctr).claims := '120';
8696 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
8697 	v_P4Matrix(v_ctr).basevalues := '20';
8698 	v_P4Matrix(v_ctr).fieldname:= 'P4_h9';
8699 	v_ctr := v_ctr + 1;
8700 
8701 	-------- Claims : Examination / Test Bases : National Origin
8702 	v_P4Matrix(v_ctr).claims := '120';
8703 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
8704 	v_P4Matrix(v_ctr).basevalues := '10';
8705 	v_P4Matrix(v_ctr).fieldname:= 'P4_h10';
8706 	v_ctr := v_ctr + 1;
8707 
8708 	v_P4Matrix(v_ctr).claims := '120';
8709 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
8710 	v_P4Matrix(v_ctr).basevalues := '20';
8711 	v_P4Matrix(v_ctr).fieldname:= 'P4_h11';
8712 	v_ctr := v_ctr + 1;
8713 
8714 	-------- No Equal pact (columns k and l) for Examination / Test
8715 	---- Claims : Examination / Test Bases : National Origin
8716 	v_P4Matrix(v_ctr).claims := '120';
8717 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
8718 	v_P4Matrix(v_ctr).basevalues := NULL;
8719 	v_P4Matrix(v_ctr).fieldname:= 'P4_h14';
8720 	v_ctr := v_ctr + 1;
8721 
8722 	---- Claims : Examination / Test Bases : Disability
8723 	v_P4Matrix(v_ctr).claims := '120';
8724 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
8725 	v_P4Matrix(v_ctr).basevalues := '10';
8726 	v_P4Matrix(v_ctr).fieldname:= 'P4_h15';
8727 	v_ctr := v_ctr + 1;
8731 	v_P4Matrix(v_ctr).basevalues := '20';
8728 
8729 	v_P4Matrix(v_ctr).claims := '120';
8730 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
8732 	v_P4Matrix(v_ctr).fieldname:= 'P4_h16';
8733 	v_ctr := v_ctr + 1;
8734 
8735 	-- End of Claim Examination / Test
8736 
8737 
8738 	-------- Claims : Harassment (Non Sexual) Bases : Race
8739 	v_P4Matrix(v_ctr).claims := '130';
8740 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8741 	v_P4Matrix(v_ctr).basevalues := '10';
8742 	v_P4Matrix(v_ctr).fieldname:= 'P4_i1_1';
8743 	v_ctr := v_ctr + 1;
8744 
8745 	v_P4Matrix(v_ctr).claims := '130';
8746 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8747 	v_P4Matrix(v_ctr).basevalues := '20';
8748 	v_P4Matrix(v_ctr).fieldname:= 'P4_i1_2';
8749 	v_ctr := v_ctr + 1;
8750 
8751 	v_P4Matrix(v_ctr).claims := '130';
8752 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8753 	v_P4Matrix(v_ctr).basevalues := '30';
8754 	v_P4Matrix(v_ctr).fieldname:= 'P4_i1_3';
8755 	v_ctr := v_ctr + 1;
8756 
8757 	v_P4Matrix(v_ctr).claims := '130';
8758 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8759 	v_P4Matrix(v_ctr).basevalues := '40';
8760 	v_P4Matrix(v_ctr).fieldname:= 'P4_i1_4';
8761 	v_ctr := v_ctr + 1;
8762 
8763 	------- Claims : Appointment Bases: Color
8764 	v_P4Matrix(v_ctr).claims := '130';
8765 	v_P4Matrix(v_ctr).bases := 'YES_NO';
8766 	v_P4Matrix(v_ctr).basevalues := NULL;
8767 	v_P4Matrix(v_ctr).fieldname:= 'P4_i1_5';
8768 	v_ctr := v_ctr + 1;
8769 
8770 
8771 	-------- Claims : Harassment (Non Sexual) Bases : Religion
8772 	v_P4Matrix(v_ctr).claims := '130';
8773 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
8774 	v_P4Matrix(v_ctr).basevalues := NULL;
8775 	v_P4Matrix(v_ctr).fieldname:= 'P4_i1_6';
8776 	v_ctr := v_ctr + 1;
8777 
8778 	-------- Claims : Harassment (Non Sexual) Bases : Reprisal
8779 	v_P4Matrix(v_ctr).claims := '130';
8780 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
8781 	v_P4Matrix(v_ctr).basevalues := NULL;
8782 	v_P4Matrix(v_ctr).fieldname:= 'P4_i1_7';
8783 	v_ctr := v_ctr + 1;
8784 
8785 	-------- Claims : Harassment (Non Sexual) Bases : Sex
8786 	v_P4Matrix(v_ctr).claims := '130';
8787 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
8788 	v_P4Matrix(v_ctr).basevalues := '10';
8789 	v_P4Matrix(v_ctr).fieldname:= 'P4_i1_8';
8790 	v_ctr := v_ctr + 1;
8791 
8792 	v_P4Matrix(v_ctr).claims := '130';
8793 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
8794 	v_P4Matrix(v_ctr).basevalues := '20';
8795 	v_P4Matrix(v_ctr).fieldname:= 'P4_i1_9';
8796 	v_ctr := v_ctr + 1;
8797 
8798 	-------- Claims : Harassment (Non Sexual) Bases : National Origin
8799 	v_P4Matrix(v_ctr).claims := '130';
8800 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
8801 	v_P4Matrix(v_ctr).basevalues := '10';
8802 	v_P4Matrix(v_ctr).fieldname:= 'P4_i1_10';
8803 	v_ctr := v_ctr + 1;
8804 
8805 	v_P4Matrix(v_ctr).claims := '130';
8806 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
8807 	v_P4Matrix(v_ctr).basevalues := '20';
8808 	v_P4Matrix(v_ctr).fieldname:= 'P4_i1_11';
8809 	v_ctr := v_ctr + 1;
8810 
8811 	-------- No Equal pact (columns k and l) for Harassment (Non Sexual)
8812 	---- Claims : Harassment (Non Sexual) Bases : National Origin
8813 	v_P4Matrix(v_ctr).claims := '130';
8814 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
8815 	v_P4Matrix(v_ctr).basevalues := NULL;
8816 	v_P4Matrix(v_ctr).fieldname:= 'P4_i1_14';
8817 	v_ctr := v_ctr + 1;
8818 
8819 	---- Claims : Harassment (Non Sexual) Bases : Disability
8820 	v_P4Matrix(v_ctr).claims := '130';
8821 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
8822 	v_P4Matrix(v_ctr).basevalues := '10';
8823 	v_P4Matrix(v_ctr).fieldname:= 'P4_i1_15';
8824 	v_ctr := v_ctr + 1;
8825 
8826 	v_P4Matrix(v_ctr).claims := '130';
8827 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
8828 	v_P4Matrix(v_ctr).basevalues := '20';
8829 	v_P4Matrix(v_ctr).fieldname:= 'P4_i1_16';
8830 	v_ctr := v_ctr + 1;
8831 
8832 	-- End of Claim Harassment (Non Sexual)
8833 
8834 
8835 	-------- Claims : Harassment (Sexual) Bases : Race
8836 /*	v_P4Matrix(v_ctr).claims := '140';
8837 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS'
8838 	v_P4Matrix(v_ctr).basevalues := '10'
8839 	v_P4Matrix(v_ctr).fieldname:= 'P4_9b_a';
8840 	v_ctr := v_ctr + 1;
8841 
8842 	v_P4Matrix(v_ctr).claims := '140';
8843 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS'
8844 	v_P4Matrix(v_ctr).basevalues := '20'
8845 	v_P4Matrix(v_ctr).fieldname:= 'P4_9b_b';
8846 	v_ctr := v_ctr + 1;
8847 
8848 	v_P4Matrix(v_ctr).claims := '140';
8849 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS'
8850 	v_P4Matrix(v_ctr).basevalues := '30'
8851 	v_P4Matrix(v_ctr).fieldname:= 'P4_9b_c';
8852 	v_ctr := v_ctr + 1;
8853 
8854 	v_P4Matrix(v_ctr).claims := '140';
8855 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS'
8856 	v_P4Matrix(v_ctr).basevalues := '40'
8857 	v_P4Matrix(v_ctr).fieldname:= 'P4_9b_d';
8858 	v_ctr := v_ctr + 1;
8859 
8860 	-------- Claims : Harassment (Sexual) Bases : Religion
8861 	v_P4Matrix(v_ctr).claims := '140';
8862 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS'
8863 	v_P4Matrix(v_ctr).basevalues := NULL;
8864 	v_P4Matrix(v_ctr).fieldname:= 'P4_9b_e';
8865 	v_ctr := v_ctr + 1; */
8866 
8867 	-------- Claims : Harassment (Sexual) Bases : Reprisal
8868 	v_P4Matrix(v_ctr).claims := '140';
8869 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
8870 	v_P4Matrix(v_ctr).basevalues := NULL;
8871 	v_P4Matrix(v_ctr).fieldname:= 'P4_i2_7';
8872 	v_ctr := v_ctr + 1;
8873 
8874 	-------- Claims : Harassment (Sexual) Bases : Sex
8875 	v_P4Matrix(v_ctr).claims := '140';
8876 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
8877 	v_P4Matrix(v_ctr).basevalues := '10';
8881 	v_P4Matrix(v_ctr).claims := '140';
8878 	v_P4Matrix(v_ctr).fieldname:= 'P4_i2_8';
8879 	v_ctr := v_ctr + 1;
8880 
8882 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
8883 	v_P4Matrix(v_ctr).basevalues := '20';
8884 	v_P4Matrix(v_ctr).fieldname:= 'P4_i2_9';
8885 	v_ctr := v_ctr + 1;
8886 
8887 	-------- Claims : Harassment (Sexual) Bases : National Origin
8888 /*	v_P4Matrix(v_ctr).claims := '140';
8889 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS'
8890 	v_P4Matrix(v_ctr).basevalues := '10';
8891 	v_P4Matrix(v_ctr).fieldname:= 'P4_9b_i';
8892 	v_ctr := v_ctr + 1;
8893 
8894 	v_P4Matrix(v_ctr).claims := '140';
8895 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS'
8896 	v_P4Matrix(v_ctr).basevalues := '20';
8897 	v_P4Matrix(v_ctr).fieldname:= 'P4_9b_j';
8898 	v_ctr := v_ctr + 1; */
8899 
8900 	-------- No Equal pact (columns k and l) for Harassment (Sexual)
8901 	---- Claims : Harassment (Sexual) Bases : Ages
8902 /*	v_P4Matrix(v_ctr).claims := '140';
8903 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS'
8904 	v_P4Matrix(v_ctr).basevalues := NULL;
8905 	v_P4Matrix(v_ctr).fieldname:= 'P4_9b_m';
8906 	v_ctr := v_ctr + 1;
8907 
8908 	---- Claims : Harassment (Sexual) Bases : Disability
8909 	v_P4Matrix(v_ctr).claims := '140';
8910 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS'
8911 	v_P4Matrix(v_ctr).basevalues := '10';
8912 	v_P4Matrix(v_ctr).fieldname:= 'P4_9b_n';
8913 	v_ctr := v_ctr + 1;
8914 
8915 	v_P4Matrix(v_ctr).claims := '140';
8916 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS'
8917 	v_P4Matrix(v_ctr).basevalues := '20';
8918 	v_P4Matrix(v_ctr).fieldname:= 'P4_9b_o';
8919 	v_ctr := v_ctr + 1; */
8920 
8921 	-- End of Claim Harassment (Sexual)
8922 
8923 
8924 	-------- Claims : Medical Examination Bases : Race
8925 	v_P4Matrix(v_ctr).claims := '150';
8926 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8927 	v_P4Matrix(v_ctr).basevalues := '10';
8928 	v_P4Matrix(v_ctr).fieldname:= 'P4_j1';
8929 	v_ctr := v_ctr + 1;
8930 
8931 	v_P4Matrix(v_ctr).claims := '150';
8932 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8933 	v_P4Matrix(v_ctr).basevalues := '20';
8934 	v_P4Matrix(v_ctr).fieldname:= 'P4_j2';
8935 	v_ctr := v_ctr + 1;
8936 
8937 	v_P4Matrix(v_ctr).claims := '150';
8938 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8939 	v_P4Matrix(v_ctr).basevalues := '30';
8940 	v_P4Matrix(v_ctr).fieldname:= 'P4_j3';
8941 	v_ctr := v_ctr + 1;
8942 
8943 	v_P4Matrix(v_ctr).claims := '150';
8944 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
8945 	v_P4Matrix(v_ctr).basevalues := '40';
8946 	v_P4Matrix(v_ctr).fieldname:= 'P4_j4';
8947 	v_ctr := v_ctr + 1;
8948 
8949 	------- Claims : Appointment Bases: Color
8950 	v_P4Matrix(v_ctr).claims := '150';
8951 	v_P4Matrix(v_ctr).bases := 'YES_NO';
8952 	v_P4Matrix(v_ctr).basevalues := NULL;
8953 	v_P4Matrix(v_ctr).fieldname:= 'P4_j5';
8954 	v_ctr := v_ctr + 1;
8955 
8956 	-------- Claims : Medical Examination Bases : Religion
8957 	v_P4Matrix(v_ctr).claims := '150';
8958 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
8959 	v_P4Matrix(v_ctr).basevalues := NULL;
8960 	v_P4Matrix(v_ctr).fieldname:= 'P4_j6';
8961 	v_ctr := v_ctr + 1;
8962 
8963 	-------- Claims : Medical Examination Bases : Reprisal
8964 	v_P4Matrix(v_ctr).claims := '150';
8965 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
8966 	v_P4Matrix(v_ctr).basevalues := NULL;
8967 	v_P4Matrix(v_ctr).fieldname:= 'P4_j7';
8968 	v_ctr := v_ctr + 1;
8969 
8970 	-------- Claims : Medical Examination Bases : Sex
8971 	v_P4Matrix(v_ctr).claims := '150';
8972 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
8973 	v_P4Matrix(v_ctr).basevalues := '10';
8974 	v_P4Matrix(v_ctr).fieldname:= 'P4_j8';
8975 	v_ctr := v_ctr + 1;
8976 
8977 	v_P4Matrix(v_ctr).claims := '150';
8978 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
8979 	v_P4Matrix(v_ctr).basevalues := '20';
8980 	v_P4Matrix(v_ctr).fieldname:= 'P4_j9';
8981 	v_ctr := v_ctr + 1;
8982 
8983 	-------- Claims : Medical Examination Bases : National Origin
8984 	v_P4Matrix(v_ctr).claims := '150';
8985 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
8986 	v_P4Matrix(v_ctr).basevalues := '10';
8987 	v_P4Matrix(v_ctr).fieldname:= 'P4_j10';
8988 	v_ctr := v_ctr + 1;
8989 
8990 	v_P4Matrix(v_ctr).claims := '150';
8991 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
8992 	v_P4Matrix(v_ctr).basevalues := '20';
8993 	v_P4Matrix(v_ctr).fieldname:= 'P4_j11';
8994 	v_ctr := v_ctr + 1;
8995 
8996 	-------- No Equal pact (columns k and l) for Medical Examination
8997 	---- Claims : Medical Examination Bases : National Origin
8998 	v_P4Matrix(v_ctr).claims := '150';
8999 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
9000 	v_P4Matrix(v_ctr).basevalues := NULL;
9001 	v_P4Matrix(v_ctr).fieldname:= 'P4_j14';
9002 	v_ctr := v_ctr + 1;
9003 
9004 	---- Claims : Medical Examination Bases : Disability
9005 	v_P4Matrix(v_ctr).claims := '150';
9006 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
9007 	v_P4Matrix(v_ctr).basevalues := '10';
9008 	v_P4Matrix(v_ctr).fieldname:= 'P4_j15';
9009 	v_ctr := v_ctr + 1;
9010 
9011 	v_P4Matrix(v_ctr).claims := '150';
9012 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
9013 	v_P4Matrix(v_ctr).basevalues := '20';
9014 	v_P4Matrix(v_ctr).fieldname:= 'P4_j16';
9015 	v_ctr := v_ctr + 1;
9016 
9017 	-- End of Claim Medical Examination
9018 
9019 
9020 	-------- Claims : Pay Including Overtime Bases : Race
9021 	v_P4Matrix(v_ctr).claims := '160';
9022 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9023 	v_P4Matrix(v_ctr).basevalues := '10';
9024 	v_P4Matrix(v_ctr).fieldname:= 'P4_k1';
9028 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9025 	v_ctr := v_ctr + 1;
9026 
9027 	v_P4Matrix(v_ctr).claims := '160';
9029 	v_P4Matrix(v_ctr).basevalues := '20';
9030 	v_P4Matrix(v_ctr).fieldname:= 'P4_k2';
9031 	v_ctr := v_ctr + 1;
9032 
9033 	v_P4Matrix(v_ctr).claims := '160';
9034 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9035 	v_P4Matrix(v_ctr).basevalues := '30';
9036 	v_P4Matrix(v_ctr).fieldname:= 'P4_k3';
9037 	v_ctr := v_ctr + 1;
9038 
9039 	v_P4Matrix(v_ctr).claims := '160';
9040 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9041 	v_P4Matrix(v_ctr).basevalues := '40';
9042 	v_P4Matrix(v_ctr).fieldname:= 'P4_k4';
9043 	v_ctr := v_ctr + 1;
9044 
9045 	------- Claims : Appointment Bases: Color
9046 	v_P4Matrix(v_ctr).claims := '160';
9047 	v_P4Matrix(v_ctr).bases := 'YES_NO';
9048 	v_P4Matrix(v_ctr).basevalues := NULL;
9049 	v_P4Matrix(v_ctr).fieldname:= 'P4_k5';
9050 	v_ctr := v_ctr + 1;
9051 
9052 	-------- Claims : Pay Including Overtime Bases : Religion
9053 	v_P4Matrix(v_ctr).claims := '160';
9054 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
9055 	v_P4Matrix(v_ctr).basevalues := NULL;
9056 	v_P4Matrix(v_ctr).fieldname:= 'P4_k6';
9057 	v_ctr := v_ctr + 1;
9058 
9059 	-------- Claims : Pay Including Overtime Bases : Reprisal
9060 	v_P4Matrix(v_ctr).claims := '160';
9061 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
9062 	v_P4Matrix(v_ctr).basevalues := NULL;
9063 	v_P4Matrix(v_ctr).fieldname:= 'P4_k7';
9064 	v_ctr := v_ctr + 1;
9065 
9066 	-------- Claims : Pay Including Overtime Bases : Sex
9067 	v_P4Matrix(v_ctr).claims := '160';
9068 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
9069 	v_P4Matrix(v_ctr).basevalues := '10';
9070 	v_P4Matrix(v_ctr).fieldname:= 'P4_k8';
9071 	v_ctr := v_ctr + 1;
9072 
9073 	v_P4Matrix(v_ctr).claims := '160';
9074 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
9075 	v_P4Matrix(v_ctr).basevalues := '20';
9076 	v_P4Matrix(v_ctr).fieldname:= 'P4_k9';
9077 	v_ctr := v_ctr + 1;
9078 
9079 	-------- Claims : Pay Including Overtime Bases : National Origin
9080 	v_P4Matrix(v_ctr).claims := '160';
9081 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
9082 	v_P4Matrix(v_ctr).basevalues := '10';
9083 	v_P4Matrix(v_ctr).fieldname:= 'P4_k10';
9084 	v_ctr := v_ctr + 1;
9085 
9086 	v_P4Matrix(v_ctr).claims := '160';
9087 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
9088 	v_P4Matrix(v_ctr).basevalues := '20';
9089 	v_P4Matrix(v_ctr).fieldname:= 'P4_k11';
9090 	v_ctr := v_ctr + 1;
9091 
9092 	--------  Equal pact
9093 	v_P4Matrix(v_ctr).claims := '160';
9094 	v_P4Matrix(v_ctr).bases := 'SEX';
9095 	v_P4Matrix(v_ctr).basevalues := 'M';
9096 	v_P4Matrix(v_ctr).fieldname:= 'P4_k12';
9097 	v_ctr := v_ctr + 1;
9098 
9099 	v_P4Matrix(v_ctr).claims := '160';
9100 	v_P4Matrix(v_ctr).bases := 'SEX';
9101 	v_P4Matrix(v_ctr).basevalues := 'F';
9102 	v_P4Matrix(v_ctr).fieldname:= 'P4_k13';
9103 	v_ctr := v_ctr + 1;
9104 
9105 	---- Claims : Pay Including Overtime Bases : National Origin
9106 	v_P4Matrix(v_ctr).claims := '160';
9107 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
9108 	v_P4Matrix(v_ctr).basevalues := NULL;
9109 	v_P4Matrix(v_ctr).fieldname:= 'P4_k14';
9110 	v_ctr := v_ctr + 1;
9111 
9112 	---- Claims : Pay Including Overtime Bases : Disability
9113 	v_P4Matrix(v_ctr).claims := '160';
9114 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
9115 	v_P4Matrix(v_ctr).basevalues := '10';
9116 	v_P4Matrix(v_ctr).fieldname:= 'P4_k15';
9117 	v_ctr := v_ctr + 1;
9118 
9119 	v_P4Matrix(v_ctr).claims := '160';
9120 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
9121 	v_P4Matrix(v_ctr).basevalues := '20';
9122 	v_P4Matrix(v_ctr).fieldname:= 'P4_k16';
9123 	v_ctr := v_ctr + 1;
9124 
9125 	-- End of Claim Pay Including Overtime
9126 
9127 
9128 	-------- Claims : Promotion / Non Selection Bases : Race
9129 	v_P4Matrix(v_ctr).claims := '170';
9130 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9131 	v_P4Matrix(v_ctr).basevalues := '10';
9132 	v_P4Matrix(v_ctr).fieldname:= 'P4_l1';
9133 	v_ctr := v_ctr + 1;
9134 
9135 	v_P4Matrix(v_ctr).claims := '170';
9136 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9137 	v_P4Matrix(v_ctr).basevalues := '20';
9138 	v_P4Matrix(v_ctr).fieldname:= 'P4_l2';
9139 	v_ctr := v_ctr + 1;
9140 
9141 	v_P4Matrix(v_ctr).claims := '170';
9142 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9143 	v_P4Matrix(v_ctr).basevalues := '30';
9144 	v_P4Matrix(v_ctr).fieldname:= 'P4_l3';
9145 	v_ctr := v_ctr + 1;
9146 
9147 	v_P4Matrix(v_ctr).claims := '170';
9148 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9149 	v_P4Matrix(v_ctr).basevalues := '40';
9150 	v_P4Matrix(v_ctr).fieldname:= 'P4_l4';
9151 	v_ctr := v_ctr + 1;
9152 
9153 	------- Claims :  Promotion / Non Selection Bases: Color
9154 	v_P4Matrix(v_ctr).claims := '170';
9155 	v_P4Matrix(v_ctr).bases := 'YES_NO';
9156 	v_P4Matrix(v_ctr).basevalues := NULL;
9157 	v_P4Matrix(v_ctr).fieldname:= 'P4_l5';
9158 	v_ctr := v_ctr + 1;
9159 
9160 
9161 	-------- Claims : Promotion / Non Selection Bases : Religion
9162 	v_P4Matrix(v_ctr).claims := '170';
9163 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
9164 	v_P4Matrix(v_ctr).basevalues := NULL;
9165 	v_P4Matrix(v_ctr).fieldname:= 'P4_l6';
9166 	v_ctr := v_ctr + 1;
9167 
9168 	-------- Claims : Promotion / Non Selection Bases : Reprisal
9169 	v_P4Matrix(v_ctr).claims := '170';
9170 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
9171 	v_P4Matrix(v_ctr).basevalues := NULL;
9172 	v_P4Matrix(v_ctr).fieldname:= 'P4_l7';
9173 	v_ctr := v_ctr + 1;
9174 
9175 	-------- Claims : Promotion / Non Selection Bases : Sex
9176 	v_P4Matrix(v_ctr).claims := '170';
9177 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
9181 
9178 	v_P4Matrix(v_ctr).basevalues := '10';
9179 	v_P4Matrix(v_ctr).fieldname:= 'P4_l8';
9180 	v_ctr := v_ctr + 1;
9182 	v_P4Matrix(v_ctr).claims := '170';
9183 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
9184 	v_P4Matrix(v_ctr).basevalues := '20';
9185 	v_P4Matrix(v_ctr).fieldname:= 'P4_l9';
9186 	v_ctr := v_ctr + 1;
9187 
9188 	-------- Claims : Promotion / Non Selection Bases : National Origin
9189 	v_P4Matrix(v_ctr).claims := '170';
9190 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
9191 	v_P4Matrix(v_ctr).basevalues := '10';
9192 	v_P4Matrix(v_ctr).fieldname:= 'P4_l10';
9193 	v_ctr := v_ctr + 1;
9194 
9195 	v_P4Matrix(v_ctr).claims := '170';
9196 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
9197 	v_P4Matrix(v_ctr).basevalues := '20';
9198 	v_P4Matrix(v_ctr).fieldname:= 'P4_l11';
9199 	v_ctr := v_ctr + 1;
9200 
9201 	-------- No Equal pact (columns k and l) for Promotion / Non Selection
9202 	---- Claims : Promotion / Non Selection Bases : National Origin
9203 	v_P4Matrix(v_ctr).claims := '170';
9204 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
9205 	v_P4Matrix(v_ctr).basevalues := NULL;
9206 	v_P4Matrix(v_ctr).fieldname:= 'P4_l14';
9207 	v_ctr := v_ctr + 1;
9208 
9209 	---- Claims : Promotion / Non Selection Bases : Disability
9210 	v_P4Matrix(v_ctr).claims := '170';
9211 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
9212 	v_P4Matrix(v_ctr).basevalues := '10';
9213 	v_P4Matrix(v_ctr).fieldname:= 'P4_l15';
9214 	v_ctr := v_ctr + 1;
9215 
9216 	v_P4Matrix(v_ctr).claims := '170';
9217 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
9218 	v_P4Matrix(v_ctr).basevalues := '20';
9219 	v_P4Matrix(v_ctr).fieldname:= 'P4_l16';
9220 	v_ctr := v_ctr + 1;
9221 
9222 	-- End of Claim Promotion / Non Selection
9223 
9224 
9225 
9226 	-------- Claims : Reassignment (Denied) Bases : Race
9227 	v_P4Matrix(v_ctr).claims := '180';
9228 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9229 	v_P4Matrix(v_ctr).basevalues := '10';
9230 	v_P4Matrix(v_ctr).fieldname:= 'P4_m1_1';
9231 	v_ctr := v_ctr + 1;
9232 
9233 	v_P4Matrix(v_ctr).claims := '180';
9234 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9235 	v_P4Matrix(v_ctr).basevalues := '20';
9236 	v_P4Matrix(v_ctr).fieldname:= 'P4_m1_2';
9237 	v_ctr := v_ctr + 1;
9238 
9239 	v_P4Matrix(v_ctr).claims := '180';
9240 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9241 	v_P4Matrix(v_ctr).basevalues := '30';
9242 	v_P4Matrix(v_ctr).fieldname:= 'P4_m1_3';
9243 	v_ctr := v_ctr + 1;
9244 
9245 	v_P4Matrix(v_ctr).claims := '180';
9246 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9247 	v_P4Matrix(v_ctr).basevalues := '40';
9248 	v_P4Matrix(v_ctr).fieldname:= 'P4_m1_4';
9249 	v_ctr := v_ctr + 1;
9250 
9251 	------- Claims : Appointment Bases: Color
9252 	v_P4Matrix(v_ctr).claims := '180';
9253 	v_P4Matrix(v_ctr).bases := 'YES_NO';
9254 	v_P4Matrix(v_ctr).basevalues := NULL;
9255 	v_P4Matrix(v_ctr).fieldname:= 'P4_m1_5';
9256 	v_ctr := v_ctr + 1;
9257 
9258 	-------- Claims : Reassignment (Denied) Bases : Religion
9259 	v_P4Matrix(v_ctr).claims := '180';
9260 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
9261 	v_P4Matrix(v_ctr).basevalues := NULL;
9262 	v_P4Matrix(v_ctr).fieldname:= 'P4_m1_6';
9263 	v_ctr := v_ctr + 1;
9264 
9265 	-------- Claims : Reassignment (Denied) Bases : Reprisal
9266 	v_P4Matrix(v_ctr).claims := '180';
9267 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
9268 	v_P4Matrix(v_ctr).basevalues := NULL;
9269 	v_P4Matrix(v_ctr).fieldname:= 'P4_m1_7';
9270 	v_ctr := v_ctr + 1;
9271 
9272 	-------- Claims : Reassignment (Denied) Bases : Sex
9273 	v_P4Matrix(v_ctr).claims := '180';
9274 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
9275 	v_P4Matrix(v_ctr).basevalues := '10';
9276 	v_P4Matrix(v_ctr).fieldname:= 'P4_m1_8';
9277 	v_ctr := v_ctr + 1;
9278 
9279 	v_P4Matrix(v_ctr).claims := '180';
9280 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
9281 	v_P4Matrix(v_ctr).basevalues := '20';
9282 	v_P4Matrix(v_ctr).fieldname:= 'P4_m1_9';
9283 	v_ctr := v_ctr + 1;
9284 
9285 	-------- Claims : Reassignment (Denied) Bases : National Origin
9286 	v_P4Matrix(v_ctr).claims := '180';
9287 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
9288 	v_P4Matrix(v_ctr).basevalues := '10';
9289 	v_P4Matrix(v_ctr).fieldname:= 'P4_m1_10';
9290 	v_ctr := v_ctr + 1;
9291 
9292 	v_P4Matrix(v_ctr).claims := '180';
9293 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
9294 	v_P4Matrix(v_ctr).basevalues := '20';
9295 	v_P4Matrix(v_ctr).fieldname:= 'P4_m1_11';
9296 	v_ctr := v_ctr + 1;
9297 
9298 	-------- No Equal pact (columns k and l) for Reassignment (Denied)
9299 	---- Claims : Reassignment (Denied) Bases : National Origin
9300 	v_P4Matrix(v_ctr).claims := '180';
9301 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
9302 	v_P4Matrix(v_ctr).basevalues := NULL;
9303 	v_P4Matrix(v_ctr).fieldname:= 'P4_m1_14';
9304 	v_ctr := v_ctr + 1;
9305 
9306 	---- Claims : Reassignment (Denied) Bases : Disability
9307 	v_P4Matrix(v_ctr).claims := '180';
9308 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
9309 	v_P4Matrix(v_ctr).basevalues := '10';
9310 	v_P4Matrix(v_ctr).fieldname:= 'P4_m1_15';
9311 	v_ctr := v_ctr + 1;
9312 
9313 	v_P4Matrix(v_ctr).claims := '180';
9314 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
9315 	v_P4Matrix(v_ctr).basevalues := '20';
9316 	v_P4Matrix(v_ctr).fieldname:= 'P4_m1_16';
9317 	v_ctr := v_ctr + 1;
9318 
9319 	-- End of Claim Reassignment (Denied)
9320 
9321 
9322 	-------- Claims : Reassignment (Directed) Bases : Race
9323 	v_P4Matrix(v_ctr).claims := '190';
9324 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9325 	v_P4Matrix(v_ctr).basevalues := '10';
9326 	v_P4Matrix(v_ctr).fieldname:= 'P4_m2_1';
9327 	v_ctr := v_ctr + 1;
9328 
9332 	v_P4Matrix(v_ctr).fieldname:= 'P4_m2_2';
9329 	v_P4Matrix(v_ctr).claims := '190';
9330 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9331 	v_P4Matrix(v_ctr).basevalues := '20';
9333 	v_ctr := v_ctr + 1;
9334 
9335 	v_P4Matrix(v_ctr).claims := '190';
9336 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9337 	v_P4Matrix(v_ctr).basevalues := '30';
9338 	v_P4Matrix(v_ctr).fieldname:= 'P4_m2_3';
9339 	v_ctr := v_ctr + 1;
9340 
9341 	v_P4Matrix(v_ctr).claims := '190';
9342 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9343 	v_P4Matrix(v_ctr).basevalues := '40';
9344 	v_P4Matrix(v_ctr).fieldname:= 'P4_m2_4';
9345 	v_ctr := v_ctr + 1;
9346 
9347 	------- Claims : Reassignment (Directed) Bases: Color
9348 	v_P4Matrix(v_ctr).claims := '190';
9349 	v_P4Matrix(v_ctr).bases := 'YES_NO';
9350 	v_P4Matrix(v_ctr).basevalues := NULL;
9351 	v_P4Matrix(v_ctr).fieldname:= 'P4_m2_5';
9352 	v_ctr := v_ctr + 1;
9353 
9354 
9355 	-------- Claims : Reassignment (Directed) Bases : Religion
9356 	v_P4Matrix(v_ctr).claims := '190';
9357 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
9358 	v_P4Matrix(v_ctr).basevalues := NULL;
9359 	v_P4Matrix(v_ctr).fieldname:= 'P4_m2_6';
9360 	v_ctr := v_ctr + 1;
9361 
9362 	-------- Claims : Reassignment (Directed) Bases : Reprisal
9363 	v_P4Matrix(v_ctr).claims := '190';
9364 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
9365 	v_P4Matrix(v_ctr).basevalues := NULL;
9366 	v_P4Matrix(v_ctr).fieldname:= 'P4_m2_7';
9367 	v_ctr := v_ctr + 1;
9368 
9369 	-------- Claims : Reassignment (Directed) Bases : Sex
9370 	v_P4Matrix(v_ctr).claims := '190';
9371 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
9372 	v_P4Matrix(v_ctr).basevalues := '10';
9373 	v_P4Matrix(v_ctr).fieldname:= 'P4_m2_8';
9374 	v_ctr := v_ctr + 1;
9375 
9376 	v_P4Matrix(v_ctr).claims := '190';
9377 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
9378 	v_P4Matrix(v_ctr).basevalues := '20';
9379 	v_P4Matrix(v_ctr).fieldname:= 'P4_m2_9';
9380 	v_ctr := v_ctr + 1;
9381 
9382 	-------- Claims : Reassignment (Directed) Bases : National Origin
9383 	v_P4Matrix(v_ctr).claims := '190';
9384 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
9385 	v_P4Matrix(v_ctr).basevalues := '10';
9386 	v_P4Matrix(v_ctr).fieldname:= 'P4_m2_10';
9387 	v_ctr := v_ctr + 1;
9388 
9389 	v_P4Matrix(v_ctr).claims := '190';
9390 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
9391 	v_P4Matrix(v_ctr).basevalues := '20';
9392 	v_P4Matrix(v_ctr).fieldname:= 'P4_m2_11';
9393 	v_ctr := v_ctr + 1;
9394 
9395 	-------- No Equal pact (columns k and l) for Reassignment (Directed)
9396 	---- Claims : Reassignment (Directed) Bases : National Origin
9397 	v_P4Matrix(v_ctr).claims := '190';
9398 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
9399 	v_P4Matrix(v_ctr).basevalues := NULL;
9400 	v_P4Matrix(v_ctr).fieldname:= 'P4_m2_14';
9401 	v_ctr := v_ctr + 1;
9402 
9403 	---- Claims : Reassignment (Directed) Bases : Disability
9404 	v_P4Matrix(v_ctr).claims := '190';
9405 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
9406 	v_P4Matrix(v_ctr).basevalues := '10';
9407 	v_P4Matrix(v_ctr).fieldname:= 'P4_m2_15';
9408 	v_ctr := v_ctr + 1;
9409 
9410 	v_P4Matrix(v_ctr).claims := '190';
9411 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
9412 	v_P4Matrix(v_ctr).basevalues := '20';
9413 	v_P4Matrix(v_ctr).fieldname:= 'P4_m2_16';
9414 	v_ctr := v_ctr + 1;
9415 
9416 	-- End of Claim Reassignment (Directed)
9417 
9418 
9419 	-------- Claims : Reasonable Accommodation Bases : Religion
9420 	v_P4Matrix(v_ctr).claims := '200';
9421 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
9422 	v_P4Matrix(v_ctr).basevalues := NULL;
9423 	v_P4Matrix(v_ctr).fieldname:= 'P4_n6';
9424 	v_ctr := v_ctr + 1;
9425 
9426 	-------- Claims : Reasonable Accommodation Bases : Reprisal
9427 	v_P4Matrix(v_ctr).claims := '200';
9428 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
9429 	v_P4Matrix(v_ctr).basevalues := NULL;
9430 	v_P4Matrix(v_ctr).fieldname:= 'P4_n7';
9431 	v_ctr := v_ctr + 1;
9432 
9433 
9434 	---- Claims : Reasonable Accommodation Bases : Disability
9435 	v_P4Matrix(v_ctr).claims := '200';
9436 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
9437 	v_P4Matrix(v_ctr).basevalues := '10';
9438 	v_P4Matrix(v_ctr).fieldname:= 'P4_n15';
9439 	v_ctr := v_ctr + 1;
9440 
9441 	v_P4Matrix(v_ctr).claims := '200';
9442 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
9443 	v_P4Matrix(v_ctr).basevalues := '20';
9444 	v_P4Matrix(v_ctr).fieldname:= 'P4_n16';
9445 	v_ctr := v_ctr + 1;
9446 
9447 	-- End of Claim Reasonable Accommodation
9448 
9449 
9450 
9451 	-------- Claims : Reinstatement Bases : Race
9452 	v_P4Matrix(v_ctr).claims := '210';
9453 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9454 	v_P4Matrix(v_ctr).basevalues := '10';
9455 	v_P4Matrix(v_ctr).fieldname:= 'P4_o1';
9456 	v_ctr := v_ctr + 1;
9457 
9458 	v_P4Matrix(v_ctr).claims := '210';
9459 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9460 	v_P4Matrix(v_ctr).basevalues := '20';
9461 	v_P4Matrix(v_ctr).fieldname:= 'P4_o2';
9462 	v_ctr := v_ctr + 1;
9463 
9464 	v_P4Matrix(v_ctr).claims := '210';
9465 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9466 	v_P4Matrix(v_ctr).basevalues := '30';
9467 	v_P4Matrix(v_ctr).fieldname:= 'P4_o3';
9468 	v_ctr := v_ctr + 1;
9469 
9470 	v_P4Matrix(v_ctr).claims := '210';
9471 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9472 	v_P4Matrix(v_ctr).basevalues := '40';
9473 	v_P4Matrix(v_ctr).fieldname:= 'P4_o4';
9474 	v_ctr := v_ctr + 1;
9475 
9476 	v_P4Matrix(v_ctr).claims := '210';
9477 	v_P4Matrix(v_ctr).bases := 'YES_NO';
9478 	v_P4Matrix(v_ctr).basevalues := NULL;
9479 	v_P4Matrix(v_ctr).fieldname:= 'P4_o5';
9480 	v_ctr := v_ctr + 1;
9481 
9485 	v_P4Matrix(v_ctr).basevalues := NULL;
9482 	-------- Claims : Reinstatement Bases : Religion
9483 	v_P4Matrix(v_ctr).claims := '210';
9484 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
9486 	v_P4Matrix(v_ctr).fieldname:= 'P4_o6';
9487 	v_ctr := v_ctr + 1;
9488 
9489 	-------- Claims : Reinstatement Bases : Reprisal
9490 	v_P4Matrix(v_ctr).claims := '210';
9491 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
9492 	v_P4Matrix(v_ctr).basevalues := NULL;
9493 	v_P4Matrix(v_ctr).fieldname:= 'P4_o7';
9494 	v_ctr := v_ctr + 1;
9495 
9496 	-------- Claims : Reinstatement Bases : Sex
9497 	v_P4Matrix(v_ctr).claims := '210';
9498 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
9499 	v_P4Matrix(v_ctr).basevalues := '10';
9500 	v_P4Matrix(v_ctr).fieldname:= 'P4_o8';
9501 	v_ctr := v_ctr + 1;
9502 
9503 	v_P4Matrix(v_ctr).claims := '210';
9504 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
9505 	v_P4Matrix(v_ctr).basevalues := '20';
9506 	v_P4Matrix(v_ctr).fieldname:= 'P4_o9';
9507 	v_ctr := v_ctr + 1;
9508 
9509 	-------- Claims : Reinstatement Bases : National Origin
9510 	v_P4Matrix(v_ctr).claims := '210';
9511 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
9512 	v_P4Matrix(v_ctr).basevalues := '10';
9513 	v_P4Matrix(v_ctr).fieldname:= 'P4_o10';
9514 	v_ctr := v_ctr + 1;
9515 
9516 	v_P4Matrix(v_ctr).claims := '210';
9517 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
9518 	v_P4Matrix(v_ctr).basevalues := '20';
9519 	v_P4Matrix(v_ctr).fieldname:= 'P4_o11';
9520 	v_ctr := v_ctr + 1;
9521 
9522 	-------- No Equal pact (columns k and l) for Reinstatement
9523 	---- Claims : Reinstatement Bases : Age
9524 	v_P4Matrix(v_ctr).claims := '210';
9525 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
9526 	v_P4Matrix(v_ctr).basevalues := NULL;
9527 	v_P4Matrix(v_ctr).fieldname:= 'P4_o14';
9528 	v_ctr := v_ctr + 1;
9529 
9530 	---- Claims : Reinstatement Bases : Disability
9531 	v_P4Matrix(v_ctr).claims := '210';
9532 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
9533 	v_P4Matrix(v_ctr).basevalues := '10';
9534 	v_P4Matrix(v_ctr).fieldname:= 'P4_o15';
9535 	v_ctr := v_ctr + 1;
9536 
9537 	v_P4Matrix(v_ctr).claims := '210';
9538 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
9539 	v_P4Matrix(v_ctr).basevalues := '20';
9540 	v_P4Matrix(v_ctr).fieldname:= 'P4_o16';
9541 	v_ctr := v_ctr + 1;
9542 
9543 	-- End of Claim Reinstatement
9544 
9545 
9546 
9547 	-------- Claims : Retirement Bases : Race
9548 	v_P4Matrix(v_ctr).claims := '220';
9549 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9550 	v_P4Matrix(v_ctr).basevalues := '10';
9551 	v_P4Matrix(v_ctr).fieldname:= 'P4_p1';
9552 	v_ctr := v_ctr + 1;
9553 
9554 	v_P4Matrix(v_ctr).claims := '220';
9555 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9556 	v_P4Matrix(v_ctr).basevalues := '20';
9557 	v_P4Matrix(v_ctr).fieldname:= 'P4_p2';
9558 	v_ctr := v_ctr + 1;
9559 
9560 	v_P4Matrix(v_ctr).claims := '220';
9561 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9562 	v_P4Matrix(v_ctr).basevalues := '30';
9563 	v_P4Matrix(v_ctr).fieldname:= 'P4_p3';
9564 	v_ctr := v_ctr + 1;
9565 
9566 	v_P4Matrix(v_ctr).claims := '220';
9567 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9568 	v_P4Matrix(v_ctr).basevalues := '40';
9569 	v_P4Matrix(v_ctr).fieldname:= 'P4_p4';
9570 	v_ctr := v_ctr + 1;
9571 
9572 	------- Claims : Appointment Bases: Color
9573 	v_P4Matrix(v_ctr).claims := '220';
9574 	v_P4Matrix(v_ctr).bases := 'YES_NO';
9575 	v_P4Matrix(v_ctr).basevalues := NULL;
9576 	v_P4Matrix(v_ctr).fieldname:= 'P4_p5';
9577 	v_ctr := v_ctr + 1;
9578 
9579 
9580 	-------- Claims : Retirement Bases : Religion
9581 	v_P4Matrix(v_ctr).claims := '220';
9582 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
9583 	v_P4Matrix(v_ctr).basevalues := NULL;
9584 	v_P4Matrix(v_ctr).fieldname:= 'P4_p6';
9585 	v_ctr := v_ctr + 1;
9586 
9587 	-------- Claims : Retirement Bases : Reprisal
9588 	v_P4Matrix(v_ctr).claims := '220';
9589 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
9590 	v_P4Matrix(v_ctr).basevalues := NULL;
9591 	v_P4Matrix(v_ctr).fieldname:= 'P4_p7';
9592 	v_ctr := v_ctr + 1;
9593 
9594 	-------- Claims : Retirement Bases : Sex
9595 	v_P4Matrix(v_ctr).claims := '220';
9596 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
9597 	v_P4Matrix(v_ctr).basevalues := '10';
9598 	v_P4Matrix(v_ctr).fieldname:= 'P4_p8';
9599 	v_ctr := v_ctr + 1;
9600 
9601 	v_P4Matrix(v_ctr).claims := '220';
9602 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
9603 	v_P4Matrix(v_ctr).basevalues := '20';
9604 	v_P4Matrix(v_ctr).fieldname:= 'P4_p9';
9605 	v_ctr := v_ctr + 1;
9606 
9607 	-------- Claims : Retirement Bases : National Origin
9608 	v_P4Matrix(v_ctr).claims := '220';
9609 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
9610 	v_P4Matrix(v_ctr).basevalues := '10';
9611 	v_P4Matrix(v_ctr).fieldname:= 'P4_p10';
9612 	v_ctr := v_ctr + 1;
9613 
9614 	v_P4Matrix(v_ctr).claims := '220';
9615 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
9616 	v_P4Matrix(v_ctr).basevalues := '20';
9617 	v_P4Matrix(v_ctr).fieldname:= 'P4_p11';
9618 	v_ctr := v_ctr + 1;
9619 
9620 	-------- No Equal pact (columns k and l) for Retirement
9621 	---- Claims : Retirement Bases : Age
9622 	v_P4Matrix(v_ctr).claims := '220';
9623 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
9624 	v_P4Matrix(v_ctr).basevalues := NULL;
9625 	v_P4Matrix(v_ctr).fieldname:= 'P4_p14';
9626 	v_ctr := v_ctr + 1;
9627 
9628 	---- Claims : Retirement Bases : Disability
9629 	v_P4Matrix(v_ctr).claims := '220';
9630 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
9631 	v_P4Matrix(v_ctr).basevalues := '10';
9632 	v_P4Matrix(v_ctr).fieldname:= 'P4_p15';
9633 	v_ctr := v_ctr + 1;
9634 
9635 	v_P4Matrix(v_ctr).claims := '220';
9639 	v_ctr := v_ctr + 1;
9636 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
9637 	v_P4Matrix(v_ctr).basevalues := '20';
9638 	v_P4Matrix(v_ctr).fieldname:= 'P4_p16';
9640 
9641 	-- End of Claim Retirement
9642 
9643 
9644 	-------- Claims : Termination Bases : Race
9645 	v_P4Matrix(v_ctr).claims := '230';
9646 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9647 	v_P4Matrix(v_ctr).basevalues := '10';
9648 	v_P4Matrix(v_ctr).fieldname:= 'P4_q1';
9649 	v_ctr := v_ctr + 1;
9650 
9651 	v_P4Matrix(v_ctr).claims := '230';
9652 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9653 	v_P4Matrix(v_ctr).basevalues := '20';
9654 	v_P4Matrix(v_ctr).fieldname:= 'P4_q2';
9655 	v_ctr := v_ctr + 1;
9656 
9657 	v_P4Matrix(v_ctr).claims := '230';
9658 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9659 	v_P4Matrix(v_ctr).basevalues := '30';
9660 	v_P4Matrix(v_ctr).fieldname:= 'P4_q3';
9661 	v_ctr := v_ctr + 1;
9662 
9663 	v_P4Matrix(v_ctr).claims := '230';
9664 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9665 	v_P4Matrix(v_ctr).basevalues := '40';
9666 	v_P4Matrix(v_ctr).fieldname:= 'P4_q4';
9667 	v_ctr := v_ctr + 1;
9668 
9669 	------- Claims : Termination Bases: Color
9670 	v_P4Matrix(v_ctr).claims := '230';
9671 	v_P4Matrix(v_ctr).bases := 'YES_NO';
9672 	v_P4Matrix(v_ctr).basevalues := NULL;
9673 	v_P4Matrix(v_ctr).fieldname:= 'P4_q5';
9674 	v_ctr := v_ctr + 1;
9675 
9676 	-------- Claims : Termination Bases : Religion
9677 	v_P4Matrix(v_ctr).claims := '230';
9678 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
9679 	v_P4Matrix(v_ctr).basevalues := NULL;
9680 	v_P4Matrix(v_ctr).fieldname:= 'P4_q6';
9681 	v_ctr := v_ctr + 1;
9682 
9683 	-------- Claims : Termination Bases : Reprisal
9684 	v_P4Matrix(v_ctr).claims := '230';
9685 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
9686 	v_P4Matrix(v_ctr).basevalues := NULL;
9687 	v_P4Matrix(v_ctr).fieldname:= 'P4_q7';
9688 	v_ctr := v_ctr + 1;
9689 
9690 	-------- Claims : Termination Bases : Sex
9691 	v_P4Matrix(v_ctr).claims := '230';
9692 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
9693 	v_P4Matrix(v_ctr).basevalues := '10';
9694 	v_P4Matrix(v_ctr).fieldname:= 'P4_q8';
9695 	v_ctr := v_ctr + 1;
9696 
9697 	v_P4Matrix(v_ctr).claims := '230';
9698 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
9699 	v_P4Matrix(v_ctr).basevalues := '20';
9700 	v_P4Matrix(v_ctr).fieldname:= 'P4_q9';
9701 	v_ctr := v_ctr + 1;
9702 
9703 	-------- Claims : Termination Bases : National Origin
9704 	v_P4Matrix(v_ctr).claims := '230';
9705 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
9706 	v_P4Matrix(v_ctr).basevalues := '10';
9707 	v_P4Matrix(v_ctr).fieldname:= 'P4_q10';
9708 	v_ctr := v_ctr + 1;
9709 
9710 	v_P4Matrix(v_ctr).claims := '230';
9711 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
9712 	v_P4Matrix(v_ctr).basevalues := '20';
9713 	v_P4Matrix(v_ctr).fieldname:= 'P4_q11';
9714 	v_ctr := v_ctr + 1;
9715 
9716 	-------- No Equal pact (columns k and l) for Termination
9717 	---- Claims : Termination Bases : Age
9718 	v_P4Matrix(v_ctr).claims := '230';
9719 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
9720 	v_P4Matrix(v_ctr).basevalues := NULL;
9721 	v_P4Matrix(v_ctr).fieldname:= 'P4_q14';
9722 	v_ctr := v_ctr + 1;
9723 
9724 	---- Claims : Termination Bases : Disability
9725 	v_P4Matrix(v_ctr).claims := '230';
9726 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
9727 	v_P4Matrix(v_ctr).basevalues := '10';
9728 	v_P4Matrix(v_ctr).fieldname:= 'P4_q15';
9729 	v_ctr := v_ctr + 1;
9730 
9731 	v_P4Matrix(v_ctr).claims := '230';
9732 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
9733 	v_P4Matrix(v_ctr).basevalues := '20';
9734 	v_P4Matrix(v_ctr).fieldname:= 'P4_q16';
9735 	v_ctr := v_ctr + 1;
9736 
9737 	-- End of Claim Termination
9738 
9739 
9740 	-------- Claims : Terms / Conditions of Employment Bases : Race
9741 	v_P4Matrix(v_ctr).claims := '240';
9742 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9743 	v_P4Matrix(v_ctr).basevalues := '10';
9744 	v_P4Matrix(v_ctr).fieldname:= 'P4_r1';
9745 	v_ctr := v_ctr + 1;
9746 
9747 	v_P4Matrix(v_ctr).claims := '240';
9748 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9749 	v_P4Matrix(v_ctr).basevalues := '20';
9750 	v_P4Matrix(v_ctr).fieldname:= 'P4_r2';
9751 	v_ctr := v_ctr + 1;
9752 
9753 	v_P4Matrix(v_ctr).claims := '240';
9754 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9755 	v_P4Matrix(v_ctr).basevalues := '30';
9756 	v_P4Matrix(v_ctr).fieldname:= 'P4_r3';
9757 	v_ctr := v_ctr + 1;
9758 
9759 	v_P4Matrix(v_ctr).claims := '240';
9760 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9761 	v_P4Matrix(v_ctr).basevalues := '40';
9762 	v_P4Matrix(v_ctr).fieldname:= 'P4_r4';
9763 	v_ctr := v_ctr + 1;
9764 
9765 	------- Claims : Appointment Bases: Color
9766 	v_P4Matrix(v_ctr).claims := '240';
9767 	v_P4Matrix(v_ctr).bases := 'YES_NO';
9768 	v_P4Matrix(v_ctr).basevalues := NULL;
9769 	v_P4Matrix(v_ctr).fieldname:= 'P4_r5';
9770 	v_ctr := v_ctr + 1;
9771 
9772 	-------- Claims : Terms / Conditions of Employment Bases : Religion
9773 	v_P4Matrix(v_ctr).claims := '240';
9774 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
9775 	v_P4Matrix(v_ctr).basevalues := NULL;
9776 	v_P4Matrix(v_ctr).fieldname:= 'P4_r6';
9777 	v_ctr := v_ctr + 1;
9778 
9779 	-------- Claims : Terms / Conditions of Employment Bases : Reprisal
9780 	v_P4Matrix(v_ctr).claims := '240';
9781 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
9782 	v_P4Matrix(v_ctr).basevalues := NULL;
9783 	v_P4Matrix(v_ctr).fieldname:= 'P4_r7';
9784 	v_ctr := v_ctr + 1;
9785 
9786 	-------- Claims : Terms / Conditions of Employment Bases : Sex
9787 	v_P4Matrix(v_ctr).claims := '240';
9788 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
9792 
9789 	v_P4Matrix(v_ctr).basevalues := '10';
9790 	v_P4Matrix(v_ctr).fieldname:= 'P4_r8';
9791 	v_ctr := v_ctr + 1;
9793 	v_P4Matrix(v_ctr).claims := '240';
9794 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
9795 	v_P4Matrix(v_ctr).basevalues := '20';
9796 	v_P4Matrix(v_ctr).fieldname:= 'P4_r9';
9797 	v_ctr := v_ctr + 1;
9798 
9799 	-------- Claims : Terms / Conditions of Employment Bases : National Origin
9800 	v_P4Matrix(v_ctr).claims := '240';
9801 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
9802 	v_P4Matrix(v_ctr).basevalues := '10';
9803 	v_P4Matrix(v_ctr).fieldname:= 'P4_r10';
9804 	v_ctr := v_ctr + 1;
9805 
9806 	v_P4Matrix(v_ctr).claims := '240';
9807 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
9808 	v_P4Matrix(v_ctr).basevalues := '20';
9809 	v_P4Matrix(v_ctr).fieldname:= 'P4_r11';
9810 	v_ctr := v_ctr + 1;
9811 
9812 	-------- No Equal pact (columns k and l) for Terms / Conditions of Employment
9813 	---- Claims : Terms / Conditions of Employment Bases : Age
9814 	v_P4Matrix(v_ctr).claims := '240';
9815 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
9816 	v_P4Matrix(v_ctr).basevalues := NULL;
9817 	v_P4Matrix(v_ctr).fieldname:= 'P4_r14';
9818 	v_ctr := v_ctr + 1;
9819 
9820 	---- Claims : Terms / Conditions of Employment Bases : Disability
9821 	v_P4Matrix(v_ctr).claims := '240';
9822 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
9823 	v_P4Matrix(v_ctr).basevalues := '10';
9824 	v_P4Matrix(v_ctr).fieldname:= 'P4_r15';
9825 	v_ctr := v_ctr + 1;
9826 
9827 	v_P4Matrix(v_ctr).claims := '240';
9828 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
9829 	v_P4Matrix(v_ctr).basevalues := '20';
9830 	v_P4Matrix(v_ctr).fieldname:= 'P4_r16';
9831 	v_ctr := v_ctr + 1;
9832 
9833 	-- End of Claim Terms / Conditions of Employment
9834 
9835 
9836 	-------- Claims : Time and Attendance Bases : Race
9837 	v_P4Matrix(v_ctr).claims := '250';
9838 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9839 	v_P4Matrix(v_ctr).basevalues := '10';
9840 	v_P4Matrix(v_ctr).fieldname:= 'P4_s1';
9841 	v_ctr := v_ctr + 1;
9842 
9843 	v_P4Matrix(v_ctr).claims := '250';
9844 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9845 	v_P4Matrix(v_ctr).basevalues := '20';
9846 	v_P4Matrix(v_ctr).fieldname:= 'P4_s2';
9847 	v_ctr := v_ctr + 1;
9848 
9849 	v_P4Matrix(v_ctr).claims := '250';
9850 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9851 	v_P4Matrix(v_ctr).basevalues := '30';
9852 	v_P4Matrix(v_ctr).fieldname:= 'P4_s3';
9853 	v_ctr := v_ctr + 1;
9854 
9855 	v_P4Matrix(v_ctr).claims := '250';
9856 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9857 	v_P4Matrix(v_ctr).basevalues := '40';
9858 	v_P4Matrix(v_ctr).fieldname:= 'P4_s4';
9859 	v_ctr := v_ctr + 1;
9860 
9861 	------- Claims : Appointment Bases: Color
9862 	v_P4Matrix(v_ctr).claims := '250';
9863 	v_P4Matrix(v_ctr).bases := 'YES_NO';
9864 	v_P4Matrix(v_ctr).basevalues := NULL;
9865 	v_P4Matrix(v_ctr).fieldname:= 'P4_s5';
9866 	v_ctr := v_ctr + 1;
9867 
9868 	-------- Claims : Time and Attendance Bases : Religion
9869 	v_P4Matrix(v_ctr).claims := '250';
9870 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
9871 	v_P4Matrix(v_ctr).basevalues := NULL;
9872 	v_P4Matrix(v_ctr).fieldname:= 'P4_s6';
9873 	v_ctr := v_ctr + 1;
9874 
9875 	-------- Claims : Time and Attendance Bases : Reprisal
9876 	v_P4Matrix(v_ctr).claims := '250';
9877 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
9878 	v_P4Matrix(v_ctr).basevalues := NULL;
9879 	v_P4Matrix(v_ctr).fieldname:= 'P4_s7';
9880 	v_ctr := v_ctr + 1;
9881 
9882 	-------- Claims : Time and Attendance Bases : Sex
9883 	v_P4Matrix(v_ctr).claims := '250';
9884 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
9885 	v_P4Matrix(v_ctr).basevalues := '10';
9886 	v_P4Matrix(v_ctr).fieldname:= 'P4_s8';
9887 	v_ctr := v_ctr + 1;
9888 
9889 	v_P4Matrix(v_ctr).claims := '250';
9890 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
9891 	v_P4Matrix(v_ctr).basevalues := '20';
9892 	v_P4Matrix(v_ctr).fieldname:= 'P4_s9';
9893 	v_ctr := v_ctr + 1;
9894 
9895 	-------- Claims : Time and Attendance Bases : National Origin
9896 	v_P4Matrix(v_ctr).claims := '250';
9897 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
9898 	v_P4Matrix(v_ctr).basevalues := '10';
9899 	v_P4Matrix(v_ctr).fieldname:= 'P4_s10';
9900 	v_ctr := v_ctr + 1;
9901 
9902 	v_P4Matrix(v_ctr).claims := '250';
9903 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
9904 	v_P4Matrix(v_ctr).basevalues := '20';
9905 	v_P4Matrix(v_ctr).fieldname:= 'P4_s11';
9906 	v_ctr := v_ctr + 1;
9907 
9908 	-------- No Equal pact (columns k and l) for Time and Attendance
9909 	---- Claims : Time and Attendance Bases : Age
9910 	v_P4Matrix(v_ctr).claims := '250';
9911 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
9912 	v_P4Matrix(v_ctr).basevalues := NULL;
9913 	v_P4Matrix(v_ctr).fieldname:= 'P4_s14';
9914 	v_ctr := v_ctr + 1;
9915 
9916 	---- Claims : Time and Attendance Bases : Disability
9917 	v_P4Matrix(v_ctr).claims := '250';
9918 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
9919 	v_P4Matrix(v_ctr).basevalues := '10';
9920 	v_P4Matrix(v_ctr).fieldname:= 'P4_s15';
9921 	v_ctr := v_ctr + 1;
9922 
9923 	v_P4Matrix(v_ctr).claims := '250';
9924 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
9925 	v_P4Matrix(v_ctr).basevalues := '20';
9926 	v_P4Matrix(v_ctr).fieldname:= 'P4_s16';
9927 	v_ctr := v_ctr + 1;
9928 
9929 	-- End of Claim Time and Attendance
9930 
9931 
9932 	-------- Claims : Training Bases : Race
9933 	v_P4Matrix(v_ctr).claims := '260';
9934 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9935 	v_P4Matrix(v_ctr).basevalues := '10';
9936 	v_P4Matrix(v_ctr).fieldname:= 'P4_t1';
9937 	v_ctr := v_ctr + 1;
9938 
9939 	v_P4Matrix(v_ctr).claims := '260';
9943 	v_ctr := v_ctr + 1;
9940 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9941 	v_P4Matrix(v_ctr).basevalues := '20';
9942 	v_P4Matrix(v_ctr).fieldname:= 'P4_t2';
9944 
9945 	v_P4Matrix(v_ctr).claims := '260';
9946 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9947 	v_P4Matrix(v_ctr).basevalues := '30';
9948 	v_P4Matrix(v_ctr).fieldname:= 'P4_t3';
9949 	v_ctr := v_ctr + 1;
9950 
9951 	v_P4Matrix(v_ctr).claims := '260';
9952 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
9953 	v_P4Matrix(v_ctr).basevalues := '40';
9954 	v_P4Matrix(v_ctr).fieldname:= 'P4_t4';
9955 	v_ctr := v_ctr + 1;
9956 
9957 	------- Claims : Appointment Bases: Color
9958 	v_P4Matrix(v_ctr).claims := '260';
9959 	v_P4Matrix(v_ctr).bases := 'YES_NO';
9960 	v_P4Matrix(v_ctr).basevalues := NULL;
9961 	v_P4Matrix(v_ctr).fieldname:= 'P4_t5';
9962 	v_ctr := v_ctr + 1;
9963 
9964 
9965 	-------- Claims : Training Bases : Religion
9966 	v_P4Matrix(v_ctr).claims := '260';
9967 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
9968 	v_P4Matrix(v_ctr).basevalues := NULL;
9969 	v_P4Matrix(v_ctr).fieldname:= 'P4_t6';
9970 	v_ctr := v_ctr + 1;
9971 
9972 	-------- Claims : Training Bases : Reprisal
9973 	v_P4Matrix(v_ctr).claims := '260';
9974 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
9975 	v_P4Matrix(v_ctr).basevalues := NULL;
9976 	v_P4Matrix(v_ctr).fieldname:= 'P4_t7';
9977 	v_ctr := v_ctr + 1;
9978 
9979 	-------- Claims : Training Bases : Sex
9980 	v_P4Matrix(v_ctr).claims := '260';
9981 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
9982 	v_P4Matrix(v_ctr).basevalues := '10';
9983 	v_P4Matrix(v_ctr).fieldname:= 'P4_t8';
9984 	v_ctr := v_ctr + 1;
9985 
9986 	v_P4Matrix(v_ctr).claims := '260';
9987 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
9988 	v_P4Matrix(v_ctr).basevalues := '20';
9989 	v_P4Matrix(v_ctr).fieldname:= 'P4_t9';
9990 	v_ctr := v_ctr + 1;
9991 
9992 	-------- Claims : Training Bases : National Origin
9993 	v_P4Matrix(v_ctr).claims := '260';
9994 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
9995 	v_P4Matrix(v_ctr).basevalues := '10';
9996 	v_P4Matrix(v_ctr).fieldname:= 'P4_t10';
9997 	v_ctr := v_ctr + 1;
9998 
9999 	v_P4Matrix(v_ctr).claims := '260';
10000 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
10001 	v_P4Matrix(v_ctr).basevalues := '20';
10002 	v_P4Matrix(v_ctr).fieldname:= 'P4_t11';
10003 	v_ctr := v_ctr + 1;
10004 
10005 	-------- No Equal pact (columns k and l) for Training
10006 	---- Claims : Training Bases : Age
10007 	v_P4Matrix(v_ctr).claims := '260';
10008 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
10009 	v_P4Matrix(v_ctr).basevalues := NULL;
10010 	v_P4Matrix(v_ctr).fieldname:= 'P4_t14';
10011 	v_ctr := v_ctr + 1;
10012 
10013 	---- Claims : Training Bases : Disability
10014 	v_P4Matrix(v_ctr).claims := '260';
10015 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
10016 	v_P4Matrix(v_ctr).basevalues := '10';
10017 	v_P4Matrix(v_ctr).fieldname:= 'P4_t15';
10018 	v_ctr := v_ctr + 1;
10019 
10020 	v_P4Matrix(v_ctr).claims := '260';
10021 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
10022 	v_P4Matrix(v_ctr).basevalues := '20';
10023 	v_P4Matrix(v_ctr).fieldname:= 'P4_t16';
10024 	v_ctr := v_ctr + 1;
10025 
10026 	-- End of Claim Training
10027 	-------- Claims : Other Bases : Race
10028 	v_P4Matrix(v_ctr).claims := '270';
10029 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
10030 	v_P4Matrix(v_ctr).basevalues := '10';
10031 	v_P4Matrix(v_ctr).fieldname:= 'P4_u1';
10032 	v_ctr := v_ctr + 1;
10033 
10034 	v_P4Matrix(v_ctr).claims := '270';
10035 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
10036 	v_P4Matrix(v_ctr).basevalues := '20';
10037 	v_P4Matrix(v_ctr).fieldname:= 'P4_u2';
10038 	v_ctr := v_ctr + 1;
10039 
10040 	v_P4Matrix(v_ctr).claims := '270';
10041 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
10042 	v_P4Matrix(v_ctr).basevalues := '30';
10043 	v_P4Matrix(v_ctr).fieldname:= 'P4_u3';
10044 	v_ctr := v_ctr + 1;
10045 
10046 	v_P4Matrix(v_ctr).claims := '270';
10047 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_RC_BASIS';
10048 	v_P4Matrix(v_ctr).basevalues := '40';
10049 	v_P4Matrix(v_ctr).fieldname:= 'P4_u4';
10050 	v_ctr := v_ctr + 1;
10051 
10052 	------- Claims : Appointment Bases: Color
10053 	v_P4Matrix(v_ctr).claims := '270';
10054 	v_P4Matrix(v_ctr).bases := 'YES_NO';
10055 	v_P4Matrix(v_ctr).basevalues := NULL;
10056 	v_P4Matrix(v_ctr).fieldname:= 'P4_u5';
10057 	v_ctr := v_ctr + 1;
10058 
10059 	-------- Claims : Other Bases : Religion
10060 	v_P4Matrix(v_ctr).claims := '270';
10061 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REL_BASIS';
10062 	v_P4Matrix(v_ctr).basevalues := NULL;
10063 	v_P4Matrix(v_ctr).fieldname:= 'P4_u6';
10064 	v_ctr := v_ctr + 1;
10065 
10066 	-------- Claims : Other Bases : Reprisal
10067 	v_P4Matrix(v_ctr).claims := '270';
10068 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_REP_BASIS';
10069 	v_P4Matrix(v_ctr).basevalues := NULL;
10070 	v_P4Matrix(v_ctr).fieldname:= 'P4_u7';
10071 	v_ctr := v_ctr + 1;
10072 
10073 	-------- Claims : Other Bases : Sex
10074 	v_P4Matrix(v_ctr).claims := '270';
10075 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
10076 	v_P4Matrix(v_ctr).basevalues := '10';
10077 	v_P4Matrix(v_ctr).fieldname:= 'P4_u8';
10078 	v_ctr := v_ctr + 1;
10079 
10080 	v_P4Matrix(v_ctr).claims := '270';
10081 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_SEX_BASIS';
10082 	v_P4Matrix(v_ctr).basevalues := '20';
10083 	v_P4Matrix(v_ctr).fieldname:= 'P4_u9';
10084 	v_ctr := v_ctr + 1;
10085 
10086 	-------- Claims : Other Bases : National Origin
10087 	v_P4Matrix(v_ctr).claims := '270';
10088 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
10089 	v_P4Matrix(v_ctr).basevalues := '10';
10090 	v_P4Matrix(v_ctr).fieldname:= 'P4_u10';
10091 	v_ctr := v_ctr + 1;
10092 
10093 	v_P4Matrix(v_ctr).claims := '270';
10094 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_NO_BASIS';
10095 	v_P4Matrix(v_ctr).basevalues := '20';
10096 	v_P4Matrix(v_ctr).fieldname:= 'P4_u11';
10097 	v_ctr := v_ctr + 1;
10098 
10099 	-------- No Equal pact (columns k and l) for Other
10100 	---- Claims : Other Bases : Age
10101 	v_P4Matrix(v_ctr).claims := '270';
10102 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_AGE_BASIS';
10103 	v_P4Matrix(v_ctr).basevalues := NULL;
10104 	v_P4Matrix(v_ctr).fieldname:= 'P4_u14';
10105 	v_ctr := v_ctr + 1;
10106 
10107 	---- Claims : Other Bases : Disability
10108 	v_P4Matrix(v_ctr).claims := '270';
10109 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
10110 	v_P4Matrix(v_ctr).basevalues := '10';
10111 	v_P4Matrix(v_ctr).fieldname:= 'P4_u15';
10112 	v_ctr := v_ctr + 1;
10113 
10114 	v_P4Matrix(v_ctr).claims := '270';
10115 	v_P4Matrix(v_ctr).bases := 'GHR_US_COM_HC_BASIS';
10116 	v_P4Matrix(v_ctr).basevalues := '20';
10117 	v_P4Matrix(v_ctr).fieldname:= 'P4_u16';
10118 	v_ctr := v_ctr + 1;
10119 
10120 	-- End of Claim Other
10121 
10122 END PopulatePart4Matrix;
10123 
10124 
10125 END ghr_462;