DBA Data[Home] [Help]

PACKAGE: APPS.PAY_US_MMREF_LOCAL

Source


1 package pay_us_mmref_local as
2  /* $Header: pyusmmle.pkh 120.0.12000000.1 2007/01/18 02:39:31 appldev noship $ */
3  /*===========================================================================+
4  |               Copyright (c) 1993 Oracle Corporation                        |
5  |                  Redwood Shores, California, USA                           |
6  |                       All rights reserved.                                 |
7  +============================================================================+
8   Name
9     pay_us_mmref_reporting
10 
11   Purpose
12 
13     The purpose of this package is to support the generation of local
14     Magnetic media in  MMREF - 1 Format. This magnetic tapes are for
15     us legilsative requirements. Currently we supprt the CCA and RITA
16     Reporting.
17 
18   Notes
19     The generation of each magnetic tape report is a two stage process i.e.
20     1. Check if the year end pre-processor has been run for all the GREs.
21        If not, then error out without processing further.
22     2. Create a payroll action for the report. Identify all the assignments
23        to be reported and record an assignment action against the payroll
24        action for each one of them.
25     3. Run the generic magnetic tape process which will
26        drive off the data created in stage two. This will result in the
27        production of a structured ascii file which can be transferred to
28        magnetic tape and sent to the relevant authority.
29 
30 
31  History
32    Date     Author    Verion  Bug           Details
33   ---------------------------------------------------------------------------
34   22-jan-02 djoshi    115.0                Created
35   04-Nov-02 ppanda    115.1                For locality changes made to
36                                             get_report_parameters procedure
37                                             Cursor lc_mmrf_submitter modified to
38                                             have new parameter for State_code and
39                                             locality_code
40   15-Nov-02 ppanda    115.2                File is gscc compliant
41   02-Dec-02 ppanda    115.3                Nocopy hint added to OUT and IN OUT parameters
42   28-feb-03 djoshi    115.5                Changed the code for Locals . Cursor
43                                            OH_LC_EMPLOYEE was changed.
44  ============================================================================*/
45 
46  -- 'level_cnt' will allow the cursors to select function results,
47  -- whether it is a standard fuction such as to_char or a function
48  -- defined in a package (with the correct pragma restriction).
49 
50      level_cnt	NUMBER;
51 
52  -- Sets up the tax unit context for the Submitter
53 
54        /* Context and Parameter Set in the cursor are
55 
56           Context :
57           --------------------------------------
58           TAX_UNIT_ID       - Submitter's Tax Unit ID
59           JURISDICTION_CODE - Set to Dummy Value as This is federal Cursor
60           ASSIGNMENT_ID     - Required for call to function - context not used
61                               in the for Submitter
62           Date Earned       - Always set to Effective date ie. in this case
63                               for Mag tapes to 31-DEC-YYYY, in case of SQWL
64                               this will be diffrent.
65           PAYROLL_ACTION_ID - Payroll action Id of Year End Pre-processor
66 
67           Parameters :
68           Transfer_HIGH_COUNT
69           TRANSFER_SCHOOL_DISTRICT
70           TRANSFER_COUNTY
71           TRANSFER_2678_FILER
72    -- Following two parameters added for New locality
73           TRANSFER_LOCALITY_CODE
74           TRANSFER_STATE_CODE
75  */
76 
77 /* Transmitter for the Local Megnetic Media in   MMREF Format  */
78 
79    CURSOR lc_mmrf_submitter
80          IS
81      SELECT 'TAX_UNIT_ID=C' , HOI.organization_id,
82             'JURISDICTION_CODE=C', SR.jurisdiction_code,
83             'TRANSFER_JD=P', SR.jurisdiction_code,
84             'ASSIGNMENT_ID=C' , '-1',
85             'DATE_EARNED=C', fnd_date.date_to_canonical(ppa.effective_date),
86             'TRANSFER_HIGH_COUNT=P', '0',
87             'TRANSFER_SCHOOL_DISTRICT=P', '-5',
88             'TRANSFER_COUNTY=P', '-1',
89             'TRANSFER_2678_FILER=P', HOI.org_information8,
90             'PAYROLL_ACTION_ID=C', PPA.payroll_action_id,
91             'BUSINESS_GROUP_ID=C',PPA.business_group_id,
92             'TRANSFER_LOCALITY_CODE=P',
93             pay_us_get_item_data_pkg.GET_CPROG_PARAMETER_VALUE(ppa1.payroll_action_id,
94                                                                'LC'),
95 --            substr(PPA1.legislative_parameters,instr(PPA1.legislative_parameters,'LOCALITY_CODE=')
96 --                                                       + length('LOCALITY_CODE=')),
97             'TRANSFER_STATE_CODE=P', substr(sr.jurisdiction_code,1,2)
98        FROM pay_state_rules SR,
99             hr_organization_information HOI,
100             pay_payroll_actions PPA,
101             pay_payroll_actions PPA1
102       WHERE PPA1.payroll_action_id = pay_magtape_generic.get_parameter_value
103                                      ('TRANSFER_PAYROLL_ACTION_ID')
104         AND ppa1.effective_date =   ppa.effective_date
105         --AND ppa1.report_qualifier = sr.state_code
106         --CPE
107         AND substr(ppa1.report_qualifier,1,2) = sr.state_code
108         AND HOI.organization_id =
109             pay_magtape_generic.get_parameter_value('TRANSFER_TRANS_LEGAL_CO_ID')
110         AND SR.state_code  =
111             pay_magtape_generic.get_parameter_value('TRANSFER_STATE')
112         AND HOI.org_information_context = 'W2 Reporting Rules'
113         AND PPA.report_type = 'YREND'
114         AND HOI.ORGANIZATION_ID =
115             substr(PPA.legislative_parameters,instr(PPA.legislative_parameters,'TRANSFER_GRE=')
116              + length('TRANSFER_GRE='))
117         AND to_char(PPA.effective_date,'YYYY') =
118             pay_magtape_generic.get_parameter_value('TRANSFER_REPORTING_YEAR')
119         AND to_char(PPA.effective_date,'DD-MM') = '31-12';
120 
121 
122 
123        /* Context and Parameter Set in the cursor are
124 
125           Context :
126           --------------------------------------
127           TAX_UNIT_ID       - Tax Unit ID of GRE
128           PAYROLL_ACTION_ID - Payroll action Id of Year End Pre-processor
129 
130           Parameters :
131           TAX_UNIT_ID        - Id of the GRE
132           TAX_UNIT_NAME      - Name of GRE
133         */
134 
135  --
136  --
137  --
138 
139    CURSOR lc_mmrf_employer
140        IS
141    SELECT DISTINCT 'PAYROLL_ACTION_ID=C', ppa.payroll_action_id,
142                    'TAX_UNIT_ID=C'  , AA.tax_unit_id,
143                    'TAX_UNIT_ID=P'  , AA.tax_unit_id,
144                    'TAX_UNIT_NAME=P'  , hou.name,
145                    'TRANSFER_EMP_CODE=P', 'R'
146     FROM
147           hr_all_organization_units     hou,
148           pay_payroll_actions       ppa,
149           pay_assignment_actions     AA
150     WHERE AA.payroll_action_id = pay_magtape_generic.get_parameter_value
151                                    ('TRANSFER_PAYROLL_ACTION_ID')
152     AND ppa.report_type = 'YREND'
153     AND to_char(ppa.effective_date,'YYYY') =
154         pay_magtape_generic.get_parameter_value('TRANSFER_REPORTING_YEAR')
155     AND to_char(ppa.effective_date,'DD-MM') = '31-12'
156     AND  AA.tax_unit_id =
157          substr(ppa.legislative_parameters,
158                 instr(ppa.legislative_parameters,
159                 'TRANSFER_GRE=') + length('TRANSFER_GRE='))
160     AND   hou.organization_id  = AA.tax_unit_id
161     order by hou.name;
162 
163 
164 
165 --
166  --
167  -- Sets up the assignment_action_id, assignment_id, and date_earned contexts
168  -- for an employee. The date_earned context is set to be the least of the
169  -- end of the period being reported and the maximum end date of the
170  -- assignment. This ensures that personal information ie. name etc... is
171  -- current relative to the period being reported on.
172  --
173 
174 
175    CURSOR lc_mmrf_employee
176        IS
177    SELECT
178          'ASSIGNMENT_ACTION_ID=C', AI.locked_action_id, -- YREND assignment action
179           'ASSIGNMENT_ID=C', AA.assignment_id,
180           'DATE_EARNED=C',
181           fnd_date.date_to_canonical(pay_magtape_generic.date_earned(PA.effective_date,
182             AA.assignment_id)),
183           'JURISDICTION_CODE=C',
184             pay_magtape_generic.get_parameter_value('TRANSFER_JD'),
185           'YE_ASSIGNMENT_ACTION_ID=P',AI.locked_action_id
186     FROM  per_all_people_f           PE,
187           per_all_assignments_f      SS,
188           pay_action_interlocks  AI,
189           pay_assignment_actions AA,
190           pay_payroll_actions    PA
191     WHERE PA.payroll_action_id = pay_magtape_generic.get_parameter_value
192                         ('TRANSFER_PAYROLL_ACTION_ID') AND
193           AA.payroll_action_id = PA.payroll_action_id AND
194           AA.tax_unit_id = pay_magtape_generic.get_parameter_value
195                         ('TAX_UNIT_ID') AND
196           AI.locking_action_id  = AA.assignment_action_id AND
197           SS.assignment_id     = AA.assignment_id AND
198           PE.person_id         = SS.person_id AND
199           pay_magtape_generic.date_earned(PA.effective_date,AA.assignment_id) BETWEEN
200                         SS.effective_start_date and SS.effective_end_date AND
201           pay_magtape_generic.date_earned(PA.effective_date,AA.assignment_id) BETWEEN
202                         PE.effective_start_date and PE.effective_end_date
203     ORDER BY PE.last_name, PE.first_name, PE.middle_names;
204 
205 
206 /* RITA and CCA Cursor */
207 
208 
209 CURSOR oh_lc_employee
210     IS
211 SELECT
212        'JURISDICTION_CODE=C',ltrim(rtrim(faic.context)),
213        'TRANSFER_YE_JURISDICTION_CODE=P',ltrim(rtrim(faic.context)),
214        'TRANSFER_YE_REC_TYPE=P','1'
215   from
216        ff_archive_items fai,
217        ff_contexts fc,  -- JD
218        ff_database_items fdi,
219        ff_archive_item_contexts faic, -- JD
220        pay_payroll_actions ppa,
221        pay_assignment_actions paa
222 where
223       paa.assignment_action_id =
224       pay_magtape_generic.get_parameter_value('YE_ASSIGNMENT_ACTION_ID')
225   and paa.assignment_action_id = fai.context1
226   and fdi.user_name = 'A_CITY_WITHHELD_PER_JD_GRE_YTD'
227   and fdi.user_entity_id = fai.user_entity_id
228   and faic.archive_item_id = fai.archive_item_id
229   and fc.context_name = 'JURISDICTION_CODE'
230   and faic.context_id = fc.context_id
231   and value <> '0'
232   and paa.payroll_action_id = ppa.payroll_action_id
233   and exists
234   (
235     /* Code has to join like becuase puctif is not
236         maintained as truely date tracked table
237      */
238     SELECT '1'
239       FROM pay_us_city_tax_info_f puctif
240      WHERE rtrim(ltrim(faic.context)) = puctif.jurisdiction_code
241        AND puctif.effective_start_date <  ppa.effective_date
242        AND puctif.effective_end_date   >= ppa.effective_date
243        AND puctif.city_information1 like
244                   pay_magtape_generic.get_parameter_value('TRANSFER_LOCALITY_CODE')||'%'
245    )
246 order by faic.context ;
247 
248 
249 
250 FUNCTION bal_db_item
251 (
252 	p_db_item_name VARCHAR2
253 ) RETURN NUMBER;
254 
255 PROCEDURE get_report_parameters
256 (
257 	p_pactid    		IN      NUMBER,
258 	p_year_start		IN OUT	nocopy DATE,
259 	p_year_end		IN OUT	nocopy DATE,
260 	p_state_abbrev		IN OUT	nocopy VARCHAR2,
261 	p_state_code		IN OUT	nocopy VARCHAR2,
262 	p_report_type		IN OUT	nocopy VARCHAR2,
263 	p_business_group_id	IN OUT	nocopy NUMBER,
264 -- Following parameter added for Locality Code
265         p_locality_code         IN OUT  nocopy VARCHAR2
266 );
267 
268 FUNCTION get_balance_value (
269 	p_balance_name		VARCHAR2,
270 	p_tax_unit_id		NUMBER,
271 	p_state_abbrev		VARCHAR2,
272 	p_assignment_id		NUMBER,
273 	p_effective_date	DATE
274 ) RETURN NUMBER;
275 
276 FUNCTION preprocess_check
277 (
278 	p_pactid 		NUMBER,
279 	p_year_start		DATE,
280 	p_year_end		DATE,
281 	p_business_group_id	NUMBER,
282 	p_state_abbrev		VARCHAR2,
283 	p_state_code		VARCHAR2,
284 	p_report_type		VARCHAR2
285 ) RETURN BOOLEAN;
286 
287 PROCEDURE range_cursor (
288 	p_pactid        	IN	NUMBER,
289 	p_sqlstr        	OUT	nocopy VARCHAR2
290 );
291 
292 PROCEDURE create_assignment_act(
293 	p_pactid        	IN NUMBER,
294 	p_stperson 	        IN NUMBER,
295 	p_endperson             IN NUMBER,
296 	p_chunk 	        IN NUMBER );
297 
298 FUNCTION check_er_data (
299         p_pactid                NUMBER,
300         p_ein_user_id           NUMBER
301 ) RETURN varchar2;
302 
303 
304 FUNCTION check_state_er_data (
305         p_pactid                NUMBER,
306         p_tax_unit              NUMBER,
307         p_jurisdictions         varchar2
308 ) RETURN varchar2;
309 
310 
311 PROCEDURE archive_eoy_data(
312         p_pactid               IN NUMBER,
313         p_tax_id               IN NUMBER );
314 
315 
316 PROCEDURE archive_state_eoy_data(
317         p_pactid               IN NUMBER,
318         p_tax_id               IN NUMBER,
319         p_state_code           IN VARCHAR2);
320 
321 FUNCTION check_state_data (
322         p_payroll_action_id     NUMBER,
323         p_transfer_state        varchar2
324 ) RETURN varchar2;
325 
326 
327 END pay_us_mmref_local;