DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_1099R_DATA

Source


1 PACKAGE BODY pay_1099R_data AS
2 /* $Header: py1099rd.pkb 115.7 99/07/17 05:40:51 porting ship $ */
3 --
4 /*
5    ******************************************************************
6    *                                                                *
7    *  Copyright (C) 1996 Oracle Corporation.                        *
8    *  All rights reserved.                                          *
9    *                                                                *
10    *  This material has been provided pursuant to an agreement      *
11    *  containing restrictions on its use.  The material is also     *
12    *  protected by copyright law.  No part of this material may     *
13    *  be copied or distributed, transmitted or transcribed, in      *
14    *  any form or by any means, electronic, mechanical, magnetic,   *
15    *  manual, or otherwise, or disclosed to third parties without   *
16    *  the express written permission of Oracle Corporation,         *
17    *  500 Oracle Parkway, Redwood City, CA, 94065.                  *
18    *                                                                *
19    ******************************************************************
20 
21     Name        : pay_1099R_data
22 
23     Description :  Sets up the data to provide 1099R reporting.
24 
25     Uses        :
26 
27     Change List
28     -----------
29      Date        Name     Vers    Bug No     Description
30      ----        ----     ----    ------     -----------
31      07-AUG-96   ATAYLOR  40.0               Created.
32      28-SEP-96   HEKIM    40.1               All format definitions stored in plsql
33 					        tables to be called in a loop.
34      8-OCT-96    HEKIM    40.2               Added block definition for states.
35      12-NOV-96   HEKIM    40.3               Cleaned up loop, and took out state blocks
36 					        which use k-record.
37      13-NOV-96   GPERRY   40.4               Added Exit Statement.
38      20-DEC-96   HEKIM    40.5               Added NY and MI formats.
39      31-JAN-97   HEKIM    40.6               Added transmitter info for WV
40      26-FEB-97   HEKIM    40.7               Changed state blocks to follow state cursor
41      06-MAR-97   HEKIM    40.8               NY now follows 1099R modified SQWL formula.
42      20-MAR-97   HEKIM    40.9               Changed K record structure for 1099R_FED
43      04-FEB-98   EKIM     40.10              Added Georgia for '1099R_State'report format.
44      26-MAY-98   NBRISTOW 40.14              Added report_category to
45                                              pay_report_format_mappings.
46      05-OCT-98   AHANDA   40.15    765557    Added code to make the 1099R
47                                              mag run on the Archiver Process
48                                              and NC format.
49      20-NOV-98   AHANDA   40.19    755093    Changed Report Definition for the EOY-III
50                                              patch.
51      04-DEC-98   AHANDA   40.20              Changed Report Definition for Kansas and Iowa
52      07-DEC-98   AHANDA   40.21              Changed script to create the 1099R_STATE report
53                                              defn. first and then create the 1099R_STATE_NFED.
54      07-DEC-98   AHANDA   40.22/110.4        Changed the frequency for
55                                              TIB4_INTERMEDIATE_TOTALS for North Carolina
56      17-DEC-98   AHANDA   40.23/110.5        Changed the format for South Carolina as
57                                              they added a K record.
58      16-JAN-98   AHANDA   40.25/110.6        Changed no no of columns returned
59 															by magw2_transmitter to 12
60      27-JAN-99  AHANDA    40.26/110.7 808958 Modified the Report format for 1099R_STATE to
61                                              include NM, AR. Also changed the script to first
62                                              delete all the report formats and then insert.
63 --
64      08-MAR-99  MREID          110.8 845184  Changed dbms_output calls to use
65                                              hr_utility
66 /**/
67 ----------------------------------------------------------------------------------------
68 -- Name
69 --   setup
70 -- Purpose
71 --   Sets up structure of 1099R Federal and State reports for the generic
72 --   magnetic tape harness.
73 -- Arguments
74 --   None
75 -- Notes:
76 --   This file contains the following report definitions:
77 --  1099R_FED : Federal 1099R format
78 --  1099R_STATE : Federal 1099R format with variations, omits k-records
79 --  1099R_WV  : Custom 1099R format for West Virginia
80 --  1099R_IND : 1099R format for Indiana
81 --  1099R_MI  : 1099R format for Michigan
82 --  1099R_NY  : 1099R format for New York
83 --  1099R_NC  : 1099R format for North Carolina
84 ----------------------------------------------------------------------------------------
85 /**/
86 --
87 PROCEDURE Setup IS
88 --
89   -- Define table structures to hold parameter details.
90   --
91   -- note: the parameter prefix 'lt' denotes a local table
92   --                            'li' denotes a local table index
93   --Report Definitions
94   lt_report_format   		char30_data_table;
95   lt_report_qualifier   	char30_data_table;
96   lt_desc            		char250_data_table;
97   --
98   -- Tables to account for multiple report qualifiers for each report format
99   lt_rptq_first			numeric_data_table; --start index into lt_report_qualifier
100   lt_rptq_last			numeric_data_table; --end index into lt_report_qualifier
101   --
102   --Block Definitions
103   --
104   lt_B_mag_block_id     	numeric_data_table;
105   -- Note: lt_B_mag_block_id holds the id's for the current format being processed
106   --
107   lt_B_block_name       	char30_data_table;
108   lt_B_cursor_name      	char250_data_table;
109   lt_B_no_column_ret    	numeric_data_table;
110   lt_B_validate         	boolean_data_table;
111   --
112   --Formula Definitions
113   --
114   lt_F_formula_name     	char250_data_table;
115   --
116   lt_F_mag_block_id     	numeric_data_table;
117   -- used to index into lt_B_mag_block_id
118   --
119   lt_F_next_block_id    	numeric_data_table;
120   lt_F_last_run_exec_mode  	char30_data_table;
121   lt_F_overflow_mode      	char30_data_table;
122   lt_F_sequence         	numeric_data_table;
123   lt_F_frequency       		numeric_data_table;
124   lt_F_validate         	boolean_data_table;
125   --
126   --
127   lt_F_total 			numeric_data_table; --# of record defs for a format
128   lt_B_total 			numeric_data_table; --# of block defs for a format
129   --
130   l_report_type      		VARCHAR2(10) := '1099R';
131   l_formula_id    		number;  -- Holds the id of a formula.
132   l_main_block_flag		VARCHAR2(10);
133 --
134 
135 --
136   l_case_count 			number := 9; --number of formats
137   li_case      			number;
138   li_btab 			number := 1;
139   li_ftab 			number := 1;
140   l_f_id          		number;
141   l_mag_block_id  		number;
142   l_next_block_id 		number;
143 --
144    -- Note that l_message is used throughout this module to hold the
145    -- message which will be displayed if an exception is raised.
146    --
147    l_message            VARCHAR2(200);
148 --
149 BEGIN
150 ----------------------------------------------------------------------------------------
151    --
152    --Note: Block 1 is  always the starting block, and is the only block
153    --      with  p_main_block_flag  set to 'Y'.
154    --      Block 1 has information on one Payer that is nominated as the
155    --             "Transmitter" for each report. This block will also be used to maintain
156    --            report level totals defined in the "F" record.
157    --
158 /**/
159 ----------------------------------------------------------------------------------------
160 -- Federal 1099R format definition
161 ----------------------------------------------------------------------------------------
162   --
163   lt_B_total(1) := 4;
164   lt_F_total(1) := 6;
165   lt_report_format(1) := '1099R_FED';
166   lt_desc(1) :='1099R Federal ';
167   --
168   lt_rptq_first(1) := 1;
169   lt_rptq_last(1)  := 1;
170   lt_report_qualifier(1)  :='FED'; --Federal
171 --
172 -- 1099R_FED Block 1: Payer that is nominated as the "Transmitter"
173 --
174    lt_B_block_name(li_btab)       := 'US_1099R_TRANSMITTER';
175    lt_B_cursor_name(li_btab)      := 'pay_us_1099r_mag_reporting.us_1099r_transmitter';
176    lt_B_no_column_ret(li_btab)    := 10;
177    lt_B_validate(li_btab)   	  := false;
178 --
179 -- 1099R_FED Block 2: Payer "A" Record.
180 --
181    li_btab := li_btab + 1;
182    lt_B_block_name(li_btab)       := 'US_1099R_PAYER';
183    lt_B_cursor_name(li_btab)      := 'pay_us_1099r_mag_reporting.US_1099r_payer';
184    lt_B_no_column_ret(li_btab)    := 6;
185    lt_B_validate(li_btab)   	  := false;
186 --
187 -- 1099R_FED Block 3: Payee "B" Record.
188 --
189    li_btab := li_btab + 1;
190 
191    lt_B_block_name(li_btab)       := 'US_1099R_PAYEE';
192    lt_B_cursor_name(li_btab)      := 'pay_us_1099r_mag_reporting.us_1099r_payee';
193    lt_B_no_column_ret(li_btab)    := 16;
194    lt_B_validate(li_btab)   	  := false;
195 --
196 -- 1099R_FED Block 4: State Process "K" Record.
197 --
198    li_btab := li_btab + 1;
199 
200    lt_B_block_name(li_btab)       := 'US_1099R_STATE_PROCESS';
201    lt_B_cursor_name(li_btab)      := 'pay_us_1099r_mag_reporting.us_1099r_state_process';
202    lt_B_no_column_ret(li_btab)    := 2;
203    lt_B_validate(li_btab)   	  := false;
204 --
205 /**/
206 --
207 -- Record definitions. Describe sequence of records, hierarchy and the
208 -- structure of each record ( by formula ).
209 -- 1099R_FED Formula
210 --
211 --
212 -- 1099R_FED Formula to write "T" Record
213 --
214    lt_F_formula_name(li_ftab)    	:= 'US_1099R_TRANSMITTER';
215    lt_F_mag_block_id(li_ftab)    	:= 1;  --block 1
216    lt_F_next_block_id(li_ftab)    	:= 2;  --block 2
217    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
218    lt_F_overflow_mode(li_ftab)      	:= 'N';
219    lt_F_sequence(li_ftab)        	:= 1;
220    lt_F_frequency(li_ftab)       	:= NULL;
221    lt_F_validate(li_ftab)         	:= false;
222 --
223 -- 1099R_FED Formula to write "F" Record - End of transmission.
224 --
225    li_ftab := li_ftab + 1;
226    lt_F_formula_name(li_ftab)    	:= 'US_1099R_FILE_TOTALS';
227    lt_F_mag_block_id(li_ftab)    	:= 1;  --block 1
228    lt_F_next_block_id(li_ftab)    	:= NULL;
229    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
230    lt_F_overflow_mode(li_ftab)      	:= 'N';
231    lt_F_sequence(li_ftab)        	:= 2;
232    lt_F_frequency(li_ftab)       	:= NULL;
233    lt_F_validate(li_ftab)         	:= false;
234 --
235 -- 1099R_FED Formula to write "A" Record.
236 --
237    li_ftab := li_ftab + 1;
238    lt_F_formula_name(li_ftab)    	:= 'US_1099R_PAYER';
239    lt_F_mag_block_id(li_ftab)    	:= 2;  --block 2
240    lt_F_next_block_id(li_ftab)    	:= 3;  --block 3
241    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
242    lt_F_overflow_mode(li_ftab)      	:= 'N';
243    lt_F_sequence(li_ftab)        	:= 1;
244    lt_F_frequency(li_ftab)       	:= NULL;
245    lt_F_validate(li_ftab)         	:= false;
246 --
247 -- 1099R_FED Formula to write "C" Record. End of payer control totals.
248 --
249    li_ftab := li_ftab + 1;
250    lt_F_formula_name(li_ftab)    	:= 'US_1099R_PAYER_TOTALS';
251    lt_F_mag_block_id(li_ftab)    	:= 2; --block 2
252    lt_F_next_block_id(li_ftab)    	:= 4; --block 4
253    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
254    lt_F_overflow_mode(li_ftab)      	:= 'N';
255    lt_F_sequence(li_ftab)        	:= 2;
256    lt_F_frequency(li_ftab)       	:= NULL;
257    lt_F_validate(li_ftab)         	:= false;
258 --
259 /**/
260 --
261 -- 1099R_FED Formula to write "B" Records. Payees.
262 --
263    li_ftab := li_ftab + 1;
264    lt_F_formula_name(li_ftab)    	:= 'US_1099R_PAYEES';
265    lt_F_mag_block_id(li_ftab)    	:= 3;  --block 3
266    lt_F_next_block_id(li_ftab)    	:= NULL;
267    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
268    lt_F_overflow_mode(li_ftab)      	:= 'N';
269    lt_F_sequence(li_ftab)        	:= 1;
270    lt_F_frequency(li_ftab)       	:= NULL;
271    lt_F_validate(li_ftab)         	:= false;
272 --
273 -- 1099R_FED Formula to write "K" Record. State Totals
274 --
275    li_ftab := li_ftab + 1;
276    lt_F_formula_name(li_ftab)    	:= 'US_1099R_STATE_TOTALS';
277    lt_F_mag_block_id(li_ftab)    	:= 4;  --block 4
278    lt_F_next_block_id(li_ftab)    	:= NULL;
279    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
280    lt_F_overflow_mode(li_ftab)      	:= 'N';
281    lt_F_sequence(li_ftab)        	:= 1;
282    lt_F_frequency(li_ftab)       	:= NULL;
283    lt_F_validate(li_ftab)         	:= false;
284 
285 /**/
286 -- ---------------------------------------------------------------------
287 -- States which use New 1220, without slight modifications
288 -- ---------------------------------------------------------------------
289    lt_report_format(2) := '1099R_STATE';
290    lt_B_total(2) := 3;
291    lt_F_total(2) := 5;
292    lt_desc(2)   :='--States which use 1220, with or without modifications';
293    lt_rptq_first(2) := 2;
294    lt_rptq_last(2)  := 24;
295    --
296    lt_report_qualifier(2)   := 'KS'; --Kansas
297    lt_report_qualifier(3)   := 'IA'; --Iowa
298    lt_report_qualifier(4)   := 'CT'; --Connecticut
299    lt_report_qualifier(5)   := 'AZ'; --Arizona
300    lt_report_qualifier(6)   := 'ME'; --Maine
301    lt_report_qualifier(7)   := 'NE'; --Nebraska
302    lt_report_qualifier(8)   := 'CA'; --California
303    lt_report_qualifier(9)   := 'MD'; --Maryland
304    lt_report_qualifier(10)  := 'DC'; --District of Columbia
308    lt_report_qualifier(14)  := 'DE'; --Delaware
305    lt_report_qualifier(11)  := 'MA'; --Massachusettes
306    lt_report_qualifier(12)  := 'MS'; --Mississippi
307    lt_report_qualifier(13)  := 'ID'; --Idaho
309    lt_report_qualifier(15)  := 'MO'; --Missouri
310    lt_report_qualifier(16)  := 'NJ'; --New Jersey
311    lt_report_qualifier(17)  := 'ND'; --North Dakota
312    lt_report_qualifier(18)  := 'OK'; --Oklahoma
313    lt_report_qualifier(19)  := 'PA'; --Pennsylvania
314    lt_report_qualifier(20)  := 'MN'; --Minnesota
315    lt_report_qualifier(21)  := 'WI'; --Wisconsin
316    lt_report_qualifier(22)  := 'GA'; --Georgia
317    lt_report_qualifier(23)  := 'NM'; --New Mexico
318    lt_report_qualifier(24)  := 'AR'; --Arkansas
319 
320 --
321 -- 1099R_STATE Block 1: Payer that is nominated as the "Transmitter"
322 --
323    li_btab := li_btab + 1;
324    lt_B_block_name(li_btab)       := 'US_1099R_TRANSMITTER';
325    lt_B_cursor_name(li_btab)      := 'pay_us_1099r_mag_reporting.us_1099r_transmitter';
326    lt_B_no_column_ret(li_btab)    := 10;
327    lt_B_validate(li_btab)   	  := false;
328 --
329 -- 1099R_STATE Block 2: Payer/Transmitter "A" Record.
330 --
331    li_btab := li_btab + 1;
332    lt_B_block_name(li_btab)       := 'US_1099R_PAYER';
333    lt_B_cursor_name(li_btab)      := 'pay_us_1099r_mag_reporting.us_1099r_payer';
334    lt_B_no_column_ret(li_btab)    := 6;
335    lt_B_validate(li_btab)   	  := false;
336 --
337 -- 1099R_STATE Block 3: Payee "B" Record.
338 --
339    li_btab := li_btab + 1;
340    lt_B_block_name(li_btab)       := 'US_1099R_PAYEE';
341    lt_B_cursor_name(li_btab)      := 'pay_us_1099r_mag_reporting.state_1099r_payee';
342    lt_B_no_column_ret(li_btab)    := 16;
343    lt_B_validate(li_btab)   	  := false;
344 --
345 -- Record definitions. Describe sequence of records, hierarchy and the
346 -- structure of each record ( by formula ).
347 -- 1099R_STATE Formula.
348 --
349    li_ftab := li_ftab + 1;
350    lt_F_formula_name(li_ftab)    	:= 'US_1099R_TRANSMITTER';
351    lt_F_mag_block_id(li_ftab)    	:= 1;  --block 1
352    lt_F_next_block_id(li_ftab)    	:= 2;  --block 2
353    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
354    lt_F_overflow_mode(li_ftab)      	:= 'N';
355    lt_F_sequence(li_ftab)        	:= 1;
356    lt_F_frequency(li_ftab)       	:= NULL;
357    lt_F_validate(li_ftab)         	:= false;
358 --
359 -- 1099R_STATE Formula to write "F" Record - End of transmission.
360 --
361    li_ftab := li_ftab + 1;
362    lt_F_formula_name(li_ftab)    	:= 'US_1099R_FILE_TOTALS';
363    lt_F_mag_block_id(li_ftab)    	:= 1;  --block 1
364    lt_F_next_block_id(li_ftab)    	:= NULL;
365    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
366    lt_F_overflow_mode(li_ftab)      	:= 'N';
367    lt_F_sequence(li_ftab)        	:= 2;
368    lt_F_frequency(li_ftab)       	:= NULL;
369    lt_F_validate(li_ftab)         	:= false;
370 --
371 -- 1099R_STATE Formula to write "A" Record.
372 --
373    li_ftab := li_ftab + 1;
374    lt_F_formula_name(li_ftab)    	:= 'US_1099R_PAYER';
375    lt_F_mag_block_id(li_ftab)    	:= 2;  --block 2
376    lt_F_next_block_id(li_ftab)    	:= 3;  --block 3
377    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
378    lt_F_overflow_mode(li_ftab)      	:= 'N';
379    lt_F_sequence(li_ftab)        	:= 1;
380    lt_F_frequency(li_ftab)       	:= NULL;
381    lt_F_validate(li_ftab)         	:= false;
382 --
383 -- 1099R_STATE Formula to write "C" Record. End of payer control totals.
384 --
385    li_ftab := li_ftab + 1;
386    lt_F_formula_name(li_ftab)    	:= 'US_1099R_PAYER_TOTALS';
387    lt_F_mag_block_id(li_ftab)    	:= 2; --block 2
388    lt_F_next_block_id(li_ftab)    	:= NULL;
389    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
390    lt_F_overflow_mode(li_ftab)      	:= 'N';
391    lt_F_sequence(li_ftab)        	:= 2;
392    lt_F_frequency(li_ftab)       	:= NULL;
393    lt_F_validate(li_ftab)         	:= false;
394 --
395 -- 1099R_STATE Formula to write "B" Records. Payees---------------------------------------
396 --
397    li_ftab := li_ftab + 1;
398    lt_F_formula_name(li_ftab)    	:= 'US_1099R_PAYEES';
399    lt_F_mag_block_id(li_ftab)    	:= 3;  --block 3
400    lt_F_next_block_id(li_ftab)    	:= NULL;
401    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
402    lt_F_overflow_mode(li_ftab)      	:= 'N';
403    lt_F_sequence(li_ftab)        	:= 1;
404    lt_F_frequency(li_ftab)       	:= NULL;
405    lt_F_validate(li_ftab)         	:= false;
406 
407 /**/
408 -- ---------------------------------------------------------------------
409 -- South Carolina use 1220 with or without slight modifications
410 -- but they have a K record if SIT > 0
411 -- ---------------------------------------------------------------------
412    lt_report_format(3) := '1099R_SC';
413    lt_B_total(3) := 4;
414    lt_F_total(3) := 6;
415    lt_desc(3)   :='--South Carolina uses 1220, with modifications';
416    lt_rptq_first(3) := 25;
417    lt_rptq_last(3)  := 25;
418    lt_report_qualifier(25)   := 'SC'; --South Carolina
419 --
420 -- 1099R_SC Block 1: Payer that is nominated as the "Transmitter"
421 --
422    li_btab := li_btab + 1;
423    lt_B_block_name(li_btab)       := 'US_1099R_TRANSMITTER';
424    lt_B_cursor_name(li_btab)      := 'pay_us_1099r_mag_reporting.us_1099r_transmitter';
425    lt_B_no_column_ret(li_btab)    := 10;
426    lt_B_validate(li_btab)   	  := false;
427 --
428 -- 1099R_SC Block 2: Payer/Transmitter "A" Record.
429 --
430    li_btab := li_btab + 1;
431    lt_B_block_name(li_btab)       := 'US_1099R_PAYER';
432    lt_B_cursor_name(li_btab)      := 'pay_us_1099r_mag_reporting.us_1099r_payer';
433    lt_B_no_column_ret(li_btab)    := 6;
434    lt_B_validate(li_btab)   	  := false;
435 --
436 -- 1099R_SC Block 3: Payee "B" Record.
437 --
441    lt_B_no_column_ret(li_btab)    := 16;
438    li_btab := li_btab + 1;
439    lt_B_block_name(li_btab)       := 'US_1099R_PAYEE';
440    lt_B_cursor_name(li_btab)      := 'pay_us_1099r_mag_reporting.state_1099r_payee';
442    lt_B_validate(li_btab)   	  := false;
443 --
444 -- 1099R_SC Block 4: State Process "K" Record.
445 --
446    li_btab := li_btab + 1;
447 
448    lt_B_block_name(li_btab)       := 'US_1099R_STATE_PROCESS';
449    lt_B_cursor_name(li_btab)      := 'pay_us_1099r_mag_reporting.us_1099r_state_process';
450    lt_B_no_column_ret(li_btab)    := 2;
451    lt_B_validate(li_btab)   	  := false;
452 
453 --
454 -- Record definitions. Describe sequence of records, hierarchy and the
455 -- structure of each record ( by formula ).
456 -- 1099R_SC Formula.
457 --
458    li_ftab := li_ftab + 1;
459    lt_F_formula_name(li_ftab)    	:= 'US_1099R_TRANSMITTER';
460    lt_F_mag_block_id(li_ftab)    	:= 1;  --block 1
461    lt_F_next_block_id(li_ftab)    	:= 2;  --block 2
462    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
463    lt_F_overflow_mode(li_ftab)      	:= 'N';
464    lt_F_sequence(li_ftab)        	:= 1;
465    lt_F_frequency(li_ftab)       	:= NULL;
466    lt_F_validate(li_ftab)         	:= false;
467 --
468 -- 1099R_SC Formula to write "F" Record - End of transmission.
469 --
470    li_ftab := li_ftab + 1;
471    lt_F_formula_name(li_ftab)    	:= 'US_1099R_FILE_TOTALS';
472    lt_F_mag_block_id(li_ftab)    	:= 1;  --block 1
473    lt_F_next_block_id(li_ftab)    	:= NULL;
474    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
475    lt_F_overflow_mode(li_ftab)      	:= 'N';
476    lt_F_sequence(li_ftab)        	:= 2;
477    lt_F_frequency(li_ftab)       	:= NULL;
478    lt_F_validate(li_ftab)         	:= false;
479 --
480 -- 1099R_SC Formula to write "A" Record.
481 --
482    li_ftab := li_ftab + 1;
483    lt_F_formula_name(li_ftab)    	:= 'US_1099R_PAYER';
484    lt_F_mag_block_id(li_ftab)    	:= 2;  --block 2
485    lt_F_next_block_id(li_ftab)    	:= 3;  --block 3
486    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
487    lt_F_overflow_mode(li_ftab)      	:= 'N';
488    lt_F_sequence(li_ftab)        	:= 1;
489    lt_F_frequency(li_ftab)       	:= NULL;
490    lt_F_validate(li_ftab)         	:= false;
491 --
492 -- 1099R_SC Formula to write "C" Record. End of payer control totals.
493 --
494    li_ftab := li_ftab + 1;
495    lt_F_formula_name(li_ftab)    	:= 'US_1099R_PAYER_TOTALS';
496    lt_F_mag_block_id(li_ftab)    	:= 2; --block 2
497    lt_F_next_block_id(li_ftab)    	:= 4;
498    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
499    lt_F_overflow_mode(li_ftab)      	:= 'N';
500    lt_F_sequence(li_ftab)        	:= 2;
501    lt_F_frequency(li_ftab)       	:= NULL;
502    lt_F_validate(li_ftab)         	:= false;
503 --
504 -- 1099R_SC Formula to write "B" Records. Payees---------------------------------------
505 --
506    li_ftab := li_ftab + 1;
507    lt_F_formula_name(li_ftab)    	:= 'US_1099R_PAYEES';
508    lt_F_mag_block_id(li_ftab)    	:= 3;  --block 3
509    lt_F_next_block_id(li_ftab)    	:= NULL;
510    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
511    lt_F_overflow_mode(li_ftab)      	:= 'N';
512    lt_F_sequence(li_ftab)        	:= 1;
513    lt_F_frequency(li_ftab)       	:= NULL;
514    lt_F_validate(li_ftab)         	:= false;
515 
516 --
517 -- 1099R_SC Formula to write "K" Record. State Totals
518 --
519    li_ftab := li_ftab + 1;
520    lt_F_formula_name(li_ftab)    	:= 'US_1099R_STATE_TOTALS';
521    lt_F_mag_block_id(li_ftab)    	:= 4;  --block 4
522    lt_F_next_block_id(li_ftab)    	:= NULL;
523    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
524    lt_F_overflow_mode(li_ftab)      	:= 'N';
525    lt_F_sequence(li_ftab)        	:= 1;
526    lt_F_frequency(li_ftab)       	:= NULL;
527    lt_F_validate(li_ftab)         	:= false;
528 
529 /**/
530 -- ---------------------------------------------------------------------
531 -- States which use 1220, with or without slight modifications
532 -- ---------------------------------------------------------------------
533    lt_report_format(4) := '1099R_STATE_NFED';
534    lt_B_total(4) := 3;
535    lt_F_total(4) := 5;
536    lt_desc(4)   :='--States which do not use 1220';
537    lt_rptq_first(4) := 26;
538    lt_rptq_last(4)  := 26;
539    --
540    lt_report_qualifier(26)  := 'MT'; --Montana
541 
542 -- 1099R_STATE_NFED Block 1: Payer that is nominated as the "Transmitter"
543 --
544    li_btab := li_btab + 1;
545    lt_B_block_name(li_btab)       := 'US_1099R_NFED_TRANSMITTER';
546    lt_B_cursor_name(li_btab)      := 'pay_us_1099r_mag_reporting.us_1099r_transmitter';
547    lt_B_no_column_ret(li_btab)    := 10;
548    lt_B_validate(li_btab)   	  := false;
549 --
550 -- 1099R_STATE_NFED Block 2: Payer/Transmitter "A" Record.
551 --
552    li_btab := li_btab + 1;
553    lt_B_block_name(li_btab)       := 'US_1099R_NFED_PAYER';
554    lt_B_cursor_name(li_btab)      := 'pay_us_1099r_mag_reporting.us_1099r_payer';
555    lt_B_no_column_ret(li_btab)    := 6;
556    lt_B_validate(li_btab)   	  := false;
557 --
558 -- 1099R_STATE_NFED Block 3: Payee "B" Record.
559 --
560    li_btab := li_btab + 1;
561    lt_B_block_name(li_btab)       := 'US_1099R_NFED_PAYEE';
562    lt_B_cursor_name(li_btab)      := 'pay_us_1099r_mag_reporting.state_1099r_payee';
563    lt_B_no_column_ret(li_btab)    := 16;
564    lt_B_validate(li_btab)   	  := false;
565 --
566 -- Record definitions. Describe sequence of records, hierarchy and the
567 -- structure of each record ( by formula ).
568 -- 1099R_STATE_NFED Formula.
569 --
570    li_ftab := li_ftab + 1;
571    lt_F_formula_name(li_ftab)    	:= 'US_1099R_NFED_TRANSMITTER';
572    lt_F_mag_block_id(li_ftab)    	:= 1;  --block 1
573    lt_F_next_block_id(li_ftab)    	:= 2;  --block 2
577    lt_F_frequency(li_ftab)       	:= NULL;
574    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
575    lt_F_overflow_mode(li_ftab)      	:= 'N';
576    lt_F_sequence(li_ftab)        	:= 1;
578    lt_F_validate(li_ftab)         	:= false;
579 --
580 -- 1099R_STATE_NFED Formula to write "F" Record - End of transmission.
581 --
582    li_ftab := li_ftab + 1;
583    lt_F_formula_name(li_ftab)    	:= 'US_1099R_NFED_FILE_TOTALS';
584    lt_F_mag_block_id(li_ftab)    	:= 1;  --block 1
585    lt_F_next_block_id(li_ftab)    	:= NULL;
586    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
587    lt_F_overflow_mode(li_ftab)      	:= 'N';
588    lt_F_sequence(li_ftab)        	:= 2;
589    lt_F_frequency(li_ftab)       	:= NULL;
590    lt_F_validate(li_ftab)         	:= false;
591 --
592 -- 1099R_STATE_NFED Formula to write "A" Record.
593 --
594    li_ftab := li_ftab + 1;
595    lt_F_formula_name(li_ftab)    	:= 'STATE_1099R_PAYER';
596    lt_F_mag_block_id(li_ftab)    	:= 2;  --block 2
597    lt_F_next_block_id(li_ftab)    	:= 3;  --block 3
598    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
599    lt_F_overflow_mode(li_ftab)      	:= 'N';
600    lt_F_sequence(li_ftab)        	:= 1;
601    lt_F_frequency(li_ftab)       	:= NULL;
602    lt_F_validate(li_ftab)         	:= false;
603 --
604 -- 1099R_STATE_NFED Formula to write "C" Record. End of payer control totals.
605 --
606    li_ftab := li_ftab + 1;
607    lt_F_formula_name(li_ftab)    	:= 'US_1099R_NFED_PAYER_TOTALS';
608    lt_F_mag_block_id(li_ftab)    	:= 2; --block 2
609    lt_F_next_block_id(li_ftab)    	:= NULL;
610    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
611    lt_F_overflow_mode(li_ftab)      	:= 'N';
612    lt_F_sequence(li_ftab)        	:= 2;
613    lt_F_frequency(li_ftab)       	:= NULL;
614    lt_F_validate(li_ftab)         	:= false;
615 --
616 -- 1099R_STATE_NFED Formula to write "B" Records. Payees---------------------------------------
617 --
618    li_ftab := li_ftab + 1;
619    lt_F_formula_name(li_ftab)    	:= 'STATE_1099R_PAYEES';
620    lt_F_mag_block_id(li_ftab)    	:= 3;  --block 3
621    lt_F_next_block_id(li_ftab)    	:= NULL;
622    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
623    lt_F_overflow_mode(li_ftab)      	:= 'N';
624    lt_F_sequence(li_ftab)        	:= 1;
625    lt_F_frequency(li_ftab)       	:= NULL;
626    lt_F_validate(li_ftab)         	:= false;
627 /**/
628 ----------------------------------------------------------------------------------------
629 --1099R custom format for West Virginia
630 ----------------------------------------------------------------------------------------
631    lt_report_format(5) := '1099R_WV';
632    lt_B_total(5) := 3;
633    lt_F_total(5) := 5;
634    lt_desc(5)   :='West Virginia 1099R';
635 
636    lt_rptq_first(5) := 27;
637    lt_rptq_last(5)  := 27;
638    --
639    lt_report_qualifier(27)  := 'WV';  --West Virginia
640 ---------------------------------------------------------------------------------------
641 --
642 -- 1099R_WV Block 1: Payer that is nominated as the "Transmitter"--------------------
643 ---
644    li_btab := li_btab + 1;
645    lt_B_block_name(li_btab)       := 'US_1099R_NFED_TRANSMITTER';
646    lt_B_cursor_name(li_btab)      := 'pay_us_1099r_mag_reporting.us_1099r_transmitter';
647    lt_B_no_column_ret(li_btab)    := 10;
648    lt_B_validate(li_btab)   	  := false;
649 --
650 -- 1099R_WV Block 1: Payer/Transmitter "A" Record.----------------------------------
651 --
652    li_btab := li_btab + 1;
653    lt_B_block_name(li_btab)       := 'US_1099R_NFED_PAYER';
654    lt_B_cursor_name(li_btab)      := 'pay_us_1099r_mag_reporting.US_1099r_payer';
655    lt_B_no_column_ret(li_btab)    := 6;
656    lt_B_validate(li_btab)   	  := false;
657 --
658 -- 1099R_WV Block 2: Payee "B" Record.----------------------------------------------
659 --
660    li_btab := li_btab + 1;
661    lt_B_block_name(li_btab)       := 'US_1099R_NFED_PAYEE';
662    lt_B_cursor_name(li_btab)      := 'pay_us_1099r_mag_reporting.state_1099r_payee';
663    lt_B_no_column_ret(li_btab)    := 16;
664    lt_B_validate(li_btab)   	  := false;
665 --
666 ----------------------------------------------------------------------------------------
667 -- Record definitions. Describe sequence of records, hierarchy and the
668 -- structure of each record ( by formula ).
669 --1099R_WV Formula---------------------------------------------------------------------------
670    li_ftab := li_ftab + 1;
671    lt_F_formula_name(li_ftab)    	:= 'US_1099R_NFED_TRANSMITTER';
672    lt_F_mag_block_id(li_ftab)    	:= 1;  --block 1
673    lt_F_next_block_id(li_ftab)    	:= 2;  --block 2
674    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
675    lt_F_overflow_mode(li_ftab)      	:= 'N';
676    lt_F_sequence(li_ftab)        	:= 1;
677    lt_F_frequency(li_ftab)       	:= NULL;
678    lt_F_validate(li_ftab)         	:= false;
679 ---
680 -- 1099R_WV Formula to write transmitter details.
681    li_ftab := li_ftab + 1;
682    lt_F_formula_name(li_ftab)    	:= 'US_1099R_NFED_FILE_TOTALS';
683    lt_F_mag_block_id(li_ftab)    	:= 1;  --block 1
684    lt_F_next_block_id(li_ftab)    	:= NULL;
685    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
686    lt_F_overflow_mode(li_ftab)      	:= 'N';
687    lt_F_sequence(li_ftab)        	:= 2;
688    lt_F_frequency(li_ftab)       	:= NULL;
689    lt_F_validate(li_ftab)         	:= false;
690 --
691 -- 1099R_WV Formula to write "E" Record-----------------------------------------------
692 --
693    li_ftab := li_ftab + 1;
694    lt_F_formula_name(li_ftab)    	:= 'WV_1099R_PAYER';
695    lt_F_mag_block_id(li_ftab)    	:= 2;  --block 2
696    lt_F_next_block_id(li_ftab)    	:= 3;  --block 3
697    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
698    lt_F_overflow_mode(li_ftab)      	:= 'N';
699    lt_F_sequence(li_ftab)        	:= 1;
700    lt_F_frequency(li_ftab)       	:= NULL;
704 --
701    lt_F_validate(li_ftab)         	:= false;
702 --
703 -- 1099R_WV Formula to write transmitter file details
705    li_ftab := li_ftab + 1;
706    lt_F_formula_name(li_ftab)    	:= 'US_1099R_NFED_PAYER_TOTALS';
707    lt_F_mag_block_id(li_ftab)    	:= 2; --block 2
708    lt_F_next_block_id(li_ftab)    	:= NULL;
709    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
710    lt_F_overflow_mode(li_ftab)      	:= 'N';
711    lt_F_sequence(li_ftab)        	:= 2;
712    lt_F_frequency(li_ftab)       	:= NULL;
713    lt_F_validate(li_ftab)         	:= false;
714 --
715 --
716 -- 1099R_WV Formula to write "W" Records. Payees---------------------------------------
717 --
718    li_ftab := li_ftab + 1;
719    lt_F_formula_name(li_ftab)    	:= 'WV_1099R_PAYEES';
720    lt_F_mag_block_id(li_ftab)    	:= 3 ;  --block 3
721    lt_F_next_block_id(li_ftab)    	:= NULL;
722    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
723    lt_F_overflow_mode(li_ftab)      	:= 'N';
724    lt_F_sequence(li_ftab)        	:= 1;
725    lt_F_frequency(li_ftab)       	:= NULL;
726    lt_F_validate(li_ftab)         	:= false;
727 
728 ------------------------------------------------------------------------------------------
729 --1099R custom format for Indiana
730 -- Indiana requires the TIB4 format for 1099R reporting
731 --  identical structure is taken from the W2 Reporting.
732 ----------------------------------------------------------------------------------------
733    lt_report_format(6) := '1099R_IND';
734    lt_B_total(6) := 4;
735    lt_F_total(6) := 7;
736    lt_desc(6)   :='Indiana 1099R';
737    --
738    lt_rptq_first(6) := 28;
739    lt_rptq_last(6)  := 28;
740    --
741    lt_report_qualifier(28)  := 'IN';  --IN
742 ----------------------------------------------------------------------------------------
743 --
744 -- 1099R_IND Block 1: Payer that is nominated as the "Transmitter"--------------------
745 --
746    li_btab := li_btab + 1;
747    lt_B_block_name(li_btab)       := 'IN_1099R_TRANSMITTER';
748    lt_B_cursor_name(li_btab)      := 'pay_us_magw2_reporting.magw2_transmitter';
749    lt_B_no_column_ret(li_btab)    := 12;
750    lt_B_validate(li_btab)   	  := false;
751 --
752 -- 1099R_IND Block 2: EMPLOYER --------------------
753 --
754    li_btab := li_btab + 1;
755    lt_B_block_name(li_btab)       := 'IN_1099R_EMPLOYER';
756    lt_B_cursor_name(li_btab)      := 'pay_us_magw2_reporting.st_magw2_employer';
757    lt_B_no_column_ret(li_btab)    := 12;
758    lt_B_validate(li_btab)   	  := false;
759 --
760 -- 1099R_IND Block 3: EMPLOYEE --------------------
761 --
762    li_btab := li_btab + 1;
763    lt_B_block_name(li_btab)       := 'IN_1099R_EMPLOYEE';
764    lt_B_cursor_name(li_btab)      := 'pay_us_magw2_reporting.oh_in_employee';
765    lt_B_no_column_ret(li_btab)    := 8;
766    lt_B_validate(li_btab)   	  := false;
767 --
768 -- 1099R_IND Block 4: SUPPLEMENTAL --------------------
769 --
770    li_btab := li_btab + 1;
771    lt_B_block_name(li_btab)       := 'IN_1099R_SUPP';
772      lt_B_cursor_name(li_btab)    := 'pay_us_1099r_mag_reporting.state_1099r_payee';
773    lt_B_no_column_ret(li_btab)    := 16;
774    lt_B_validate(li_btab)   	  := false;
775 
776 ----------------------------------------------------------------------------------------
777 -- Record definitions. Describe sequence of records, hierarchy and the
778 -- structure of each record ( by formula ).
779 --1099R_IND Formula-------------------------------------------------------------------
780    --
781    li_ftab := li_ftab + 1;
782    lt_F_formula_name(li_ftab)           := 'IN_1099R_TRANSMITTER';
783    lt_F_mag_block_id(li_ftab)           := 1;  --block 1
784    lt_F_next_block_id(li_ftab)          := 2;
785    lt_F_last_run_exec_mode(li_ftab)     := 'N';
786    lt_F_overflow_mode(li_ftab)          := 'N';
787    lt_F_sequence(li_ftab)               := 1;
788    lt_F_frequency(li_ftab)              := NULL;
789    lt_F_validate(li_ftab)               := false;
790 
791 -- 1099R_IND Formula to write "x" Record-----------------------------------------------
792   --
793    li_ftab := li_ftab + 1;
794    lt_F_formula_name(li_ftab)           := 'IN_1099R_FINAL';  --TIB4_FINAL
795    lt_F_mag_block_id(li_ftab)           := 1;  --block 1
796    lt_F_next_block_id(li_ftab)          := NULL;
797    lt_F_last_run_exec_mode(li_ftab)     := 'N';
798    lt_F_overflow_mode(li_ftab)          := 'N';
799    lt_F_sequence(li_ftab)               := 2;
800    lt_F_frequency(li_ftab)              := NULL;
801    lt_F_validate(li_ftab)               := false;
802 
803 -- 1099R_IND Formula to write "x" Record-----------------------------------------------
804    li_ftab := li_ftab + 1;
805    lt_F_formula_name(li_ftab)           := 'IN_1099R_EMPLOYER'; -- TIB4_EMPLOYER
806    lt_F_mag_block_id(li_ftab)           := 2;
807    lt_F_next_block_id(li_ftab)          := 3;
808    lt_F_last_run_exec_mode(li_ftab)     := 'N';
809    lt_F_overflow_mode(li_ftab)          := 'N';
810    lt_F_sequence(li_ftab)               := 1;
811    lt_F_frequency(li_ftab)              := NULL;
812    lt_F_validate(li_ftab)               := false;
813 
814 -- 1099R_IND Formula to write "x" Record-----------------------------------------------
815    li_ftab := li_ftab + 1;
816    lt_F_formula_name(li_ftab)           := 'IN_1099R_TOTAL';
817    lt_F_mag_block_id(li_ftab)           := 2;
818    lt_F_next_block_id(li_ftab)          := NULL;
819    lt_F_last_run_exec_mode(li_ftab)     := 'N';
820    lt_F_overflow_mode(li_ftab)          := 'N';
821    lt_F_sequence(li_ftab)               := 2;
822    lt_F_frequency(li_ftab)              := NULL;
823    lt_F_validate(li_ftab)               := false;
824 
825 -- 1099R_IND Formula to write "x" Record-----------------------------------------------
826    li_ftab := li_ftab + 1;
830    lt_F_last_run_exec_mode(li_ftab)     := 'N';
827    lt_F_formula_name(li_ftab)           :=  'TIB4_DUMMY';
828    lt_F_mag_block_id(li_ftab)           := 3;
829    lt_F_next_block_id(li_ftab)          := NULL;
831    lt_F_overflow_mode(li_ftab)          := 'N';
832    lt_F_sequence(li_ftab)               := 1;
833    lt_F_frequency(li_ftab)              := NULL;
834    lt_F_validate(li_ftab)               := false;
835    --
836 -- 1099R_IND Formula to write "E" Record-----------------------------------------------
837    --
838    li_ftab := li_ftab + 1;
839    lt_F_formula_name(li_ftab)           := 'TIB4_EMPLOYEE';
840    lt_F_mag_block_id(li_ftab)           := 3;
841    lt_F_next_block_id(li_ftab)          := 4;
842    lt_F_last_run_exec_mode(li_ftab)     := 'N';
843    lt_F_overflow_mode(li_ftab)          := 'N';
844    lt_F_sequence(li_ftab)               := 2;
845    lt_F_frequency(li_ftab)              := NULL;
846    lt_F_validate(li_ftab)               := false;
847    --
848 -- 1099R_IND Formula to write "S" Record-----------------------------------------------
849    --
850    li_ftab := li_ftab + 1;
851    lt_F_formula_name(li_ftab)           := 'IN_1099R_SUPPLEMENTAL'; -- TIB4_SUPPLEMENTAL
852    lt_F_mag_block_id(li_ftab)           := 4;
853    lt_F_next_block_id(li_ftab)          := NULL;
854    lt_F_last_run_exec_mode(li_ftab)     := 'N';
855    lt_F_overflow_mode(li_ftab)          := 'N';
856    lt_F_sequence(li_ftab)               := 1;
857    lt_F_frequency(li_ftab)              := NULL;
858    lt_F_validate(li_ftab)               := false;
859 
860 
861 /**/
862 ------------------------------------------------------------------------------------------
863 --1099R custom format for Michigan
864 -- Michigan requires the TIB4 format for 1099R reporting
865 --  identical structure is taken from the W2 Reporting.
866 ----------------------------------------------------------------------------------------
867    lt_report_format(7) := '1099R_MI';
868    lt_B_total(7) := 3;
869    lt_F_total(7) := 7;
870    lt_desc(7)   :='Michigan 1099R';
871    --
872    lt_rptq_first(7) := 29;
873    lt_rptq_last(7)  := 29;
874    --
875    lt_report_qualifier(29):= 'MI';
876 ----------------------------------------------------------------------------------------
877 --
878 -- 1099R_MI Block 1: Payer that is nominated as the "Transmitter"--------------------
879 --
880    li_btab := li_btab + 1;
881    lt_B_block_name(li_btab)       := 'MI_1099R_TRANSMITTER';
882    lt_B_cursor_name(li_btab)      := 'pay_us_magw2_reporting.magw2_transmitter';
883    lt_B_no_column_ret(li_btab)    := 12;
884    lt_B_validate(li_btab)   	  := false;
885 --
886 -- 1099R_MI Block 2: EMPLOYER --------------------
887 --
888    li_btab := li_btab + 1;
889    lt_B_block_name(li_btab)       := 'MI_1099R_EMPLOYER';
890    lt_B_cursor_name(li_btab)      := 'pay_us_magw2_reporting.st_magw2_employer';
891    lt_B_no_column_ret(li_btab)    := 12;
892    lt_B_validate(li_btab)   	  := false;
893 --
894 -- 1099R_MI Block 3: EMPLOYEE --------------------
895 --
896    li_btab := li_btab + 1;
897    lt_B_block_name(li_btab)       := 'MI_1099R_EMPLOYEE';
898    lt_B_cursor_name(li_btab)      := 'pay_us_magw2_reporting.st_magw2_employee';
899    lt_B_no_column_ret(li_btab)    := 8;
900    lt_B_validate(li_btab)   	  := false;
901 
902 ----------------------------------------------------------------------------------------
903 -- Record definitions. Describe sequence of records, hierarchy and the
904 -- structure of each record ( by formula ).
905 --1099R_MI Formula-------------------------------------------------------------------
906    --
907    li_ftab := li_ftab + 1;
908    lt_F_formula_name(li_ftab)    	:= 'IN_1099R_TRANSMITTER';
909    lt_F_mag_block_id(li_ftab)    	:= 1;  --block 1
910    lt_F_next_block_id(li_ftab)    	:= 2;
911    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
912    lt_F_overflow_mode(li_ftab)      	:= 'N';
913    lt_F_sequence(li_ftab)        	:= 1;
914    lt_F_frequency(li_ftab)       	:= NULL;
915    lt_F_validate(li_ftab)         	:= false;
916 
917 -- 1099R_MI Formula to write "x" Record-----------------------------------------------
918    li_ftab := li_ftab + 1;
919    lt_F_formula_name(li_ftab)    	:= 'IN_1099R_FINAL'; --DUMMY_TIB4_FINAL
920    lt_F_mag_block_id(li_ftab)    	:= 1; --block 1
921    lt_F_next_block_id(li_ftab)    	:= NULL;
922    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
923    lt_F_overflow_mode(li_ftab)      	:= 'N';
924    lt_F_sequence(li_ftab)        	:= 2;
925    lt_F_frequency(li_ftab)       	:= NULL;
926    lt_F_validate(li_ftab)         	:= false;
927 -- 1099R_MI Formula  ----------------------------------------------------------------
928    --
929    li_ftab := li_ftab + 1;
930      lt_F_formula_name(li_ftab)    	:= 'IN_1099R_EMPLOYER'; --TIB4_EMPLOYER
931    lt_F_mag_block_id(li_ftab)    	:= 2;  --block 2
932    lt_F_next_block_id(li_ftab)    	:= 3;  --block 3
933    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
934    lt_F_overflow_mode(li_ftab)      	:= 'N';
935    lt_F_sequence(li_ftab)        	:= 1;
936    lt_F_frequency(li_ftab)       	:= NULL;
937    lt_F_validate(li_ftab)         	:= false;
938 
939 -- 1099R_MI Formula to write "x" Record-----------------------------------------------
940   --
941    li_ftab := li_ftab + 1;
942    lt_F_formula_name(li_ftab)    	:= 'IN_1099R_TOTAL';--DUMMY_TIB4_TOTAL
943    lt_F_mag_block_id(li_ftab)    	:= 2;  --block 2
944    lt_F_next_block_id(li_ftab)    	:= NULL;
945    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
946    lt_F_overflow_mode(li_ftab)      	:= 'N';
947    lt_F_sequence(li_ftab)        	:= 2;
948    lt_F_frequency(li_ftab)       	:= NULL;
949    lt_F_validate(li_ftab)         	:= false;
950 
951 -- 1099R_MI Formula to write "x" Record-----------------------------------------------
952    li_ftab := li_ftab + 1;
956    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
953    lt_F_formula_name(li_ftab)    	:=  'TIB4_DUMMY';
954    lt_F_mag_block_id(li_ftab)    	:= 3;
955    lt_F_next_block_id(li_ftab)    	:= NULL;
957    lt_F_overflow_mode(li_ftab)      	:= 'N';
958    lt_F_sequence(li_ftab)        	:= 1;
959    lt_F_frequency(li_ftab)       	:= NULL;
960    lt_F_validate(li_ftab)         	:= false;
961 
962 -- 1099R_MI Formula to write "E" Record-----------------------------------------------
963    li_ftab := li_ftab + 1;
964    lt_F_formula_name(li_ftab)    	:= 'TIB4_EMPLOYEE'; --required
965    lt_F_mag_block_id(li_ftab)    	:= 3;
966    lt_F_next_block_id(li_ftab)    	:= NULL;
967    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
968    lt_F_overflow_mode(li_ftab)      	:= 'R';
969    lt_F_sequence(li_ftab)        	:= 2;
970    lt_F_frequency(li_ftab)       	:= NULL;
971    lt_F_validate(li_ftab)         	:= false;
972 
973 -- 1099R_MI Formula to write "S" Record-----------------------------------------------
974    li_ftab := li_ftab + 1;
975    lt_F_formula_name(li_ftab)    	:=  'TIB4_SUPPLEMENTAL'; --required
976    lt_F_mag_block_id(li_ftab)    	:= 3;
977    lt_F_next_block_id(li_ftab)    	:= NULL;
978    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
979    lt_F_overflow_mode(li_ftab)      	:= 'N';
980    lt_F_sequence(li_ftab)        	:= 3;
981    lt_F_frequency(li_ftab)       	:= NULL;
982    lt_F_validate(li_ftab)         	:= false;
983    --
984 -------------------------------------------------------------------------------------------
985 /**/
986 ------------------------------------------------------------------------------------------
987 --1099R custom format for New York
988 --  New York requires the SQWL format for 1099R reporting
989 --  identical structure is taken from pyw2data
990 ----------------------------------------------------------------------------------------
991    lt_report_format(8) := '1099R_NY';
992    lt_B_total(8) := 3;
993    lt_F_total(8) := 5;
994    lt_desc(8)   :='New York 1099R';
995    --
996    lt_rptq_first(8) := 30;
997    lt_rptq_last(8)  := 30;
998    --
999    lt_report_qualifier(30):= 'NY';
1000 ----------------------------------------------------------------------------------------
1001 --
1002 -- 1099R_NY Block 1: Payer that is nominated as the "Transmitter"--------------------
1003 --
1004    li_btab := li_btab + 1;
1005    lt_B_block_name(li_btab)       := 'NY_1099R_TRANSMITTER';
1006    lt_B_cursor_name(li_btab)      := 'pay_us_magw2_reporting.magw2_transmitter';
1007    lt_B_no_column_ret(li_btab)    := 12;
1008    lt_B_validate(li_btab)   	  := false;
1009 --
1010 -- 1099R_NY Block 2: EMPLOYER --------------------
1011 --
1012    li_btab := li_btab + 1;
1013    lt_B_block_name(li_btab)       := 'NY_1099R_EMPLOYER';
1014    lt_B_cursor_name(li_btab)      := 'pay_us_magw2_reporting.st_magw2_employer';
1015    lt_B_no_column_ret(li_btab)    := 12;
1016    lt_B_validate(li_btab)   	  := false;
1017 --
1018 -- 1099R_NY Block 3: EMPLOYEE --------------------
1019 --
1020    li_btab := li_btab + 1;
1021    lt_B_block_name(li_btab)       := 'NY_1099R_EMPLOYEE';
1022    lt_B_cursor_name(li_btab)      := 'pay_us_magw2_reporting.st_magw2_employee';
1023    lt_B_no_column_ret(li_btab)    := 8;
1024    lt_B_validate(li_btab)   	  := false;
1025 
1026 ----------------------------------------------------------------------------------------
1027 -- Record definitions. Describe sequence of records, hierarchy and the
1028 -- structure of each record ( by formula ).
1029 --1099R_NY Formula-------------------------------------------------------------------
1030    --
1031    li_ftab := li_ftab + 1;
1032    lt_F_formula_name(li_ftab)    	:= 'NY_1099R_TRANSMITTER';
1033    lt_F_mag_block_id(li_ftab)    	:= 1;  --block 1
1034    lt_F_next_block_id(li_ftab)    	:= 2;  --block 2
1035    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
1036    lt_F_overflow_mode(li_ftab)      	:= 'N';
1037    lt_F_sequence(li_ftab)        	:= 1;
1038    lt_F_frequency(li_ftab)       	:= NULL;
1039    lt_F_validate(li_ftab)         	:= false;
1040 
1041 -- 1099R_NY Formula to write "x" Record-----------------------------------------------
1042    li_ftab := li_ftab + 1;
1043    lt_F_formula_name(li_ftab)    	:= 'NY_1099R_FINAL';
1044    lt_F_mag_block_id(li_ftab)    	:= 1; --block 1
1045    lt_F_next_block_id(li_ftab)    	:= NULL;
1046    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
1047    lt_F_overflow_mode(li_ftab)      	:= 'N';
1048    lt_F_sequence(li_ftab)        	:= 2;
1049    lt_F_frequency(li_ftab)       	:= NULL;
1050    lt_F_validate(li_ftab)         	:= false;
1051 -- 1099R_NY Formula  ----------------------------------------------------------------
1052    --
1053    li_ftab := li_ftab + 1;
1054    lt_F_formula_name(li_ftab)    	:= 'NY_1099R_EMPLOYER';
1055    lt_F_mag_block_id(li_ftab)    	:= 2;  --block 2
1056    lt_F_next_block_id(li_ftab)    	:= 3;  --block 3
1057    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
1058    lt_F_overflow_mode(li_ftab)      	:= 'N';
1059    lt_F_sequence(li_ftab)        	:= 1;
1060    lt_F_frequency(li_ftab)       	:= NULL;
1061    lt_F_validate(li_ftab)         	:= false;
1062 
1063 -- 1099R_NY Formula to write "x" Record-----------------------------------------------
1064   --
1065    li_ftab := li_ftab + 1;
1066    lt_F_formula_name(li_ftab)    	:= 'NY_1099R_TOTAL';
1067    lt_F_mag_block_id(li_ftab)    	:= 2;  --block 2
1068    lt_F_next_block_id(li_ftab)    	:= NULL;
1069    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
1070    lt_F_overflow_mode(li_ftab)      	:= 'N';
1071    lt_F_sequence(li_ftab)        	:= 2;
1072    lt_F_frequency(li_ftab)       	:= NULL;
1073    lt_F_validate(li_ftab)         	:= false;
1074 
1075 -- 1099R_NY Formula to write "x" Record-----------------------------------------------
1076    li_ftab := li_ftab + 1;
1077    lt_F_formula_name(li_ftab)    	:=  'NY_1099R_EMPLOYEE';
1081    lt_F_overflow_mode(li_ftab)      	:= 'N';
1078    lt_F_mag_block_id(li_ftab)    	:= 3;
1079    lt_F_next_block_id(li_ftab)    	:= NULL;
1080    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
1082    lt_F_sequence(li_ftab)        	:= 1;
1083    lt_F_frequency(li_ftab)       	:= NULL;
1084    lt_F_validate(li_ftab)         	:= false;
1085 
1086 -------------------------------------------------------------------------------------------
1087 /**/
1088 ------------------------------------------------------------------------------------------
1089 --1099R custom format for North Carolina
1090 --  North Carolina requires the W2 format for 1099R reporting
1091 --  identical structure is taken from pyw2data
1092 ----------------------------------------------------------------------------------------
1093    lt_report_format(9) := '1099R_NC';
1094    lt_B_total(9) := 3;
1095    lt_F_total(9) := 10;
1096    lt_desc(9)   :='North Carolina 1099R';
1097    --
1098    lt_rptq_first(9) := 31;
1099    lt_rptq_last(9)  := 31;
1100    --
1101    lt_report_qualifier(31):= 'NC';
1102 ----------------------------------------------------------------------------------------
1103 --
1104 -- 1099R_NC Block 1: Payer that is nominated as the "Transmitter"--------------------
1105 --
1106    li_btab := li_btab + 1;
1107    lt_B_block_name(li_btab)       := 'NC_1099R_TRANSMITTER';
1108    lt_B_cursor_name(li_btab)      := 'pay_us_magw2_reporting.magw2_transmitter';
1109    lt_B_no_column_ret(li_btab)    := 12;
1110    lt_B_validate(li_btab)   	  := false;
1111 --
1112 -- 1099R_NC Block 2: EMPLOYER --------------------
1113 --
1114    li_btab := li_btab + 1;
1115    lt_B_block_name(li_btab)       := 'NC_1099R_EMPLOYER';
1116    lt_B_cursor_name(li_btab)      := 'pay_us_magw2_reporting.st_magw2_employer';
1117    lt_B_no_column_ret(li_btab)    := 12;
1118    lt_B_validate(li_btab)   	  := false;
1119 --
1120 -- 1099R_NC Block 3: EMPLOYEE --------------------
1121 --
1122    li_btab := li_btab + 1;
1123    lt_B_block_name(li_btab)       := 'NC_1099R_EMPLOYEE';
1124    lt_B_cursor_name(li_btab)      := 'pay_us_magw2_reporting.st_magw2_employee';
1125    lt_B_no_column_ret(li_btab)    := 8;
1126    lt_B_validate(li_btab)   	  := false;
1127 
1128 ----------------------------------------------------------------------------------------
1129 -- Record definitions. Describe sequence of records, hierarchy and the
1130 -- structure of each record ( by formula ).
1131 --1099R_NC Formula-------------------------------------------------------------------
1132    --
1133    li_ftab := li_ftab + 1;
1134    lt_F_formula_name(li_ftab)    	:= 'TIB4_TRANSMITTER';
1135    lt_F_mag_block_id(li_ftab)    	:= 1;  --block 1
1136    lt_F_next_block_id(li_ftab)    	:= 2;  --block 2
1137    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
1138    lt_F_overflow_mode(li_ftab)      	:= 'N';
1139    lt_F_sequence(li_ftab)        	:= 1;
1140    lt_F_frequency(li_ftab)       	:= NULL;
1141    lt_F_validate(li_ftab)         	:= false;
1142 
1143 -- 1099R_NC Formula to write "x" Record-----------------------------------------------
1144    li_ftab := li_ftab + 1;
1145    lt_F_formula_name(li_ftab)    	:= 'TIB4_FINAL';
1146    lt_F_mag_block_id(li_ftab)    	:= 1; --block 1
1147    lt_F_next_block_id(li_ftab)    	:= Null;
1148    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
1149    lt_F_overflow_mode(li_ftab)      	:= 'N';
1150    lt_F_sequence(li_ftab)        	:= 2;
1151    lt_F_frequency(li_ftab)       	:= NULL;
1152    lt_F_validate(li_ftab)         	:= false;
1153 
1154 -- 1099R_NC Formula  ----------------------------------------------------------------
1155    --
1156    li_ftab := li_ftab + 1;
1157    lt_F_formula_name(li_ftab)    	:= 'TIB4_EMPLOYER';
1158    lt_F_mag_block_id(li_ftab)    	:= 2;  --block 2
1159    lt_F_next_block_id(li_ftab)    	:= 3;  --block 3
1160    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
1161    lt_F_overflow_mode(li_ftab)      	:= 'N';
1162    lt_F_sequence(li_ftab)        	:= 1;
1163    lt_F_frequency(li_ftab)       	:= NULL;
1164    lt_F_validate(li_ftab)         	:= false;
1165 
1166 -- 1099R_NC Formula to write "x" Record-----------------------------------------------
1167    --
1168    li_ftab := li_ftab + 1;
1169    lt_F_formula_name(li_ftab)    	:= 'TIB4_INTERMEDIATE_TOTAL';
1170    lt_F_mag_block_id(li_ftab)    	:= 2;  --block 2
1171    lt_F_next_block_id(li_ftab)    	:= NULL;
1172    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
1173    lt_F_overflow_mode(li_ftab)      	:= 'N';
1174    lt_F_sequence(li_ftab)        	:= 2;
1175    lt_F_frequency(li_ftab)       	:= NULL;
1176    lt_F_validate(li_ftab)         	:= false;
1177 
1178 -- 1099R_NC Formula to write "x" Record-----------------------------------------------
1179    --
1180    li_ftab := li_ftab + 1;
1181    lt_F_formula_name(li_ftab)    	:= 'TIB4_TOTAL';
1182    lt_F_mag_block_id(li_ftab)    	:= 2;  --block 2
1183    lt_F_next_block_id(li_ftab)    	:= NULL;
1184    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
1185    lt_F_overflow_mode(li_ftab)      	:= 'N';
1186    lt_F_sequence(li_ftab)        	:= 3;
1187    lt_F_frequency(li_ftab)       	:= NULL;
1188    lt_F_validate(li_ftab)         	:= false;
1189 
1190 -- 1099R_NC Formula to write "x" Record-----------------------------------------------
1191    --
1192    li_ftab := li_ftab + 1;
1193    lt_F_formula_name(li_ftab)    	:=  'TIB4_DUMMY';
1194    lt_F_mag_block_id(li_ftab)    	:= 3;
1195    lt_F_next_block_id(li_ftab)    	:= NULL;
1196    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
1197    lt_F_overflow_mode(li_ftab)      	:= 'N';
1198    lt_F_sequence(li_ftab)        	:= 1;
1199    lt_F_frequency(li_ftab)       	:= NULL;
1200    lt_F_validate(li_ftab)         	:= false;
1201 
1202 -- 1099R_NC Formula to write "x" Record-----------------------------------------------
1203    --
1204    li_ftab := li_ftab + 1;
1205    lt_F_formula_name(li_ftab)    	:=  'NCTIB4_SUPPLEMENTAL';
1209    lt_F_overflow_mode(li_ftab)      	:= 'N';
1206    lt_F_mag_block_id(li_ftab)    	:= 3;
1207    lt_F_next_block_id(li_ftab)    	:= NULL;
1208    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
1210    lt_F_sequence(li_ftab)        	:= 2;
1211    lt_F_frequency(li_ftab)       	:= NULL;
1212    lt_F_validate(li_ftab)         	:= false;
1213 
1214 -- 1099R_NC Formula to write "x" Record-----------------------------------------------
1215    --
1216    li_ftab := li_ftab + 1;
1217    lt_F_formula_name(li_ftab)    	:=  'TIB4_EMPLOYEE';
1218    lt_F_mag_block_id(li_ftab)    	:= 3;
1219    lt_F_next_block_id(li_ftab)    	:= NULL;
1220    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
1221    lt_F_overflow_mode(li_ftab)      	:= 'N';
1222    lt_F_sequence(li_ftab)        	:= 3;
1223    lt_F_frequency(li_ftab)       	:= NULL;
1224    lt_F_validate(li_ftab)         	:= false;
1225 
1226 -- 1099R_NC Formula to write "x" Record-----------------------------------------------
1227    --
1228    li_ftab := li_ftab + 1;
1229    lt_F_formula_name(li_ftab)    	:=  'W2_TIB4_SUPPLEMENTAL';
1230    lt_F_mag_block_id(li_ftab)    	:= 3;
1231    lt_F_next_block_id(li_ftab)    	:= NULL;
1232    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
1233    lt_F_overflow_mode(li_ftab)      	:= 'N';
1234    lt_F_sequence(li_ftab)        	:= 4;
1235    lt_F_frequency(li_ftab)       	:= NULL;
1236    lt_F_validate(li_ftab)         	:= false;
1237 
1238 -- 1099R_NC Formula to write "x" Record-----------------------------------------------
1239    --
1240    li_ftab := li_ftab + 1;
1241    lt_F_formula_name(li_ftab)    	:=  'TIB4_INTERMEDIATE_TOTAL';
1242    lt_F_mag_block_id(li_ftab)    	:= 3;
1243    lt_F_next_block_id(li_ftab)    	:= NULL;
1244    lt_F_last_run_exec_mode(li_ftab)  	:= 'N';
1245    lt_F_overflow_mode(li_ftab)      	:= 'N';
1246    lt_F_sequence(li_ftab)        	:= 5;
1247    lt_F_frequency(li_ftab)       	:= 41;
1248    lt_F_validate(li_ftab)         	:= false;
1249 
1250 ----------------------------------------------------------------------------------------
1251   --
1252   hr_utility.trace('BEGIN 1099R REPORT DEFINITION PROCESS------------------------');
1253   li_btab := 1;
1254   li_ftab := 1;
1255   --
1256   FOR l_ccount IN 1..l_case_count LOOP
1257      ------------------------------------------------------
1258      --Clear existing format definitions and mappings
1259      ------------------------------------------------------
1260      hr_utility.trace('Insert definition for ' ||
1261                        lt_report_format(l_ccount));
1262      hr_utility.trace(lt_desc(l_ccount));
1263      hr_utility.trace('   Deleting magnetic records...');
1264      DELETE FROM pay_magnetic_records
1265      WHERE  magnetic_block_id IN
1266 		(SELECT pmb.magnetic_block_id
1267 		 FROM   pay_magnetic_blocks pmb,
1268                         pay_report_format_mappings_f pfm
1269 		 WHERE pmb.report_format = pfm.report_format
1270                    AND pmb.report_format = lt_report_format(l_ccount)
1271                    AND pfm.report_category = 'RT');
1272      --
1273      hr_utility.trace('   Deleting blocks...');
1274      DELETE FROM pay_magnetic_blocks pmb
1275      WHERE  pmb.report_format in
1276                (SELECT pfm.report_format
1277                   FROM  pay_report_format_mappings_f pfm
1278                  WHERE pfm.report_format = lt_report_format(l_ccount)
1279                    AND pfm.report_category = 'RT');
1280      --
1281      hr_utility.trace('   Deleting report format mappings...');
1282      DELETE FROM pay_report_format_mappings_f rfm
1283      WHERE  rfm.report_format = lt_report_format(l_ccount)
1284        AND report_category = 'RT';
1285 
1286   END LOOP;
1287 
1288   FOR l_ccount IN 1..l_case_count LOOP
1289      --
1290      -------------------------------------------------------
1291      --Insert report format mappings
1292      -------------------------------------------------------
1293      --
1294      FOR l_st_count IN lt_rptq_first(l_ccount)..lt_rptq_last(l_ccount) LOOP
1295          hr_utility.trace('   --Inserting '|| lt_report_qualifier(l_st_count)
1296                                            || ' report qualifier...');
1297          INSERT INTO pay_report_format_mappings_f
1298 	        ( report_type,
1299 	          report_qualifier,
1300 	          report_format,
1301                   report_category,
1302                   range_code,
1303                   assignment_action_code,
1304                   initialization_code,
1305                   archive_code,
1306                   magnetic_code,
1307 	          effective_start_date,
1308 	          effective_end_date )
1309          VALUES ( l_report_type,
1310 	          lt_report_qualifier(l_st_count),
1311 	          lt_report_format(l_ccount),
1312                   'RT',
1313                   'pay_us_1099r_mag_reporting.range_cursor',
1314                   'pay_us_1099r_mag_reporting.mag_1099r_action_creation',
1315                   null,
1316                   null,
1317                   'pay_magtape_generic.new_formula',
1318 	          c_start_of_time,
1319 	          c_end_of_time );
1320      END LOOP;
1321      --
1322      -------------------------------------------------------
1323      --Insert Blocks
1324      -------------------------------------------------------
1325      FOR l_bcount IN 1..lt_B_total(l_ccount) LOOP
1326        hr_utility.trace(' ');
1327        hr_utility.trace('Inserting block ' || lt_B_block_name(li_btab));
1328        l_message := 'Error inserting block ' || lt_B_block_name(li_btab);
1329        --
1330        IF l_bcount = 1 THEN     -- only the first block should be starting block
1331           l_main_block_flag := 'Y';
1332        ELSE l_main_block_flag := 'N';
1333        END IF;
1334        --
1335        Pay_Mgb_Ins.Ins
1336          ( p_magnetic_block_id  =>  lt_B_mag_block_id(l_bcount),
1340            p_cursor_name        =>  lt_B_cursor_name(li_btab),
1337            p_block_name         =>  lt_B_block_name(li_btab),
1338            p_main_block_flag    =>  l_main_block_flag,
1339            p_report_format      =>  lt_report_format(l_ccount),
1341            p_no_column_returned =>  lt_B_no_column_ret(li_btab),
1342            p_validate           =>  lt_B_validate(li_btab));
1343         li_btab := li_btab + 1;
1344      END LOOP;
1345      ----------------------------------------------------------
1346      --Insert Formulas
1350          hr_utility.trace('Inserting record def with formula '
1347      ----------------------------------------------------------
1348      FOR l_fcount IN 1..lt_F_total(l_ccount) LOOP
1349          hr_utility.trace('-------------');
1351                            || lt_F_formula_name(li_ftab));
1352          --
1353          l_message:='Error inserting record def with formula '
1354                            || lt_F_formula_name(li_ftab);
1355          --
1356          l_f_id := Pay_Mag_Utils.Lookup_Formula
1357 			( p_session_date      => c_start_of_time,
1358 			  p_business_group_id => NULL,
1359 			  p_legislation_code  =>'US',
1360 			  p_formula_name      => lt_F_formula_name(li_ftab));
1361          --
1362          IF l_f_id  IS NULL THEN
1363             hr_utility.trace('Could not find formula id');
1364          ELSE  hr_utility.trace('Successfully found formula id');
1365          END IF;
1366          --
1367          -- Since lt_F_mag_block_id is used to index into lt_B_mag_block_id,
1368          -- take care of NULL values
1369          --
1370          IF lt_F_mag_block_id(li_ftab) IS NULL THEN
1371             hr_utility.trace( '--ERROR:NULL block id not allowed');
1372          ELSE l_mag_block_id  := lt_B_mag_block_id(lt_F_mag_block_id(li_ftab));
1373          END IF;
1374          --
1375          IF lt_F_next_block_id(li_ftab) IS NULL THEN
1376             l_next_block_id := NULL;
1377          ELSE l_next_block_id := lt_B_mag_block_id(lt_F_next_block_id(li_ftab));
1378          END IF;
1379          --
1380          hr_utility.trace( '   formula_id 	   = '|| l_f_id);
1381          hr_utility.trace( '   magnetic_block_id = '|| l_mag_block_id);
1382          hr_utility.trace( '   next_block_id     = '|| l_next_block_id);
1383          hr_utility.trace( '   last_run_exec_mode = '|| lt_F_last_run_exec_mode(li_ftab));
1384          hr_utility.trace( '   overflow_mode   = '|| lt_F_overflow_mode(li_ftab));
1385          hr_utility.trace( '   sequence        = '|| lt_F_sequence(li_ftab));
1386          hr_utility.trace( '   frequency       = '|| lt_F_frequency(li_ftab));
1387          --
1388          --
1389          Pay_Mgr_Ins.Ins
1390          ( p_formula_id 		  => l_f_id,
1391            p_magnetic_block_id      => l_mag_block_id,
1392            p_next_block_id          => l_next_block_id,
1393            p_last_run_executed_mode => lt_F_last_run_exec_mode(li_ftab),
1394            p_overflow_mode          => lt_F_overflow_mode(li_ftab),
1395            p_sequence               => lt_F_sequence(li_ftab),
1396            p_frequency              => lt_F_frequency(li_ftab),
1397            p_validate               => lt_F_validate(li_ftab));
1398          --
1399          li_ftab := li_ftab + 1;
1400       END LOOP;
1401       --
1402       hr_utility.trace('Successfully created '|| lt_report_format(l_ccount)
1403                                               || ' format mapping..');
1404       --
1405   END LOOP; --for each case
1406   --
1407 ------------------------------------------------------------------------------
1408    --
1409    -- If no exceptions raised during formatting, commit new structures.
1410    --
1411    hr_utility.trace('Commiting structures...');
1412    COMMIT;
1413    --
1414  EXCEPTION                 --Andy Taylor's Generic Exception Handler
1415       WHEN OTHERS THEN
1416         --
1417         hr_utility.trace( l_message||' - ORA '||to_char(SQLCODE));
1418         hr_utility.trace(fnd_flex_val_api.message);
1419         --
1420   --
1421   --
1422   hr_utility.trace('END REPORT DEFINITION PROCESS----------------------------------');
1423 end setup;
1424 --
1425 end pay_1099R_data;