DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_NL_NWR_XML_EXTRACT_PKG

Source


1 PACKAGE BODY pay_nl_nwr_xml_extract_pkg as
2 /* $Header: pynlwrep.pkb 120.8.12010000.4 2008/09/30 06:48:07 rsahai ship $ */
3 --
4 TYPE char_tab IS TABLE OF pay_action_information.action_information1%type INDEX BY BINARY_INTEGER;
5 g_xml_nwr   char_tab;
6 --
7 g_action_ctx_id     NUMBER;
8 sqlstr              DBMS_SQL.VARCHAR2S;
9 l_cntr_sql          NUMBER;
10 g_year              VARCHAR2(10);
11 g_report_type       VARCHAR2(20);
12 EOL			  VARCHAR2(5)   := fnd_global.local_chr(10);	--7283669
13 --
14 -------------------------------------------------------------------------------
15 -- get_IANA_charset
16 -------------------------------------------------------------------------------
17 FUNCTION get_IANA_charset RETURN VARCHAR2 IS
18     CURSOR csr_get_iana_charset IS
19         SELECT tag
20           FROM fnd_lookup_values
21          WHERE lookup_type = 'FND_ISO_CHARACTER_SET_MAP'
22            AND lookup_code = SUBSTR(USERENV('LANGUAGE'),
23                                     INSTR(USERENV('LANGUAGE'), '.') + 1)
24            AND language = 'US';
25 
26     lv_iana_charset fnd_lookup_values.tag%type;
27 BEGIN
28     OPEN csr_get_iana_charset;
29         FETCH csr_get_iana_charset INTO lv_iana_charset;
30     CLOSE csr_get_iana_charset;
31 
32     hr_utility.trace('IANA Charset = '||lv_iana_charset);
33     RETURN (lv_iana_charset);
34 END get_IANA_charset;
35 --
36 -------------------------------------------------------------------------------
37 -- TO_UTF8
38 --------------------------------------------------------------------------------
39 FUNCTION TO_UTF8(str in varchar2 )RETURN VARCHAR2 AS
40    db_charset varchar2(120);
41 BEGIN
42     SELECT value
43     INTO db_charset
44     FROM nls_database_parameters
45     WHERE parameter = 'NLS_CHARACTERSET';
46     RETURN CONVERT(str,'UTF8',db_charset);
47 END;
48 -------------------------------------------------------------------------------
49 -- WRITETOCLOB
50 --------------------------------------------------------------------------------
51 PROCEDURE WritetoCLOB (p_xfdf_string out nocopy clob) IS
52      l_str VARCHAR2(240);
53      l_str1 VARCHAR2(4000);
54      l_concat_str VARCHAR2(32000);
55      l_len    NUMBER;
56  BEGIN
57      --l_str := '<?xml version="1.0" encoding="UTF-8"?> <Loonaangifte></Loonaangifte>';
58      l_str := '<?xml version="1.0" encoding="' || get_IANA_charset || '"?> <Loonaangifte></Loonaangifte>';
59      dbms_lob.createtemporary(p_xfdf_string,FALSE,DBMS_LOB.CALL);
60      dbms_lob.open(p_xfdf_string,dbms_lob.lob_readwrite);
61      IF g_xml_nwr.count > 0 THEN
62        l_concat_str := '';
63        FOR ctr_table IN g_xml_nwr.FIRST .. g_xml_nwr.LAST LOOP
64            l_concat_str := l_concat_str || g_xml_nwr(ctr_table);
65            l_len := length(l_concat_str);
66            IF  l_len  > 28000 then
67            dbms_lob.writeAppend( p_xfdf_string, l_len, l_concat_str);
68            l_concat_str := '';
69            END IF;
70        END LOOP;
71        IF length(l_concat_str) > 0 THEN
72          dbms_lob.writeAppend( p_xfdf_string, LENGTH(l_concat_str), l_concat_str);
73        END IF;
74      ELSE
75          --l_str1 := CONVERT(l_str,'UTF8');
76          dbms_lob.writeAppend( p_xfdf_string, LENGTH(l_str), l_str );
77      END IF;
78  END WritetoCLOB;
79 -------------------------------------------------------------------------------
80 -- YES_NO
81 --------------------------------------------------------------------------------
82 FUNCTION yes_no(p_yn VARCHAR2) RETURN VARCHAR2 IS
83 BEGIN
84 	IF 	p_yn = 'J' THEN
85 	    RETURN  'Y';
86 	ELSE
87 	    RETURN p_yn;
88 	END IF;
89 END yes_no;
90 --------------------------------------------------------------------------------
91 --    Name        : GET_TAG_DESCRIPTION
92 --    Description : This Function returns the Tag Description when the tag name
93 --                  is provided   .
94 --------------------------------------------------------------------------------
95 FUNCTION get_tag_description(p_tag    VARCHAR2)
96 RETURN VARCHAR2
97 IS
98 CURSOR csr_get_tag_descr(l_tag VARCHAR2)
99 IS
100 SELECT  meaning
101        ,nvl(start_date_active,fnd_date.canonical_to_date('0001/01/01 00:00:00'))  active_date
102 FROM   hr_lookups
103 WHERE lookup_type = 'NL_FORM_LABELS'
104   --AND lookup_code like l_tag||'%'
105   AND (lookup_code like l_tag||'%'||g_year OR lookup_code = l_tag)
106   AND nvl(to_char(start_date_active,'RRRR'),'0001') <= g_year
107   AND nvl(to_char(end_date_active,'RRRR'),'4712') >= g_year
108   AND enabled_flag = 'Y'
109 --ORDER BY 2 desc;
110   ORDER BY active_date desc, lookup_code desc ;
111 
112 l_temp_data csr_get_tag_descr%ROWTYPE;
113 l_description   VARCHAR2(500);
114 
115 BEGIN
116   IF p_tag IS NOT NULL THEN
117     OPEN csr_get_tag_descr(p_tag);
118     FETCH csr_get_tag_descr INTO l_temp_data;
119     IF csr_get_tag_descr%NOTFOUND THEN
120       l_description := NULL;
121     ELSE
122       l_description := l_temp_data.meaning;
123     END IF;
124     CLOSE csr_get_tag_descr;
125   ELSE
126     l_description := NULL;
127   END IF;
128   RETURN l_description;
129 END get_tag_description;
130 --------------------------------------------------------------------------------
131 --    Name        : GET_TAG_NAME
132 --    Description : This Function returns the Tag Name when the context
133 --                  and column are specified.
134 --------------------------------------------------------------------------------
135 FUNCTION get_tag_name (p_context_code         VARCHAR2
136                       ,p_node                 VARCHAR2) RETURN VARCHAR2 AS
137     --
138     CURSOR csr_get_tag_name IS
139     SELECT TRANSLATE ((description), ' /','__') tag_name
140     FROM  fnd_descr_flex_col_usage_tl
141     WHERE application_id                = 801
142     AND   source_lang = 'US'
143     AND   descriptive_flexfield_name    = 'Action Information DF'
144     AND   descriptive_flex_context_code = p_context_code
145     AND   application_column_name       = UPPER(p_node);
146     --
147     CURSOR csr_inv_seg_check(l_tag VARCHAR2) IS
148     SELECT 'N'
149     FROM hr_lookups
150     WHERE lookup_type = 'PAY_NL_INVALID_WR_TAGS'
151     AND lookup_code   = upper(l_tag)
152     AND description   =  l_tag
153     AND enabled_flag  = 'Y'
154     AND (to_char(start_date_active,'RRRR') <= g_year
155          AND nvl(to_char(end_date_active,'RRRR'),'4712') >= g_year);
156 
157   l_tag_name  fnd_descr_flex_col_usage_tl.description%TYPE;
158   l_display   VARCHAR2(1);
159     --
160 BEGIN
161     --
162    IF (p_context_code <> p_node) THEN
163     OPEN csr_get_tag_name;
164         FETCH csr_get_tag_name INTO l_tag_name;
165     CLOSE csr_get_tag_name;
166    ELSE
167      l_tag_name := p_node;
168    END IF;
169     --
170      IF g_year >= '2008' THEN
171       OPEN csr_inv_seg_check(l_tag_name);
172       FETCH csr_inv_seg_check INTO l_display;
173       IF csr_inv_seg_check%FOUND THEN
174         l_tag_name := NULL;
175       END IF;
176       CLOSE csr_inv_seg_check;
177     END IF;
178 
179    RETURN l_tag_name;
180     --
181 END get_tag_name;
182 --
183 --------------------------------------------------------------------------------
184 --    Name        : LOAD_XML_INTERNAL
185 --    Description : This procedure loads the global XML cache.
186 --------------------------------------------------------------------------------
187 PROCEDURE load_xml_internal (P_NODE_TYPE         VARCHAR2
188                             ,P_NODE              VARCHAR2
189                             ,P_DATA              VARCHAR2) AS
190     l_proc_name VARCHAR2(100);
191     l_data      pay_action_information.action_information1%TYPE;
192     --
193 BEGIN
194     --
195     IF p_node_type = 'CS' THEN
196         g_xml_nwr (g_xml_nwr.count() + 1) := '<'||p_node||'>'||EOL;
197     ELSIF p_node_type = 'CE' THEN
198         g_xml_nwr (g_xml_nwr.count() + 1) := '</'||p_node||'>'||EOL;
199     ELSIF p_node_type = 'D' AND p_data IS NOT NULL THEN
200         /* Handle special charaters in data */
201         l_data := REPLACE (p_data, '&', '&');
202         l_data := REPLACE (l_data, '>', '>');
203         l_data := REPLACE (l_data, '<', '<');
204         l_data := REPLACE (l_data, '''', ''');
205         l_data := REPLACE (l_data, '"', '"');
206         g_xml_nwr (g_xml_nwr.count() + 1) := '<'||p_node||'>'||l_data||'</'||p_node||'>'||EOL;
207     ELSIF p_node_type = 'CD' AND p_data IS NOT NULL THEN
208         l_data := p_data;
209         g_xml_nwr (g_xml_nwr.count() + 1) := '<'||p_node||'><![CDATA['||l_data||']]></'||p_node||'>'||EOL;
210     END IF;
211     --
212     END load_xml_internal;
213 --
214 --------------------------------------------------------------------------------
215 --    Name        : LOAD_XML
216 --    Description : This procedure loads the global XML cache.
217 --------------------------------------------------------------------------------
218 --
219 PROCEDURE load_xml (p_node_type     VARCHAR2
220                    ,p_context_code  VARCHAR2
221                    ,p_node          VARCHAR2
222                    ,p_data          VARCHAR2) AS
223     --
224     CURSOR csr_get_tag_name IS
225     SELECT TRANSLATE ((description), ' /','__') tag_name
226     FROM  fnd_descr_flex_col_usage_tl
227     WHERE application_id                = 801
228     AND   source_lang = 'US'
229     AND   descriptive_flexfield_name    = 'Action Information DF'
230     AND   descriptive_flex_context_code = p_context_code
231     AND   application_column_name       = UPPER (p_node);
232 
233     CURSOR csr_inv_seg_check(l_tag VARCHAR2) IS
234     SELECT 'N'
235     FROM hr_lookups
236     WHERE lookup_type = 'PAY_NL_INVALID_WR_TAGS'
237     AND lookup_code   = upper(l_tag)
238     AND description   =  l_tag
239     AND enabled_flag  = 'Y'
240     AND (to_char(start_date_active,'RRRR') <= g_year
241          AND nvl(to_char(end_date_active,'RRRR'),'4712') >= g_year);
242     --
243 
244     l_proc_name VARCHAR2(100);
245     l_tag_name  VARCHAR2(500);
246     l_data      pay_action_information.action_information1%TYPE;
247     l_display   VARCHAR2(1);
248 
249     --
250 BEGIN
251     --
252     l_display := 'Y';
253     IF p_node_type in ('D','CD') THEN
254         --
255         -- Fetch segment names
256         --
257         OPEN csr_get_tag_name;
258             FETCH csr_get_tag_name INTO l_tag_name;
259         CLOSE csr_get_tag_name;
260     END IF;
261     --
262     IF g_xml_nwr.count() <> 0 AND UPPER(p_node) NOT LIKE 'XAPI%' THEN
263         l_tag_name := nvl(l_tag_name, TRANSLATE(p_node, ' /', '__'));
264     ELSE
265         l_tag_name := p_node;
266     END IF;
267     --
268     IF g_year >= '2008'  THEN
269       OPEN csr_inv_seg_check(l_tag_name);
270       FETCH csr_inv_seg_check INTO l_display;
271       IF csr_inv_seg_check%NOTFOUND THEN
272         l_display := 'Y';
273       ELSE
274         l_display := 'N';
275       END IF;
276       CLOSE csr_inv_seg_check;
277     END IF;
278     IF l_display = 'Y' THEN
279        l_data :=  p_data;
280        IF p_node = 'Description' THEN     /***** for Description .. the tag name is fed through the p_data *****/
281          l_data := get_tag_description(UPPER(p_data));
282        END IF;
283       IF g_report_type <> 'NLNWR_XML' AND p_context_code = 'NL_WR_INCOME_PERIOD' AND UPPER(l_tag_name) = 'CDAGH' THEN
284       /** to avoid conflict between CdAGH in XML and CdAGH in the PDF output ***/
285         l_data := NULL;
286       END IF;
287       load_xml_internal (p_node_type, l_tag_name, l_data);
288     END IF;
289     --
290 END load_xml;
291 --
292 
293 
294 --------------------------------------------------------------------------------
295 --    Name        : FLEX_SEG_ENABLED
296 --    Description : This function returns TRUE if an application column is
297 --                  registered with given context of Action Information DF.
298 --                  Otherwise, it returns false.
299 --------------------------------------------------------------------------------
300 --
301 FUNCTION flex_seg_enabled(p_context_code              VARCHAR2
302                          ,p_application_column_name   VARCHAR2) RETURN BOOLEAN AS
303     --
304     CURSOR csr_seg_enabled IS
305     SELECT 'Y'
306     FROM fnd_descr_flex_col_usage_vl
307     WHERE application_id                 = 801
308     AND descriptive_flexfield_name  LIKE 'Action Information DF'
309     AND descriptive_flex_context_code    =  p_context_code
310     AND application_column_name       LIKE  p_application_column_name
311     AND enabled_flag                     =  'Y';
312     --
313     l_exists    varchar2(1);
314     --
315 BEGIN
316     --
317     OPEN csr_seg_enabled;
318         FETCH csr_seg_enabled INTO l_exists;
319     CLOSE csr_seg_enabled;
320     --
321     IF l_exists = 'Y' THEN
322         RETURN (TRUE);
323     ELSE
327 END flex_seg_enabled;
324         RETURN (FALSE);
325     END IF;
326     --
328 --
329 --------------------------------------------------------------------------------
330 --    Name        : BUILD_SQL
331 --    Description : This procedure builds dynamic SQL string.
332 --------------------------------------------------------------------------------
333 --
334 PROCEDURE build_sql(p_sqlstr_tab    IN OUT NOCOPY DBMS_SQL.VARCHAR2S
335                    ,p_cntr          IN OUT NOCOPY NUMBER
336                    ,p_string        VARCHAR2) AS
337     --
338     l_proc_name varchar2(100);
339     --
340 BEGIN
341     p_sqlstr_tab(p_cntr) := p_string;
342     p_cntr               := p_cntr + 1;
343 END;
344 --
345 --
346 --------------------------------------------------------------------------------
347 --    Name        : GET_LE_NAME
348 --    Description : This function returns the REPORTING NAME of the
349 --                  Legal Employer
350 --------------------------------------------------------------------------------
351 --
352 FUNCTION get_le_name(p_payroll_action_id      NUMBER) RETURN VARCHAR2 AS
353     --
354     CURSOR csr_get_name(p_organization_id NUMBER) IS
355     SELECT hoi1.org_information14
356     FROM hr_organization_units hou
357         ,hr_organization_information hoi
358         ,hr_organization_information hoi1
359     WHERE hou.organization_id = hoi.organization_id
360     AND	  hou.organization_id = hoi1.organization_id(+)
361     AND	  hou.organization_id = p_organization_id
362     AND	  hoi.org_information_context = 'CLASS'
363     AND	  hoi1.org_information_context(+) = 'NL_ORG_INFORMATION';
364     --
365     l_name              hr_organization_information.org_information14%TYPE;
366     l_legal_emplr_id    NUMBER(15);
367     --
368 BEGIN
369     --
370     l_legal_emplr_id := pay_nl_wage_report_pkg.get_parameters(p_payroll_action_id, 'Legal_Employer');
371     --
372     OPEN csr_get_name(l_legal_emplr_id);
373     FETCH csr_get_name INTO l_name;
374     CLOSE csr_get_name;
375     --
376     RETURN l_name;
377     --
378 END get_le_name;
379 --
380 --------------------------------------------------------------------------------
381 --    Name        : GENERATE_COLLECTIVE_REPORT
382 --    Description : This Procedure is used to generate the XML part for
383 --                  the tags in the Collective Report Part.
384 --------------------------------------------------------------------------------
385 --
386 PROCEDURE generate_collective_report( p_act_context_id       NUMBER
387                                      ,p_type                 VARCHAR2
388                                      ,p_start_date           VARCHAR2
389                                      ,p_end_date             VARCHAR2
390                                      ,p_in_not_in            VARCHAR2
391                                      ,p_report_type          VARCHAR2) AS
392 --
393 BEGIN
394 --
395    build_sql(sqlstr, l_cntr_sql, 'DECLARE l_col_tag fnd_descr_flex_col_usage_vl.description%TYPE; BEGIN ');
396 
397     --
398     build_sql(sqlstr, l_cntr_sql, 'FOR csr_collective_info_rec IN pay_nl_nwr_xml_extract_pkg.csr_collective_info ('||p_act_context_id||',''NL_WR_COLLECTIVE_REPORT'','''|| p_type ||''','||p_start_date||','||p_end_date||') LOOP ');
399     --
400     build_sql(sqlstr, l_cntr_sql, 'IF csr_collective_info_rec.action_information2 '|| p_in_not_in ||'  (''IngBijdrZvw'',''AGHKort'',''TotTeBet'') THEN ');
401     --
402     IF p_report_type = 'NLNWR_XML' THEN
403         build_sql(sqlstr, l_cntr_sql,
404         'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, csr_collective_info_rec.action_information2, to_char(fnd_number.canonical_to_number(csr_collective_info_rec.action_information6)));');
405     ELSE
406         --
407         build_sql(sqlstr, l_cntr_sql, 'l_col_tag :=  pay_nl_nwr_xml_extract_pkg.get_tag_name(csr_collective_info_rec.action_information2,csr_collective_info_rec.action_information2); ');
408           build_sql(sqlstr, l_cntr_sql, 'IF l_col_tag IS NOT NULL THEN ');
409            build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''CRRecords'', NULL);');
410            build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Tag'', csr_collective_info_rec.action_information2);');
411             --build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Description'', csr_collective_info_rec.action_information5);');
412               build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Description'', csr_collective_info_rec.action_information2);');
413             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Amount'', to_char(fnd_number.canonical_to_number(csr_collective_info_rec.action_information6)));');
414           --
415            build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''CRRecords'', NULL);');
416            build_sql(sqlstr, l_cntr_sql, 'END IF; ');
417         END IF;
418     --
419     build_sql(sqlstr, l_cntr_sql, 'END IF;');
420     --
421     build_sql(sqlstr, l_cntr_sql, 'END LOOP;');
422   build_sql(sqlstr, l_cntr_sql, 'END ;');
423 
424 --
425 END generate_collective_report;
426 --
427 --------------------------------------------------------------------------------
428 --    Name        : GENERATE_IP_SRG_NR
429 --    Description : This Procedure is used to generate the XML part for
430 --                 (Income Period - Sector Rsik Group - Nominative Report).
431 --                  Instead of repeating it thrice, we call this Proc Thrice
432 --------------------------------------------------------------------------------
436                              ,p_report_type          VARCHAR2) AS
433 --
434 PROCEDURE generate_ip_srg_nr( p_action_context_id    NUMBER
435                              ,p_type                 VARCHAR2
437 --
438 BEGIN
439 --
440     build_sql(sqlstr, l_cntr_sql, 'FOR csr_income_info_rec IN pay_nl_nwr_xml_extract_pkg.csr_income_info ('||p_action_context_id||',''NL_WR_INCOME_PERIOD'','''||p_type||''',csr_employment_info_rec.action_information_id) LOOP ');
441     --
442     -- Income Period <Inkomstenperiode>
443     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''Inkomstenperiode'', NULL);');
444         --
445         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_INCOME_PERIOD'', ''ACTION_INFORMATION5'', TO_CHAR(fnd_date.canonical_to_date(csr_income_info_rec.action_information5),''YYYY-MM-DD''));');
446         --
447           FOR cntr in 6..30 LOOP
448             IF flex_seg_enabled ('NL_WR_INCOME_PERIOD', 'ACTION_INFORMATION'||cntr) THEN
449                 IF cntr = 13 THEN
450                   IF g_year >= '2008' THEN
451                     build_sql(sqlstr, l_cntr_sql, 'IF csr_income_info_rec.action_information13 IS NULL THEN ');
452                       build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_INCOME_PERIOD'', ''ACTION_INFORMATION13'', NULL);');
453                     build_sql(sqlstr, l_cntr_sql, 'ELSIF csr_income_info_rec.action_information13 = ''0'' THEN ');
454                       build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_INCOME_PERIOD'', ''ACTION_INFORMATION13'', ''0'');');
455                     build_sql(sqlstr, l_cntr_sql, 'ELSE ');
456                       build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_INCOME_PERIOD'', ''ACTION_INFORMATION13'', ''5'');');
457                     build_sql(sqlstr, l_cntr_sql, 'END IF; ');
458                   ELSE
459                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_INCOME_PERIOD'', ''ACTION_INFORMATION13'', csr_income_info_rec.action_information13);');
460                   END IF;
461                 ELSE
462                   build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_INCOME_PERIOD'', ''ACTION_INFORMATION'|| cntr ||''', csr_income_info_rec.action_information' || cntr ||');');
463                 END IF;
464             END IF;
465           END LOOP;
466         IF p_report_type <> 'NLNWR_XML' THEN
467         --
468         --build_sql(sqlstr, l_cntr_sql, 'Declare l_code_contract VARCHAR2(50); Begin ');
469         --build_sql(sqlstr, l_cntr_sql, 'IF csr_income_info_rec.action_information9 = ''O'' THEN l_code_contract := ''Permanent'' ; ELSIF csr_income_info_rec.action_information9 = ''B'' THEN l_code_contract := ''Fixed Term''; END IF; ');
470         --build_sql(sqlstr, l_cntr_sql, 'End; ');
471 
472          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''SrtIVM'', hr_general.decode_lookup(''NL_INCOME_CODE'', csr_income_info_rec.action_information6));');
473          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''CdAardM'', hr_general.decode_lookup(''NL_LABOR_RELATION_CODE'', csr_income_info_rec.action_information7));');
474          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''CdInvlVplM'', hr_general.decode_lookup(''NL_INFLUENCE_CODE'', csr_income_info_rec.action_information8));');
475          --build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''CdBepTdM'', hr_general.decode_lookup(''NL_EMPLOYMENT_CATG'', csr_income_info_rec.action_information9));');
476          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''CdBepTdM'', hr_general.decode_lookup(NVL(csr_message_info_rec.action_information12,''NL_EMPLOYMENT_CATG''), csr_income_info_rec.action_information9));');
477          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''FsIndFZM'', hr_general.decode_lookup(''NL_TEMP_LABOR_CODE'', csr_income_info_rec.action_information10));');
478          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''IndRglmArbM'', hr_general.decode_lookup(''YES_NO'',pay_nl_nwr_xml_extract_pkg.yes_no(csr_income_info_rec.action_information11)));');
479          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''CAOM'', hr_general.decode_lookup(''NL_COLLECTIVE_AGREEMENT'', csr_income_info_rec.action_information12));');
480          IF g_year < '2008' THEN
481            build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''CdAGH'', hr_general.decode_lookup(''NL_FORM_LABELS'',''CDAGH''));');
482          ELSE
483            build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''CdAGH'', hr_general.decode_lookup(''NL_FORM_LABELS'',''CDAGH_2008''));');
484          END IF;
485          IF g_year >= '2008' THEN
486           build_sql(sqlstr, l_cntr_sql, 'IF csr_income_info_rec.action_information13 IS NULL THEN ');
487            build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''CdAGHM'', NULL); ');
488           build_sql(sqlstr, l_cntr_sql, 'ELSIF csr_income_info_rec.action_information13 = ''0'' THEN ');
489            build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''CdAGHM'',csr_income_info_rec.action_information13||'' ''|| hr_general.decode_lookup(''NL_FORM_LABELS'',''LC0_CDAGH'')); ');
490           build_sql(sqlstr, l_cntr_sql, 'ELSE ');
491            build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''CdAGHM'',''5 ''|| hr_general.decode_lookup(''NL_FORM_LABELS'',''LC5_CDAGH'')); ');
492           build_sql(sqlstr, l_cntr_sql, 'END IF; ');
493          ELSE
494            build_sql(sqlstr, l_cntr_sql,
495            'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''CdAGHM'',  csr_income_info_rec.action_information13||'' ''||hr_general.decode_lookup(''NL_LABOUR_HANDICAP_DISC_TYPE'',csr_income_info_rec.action_information13));');
499          --build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''LbTabM'', hr_general.decode_lookup(''NL_TAX_CODE'', csr_income_info_rec.action_information16));');
496          END IF;
497          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''IndLhKortM'', hr_general.decode_lookup(''YES_NO'',pay_nl_nwr_xml_extract_pkg.yes_no(csr_income_info_rec.action_information14)));');
498          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''CdRdnGnBijtM'', hr_general.decode_lookup(''NL_COMPANY_CAR_USAGE_CODE'', csr_income_info_rec.action_information15));');
500          IF g_year = '2006' THEN
501             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''IndWAOD'', hr_general.decode_lookup(''NL_FORM_LABELS'',''INDWAO_2006''));');
502          ELSE
503             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''IndWAOD'', hr_general.decode_lookup(''NL_FORM_LABELS'',''INDWAO''));');
504          END IF;
505          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''IndWAOM'', hr_general.decode_lookup(''YES_NO'',pay_nl_nwr_xml_extract_pkg.yes_no(csr_income_info_rec.action_information17)));');
506          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''IndWWM'', hr_general.decode_lookup(''YES_NO'',pay_nl_nwr_xml_extract_pkg.yes_no(csr_income_info_rec.action_information18)));');
507          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''IndZWM'', hr_general.decode_lookup(''YES_NO'',pay_nl_nwr_xml_extract_pkg.yes_no(csr_income_info_rec.action_information19)));');
508          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''CdZvwM'', hr_general.decode_lookup(''NL_ZVW_INSURED'', csr_income_info_rec.action_information20));');
509          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''IndVakBnM'', hr_general.decode_lookup(''YES_NO'',pay_nl_nwr_xml_extract_pkg.yes_no(csr_income_info_rec.action_information21)));');
510          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''IndSA71M'', hr_general.decode_lookup(''YES_NO'',pay_nl_nwr_xml_extract_pkg.yes_no(csr_income_info_rec.action_information22)));');
511          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''IndSA72M'', hr_general.decode_lookup(''YES_NO'',pay_nl_nwr_xml_extract_pkg.yes_no(csr_income_info_rec.action_information23)));');
512          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''IndSA43M'', hr_general.decode_lookup(''YES_NO'',pay_nl_nwr_xml_extract_pkg.yes_no(csr_income_info_rec.action_information24)));');
513          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''IndSA03M'', hr_general.decode_lookup(''YES_NO'',pay_nl_nwr_xml_extract_pkg.yes_no(csr_income_info_rec.action_information25)));');
514          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''CdIncInkVermM'', hr_general.decode_lookup(''NL_INCOME_DECREASE_CODE'', csr_income_info_rec.action_information26));');
515          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''IndAanvUitkM'', hr_general.decode_lookup(''YES_NO'',pay_nl_nwr_xml_extract_pkg.yes_no(csr_income_info_rec.action_information27)));');
516         END IF;
517         --
518     -- Income Period </Inkomstenperiode>
519     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''Inkomstenperiode'', NULL);');
520     --
521     build_sql(sqlstr, l_cntr_sql, 'END LOOP;');
522     --
523     build_sql(sqlstr, l_cntr_sql, 'FOR csr_income_info_rec IN pay_nl_nwr_xml_extract_pkg.csr_income_info ('||p_action_context_id||',''NL_WR_SWMF_SECTOR_RISK_GROUP'',''SECTOR_RISK_GROUP'',csr_employment_info_rec.action_information_id) LOOP ');
524     --
525     -- Sector Risk Group <SectorRisicogroep>
526     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''SectorRisicogroep'', NULL);');
527         --
528              build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_SWMF_SECTOR_RISK_GROUP'', ''ACTION_INFORMATION5'', TO_CHAR(fnd_date.canonical_to_date(csr_income_info_rec.action_information5),''YYYY-MM-DD''));');
529              build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_SWMF_SECTOR_RISK_GROUP'', ''ACTION_INFORMATION6'', TO_CHAR(fnd_date.canonical_to_date(csr_income_info_rec.action_information6),''YYYY-MM-DD''));');
530         FOR cntr in 7..8 LOOP
531             IF flex_seg_enabled ('NL_WR_SWMF_SECTOR_RISK_GROUP', 'ACTION_INFORMATION'||cntr) THEN
532              build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_SWMF_SECTOR_RISK_GROUP'', ''ACTION_INFORMATION'|| cntr ||''', csr_income_info_rec.action_information' || cntr ||');');
533             END IF;
534         END LOOP;
535         --
536     -- Sector Risk Group </SectorRisicogroep>
537     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''SectorRisicogroep'', NULL);');
538     --
539     build_sql(sqlstr, l_cntr_sql, 'END LOOP;');
540     --
541     build_sql(sqlstr, l_cntr_sql, 'DECLARE l_tag fnd_descr_flex_col_usage_vl.description%TYPE; BEGIN ');
542     --
543     -- Nominative Report <NominatieveAangifte>
544     --build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''NominatieveAangifte'', NULL);');
545     --
546     build_sql(sqlstr, l_cntr_sql, 'FOR csr_income_info_rec IN pay_nl_nwr_xml_extract_pkg.csr_income_info ('||p_action_context_id||',''NL_WR_NOMINATIVE_REPORT'','''||p_type||''',csr_employment_info_rec.action_information_id) LOOP ');
547     --
548     -- Nominative Report <NominatieveAangifte>
549     IF g_year = '2006' OR p_report_type <> 'NLNWR_XML' THEN
550         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''NominatieveAangifte'', NULL);');
551     ELSE
552         IF g_year >= '2008' THEN
556         END IF;
553           build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''Werknemersgegevens'', NULL);');
554         ELSE
555           build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''Werknemergegevens'', NULL);');
557     END IF;
558         --
559         FOR cntr in 5..14 LOOP
560             IF flex_seg_enabled ('NL_WR_NOMINATIVE_REPORT', 'ACTION_INFORMATION'||cntr) THEN
561                 --
562                 build_sql(sqlstr, l_cntr_sql, 'IF csr_income_info_rec.action_information' || cntr ||' IS NOT NULL THEN ');
563                 --
564                 IF p_report_type = 'NLNWR_XML' THEN
565                      --
566                      build_sql(sqlstr, l_cntr_sql,
567 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_NOMINATIVE_REPORT'', ''ACTION_INFORMATION'|| cntr ||''', TO_CHAR(fnd_number.canonical_to_number(csr_income_info_rec.action_information' || cntr ||'),''FM999999999999999999990.00''));');
568                      --
569                 ELSE
570 
571                     --
572                     build_sql(sqlstr, l_cntr_sql, 'l_tag :=  pay_nl_nwr_xml_extract_pkg.get_tag_name(''NL_WR_NOMINATIVE_REPORT'',''ACTION_INFORMATION'|| cntr ||''');');
573                     --
574                       build_sql(sqlstr, l_cntr_sql, 'IF l_tag IS NOT NULL THEN ');
575                       build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''NRRecords'', NULL);');
576                         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Tag'', l_tag );');
577                          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Description'', l_tag); ');
578                         build_sql(sqlstr, l_cntr_sql,
579                         'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Amount'', TO_CHAR(fnd_number.canonical_to_number(csr_income_info_rec.action_information' || cntr ||'),''FM999999999999999999990.00''));');
580                       build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''NRRecords'', NULL);');
581                       build_sql(sqlstr, l_cntr_sql, 'END IF; ');
582                     --
583 
584                 END IF;
585                 --
586              build_sql(sqlstr, l_cntr_sql, 'END IF; ');
587              --
588             END IF;
589         END LOOP;
590         --
591         -- Added for the New Context NL_WR_NOMINATIVE_REPORT_ADD
592         --
593         build_sql(sqlstr, l_cntr_sql, 'FOR csr_income_info_rec1 IN pay_nl_nwr_xml_extract_pkg.csr_income_info1 ('||p_action_context_id||',''NL_WR_NOMINATIVE_REPORT_ADD'','''||p_type||''',csr_employment_info_rec.action_information_id) LOOP ');
594         --
595         FOR cntr1 in 10..10 LOOP
596             IF flex_seg_enabled ('NL_WR_NOMINATIVE_REPORT_ADD', 'ACTION_INFORMATION'||cntr1) THEN
597                 --
598                 build_sql(sqlstr, l_cntr_sql, 'IF csr_income_info_rec1.action_information' || cntr1 ||' IS NOT NULL THEN ');
599                 --
600                 IF p_report_type = 'NLNWR_XML' THEN
601                      --
602                      build_sql(sqlstr, l_cntr_sql,
603     'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_NOMINATIVE_REPORT_ADD'', ''ACTION_INFORMATION'|| cntr1 ||''', TO_CHAR(fnd_number.canonical_to_number(csr_income_info_rec1.action_information' || cntr1 ||'),''FM999999999999999999990.00''));');
604                      --
605                 ELSE
606                     --
607                     build_sql(sqlstr, l_cntr_sql, 'l_tag :=  pay_nl_nwr_xml_extract_pkg.get_tag_name(''NL_WR_NOMINATIVE_REPORT_ADD'',''ACTION_INFORMATION'|| cntr1 ||''');');
608                     --
609                        build_sql(sqlstr, l_cntr_sql, 'IF l_tag IS NOT NULL THEN ');
610                         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''NRRecords'', NULL);');
611                          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Tag'', l_tag );');
612                          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Description'', l_tag); ');
613                         build_sql(sqlstr, l_cntr_sql,
614                         'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Amount'', TO_CHAR(fnd_number.canonical_to_number(csr_income_info_rec1.action_information' || cntr1 ||'),''FM999999999999999999990.00''));');
615                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''NRRecords'', NULL);');
616                     build_sql(sqlstr, l_cntr_sql, 'END IF; ');
617                     END IF;
618                 --
619              build_sql(sqlstr, l_cntr_sql, 'END IF; ');
620              --
621             END IF;
622         END LOOP;
623         build_sql(sqlstr, l_cntr_sql, 'END LOOP;');
624         --
625         --
626         FOR cntr in 15..22 LOOP
627             IF flex_seg_enabled ('NL_WR_NOMINATIVE_REPORT', 'ACTION_INFORMATION'||cntr) THEN
628                 --
629                 build_sql(sqlstr, l_cntr_sql, 'IF csr_income_info_rec.action_information' || cntr ||' IS NOT NULL THEN ');
630                 --
631                 IF p_report_type = 'NLNWR_XML' THEN
632                      --
633                      build_sql(sqlstr, l_cntr_sql,
634 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_NOMINATIVE_REPORT'', ''ACTION_INFORMATION'|| cntr ||''', TO_CHAR(fnd_number.canonical_to_number(csr_income_info_rec.action_information' || cntr ||'),''FM999999999999999999990.00''));');
635                      --
636                 ELSE
637                      --
638                     build_sql(sqlstr, l_cntr_sql, 'l_tag :=  pay_nl_nwr_xml_extract_pkg.get_tag_name(''NL_WR_NOMINATIVE_REPORT'',''ACTION_INFORMATION'|| cntr ||''');');
642                         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Tag'', l_tag );');
639                     --
640                       build_sql(sqlstr, l_cntr_sql, 'IF l_tag IS NOT NULL THEN ');
641                        build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''NRRecords'', NULL);');
643                         IF cntr in (16,17) AND g_year = '2006' THEN
644                             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Description'', hr_general.decode_lookup(''NL_FORM_LABELS'',UPPER(l_tag)'||'||''_2006'''||'));');
645                         ELSE
646                          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Description'',l_tag); ');
647                         END IF;
648                         build_sql(sqlstr, l_cntr_sql,
649                         'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Amount'', TO_CHAR(fnd_number.canonical_to_number(csr_income_info_rec.action_information' || cntr ||'),''FM999999999999999999990.00''));');
650                      build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''NRRecords'', NULL);');
651                      build_sql(sqlstr, l_cntr_sql, 'END IF; ');
652                     --
653                     END IF;
654                 --
655              build_sql(sqlstr, l_cntr_sql, 'END IF; ');
656              --
657             END IF;
658         END LOOP;
659         --
660         -- Added for the New Context NL_WR_NOMINATIVE_REPORT_ADD
661         --
662         build_sql(sqlstr, l_cntr_sql, 'FOR csr_income_info_rec1 IN pay_nl_nwr_xml_extract_pkg.csr_income_info1 ('||p_action_context_id||',''NL_WR_NOMINATIVE_REPORT_ADD'','''||p_type||''',csr_employment_info_rec.action_information_id) LOOP ');
663         --
664         FOR cntr1 in 5..9 LOOP
665             IF flex_seg_enabled ('NL_WR_NOMINATIVE_REPORT_ADD', 'ACTION_INFORMATION'||cntr1) THEN
666                 --
667                 build_sql(sqlstr, l_cntr_sql, 'IF csr_income_info_rec1.action_information' || cntr1 ||' IS NOT NULL THEN ');
668                 --
669                 IF p_report_type = 'NLNWR_XML' THEN
670                      --
671                      build_sql(sqlstr, l_cntr_sql,
672     'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_NOMINATIVE_REPORT_ADD'', ''ACTION_INFORMATION'|| cntr1 ||''', TO_CHAR(fnd_number.canonical_to_number(csr_income_info_rec1.action_information' || cntr1 ||'),''FM999999999999999999990.00''));');
673                      --
674                 ELSE
675                     --
676                     build_sql(sqlstr, l_cntr_sql, 'l_tag :=  pay_nl_nwr_xml_extract_pkg.get_tag_name(''NL_WR_NOMINATIVE_REPORT_ADD'',''ACTION_INFORMATION'|| cntr1 ||''');');
677                     --
678                        build_sql(sqlstr, l_cntr_sql, 'IF l_tag IS NOT NULL THEN ');
679                         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''NRRecords'', NULL);');
680                         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Tag'', l_tag );');
681                          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Description'', l_tag); ');
682                         build_sql(sqlstr, l_cntr_sql,
683                         'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Amount'', TO_CHAR(fnd_number.canonical_to_number(csr_income_info_rec1.action_information' || cntr1 ||'),''FM999999999999999999990.00''));');
684                        --
685                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''NRRecords'', NULL);');
686                      build_sql(sqlstr, l_cntr_sql, 'END IF; ');
687                  END IF;
688                 --
689              build_sql(sqlstr, l_cntr_sql, 'END IF; ');
690              --
691             END IF;
692         END LOOP;
693         build_sql(sqlstr, l_cntr_sql, 'END LOOP;');
694         --
695         --
696         FOR cntr in 23..24 LOOP
697             IF flex_seg_enabled ('NL_WR_NOMINATIVE_REPORT', 'ACTION_INFORMATION'||cntr) THEN
698                 --
699                 build_sql(sqlstr, l_cntr_sql, 'IF csr_income_info_rec.action_information' || cntr ||' IS NOT NULL THEN ');
700                 --
701                 IF p_report_type = 'NLNWR_XML' THEN
702                      --
703                      build_sql(sqlstr, l_cntr_sql,
704 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_NOMINATIVE_REPORT'', ''ACTION_INFORMATION'|| cntr ||''', TO_CHAR(fnd_number.canonical_to_number(csr_income_info_rec.action_information' || cntr ||'),''FM999999999999999999990.00''));');
705                      --
706                 ELSE
707                     --
708                     build_sql(sqlstr, l_cntr_sql, 'l_tag :=  pay_nl_nwr_xml_extract_pkg.get_tag_name(''NL_WR_NOMINATIVE_REPORT'',''ACTION_INFORMATION'|| cntr ||''');');
709                     --
710                       build_sql(sqlstr, l_cntr_sql, 'IF l_tag IS NOT NULL THEN ');
711                         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''NRRecords'', NULL);');
712                         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Tag'', l_tag );');
713                          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Description'', l_tag); ');
714                         build_sql(sqlstr, l_cntr_sql,
715                         'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Amount'', TO_CHAR(fnd_number.canonical_to_number(csr_income_info_rec.action_information' || cntr ||'),''FM999999999999999999990.00''));');
716                        --
720                 --
717                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''NRRecords'', NULL);');
718                     build_sql(sqlstr, l_cntr_sql, 'END IF; ');
719                  END IF;
721              build_sql(sqlstr, l_cntr_sql, 'END IF; ');
722              --
723             END IF;
724         END LOOP;
725         --
726         FOR cntr in 25..26 LOOP
727             IF flex_seg_enabled ('NL_WR_NOMINATIVE_REPORT', 'ACTION_INFORMATION'||cntr) THEN
728                 --
729                 IF p_report_type = 'NLNWR_XML' THEN
730                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_NOMINATIVE_REPORT'', ''ACTION_INFORMATION'|| cntr ||''', csr_income_info_rec.action_information' || cntr ||');');
731                 ELSE
732                      --
733                     build_sql(sqlstr, l_cntr_sql, 'l_tag :=  pay_nl_nwr_xml_extract_pkg.get_tag_name(''NL_WR_NOMINATIVE_REPORT'',''ACTION_INFORMATION'|| cntr ||''');');
734                     --
735                       build_sql(sqlstr, l_cntr_sql, 'IF l_tag IS NOT NULL THEN ');
736                         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''NRRecords'', NULL);');
737                         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Tag'', l_tag);');
738                          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Description'', l_tag); ');
739                         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Amount'', csr_income_info_rec.action_information' || cntr ||');');
740                        --
741                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''NRRecords'', NULL);');
742                     build_sql(sqlstr, l_cntr_sql, 'END IF; ');
743                END IF;
744                 --
745             END IF;
746         END LOOP;
747         --
748         FOR cntr in 27..30 LOOP
749             IF flex_seg_enabled ('NL_WR_NOMINATIVE_REPORT', 'ACTION_INFORMATION'||cntr) THEN
750                 --
751                 build_sql(sqlstr, l_cntr_sql, 'IF csr_income_info_rec.action_information' || cntr ||' IS NOT NULL THEN ');
752                 --
753                 IF p_report_type = 'NLNWR_XML' THEN
754                      --
755                      build_sql(sqlstr, l_cntr_sql,
756 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_NOMINATIVE_REPORT'', ''ACTION_INFORMATION'|| cntr ||''', TO_CHAR(fnd_number.canonical_to_number(csr_income_info_rec.action_information' || cntr ||'),''FM999999999999999999990.00''));');
757                      --
758                 ELSE
759                     --
760                     build_sql(sqlstr, l_cntr_sql, 'l_tag :=  pay_nl_nwr_xml_extract_pkg.get_tag_name(''NL_WR_NOMINATIVE_REPORT'',''ACTION_INFORMATION'|| cntr ||''');');
761                     --
762                       build_sql(sqlstr, l_cntr_sql, 'IF l_tag IS NOT NULL THEN ');
763                         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''NRRecords'', NULL);');
764                         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Tag'', l_tag );');
765                          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Description'', l_tag); ');
766                         build_sql(sqlstr, l_cntr_sql,
767                         'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''Amount'', TO_CHAR(fnd_number.canonical_to_number(csr_income_info_rec.action_information' || cntr ||'),''FM999999999999999999990.00''));');
768                        --
769                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''NRRecords'', NULL);');
770                 build_sql(sqlstr, l_cntr_sql, 'END IF; ');
771                    END IF;
772                 --
773                 build_sql(sqlstr, l_cntr_sql, 'END IF; ');
774                 --
775             END IF;
776         END LOOP;
777         --
778     -- Nominative Report </NominatieveAangifte>
779     IF g_year = '2006' OR p_report_type <> 'NLNWR_XML' THEN
780         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''NominatieveAangifte'', NULL);');
781     ELSE
782         IF g_year >= '2008' THEN
783           build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''Werknemersgegevens'', NULL);');
784         ELSE
785           build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''Werknemergegevens'', NULL);');
786         END IF;
787     END IF;
788     --
789     build_sql(sqlstr, l_cntr_sql, 'END LOOP;');
790     --
791     -- Nominative Report </NominatieveAangifte>
792     --build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''NominatieveAangifte'', NULL);');
793     --
794     build_sql(sqlstr, l_cntr_sql, 'END ;');
795     --
796 END generate_ip_srg_nr;
797 --
798 --------------------------------------------------------------------------------
799 --    Name        : GENERATE_PERSON
800 --    Description : This Procedure is used to generate the XML part for
801 --                 (Person - Address/Foreign Address).
802 --------------------------------------------------------------------------------
803 --
804 PROCEDURE generate_person( p_action_context_id    NUMBER
805                           ,p_type                 VARCHAR2
806                           ,p_report_type          VARCHAR2) AS
807 --
808 BEGIN
809 --
810     -- Person <NatuurlijkPersoon>
814         --
811     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''NatuurlijkPersoon'', NULL);');
812         --
813              build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION8'', csr_employment_info_rec.action_information8);');
815         FOR cntr in 9..11 LOOP
816             IF flex_seg_enabled ('NL_WR_EMPLOYMENT_INFO', 'ACTION_INFORMATION'||cntr) THEN
817              build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION'|| cntr ||''', csr_employment_info_rec.action_information' || cntr ||');');
818             END IF;
819         END LOOP;
820         --
821              build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION12'', TO_CHAR(fnd_date.canonical_to_date(csr_employment_info_rec.action_information12),''YYYY-MM-DD''));');
822         --
823         FOR cntr in 13..14 LOOP
824             IF flex_seg_enabled ('NL_WR_EMPLOYMENT_INFO', 'ACTION_INFORMATION'||cntr) THEN
825              build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION'|| cntr ||''', csr_employment_info_rec.action_information' || cntr ||');');
826             END IF;
827         END LOOP;
828         --
829         IF p_report_type IN ('NLNWR_IER','NLNWR_IERC','NLNWR_WER','NLNWR_COER','NLNWR_COMPLETE') THEN
830         --
831         build_sql(sqlstr, l_cntr_sql, 'Declare l_gender VARCHAR2(10); Begin ');
832         build_sql(sqlstr, l_cntr_sql, ' l_gender := NULL ; ');
833         build_sql(sqlstr, l_cntr_sql, 'IF csr_employment_info_rec.action_information14 = 1 THEN l_gender := ''M'' ; ELSIF csr_employment_info_rec.action_information14 = 2 THEN l_gender := ''F'' ; END IF;');
834              --
835              build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''NatM'', hr_general.decode_lookup(''NL_NATIONALITY'',LPAD(csr_employment_info_rec.action_information13,4,''0'')));');
836              build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''GeslM'', hr_general.decode_lookup(''SEX'',l_gender));');
837              -- This is for PersNr (Person Number) - only for Audit Reports
838              build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION5'', csr_employment_info_rec.action_information5);');
839              --
840         build_sql(sqlstr, l_cntr_sql, 'END ;');
841         END IF;
842         --
843     build_sql(sqlstr, l_cntr_sql, 'FOR csr_address_info_rec IN pay_nl_nwr_xml_extract_pkg.csr_address_info
844                                     ('||p_action_context_id||',''ADDRESS DETAILS'','''||p_type||''',csr_employment_info_rec.action_information_id,csr_employment_info_rec.assignment_id) LOOP ');
845     --
846     build_sql(sqlstr, l_cntr_sql, 'IF csr_address_info_rec.action_information14 = ''EMPLOYEE'' THEN ');
847     -- Address <AdresBinnenland>
848     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''AdresBinnenland'', NULL);');
849     --
850         --
851          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', NULL, ''Str'', csr_address_info_rec.action_information9);');
852          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', NULL, ''HuisNr'', csr_address_info_rec.action_information5);');
853          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', NULL, ''HuisNrToev'', csr_address_info_rec.action_information6);');
854          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', NULL, ''LocOms'', csr_address_info_rec.action_information11);');
855          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', NULL, ''Pc'', csr_address_info_rec.action_information12);');
856          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', NULL, ''Woonpl'', SUBSTR(hr_general.decode_lookup(''HR_NL_CITY'',csr_address_info_rec.action_information8),1,24));');
857         --
858     -- Address </AdresBinnenland>
859     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''AdresBinnenland'', NULL);');
860     --
861     build_sql(sqlstr, l_cntr_sql, 'END IF ; ');
862     --
863     build_sql(sqlstr, l_cntr_sql, 'IF csr_address_info_rec.action_information14 = ''EMPLOYEE FOREIGN'' THEN ');
864     -- Foreign Address <AdresBuitenland>
865     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''AdresBuitenland'', NULL);');
866     --
867          --
868          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', NULL, ''Str'', csr_address_info_rec.action_information5);');
869          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', NULL, ''HuisNr'', csr_address_info_rec.action_information6);');
870          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', NULL, ''LocOms'', csr_address_info_rec.action_information7);');
871          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', NULL, ''Pc'', csr_address_info_rec.action_information12);');
872          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', NULL, ''Woonpl'', SUBSTR(csr_address_info_rec.action_information8,1,24));');
873          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', NULL, ''Reg'', SUBSTR(hr_general.decode_lookup(''NL_REGION'',csr_address_info_rec.action_information9),1,24));');
874          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', NULL, ''LandCd'', csr_address_info_rec.action_information13);');
875         --
876     -- Foreign Address </AdresBuitenland>
877     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''AdresBuitenland'', NULL);');
878     --
882     -- Person </NatuurlijkPersoon>
879     build_sql(sqlstr, l_cntr_sql, 'END IF ; ');
880     --
881     build_sql(sqlstr, l_cntr_sql, 'END LOOP;');
883     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''NatuurlijkPersoon'', NULL);');
884 --
885 END generate_person;
886 --
887 --------------------------------------------------------------------------------
888 --  Name        : GENERATE
889 --  Description : This procedure interprets archived information and prints it
890 --                out to an XML file.
891 --------------------------------------------------------------------------------
892 --
893 PROCEDURE generate( p_action_context_id         NUMBER
894                    ,p_nwr_report_type           VARCHAR2
895                    --,p_xdo_output_type           VARCHAR2
896                    ,p_assignment_set_id         NUMBER
897                    ,p_sort_order                VARCHAR2
898                    ,p_template_name             VARCHAR2
899                    ,p_xml                       OUT NOCOPY CLOB) IS
900     --
901     CURSOR csr_inc_exc(p_assignment_set_id NUMBER) IS
902     SELECT include_or_exclude
903     FROM   hr_assignment_set_amendments hasa
904     WHERE  hasa.assignment_set_id = p_assignment_set_id;
905     --
906     CURSOR get_year(c_payroll_action_id NUMBER) IS
907     SELECT TO_CHAR(effective_date,'RRRR')
908     FROM   pay_payroll_actions
909     WHERE  payroll_action_id = c_payroll_action_id;
910     --
911     l_proc_name      VARCHAR2(100);
912     l_xml            CLOB;
913     csr              NUMBER;
914     ret              NUMBER;
915     l_inc_exc        VARCHAR2(1) DEFAULT 'X'; -- 'X' as some dummy value
916     l_payroll_type   VARCHAR2(40) DEFAULT NULL;
917     --
918 BEGIN
919     --
920     --hr_utility.trace_on(NULL,'NL_NWR');
921     hr_utility.trace('p_nwr_report_type :'||p_nwr_report_type);
922     hr_utility.trace('p_action_context_id :'||p_action_context_id);
923     hr_utility.trace('p_template_name :'||p_template_name);
924     hr_utility.trace('p_assignment_set_id :'||p_assignment_set_id);
925     hr_utility.trace('p_sort_order :'||p_sort_order);
926     --
927     l_cntr_sql      := 1;
928     g_action_ctx_id := p_action_context_id;
929     --
930     IF p_assignment_set_id IS NOT NULL THEN
931         OPEN csr_inc_exc(p_assignment_set_id);
932         FETCH csr_inc_exc INTO l_inc_exc;
933         CLOSE csr_inc_exc;
934     END IF;
935     --
936     OPEN  get_year(p_action_context_id);
937     FETCH get_year INTO g_year;
938     CLOSE get_year;
939     --
940     build_sql(sqlstr, l_cntr_sql, 'DECLARE  BEGIN ');
941     --g_xml_nwr (g_xml_nwr.count() + 1) := '<?xml version="1.0" encoding="UTF-8"?>';
942     g_xml_nwr (g_xml_nwr.count() + 1) := '<?xml version="1.0" encoding="' || get_IANA_charset ||'"?>';
943     -- START <Loonaangifte>
944     --# 0
945     l_payroll_type := TO_CHAR(pay_nl_wage_report_pkg.get_parameters(p_action_context_id,'Payroll_Type'));
946 
947     IF p_nwr_report_type = 'NLNWR_XML' THEN
948        -- l_payroll_type := TO_CHAR(pay_nl_wage_report_pkg.get_parameters(p_action_context_id,'Payroll_Type'));
949 
950         IF l_payroll_type = 'YEARLY' and g_year >= '2007' THEN  -- Enh# 6968464
951               g_xml_nwr (g_xml_nwr.count() + 1) := '<Jaarloonopgaaf xmlns="http://xml.belastingdienst.nl/schemas/Jaarloonopgaaf/'||g_year||'/01" version="1.2">'||EOL ;
952         ELSIF l_payroll_type = 'YEARLY' THEN
953               g_xml_nwr (g_xml_nwr.count() + 1) := '<Jaarloonopgaaf xmlns="http://xml.belastingdienst.nl/schemas/Loonaangifte/2006/01" version="4.0">'||EOL ;
954         ELSIF g_year = '2006' THEN
955               g_xml_nwr (g_xml_nwr.count() + 1) := '<Loonaangifte xmlns="http://xml.belastingdienst.nl/schemas/Loonaangifte/2006/01" version="4.0">'||EOL ;
956         ELSE
957             g_xml_nwr (g_xml_nwr.count() + 1) := '<Loonaangifte xmlns="http://xml.belastingdienst.nl/schemas/Loonaangifte/'||g_year||'/01" version="1.0">'||EOL ;
958             --g_xml_nwr (g_xml_nwr.count() + 1) := '<version>1.0</version>' ;
959         END IF;
960     ELSE
961         g_xml_nwr (g_xml_nwr.count() + 1) := '<Loonaangifte>'||EOL;
962     END IF;
963     --# 0
964     --
965     -- Starting the Main Loop .. All the Other Loops come under this Loop only.
966     --
967     g_report_type := p_nwr_report_type;
968     build_sql(sqlstr, l_cntr_sql, 'FOR csr_message_info_rec IN pay_nl_nwr_xml_extract_pkg.csr_message_info ('||p_action_context_id||',''NL_WR_EMPLOYER_INFO'') LOOP ');
969     --# 1
970     IF p_nwr_report_type = 'NLNWR_XML' THEN
971     --#
972         -- MESSAGE <Bericht>
973         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''Bericht'', NULL);');
974             --
975                  build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', ''NL_WR_EMPLOYER_INFO'', ''ACTION_INFORMATION2'', csr_message_info_rec.action_information2);');
976             --
977                  build_sql(sqlstr, l_cntr_sql,
978 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYER_INFO'', ''ACTION_INFORMATION3'', REPLACE(TO_CHAR(fnd_date.canonical_to_date(csr_message_info_rec.action_information3),''YYYY-MM-DD HH24:MI:SS''),'' '',''T''));');
979             --
980             FOR cntr in 4..7 LOOP
981                 IF flex_seg_enabled ('NL_WR_EMPLOYER_INFO', 'ACTION_INFORMATION'||cntr) THEN
982                  build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', ''NL_WR_EMPLOYER_INFO'', ''ACTION_INFORMATION'|| cntr ||''', csr_message_info_rec.action_information' || cntr ||');');
983                 END IF;
984             END LOOP;
985             --
989     END IF;
986         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''Bericht'', NULL);');
987         -- MESSAGE </Bericht>
988     --# 1
990     --#
991     -- Administrative Unit <AdministratieveEenheid>
992     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''AdministratieveEenheid'', NULL);');
993     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', ''NL_WR_EMPLOYER_INFO'', ''ACTION_INFORMATION8'', csr_message_info_rec.action_information8);');
994     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', ''NL_WR_EMPLOYER_INFO'', ''ACTION_INFORMATION9'', csr_message_info_rec.action_information9);');
995     -- Added to accomodate the changes in the collective and complete reports
996     IF p_nwr_report_type IN ('NLNWR_CR','NLNWR_COMPLETE') THEN
997         -- MESSAGE <Bericht>
998              build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', ''NL_WR_EMPLOYER_INFO'', ''ACTION_INFORMATION2'', csr_message_info_rec.action_information2);');
999              --
1000              build_sql(sqlstr, l_cntr_sql,
1001 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYER_INFO'', ''ACTION_INFORMATION3'', REPLACE(TO_CHAR(fnd_date.canonical_to_date(csr_message_info_rec.action_information3),''YYYY-MM-DD HH24:MI:SS''),'' '',''T''));');
1002             --
1003             FOR cntr in 4..7 LOOP
1004                 IF flex_seg_enabled ('NL_WR_EMPLOYER_INFO', 'ACTION_INFORMATION'||cntr) THEN
1005                  build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', ''NL_WR_EMPLOYER_INFO'', ''ACTION_INFORMATION'|| cntr ||''', csr_message_info_rec.action_information' || cntr ||');');
1006                 END IF;
1007             END LOOP;
1008             --
1009         -- MESSAGE </Bericht>
1010     END IF;
1011     --
1012     --# 2
1013     IF p_nwr_report_type IN ('NLNWR_XML','NLNWR_CR','NLNWR_IER','NLNWR_COMPLETE') THEN
1014     --#
1015         IF l_payroll_type = 'YEARLY' THEN
1016             -- Period Report <TijdvakCorrectie>
1017             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''TijdvakCorrectie'', NULL);');
1018         ELSE
1019             -- Period Report <TijdvakAangifte>
1020             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''TijdvakAangifte'', NULL);');
1021         END IF;
1022         --
1023         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYER_INFO'', ''ACTION_INFORMATION10'', TO_CHAR(fnd_date.canonical_to_date(csr_message_info_rec.action_information10),''YYYY-MM-DD''));');
1024         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYER_INFO'', ''ACTION_INFORMATION11'', TO_CHAR(fnd_date.canonical_to_date(csr_message_info_rec.action_information11),''YYYY-MM-DD''));');
1025         --
1026         IF l_payroll_type <> 'YEARLY' THEN
1027             -- Complete Report <VolledigeAangifte>
1028             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''VolledigeAangifte'', NULL);');
1029         END IF;
1030         --# 2.1
1031         IF p_nwr_report_type IN ('NLNWR_XML','NLNWR_CR','NLNWR_COMPLETE') THEN
1032         --#
1033             -- Collective Report <CollectieveAangifte>
1034             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''CollectieveAangifte'', NULL);');
1035             --
1036             generate_collective_report( p_act_context_id       => p_action_context_id
1037                                        ,p_type                 => 'COMPLETE'
1038                                        ,p_start_date           => 'csr_message_info_rec.action_information10'
1039                                        ,p_end_date             => 'csr_message_info_rec.action_information11'
1040                                        ,p_in_not_in            => 'NOT IN'
1041                                        ,p_report_type          => p_nwr_report_type);
1042             --
1043             build_sql(sqlstr, l_cntr_sql,
1044 'FOR csr_swmf_info_rec IN pay_nl_nwr_xml_extract_pkg.csr_swmf_info ('||p_action_context_id||',''NL_WR_SWMF_SECTOR_RISK_GROUP'',''SWMF'',csr_message_info_rec.action_information10,csr_message_info_rec.action_information11) LOOP ');
1045             -- Specification waiting money fund contribution <Wgf>
1046             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''Wgf'', NULL);');
1047                 --
1048                 FOR cntr in 7..8 LOOP
1049                     IF flex_seg_enabled ('NL_WR_SWMF_SECTOR_RISK_GROUP', 'ACTION_INFORMATION'||cntr) THEN
1050                      build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_SWMF_SECTOR_RISK_GROUP'', ''ACTION_INFORMATION'|| cntr ||''', csr_swmf_info_rec.action_information' || cntr ||');');
1051                     END IF;
1052                 END LOOP;
1053                 --
1054                 build_sql(sqlstr, l_cntr_sql,
1055                 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_SWMF_SECTOR_RISK_GROUP'', ''ACTION_INFORMATION9'', to_char(fnd_number.canonical_to_number(csr_swmf_info_rec.action_information9)));');
1056                 build_sql(sqlstr, l_cntr_sql,
1057                 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_SWMF_SECTOR_RISK_GROUP'', ''ACTION_INFORMATION10'', to_char(fnd_number.canonical_to_number(csr_swmf_info_rec.action_information10)));');
1058             --
1059             -- Specification waiting money fund contribution </Wgf>
1060             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''Wgf'', NULL);');
1061             --
1062             build_sql(sqlstr, l_cntr_sql, 'END LOOP;');
1063             --
1064             generate_collective_report( p_act_context_id       => p_action_context_id
1065                                        ,p_type                 => 'COMPLETE'
1069                                        ,p_report_type          => p_nwr_report_type);
1066                                        ,p_start_date           => 'csr_message_info_rec.action_information10'
1067                                        ,p_end_date             => 'csr_message_info_rec.action_information11'
1068                                        ,p_in_not_in            => 'IN'
1070             --
1071             build_sql(sqlstr, l_cntr_sql, 'FOR csr_corr_balance_info_rec IN pay_nl_nwr_xml_extract_pkg.csr_corr_balance_info ('||p_action_context_id||',''NL_WR_COLLECTIVE_REPORT'',''CORR_BALANCE'') LOOP ');
1072             --
1073             -- Correction balances prev. period <SaldoCorrectiesVoorgaandTijdvak>
1074             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''SaldoCorrectiesVoorgaandTijdvak'', NULL);');
1075             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''DatAanvTv'', TO_CHAR(fnd_date.canonical_to_date(csr_corr_balance_info_rec.action_information3),''YYYY-MM-DD''));');
1076             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''DatEindTv'', TO_CHAR(fnd_date.canonical_to_date(csr_corr_balance_info_rec.action_information4),''YYYY-MM-DD''));');
1077             build_sql(sqlstr, l_cntr_sql,
1078             'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, csr_corr_balance_info_rec.action_information2, to_char(fnd_number.canonical_to_number(csr_corr_balance_info_rec.action_information6)));');
1079             --
1080             -- Correction balances prev. period </SaldoCorrectiesVoorgaandTijdvak>
1081             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''SaldoCorrectiesVoorgaandTijdvak'', NULL);');
1082             build_sql(sqlstr, l_cntr_sql, 'END LOOP;');
1083             --
1084             -- General Total
1085             build_sql(sqlstr, l_cntr_sql,
1086 'FOR csr_collective_info_rec IN pay_nl_nwr_xml_extract_pkg.csr_collective_info ('||p_action_context_id||',''NL_WR_COLLECTIVE_REPORT'',''TOTAL'',csr_message_info_rec.action_information10,csr_message_info_rec.action_information11) LOOP ');
1087             --
1088             build_sql(sqlstr, l_cntr_sql,
1089             'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, csr_collective_info_rec.action_information2, to_char(fnd_number.canonical_to_number(csr_collective_info_rec.action_information6)));');
1090             --
1091             build_sql(sqlstr, l_cntr_sql, 'END LOOP;');
1092             --
1093             -- Collective Report </CollectieveAangifte>
1094             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''CollectieveAangifte'', NULL);');
1095             --
1096         --# 2.1
1097         END IF;
1098         --#
1099         --# 2.2
1100         IF p_nwr_report_type IN ('NLNWR_XML','NLNWR_IER','NLNWR_COMPLETE') THEN
1101         --#
1102             build_sql(sqlstr, l_cntr_sql,
1103 'FOR csr_employment_info_rec IN pay_nl_nwr_xml_extract_pkg.csr_employment_info ('||
1104 p_action_context_id||',''NL_WR_EMPLOYMENT_INFO'',''INITIAL'',csr_message_info_rec.action_information10,csr_message_info_rec.action_information11,'''|| p_sort_order ||''') LOOP ');
1105             --
1106             IF p_nwr_report_type <> 'NLNWR_XML' AND p_assignment_set_id IS NOT NULL AND l_inc_exc = 'I' THEN
1107             --
1108                 build_sql(sqlstr, l_cntr_sql, 'FOR csr_assignment_filter_rec IN pay_nl_nwr_xml_extract_pkg.csr_assignment_filter ('||p_assignment_set_id||',csr_employment_info_rec.assignment_id) LOOP ');
1109                 build_sql(sqlstr, l_cntr_sql, 'IF csr_assignment_filter_rec.INCLUDE_OR_EXCLUDE = ''I'' THEN ');
1110             END IF;
1111             --
1112             IF p_nwr_report_type <> 'NLNWR_XML' AND p_assignment_set_id IS NOT NULL AND l_inc_exc = 'E' THEN
1113             --
1114                 build_sql(sqlstr, l_cntr_sql, 'DECLARE l_flag VARCHAR2(1) := ''Y'';  BEGIN ');
1115                 build_sql(sqlstr, l_cntr_sql, 'FOR csr_assignment_filter_rec IN pay_nl_nwr_xml_extract_pkg.csr_assignment_filter ('||p_assignment_set_id||',csr_employment_info_rec.assignment_id) LOOP ');
1116                 build_sql(sqlstr, l_cntr_sql, 'IF csr_assignment_filter_rec.INCLUDE_OR_EXCLUDE = ''E'' THEN  l_flag := ''N''; END IF; END LOOP; ');
1117                 build_sql(sqlstr, l_cntr_sql, 'IF l_flag = ''Y'' THEN ');
1118             END IF;
1119             --
1120             -- Initial Employment Relation <InkomstenverhoudingInitieel>
1121             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''InkomstenverhoudingInitieel'', NULL);');
1122                 --
1123                 IF p_nwr_report_type <> 'NLNWR_XML' THEN
1124                     --
1125                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYER_INFO'', ''ACTION_INFORMATION8'', csr_message_info_rec.action_information8);');
1126                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', ''NL_WR_EMPLOYER_INFO'', ''ACTION_INFORMATION9'', csr_message_info_rec.action_information9);');
1127                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYER_INFO'', ''ACTION_INFORMATION10'', TO_CHAR(fnd_date.canonical_to_date(csr_message_info_rec.action_information10),''YYYY-MM-DD''));');
1128                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYER_INFO'', ''ACTION_INFORMATION11'', TO_CHAR(fnd_date.canonical_to_date(csr_message_info_rec.action_information11),''YYYY-MM-DD''));');
1129                     --
1130                 END IF;
1131                 --
1132                      build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION18'', csr_employment_info_rec.action_information18);');
1133                      build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION4'', csr_employment_info_rec.action_information4);');
1134                      build_sql(sqlstr, l_cntr_sql,
1138                 --
1135                      'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION15'', TO_CHAR(fnd_date.canonical_to_date(csr_employment_info_rec.action_information15),''YYYY-MM-DD''));');
1136                      build_sql(sqlstr, l_cntr_sql,
1137                      'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION16'', TO_CHAR(fnd_date.canonical_to_date(csr_employment_info_rec.action_information16),''YYYY-MM-DD''));');
1139                 FOR cntr in REVERSE 5..6 LOOP
1140                     IF flex_seg_enabled ('NL_WR_EMPLOYMENT_INFO', 'ACTION_INFORMATION'||cntr) THEN
1141                      build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION'|| cntr ||''', csr_employment_info_rec.action_information' || cntr ||');');
1142                     END IF;
1143                 END LOOP;
1144                 --
1145             --
1146             generate_person(p_action_context_id,'INITIAL',p_nwr_report_type);
1147             --
1148             generate_ip_srg_nr(p_action_context_id,'INITIAL',p_nwr_report_type);
1149             --
1150             -- Initial Employment Relation </InkomstenverhoudingInitieel>
1151             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''InkomstenverhoudingInitieel'', NULL);');
1152             --
1153             IF p_nwr_report_type <> 'NLNWR_XML' AND p_assignment_set_id IS NOT NULL AND l_inc_exc = 'I' THEN
1154                 build_sql(sqlstr, l_cntr_sql, 'END IF; END LOOP; ');
1155             END IF;
1156             --
1157             IF p_nwr_report_type <> 'NLNWR_XML' AND p_assignment_set_id IS NOT NULL AND l_inc_exc = 'E' THEN
1158                 build_sql(sqlstr, l_cntr_sql, ' END IF; END; ');
1159             END IF;
1160             --
1161             build_sql(sqlstr, l_cntr_sql, 'END LOOP;');
1162             --
1163         --# 2.2
1164         END IF;
1165         --#
1166         IF l_payroll_type <> 'YEARLY' THEN
1167             -- Complete Report </VolledigeAangifte>
1168             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''VolledigeAangifte'', NULL);');
1169         END IF;
1170         IF l_payroll_type = 'YEARLY' THEN
1171             -- Period Report <TijdvakCorrectie>
1172             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''TijdvakCorrectie'', NULL);');
1173         ELSE
1174             -- Period Report <TijdvakAangifte>
1175             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''TijdvakAangifte'', NULL);');
1176         END IF;
1177         --
1178     --# 2
1179     END IF;
1180     --#
1181     --# 3
1182     IF p_nwr_report_type IN ('NLNWR_XML','NLNWR_CRC','NLNWR_IERC','NLNWR_WER','NLNWR_COER','NLNWR_COMPLETE') THEN
1183     --#
1184         build_sql(sqlstr, l_cntr_sql, 'FOR csr_correction_info_rec IN pay_nl_nwr_xml_extract_pkg.csr_correction_info ('||p_action_context_id||',''NL_WR_EMPLOYMENT_INFO'',''INITIAL'') LOOP ');
1185         --
1186         -- Correction Report <TijdvakCorrectie>
1187         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''TijdvakCorrectie'', NULL);');
1188         --
1189         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''DatAanvTv'', TO_CHAR(fnd_date.canonical_to_date(csr_correction_info_rec.start_date),''YYYY-MM-DD''));');
1190         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''DatEindTv'', TO_CHAR(fnd_date.canonical_to_date(csr_correction_info_rec.end_date),''YYYY-MM-DD''));');
1191         --
1192         IF p_nwr_report_type IN ('NLNWR_CRC') THEN
1193             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYER_INFO'', ''ACTION_INFORMATION8'', csr_message_info_rec.action_information8);');
1194             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', ''NL_WR_EMPLOYER_INFO'', ''ACTION_INFORMATION9'', csr_message_info_rec.action_information9);');
1195         END IF;
1196         --
1197         --# 3.1
1198         IF p_nwr_report_type IN ('NLNWR_XML','NLNWR_CRC','NLNWR_COMPLETE') THEN
1199         --#
1200             -- Collective Report <CollectieveAangifte>
1201             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''CollectieveAangifte'', NULL);');
1202             --
1203             generate_collective_report( p_act_context_id       => p_action_context_id
1204                                        ,p_type                 => 'CORRECTION'
1205                                        ,p_start_date           => 'csr_correction_info_rec.start_date'
1206                                        ,p_end_date             => 'csr_correction_info_rec.end_date'
1207                                        ,p_in_not_in            => 'NOT IN'
1208                                        ,p_report_type          => p_nwr_report_type);
1209             --
1210             build_sql(sqlstr, l_cntr_sql,
1211 'FOR csr_swmf_info_rec IN pay_nl_nwr_xml_extract_pkg.csr_swmf_info ('||p_action_context_id||',''NL_WR_SWMF_SECTOR_RISK_GROUP'',''SWMF'',csr_correction_info_rec.start_date,csr_correction_info_rec.end_date) LOOP ');
1212             -- Specification waiting money fund contribution <Wgf>
1213             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''Wgf'', NULL);');
1214                 --
1215                 FOR cntr in 7..8 LOOP
1216                     IF flex_seg_enabled ('NL_WR_SWMF_SECTOR_RISK_GROUP', 'ACTION_INFORMATION'||cntr) THEN
1217                      build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_SWMF_SECTOR_RISK_GROUP'', ''ACTION_INFORMATION'|| cntr ||''', csr_swmf_info_rec.action_information' || cntr ||');');
1218                     END IF;
1219                 END LOOP;
1223                 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_SWMF_SECTOR_RISK_GROUP'', ''ACTION_INFORMATION10'', to_char(fnd_number.canonical_to_number(csr_swmf_info_rec.action_information10)));');
1220                 build_sql(sqlstr, l_cntr_sql,
1221                 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_SWMF_SECTOR_RISK_GROUP'', ''ACTION_INFORMATION9'', to_char(fnd_number.canonical_to_number(csr_swmf_info_rec.action_information9)));');
1222                 build_sql(sqlstr, l_cntr_sql,
1224                 --
1225             -- Specification waiting money fund contribution </Wgf>
1226             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''Wgf'', NULL);');
1227             --
1228             build_sql(sqlstr, l_cntr_sql, 'END LOOP;');
1229             --
1230             --
1231             generate_collective_report( p_act_context_id       => p_action_context_id
1232                                        ,p_type                 => 'CORRECTION'
1233                                        ,p_start_date           => 'csr_correction_info_rec.start_date'
1234                                        ,p_end_date             => 'csr_correction_info_rec.end_date'
1235                                        ,p_in_not_in            => 'IN'
1236                                        ,p_report_type          => p_nwr_report_type);
1237             --
1238             -- Collective Report </CollectieveAangifte>
1239             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''CollectieveAangifte'', NULL);');
1240             --
1241         --# 3.1
1242         END IF;
1243         --#
1244         --# 3.2
1245         IF p_nwr_report_type IN ('NLNWR_XML','NLNWR_IERC','NLNWR_COMPLETE') THEN
1246         --#
1247             --
1248             build_sql(sqlstr, l_cntr_sql,
1249 'FOR csr_employment_info_rec IN pay_nl_nwr_xml_extract_pkg.csr_employment_info ('||
1250 p_action_context_id||',''NL_WR_EMPLOYMENT_INFO'',''CORRECTION'',csr_correction_info_rec.start_date,csr_correction_info_rec.end_date,'''|| p_sort_order ||''') LOOP ');
1251             --
1252             IF p_nwr_report_type <> 'NLNWR_XML' AND p_assignment_set_id IS NOT NULL AND l_inc_exc = 'I' THEN
1253             --
1254                 build_sql(sqlstr, l_cntr_sql, 'FOR csr_assignment_filter_rec IN pay_nl_nwr_xml_extract_pkg.csr_assignment_filter ('||p_assignment_set_id||',csr_employment_info_rec.assignment_id) LOOP ');
1255                 build_sql(sqlstr, l_cntr_sql, 'IF csr_assignment_filter_rec.INCLUDE_OR_EXCLUDE = ''I'' THEN ');
1256             END IF;
1257             --
1258             IF p_nwr_report_type <> 'NLNWR_XML' AND p_assignment_set_id IS NOT NULL AND l_inc_exc = 'E' THEN
1259             --
1260                 build_sql(sqlstr, l_cntr_sql, 'DECLARE l_flag VARCHAR2(1) := ''Y'';  BEGIN ');
1261                 build_sql(sqlstr, l_cntr_sql, 'FOR csr_assignment_filter_rec IN pay_nl_nwr_xml_extract_pkg.csr_assignment_filter ('||p_assignment_set_id||',csr_employment_info_rec.assignment_id) LOOP ');
1262                 build_sql(sqlstr, l_cntr_sql, 'IF csr_assignment_filter_rec.INCLUDE_OR_EXCLUDE = ''E'' THEN  l_flag := ''N''; END IF; END LOOP; ');
1263                 build_sql(sqlstr, l_cntr_sql, 'IF l_flag = ''Y'' THEN ');
1264             END IF;
1265             --
1266             -- Initial Employment Relation <InkomstenverhoudingInitieel>
1267             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''InkomstenverhoudingInitieel'', NULL);');
1268                 --
1269                 IF p_nwr_report_type <> 'NLNWR_XML' THEN
1270                     --
1271                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYER_INFO'', ''ACTION_INFORMATION8'', csr_message_info_rec.action_information8);');
1272                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', ''NL_WR_EMPLOYER_INFO'', ''ACTION_INFORMATION9'', csr_message_info_rec.action_information9);');
1273                     --
1274                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''DatAanvTv'', TO_CHAR(fnd_date.canonical_to_date(csr_correction_info_rec.start_date),''YYYY-MM-DD''));');
1275                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''DatEindTv'', TO_CHAR(fnd_date.canonical_to_date(csr_correction_info_rec.end_date),''YYYY-MM-DD''));');
1276                     --
1277                 END IF;
1278                 --
1279                      build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION18'', csr_employment_info_rec.action_information18);');
1280                      build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION4'', csr_employment_info_rec.action_information4);');
1281                      build_sql(sqlstr, l_cntr_sql,
1282                      'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION15'', TO_CHAR(fnd_date.canonical_to_date(csr_employment_info_rec.action_information15),''YYYY-MM-DD''));');
1283                      build_sql(sqlstr, l_cntr_sql,
1284                      'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION16'', TO_CHAR(fnd_date.canonical_to_date(csr_employment_info_rec.action_information16),''YYYY-MM-DD''));');
1285                 --
1286                 FOR cntr in REVERSE 5..6 LOOP
1287                     IF flex_seg_enabled ('NL_WR_EMPLOYMENT_INFO', 'ACTION_INFORMATION'||cntr) THEN
1288                      build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION'|| cntr ||''', csr_employment_info_rec.action_information' || cntr ||');');
1289                     END IF;
1293             generate_person(p_action_context_id,'CORRECTION',p_nwr_report_type);
1290                 END LOOP;
1291                 --
1292             --
1294             --
1295             generate_ip_srg_nr(p_action_context_id,'CORRECTION',p_nwr_report_type);
1296             --
1297             -- Initial Employment Relation </InkomstenverhoudingInitieel>
1298             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''InkomstenverhoudingInitieel'', NULL);');
1299             --
1300             IF p_nwr_report_type <> 'NLNWR_XML' AND p_assignment_set_id IS NOT NULL AND l_inc_exc = 'I' THEN
1301                 build_sql(sqlstr, l_cntr_sql, 'END IF; END LOOP; ');
1302             END IF;
1303             --
1304             IF p_nwr_report_type <> 'NLNWR_XML' AND p_assignment_set_id IS NOT NULL AND l_inc_exc = 'E' THEN
1305                 build_sql(sqlstr, l_cntr_sql, ' END IF; END; ');
1306             END IF;
1307             --
1308             build_sql(sqlstr, l_cntr_sql, 'END LOOP;');
1309             --
1310         --# 3.2
1311         END IF;
1312         --#
1313         --# 3.3
1314         IF p_nwr_report_type IN ('NLNWR_XML','NLNWR_WER','NLNWR_COMPLETE') THEN
1315         --#
1316             --
1317             build_sql(sqlstr, l_cntr_sql,
1318 'FOR csr_employment_info_rec IN pay_nl_nwr_xml_extract_pkg.csr_employment_info ('||
1319 p_action_context_id||',''NL_WR_EMPLOYMENT_INFO'',''WITHDRAWAL'',csr_correction_info_rec.start_date,csr_correction_info_rec.end_date,'''|| p_sort_order ||''') LOOP ');
1320             --
1321             IF p_nwr_report_type <> 'NLNWR_XML' AND p_assignment_set_id IS NOT NULL AND l_inc_exc = 'I' THEN
1322             --
1323                 build_sql(sqlstr, l_cntr_sql, 'FOR csr_assignment_filter_rec IN pay_nl_nwr_xml_extract_pkg.csr_assignment_filter ('||p_assignment_set_id||',csr_employment_info_rec.assignment_id) LOOP ');
1324                 build_sql(sqlstr, l_cntr_sql, 'IF csr_assignment_filter_rec.INCLUDE_OR_EXCLUDE = ''I'' THEN ');
1325             END IF;
1326             --
1327             IF p_nwr_report_type <> 'NLNWR_XML' AND p_assignment_set_id IS NOT NULL AND l_inc_exc = 'E' THEN
1328             --
1329                 build_sql(sqlstr, l_cntr_sql, 'DECLARE l_flag VARCHAR2(1) := ''Y'';  BEGIN ');
1330                 build_sql(sqlstr, l_cntr_sql, 'FOR csr_assignment_filter_rec IN pay_nl_nwr_xml_extract_pkg.csr_assignment_filter ('||p_assignment_set_id||',csr_employment_info_rec.assignment_id) LOOP ');
1331                 build_sql(sqlstr, l_cntr_sql, 'IF csr_assignment_filter_rec.INCLUDE_OR_EXCLUDE = ''E'' THEN  l_flag := ''N''; END IF; END LOOP; ');
1332                 build_sql(sqlstr, l_cntr_sql, 'IF l_flag = ''Y'' THEN ');
1333             END IF;
1334             --
1335             -- Withdrawal Employment Relation <InkomstenverhoudingIntrekking>
1336             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''InkomstenverhoudingIntrekking'', NULL);');
1337                 --
1338                 IF p_nwr_report_type <> 'NLNWR_XML' THEN
1339                     --
1340                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYER_INFO'', ''ACTION_INFORMATION8'', csr_message_info_rec.action_information8);');
1341                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', ''NL_WR_EMPLOYER_INFO'', ''ACTION_INFORMATION9'', csr_message_info_rec.action_information9);');
1342                     --
1343                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''DatAanvTv'', TO_CHAR(fnd_date.canonical_to_date(csr_correction_info_rec.start_date),''YYYY-MM-DD''));');
1344                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''DatEindTv'', TO_CHAR(fnd_date.canonical_to_date(csr_correction_info_rec.end_date),''YYYY-MM-DD''));');
1345                     --
1346                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION18'', csr_employment_info_rec.action_information18);');
1347                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION4'', csr_employment_info_rec.action_information4);');
1348                     build_sql(sqlstr, l_cntr_sql,
1349                     'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION15'', TO_CHAR(fnd_date.canonical_to_date(csr_employment_info_rec.action_information15),''YYYY-MM-DD''));');
1350                     build_sql(sqlstr, l_cntr_sql,
1351                     'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION16'', TO_CHAR(fnd_date.canonical_to_date(csr_employment_info_rec.action_information16),''YYYY-MM-DD''));');
1352                     --
1353                     FOR cntr in 5..6 LOOP
1354                         IF flex_seg_enabled ('NL_WR_EMPLOYMENT_INFO', 'ACTION_INFORMATION'||cntr) THEN
1355                          build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION'|| cntr ||''', csr_employment_info_rec.action_information' || cntr ||');');
1356                         END IF;
1357                     END LOOP;
1358                     --
1359                     generate_person(p_action_context_id,'WITHDRAWAL',p_nwr_report_type);
1360                     --
1361                 END IF;
1362                 --
1363                 IF p_nwr_report_type = 'NLNWR_XML' THEN
1364                     --
1365                     IF g_year = '2006' THEN
1369                     ELSE
1366                         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION4'', csr_employment_info_rec.action_information4);');
1367                         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION5'', csr_employment_info_rec.action_information5);');
1368                         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION8'', csr_employment_info_rec.action_information8);');
1370                         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION18'', csr_employment_info_rec.action_information18);');
1371                         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION4'', csr_employment_info_rec.action_information4);');
1372                         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION8'', csr_employment_info_rec.action_information8);');
1373                         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION5'', csr_employment_info_rec.action_information5);');
1374                     END IF;
1375                     --
1376                 END IF;
1377             --
1378             -- Withdrawal Employment Relation </InkomstenverhoudingIntrekking>
1379             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''InkomstenverhoudingIntrekking'', NULL);');
1380             --
1381             IF p_nwr_report_type <> 'NLNWR_XML' AND p_assignment_set_id IS NOT NULL AND l_inc_exc = 'I' THEN
1382                 build_sql(sqlstr, l_cntr_sql, 'END IF; END LOOP; ');
1383             END IF;
1384             --
1385             IF p_nwr_report_type <> 'NLNWR_XML' AND p_assignment_set_id IS NOT NULL AND l_inc_exc = 'E' THEN
1386                 build_sql(sqlstr, l_cntr_sql, ' END IF; END; ');
1387             END IF;
1388             --
1389             build_sql(sqlstr, l_cntr_sql, 'END LOOP;');
1390             --
1391         --# 3.3
1392         END IF;
1393         --#
1394         --# 3.4
1395         IF p_nwr_report_type IN ('NLNWR_XML','NLNWR_COER','NLNWR_COMPLETE') THEN
1396         --#
1397             build_sql(sqlstr, l_cntr_sql,
1398 'FOR csr_employment_info_rec IN pay_nl_nwr_xml_extract_pkg.csr_employment_info ('||
1399 p_action_context_id||',''NL_WR_EMPLOYMENT_INFO'',''CORRECT'',csr_correction_info_rec.start_date,csr_correction_info_rec.end_date,'''|| p_sort_order ||''') LOOP ');
1400             --
1401             IF p_nwr_report_type <> 'NLNWR_XML' AND p_assignment_set_id IS NOT NULL AND l_inc_exc = 'I' THEN
1402             --
1403                 build_sql(sqlstr, l_cntr_sql, 'FOR csr_assignment_filter_rec IN pay_nl_nwr_xml_extract_pkg.csr_assignment_filter ('||p_assignment_set_id||',csr_employment_info_rec.assignment_id) LOOP ');
1404                 build_sql(sqlstr, l_cntr_sql, 'IF csr_assignment_filter_rec.INCLUDE_OR_EXCLUDE = ''I'' THEN ');
1405             END IF;
1406             --
1407             IF p_nwr_report_type <> 'NLNWR_XML' AND p_assignment_set_id IS NOT NULL AND l_inc_exc = 'E' THEN
1408             --
1409                 build_sql(sqlstr, l_cntr_sql, 'DECLARE l_flag VARCHAR2(1) := ''Y'';  BEGIN ');
1410                 build_sql(sqlstr, l_cntr_sql, 'FOR csr_assignment_filter_rec IN pay_nl_nwr_xml_extract_pkg.csr_assignment_filter ('||p_assignment_set_id||',csr_employment_info_rec.assignment_id) LOOP ');
1411                 build_sql(sqlstr, l_cntr_sql, 'IF csr_assignment_filter_rec.INCLUDE_OR_EXCLUDE = ''E'' THEN  l_flag := ''N''; END IF; END LOOP; ');
1412                 build_sql(sqlstr, l_cntr_sql, 'IF l_flag = ''Y'' THEN ');
1413             END IF;
1414             --
1415             -- Correction Employment relation <InkomstenverhoudingCorrectie>
1416             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CS'', NULL, ''InkomstenverhoudingCorrectie'', NULL);');
1417                 --
1418                 IF p_nwr_report_type <> 'NLNWR_XML' THEN
1419                     --
1420                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYER_INFO'', ''ACTION_INFORMATION8'', csr_message_info_rec.action_information8);');
1421                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CD'', ''NL_WR_EMPLOYER_INFO'', ''ACTION_INFORMATION9'', csr_message_info_rec.action_information9);');
1422                     --
1423                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''DatAanvTv'', TO_CHAR(fnd_date.canonical_to_date(csr_correction_info_rec.start_date),''YYYY-MM-DD''));');
1424                     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', NULL, ''DatEindTv'', TO_CHAR(fnd_date.canonical_to_date(csr_correction_info_rec.end_date),''YYYY-MM-DD''));');
1425                     --
1426                 END IF;
1427                 --
1428                      build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION4'', csr_employment_info_rec.action_information4);');
1429                      build_sql(sqlstr, l_cntr_sql,
1433                      build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION6'', csr_employment_info_rec.action_information6);');
1430                      'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION15'', TO_CHAR(fnd_date.canonical_to_date(csr_employment_info_rec.action_information15),''YYYY-MM-DD''));');
1431                      build_sql(sqlstr, l_cntr_sql,
1432                      'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION16'', TO_CHAR(fnd_date.canonical_to_date(csr_employment_info_rec.action_information16),''YYYY-MM-DD''));');
1434                      build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION5'', csr_employment_info_rec.action_information5);');
1435                      build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''D'', ''NL_WR_EMPLOYMENT_INFO'', ''ACTION_INFORMATION8'', csr_employment_info_rec.action_information8);');
1436             --
1437             IF p_nwr_report_type <> 'NLNWR_XML' THEN
1438                 generate_person(p_action_context_id,'CORRECT',p_nwr_report_type);
1439             END IF;
1440             --
1441             generate_ip_srg_nr(p_action_context_id,'CORRECT',p_nwr_report_type);
1442             --
1443             -- Correction Employment relation </InkomstenverhoudingCorrectie>
1444             build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''InkomstenverhoudingCorrectie'', NULL);');
1445             --
1446             IF p_nwr_report_type <> 'NLNWR_XML' AND p_assignment_set_id IS NOT NULL AND l_inc_exc = 'I' THEN
1447                 build_sql(sqlstr, l_cntr_sql, 'END IF; END LOOP; ');
1448             END IF;
1449             --
1450             IF p_nwr_report_type <> 'NLNWR_XML' AND p_assignment_set_id IS NOT NULL AND l_inc_exc = 'E' THEN
1451                 build_sql(sqlstr, l_cntr_sql, ' END IF; END; ');
1452             END IF;
1453             --
1454             build_sql(sqlstr, l_cntr_sql, 'END LOOP;');
1455             --
1456         --# 3.4
1457         END IF;
1458         --#
1459         -- Correction Report </TijdvakCorrectie>
1460         build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''TijdvakCorrectie'', NULL);');
1461         --
1462         build_sql(sqlstr, l_cntr_sql, 'END LOOP;');
1463         --
1464     --# 3
1465     END IF;
1466     --#
1467     -- Administrative Unit </AdministratieveEenheid>
1468     build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''AdministratieveEenheid'', NULL);');
1469     --
1470     -- End of the Main Loop
1471     --
1472     build_sql(sqlstr, l_cntr_sql, 'END LOOP;');
1473     -- END </Loonaangifte>
1474     IF l_payroll_type = 'YEARLY' AND p_nwr_report_type = 'NLNWR_XML' THEN
1475       build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''Jaarloonopgaaf'', NULL);');
1476     ELSE
1477       build_sql(sqlstr, l_cntr_sql, 'pay_nl_nwr_xml_extract_pkg.load_xml(''CE'', NULL, ''Loonaangifte'', NULL);');
1478     END IF;
1479     build_sql(sqlstr, l_cntr_sql, 'END;');
1480     --
1481     csr := dbms_sql.open_cursor;
1482     dbms_sql.parse (csr,
1483                     sqlstr,
1484                     sqlstr.first(),
1485                     sqlstr.last(),
1486                     false,
1487                     dbms_sql.v7);
1488     ret := dbms_sql.execute(csr);
1489     dbms_sql.close_cursor(csr);
1490     --
1491     WritetoCLOB(p_xfdf_string => l_xml);
1492     --
1493     p_xml := l_xml;
1494     --
1495     dbms_lob.freeTemporary(l_xml);
1496     --
1497     g_xml_nwr.delete();
1498     --
1499 END generate;
1500 --
1501 END pay_nl_nwr_xml_extract_pkg;