DBA Data[Home] [Help]

PACKAGE: APPS.PAY_GB_P11D_EDI_CONTROL

Source


4   level_cnt     NUMBER; -- required by the generic magtape procedure.
1 PACKAGE PAY_GB_P11D_EDI_CONTROL AUTHID CURRENT_USER AS
2 /* $Header: pygbp11dc.pkh 120.13.12010000.3 2010/02/22 11:48:47 krreddy ship $ */
3 
5 
6   function  fetch_total_benefit(p_assact_id     in  number,
7                                 p_pact_id       in  number,
8                                 p_employer_ref  in  varchar2) return number;
9 
10   -- CURSOR --
11   cursor csr_p11d_header is
12   select 'TAX_YEAR=P',pay_gb_p11d_magtape.get_parameters(
13                       pay_magtape_generic.get_parameter_value('ARCH_PAYROLL_ACTION_ID'),'Rep_Run'),
14          'TEST_SUBMISSION=P',pay_magtape_generic.get_parameter_value('TEST_SUBMISSION'),
15          'TRANSMISSION_DATE=P',to_char(sysdate,'YYYYMMDDHHMMSS'),
16          'PAYROLL_ACTION_ID=P',pay_magtape_generic.get_parameter_value('ARCH_PAYROLL_ACTION_ID')
17   from dual;
18 
19   cursor csr_p11d_employer is
20   select 'TAX_OFFICE_NAME=P',     NVL(UPPER(action_information4), ' '),
24          'EMPLOYERS_ADDRESS=P',   NVL(UPPER(action_information8), ' '),
21          'TAX_OFFICE_PHONE_NO=P', NVL(UPPER(action_information5), ' '),
22          'EMPLOYERS_REF_NO=P',    NVL(UPPER(action_information6), ' '),
23          'EMPLOYERS_NAME=P',      NVL(UPPER(action_information7), ' '),
25          'MESSAGE_DATE=P',        to_char(sysdate,'YYYYMMDD'),
26          'PARTY_NAME=P',          pay_gb_p11d_magtape.get_parameters(
27                                   pay_magtape_generic.get_parameter_value('ARCH_PAYROLL_ACTION_ID'),
28                                   'PARTY_NAME',action_information6),
29          'SENDER_ID=P',           pay_gb_p11d_magtape.get_parameters(
30                                   pay_magtape_generic.get_parameter_value('ARCH_PAYROLL_ACTION_ID'),'SENDER_ID',
31                                   action_information6),
32          'UNIQUE_REFERENCE=P',    to_number(pay_gb_p11d_magtape.get_parameters(
33                                   pay_magtape_generic.get_parameter_value('ARCH_PAYROLL_ACTION_ID'),'REQUEST_ID')),
34          'SUBMITTER_REF_NO=P',    pay_gb_p11d_magtape.get_parameters(
35                                   pay_magtape_generic.get_parameter_value('ARCH_PAYROLL_ACTION_ID'),'SUBMITTER_REF_NO',
36                                   action_information6)
37   from   pay_assignment_actions paa,
38          pay_action_information pai
39   where  paa.payroll_action_id = pay_magtape_generic.get_parameter_value('ARCH_PAYROLL_ACTION_ID')
40   and    pai.action_context_id = paa.assignment_action_id
41   and    pai.action_information_category = 'EMEA PAYROLL INFO'
42   and    pai.action_context_type = 'AAP'
43   and    (pay_magtape_generic.get_parameter_value('TAX_REFERENCE') is null
44           or
45           upper(pai.action_information6) = upper(pay_magtape_generic.get_parameter_value('TAX_REFERENCE')))
46   group by 'TAX_OFFICE_NAME=P',     NVL(UPPER(action_information4), ' '),
47            'TAX_OFFICE_PHONE_NO=P', NVL(UPPER(action_information5), ' '),
48            'EMPLOYERS_REF_NO=P',    NVL(UPPER(action_information6), ' '),
49            'EMPLOYERS_NAME=P',      NVL(UPPER(action_information7), ' '),
50            'EMPLOYERS_ADDRESS=P',   NVL(UPPER(action_information8), ' '),
51            'MESSAGE_DATE=P',        to_char(sysdate,'YYYYMMDD'),
52            'PARTY_NAME=P',          pay_gb_p11d_magtape.get_parameters(
53                                     pay_magtape_generic.get_parameter_value('ARCH_PAYROLL_ACTION_ID'),
54                                     'PARTY_NAME',action_information6),
55            'SENDER_ID=P',           pay_gb_p11d_magtape.get_parameters(
56                                     pay_magtape_generic.get_parameter_value('ARCH_PAYROLL_ACTION_ID'),'SENDER_ID',
57                                     action_information6),
58            'UNIQUE_REFERENCE=P',    to_number(pay_gb_p11d_magtape.get_parameters(
59                                     pay_magtape_generic.get_parameter_value('ARCH_PAYROLL_ACTION_ID'),'REQUEST_ID')),
60            'SUBMITTER_REF_NO=P',    pay_gb_p11d_magtape.get_parameters(
61                                     pay_magtape_generic.get_parameter_value('ARCH_PAYROLL_ACTION_ID'),'SUBMITTER_REF_NO',
62                                     action_information6);
63 
64 
65   cursor csr_p11d_employee is
66   select /*+ ORDERED use_nl(paa,pai)
67              use_index(pai,pay_action_information_n2)*/
68          'PERSON_ID=P',pai.action_information10
69   from   pay_assignment_actions paa,
70          pay_action_information pai
71   where  paa.payroll_action_id = pay_magtape_generic.get_parameter_value('ARCH_PAYROLL_ACTION_ID')
72   and    pai.action_context_id = paa.assignment_action_id
73   and    pai.action_information_category = 'GB EMPLOYEE DETAILS'
74   and    pai.action_context_type = 'AAP'
75   and    upper(pai.action_information13) = upper(pay_magtape_generic.get_parameter_value('EMPLOYERS_REF_NO'))
76   and    pay_gb_p11d_edi_control.fetch_total_benefit(paa.assignment_action_id,
77                                                      paa.payroll_action_id,
78                                                      pai.action_information13) > 0
79   group by 'PERSON_ID=P',pai.action_information10;
80 
81   cursor csr_p11d_benefit is
82   select 'BENEFIT_TYPE=P', cat
83   from   (
84          select cat
85          from  (
86 		 -- Benefit from this select may occur only 1 time
87          -- Benefit from this select may occur only 1 time
88          select /*+ ORDERED use_nl(paf,paa,pai,pai_person)
89 		           use_index(pai_person,pay_action_information_n2)
90 				   use_index(pai,pay_action_information_n2) */
91                    decode(pai.action_information_category,
92                   'ASSETS TRANSFERRED',        'A',
93                   'PAYMENTS MADE FOR EMP',     'B',
94                   'VOUCHERS OR CREDIT CARDS',  'C',
95                   'LIVING ACCOMMODATION',      'D',
96                   'MILEAGE ALLOWANCE AND PPAYMENT', 'E',
97                   'VANS 2007',                      'G', -- EOY 2008
98                   'VANS 2005',                      'G',
99                   'VANS 2002_03',                   'G',
100                   'PVT MED TREATMENT OR INSURANCE', 'I',
101                   'RELOCATION EXPENSES',            'J',
102                   'SERVICES SUPPLIED',              'K',
103                   'ASSETS AT EMP DISPOSAL',         'L',
104                   'OTHER ITEMS',                    'M',
105                   'OTHER ITEMS NON 1A',             'M',
106                   'EXPENSES PAYMENTS',              'N',
107                   'MARORS',                         'U') cat
108 		  from   per_all_assignments_f   paf,
109        	  	   	 pay_assignment_actions  paa,
110        		     pay_action_information  pai,
111        		     pay_action_information  pai_person
112 		  where  paf.person_id = pay_magtape_generic.get_parameter_value('PERSON_ID')
113                   and    paf.effective_end_date = (select max(paf2.effective_end_date)
114 		                                   from   per_all_assignments_f paf2
118 		  and    paa.payroll_action_id = pay_magtape_generic.get_parameter_value('ARCH_PAYROLL_ACTION_ID')
115 		                                   where  paf2.assignment_id = paf.assignment_id
116                                                    and    paf2.person_id = pay_magtape_generic.get_parameter_value('PERSON_ID'))
117 		  and    paf.assignment_id = paa.assignment_id
119 		  and    pai.action_context_id = paa.assignment_action_id
120 		  and    pai.action_context_type = 'AAP'
121 		  and    pai.action_information_category = pai.action_information_category
122 		  and    pai_person.action_context_id = paa.assignment_action_id
123 		  and    pai_person.action_information_category = 'GB EMPLOYEE DETAILS'
124 		  and    upper(pai_person.action_information13) = upper(pay_magtape_generic.get_parameter_value('EMPLOYERS_REF_NO'))
125 		  and    pai_person.action_context_type = 'AAP')
126   		 group by cat -- pai.action_information_category
127   		 union all  -- Benefit from this select may occur more than 1 time or
128   		            -- it has a special layout/format - ie Expenses Payments.
129   		 select  /*+ ORDERED use_nl(paf,paa,pai,pai_person)
130 		           use_index(pai_person,pay_action_information_n2)
131 				   use_index(pai,pay_action_information_n2) */
132          		decode(pai.action_information_category,
133                   'CAR AND CAR FUEL 2003_04',   'F',
134                   'INT FREE AND LOW INT LOANS', 'H')  cat
135   		 from   per_all_assignments_f   paf,
136        	        pay_assignment_actions  paa,
137        	        pay_action_information  pai,
138        	        pay_action_information  pai_person
139 		 where  paf.person_id = pay_magtape_generic.get_parameter_value('PERSON_ID')
140                  and    paf.effective_end_date = (select max(paf2.effective_end_date)
141 		                                   from   per_all_assignments_f paf2
142 		                                   where  paf2.assignment_id = paf.assignment_id
143                                                    and    paf2.person_id = pay_magtape_generic.get_parameter_value('PERSON_ID'))
144 		 and    paf.assignment_id = paa.assignment_id
145 		 and    paa.payroll_action_id = pay_magtape_generic.get_parameter_value('ARCH_PAYROLL_ACTION_ID')
146 		 and    pai.action_context_id = paa.assignment_action_id
147 		 and    pai.action_context_type = 'AAP'
148 		 and    pai.action_information_category = pai.action_information_category
149 		 and    pai_person.action_context_id = paa.assignment_action_id
150 		 and    pai_person.action_information_category = 'GB EMPLOYEE DETAILS'
151 		 and    upper(pai_person.action_information13) = upper(pay_magtape_generic.get_parameter_value('EMPLOYERS_REF_NO'))
152 		 and    pai_person.action_context_type = 'AAP')
153   where cat in ('A',
154                 'B',
155                 'C',
156                 'D',
157                 'E',
158                 'F',
159                 'G',
160                 'H',
161                 'I',
162                 'J',
163                 'K',
164                 'L',
165                 'M',
166                 'N',
167                 'U')
168   order by cat;
169 
170   function  get_header(p_sender_id         in     varchar2,
171                        p_transmission_date in     varchar2,
172                        p_test_transmission in     varchar2,
173                        p_unique_reference  in     varchar2,
174                        p_tax_year          in     varchar2,
175                        p_missing_val       in out NoCopy number,
176                        p_error_count       in out NoCopy number,
177                        p_error_msg1        out NoCopy varchar2,
178                        p_error_msg2        out NoCopy varchar2,
179                        p_error_msg3        out NoCopy varchar2,
180                        p_error_msg4        out NoCopy varchar2,
181                        p_error_msg5        out NoCopy varchar2,
182                        p_error_msg6        out NoCopy varchar2,
183                        p_edi_rec1          out NoCopy varchar2,
184                        p_edi_rec2          out NoCopy varchar2,
185                        p_edi_rec3          out NoCopy varchar2,
186                        p_edi_rec4          out NoCopy varchar2,
187                        p_edi_rec5          out NoCopy varchar2,
188                        p_edi_rec6          out NoCopy varchar2) return number;
189 
190   function  get_employer(p_tax_office_name  in     varchar2,
191                          p_tax_phone_no     in     varchar2,
192                          p_employer_ref     in     varchar2,
193                          p_employer_name    in     varchar2,
194                          p_employer_addr    in     varchar2,
195                          p_submitter_ref    in     varchar2,
196                          p_message_date     in     varchar2,
197                          p_tax_year         in     varchar2,
198                          p_party            in     varchar2,
199                          p_error_count      in out NoCopy number,
200                          p_error_msg1       out NoCopy varchar2,
201                          p_error_msg2       out NoCopy varchar2,
202                          p_error_msg3       out NoCopy varchar2,
203                          p_error_msg4       out NoCopy varchar2,
204                          p_error_msg5       out NoCopy varchar2,
205                          p_error_msg6       out NoCopy varchar2,
206                          p_error_msg7       out NoCopy varchar2,
207                          p_error_msg8       out NoCopy varchar2,
208                          p_error_msg9       out NoCopy varchar2,
209                          p_edi_rec1         out NoCopy varchar2,
210                          p_edi_rec2         out NoCopy varchar2,
211                          p_edi_rec3         out NoCopy varchar2,
212                          p_edi_rec4         out NoCopy varchar2,
216                          p_edi_rec8         out NoCopy varchar2,
213                          p_edi_rec5         out NoCopy varchar2,
214                          p_edi_rec6         out NoCopy varchar2,
215                          p_edi_rec7         out NoCopy varchar2,
217                          p_edi_rec9         out NoCopy varchar2,
218                          p_edi_rec10        out NoCopy varchar2,
219                          p_edi_rec11        out NoCopy varchar2,
220                          p_edi_rec12        out NoCopy varchar2) return number;
221 
222   function  get_employee(p_person_id     in         varchar2,
223                          p_pact_id       in         varchar2,
224                          p_tax_year      in         varchar2,
225                          p_error_count   in out NoCopy number,
226                          p_error_msg1    out NoCopy varchar2,
227                          p_error_msg2    out NoCopy varchar2,
228                          p_error_msg3    out NoCopy varchar2,
229                          p_error_msg4    out NoCopy varchar2,
230                          p_error_msg5    out NoCopy varchar2,
231                          p_error_msg6    out NoCopy varchar2,
232                          p_error_msg7    out NoCopy varchar2,
233                          p_error_msg8    out NoCopy varchar2,
234                          p_edi_rec1      out NoCopy varchar2,
235                          p_edi_rec2      out NoCopy varchar2,
236                          p_edi_rec3      out NoCopy varchar2,
237                          p_edi_rec4      out NoCopy varchar2,
238                          p_edi_rec5      out NoCopy varchar2,
239                          p_edi_rec6      out NoCopy varchar2,
240                          p_edi_rec7      out NoCopy varchar2,
241                          p_edi_rec8      out NoCopy varchar2) return number;
242 
243   function  get_benefit(p_benefit_type  in  varchar2,
244                         p_person_id     in  varchar2,
245                         p_employer_ref  in  varchar2,
246                         p_tax_year      in  varchar2,
247                         p_benefit_count in  varchar2,
248                         p_pact_id       in  varchar2,
249                         p_value1        in out NoCopy varchar2,
250                         p_value2        in out NoCopy varchar2,
251                         p_value3        in out NoCopy varchar2,
252                         p_value4        in out NoCopy varchar2,
253                         p_value5        in out NoCopy varchar2,
254                         p_value6        in out NoCopy varchar2,
255                         p_value7        in out NoCopy varchar2,
256                         p_value8        in out NoCopy varchar2,
257                         p_value9        in out NoCopy varchar2,
258                         p_value10       in out NoCopy varchar2,
259                         p_value11       in out NoCopy varchar2,
260                         p_value12       in out NoCopy varchar2,
261                         p_value13       in out NoCopy varchar2,
262                         p_value14       in out NoCopy varchar2,
263                         p_value15       in out NoCopy varchar2,
264                         p_value16       in out NoCopy varchar2,
265                         p_value17       in out NoCopy varchar2,
266                         p_value18       in out NoCopy varchar2,
267                         p_value19       in out NoCopy varchar2,
268                         p_value20       in out NoCopy varchar2,
269                         p_value21       in out NoCopy varchar2,
270                         p_value22       in out NoCopy varchar2,
271                         p_value23       in out NoCopy varchar2,
272                         p_value24       in out NoCopy varchar2,
273                         p_value25       in out NoCopy varchar2,
274                         p_value26       in out NoCopy varchar2,
275                         p_value27       in out NoCopy varchar2,
276                         p_value28       in out NoCopy varchar2,
277                         p_value29       in out NoCopy varchar2,
278                         p_value30       in out NoCopy varchar2,
279                         p_edi_rec1      out NoCopy varchar2,
280                         p_edi_rec2      out NoCopy varchar2,
281                         p_edi_rec3      out NoCopy varchar2,
282                         p_edi_rec4      out NoCopy varchar2,
283                         p_edi_rec5      out NoCopy varchar2,
284                         p_edi_rec6      out NoCopy varchar2,
285                         p_edi_rec7      out NoCopy varchar2,
286                         p_edi_rec8      out NoCopy varchar2,
287                         p_edi_rec9      out NoCopy varchar2,
288                         p_edi_rec10     out NoCopy varchar2,
289                         p_edi_rec11     out NoCopy varchar2,
290                         p_edi_rec12     out NoCopy varchar2,
291                         p_edi_rec13     out NoCopy varchar2,
292                         p_edi_rec14     out NoCopy varchar2,
293                         p_edi_rec15     out NoCopy varchar2,
294                         p_edi_rec16     out NoCopy varchar2,
295                         p_edi_rec17     out NoCopy varchar2,
296                         p_edi_rec18     out NoCopy varchar2,
297                         p_edi_rec19     out NoCopy varchar2,
298                         p_edi_rec20     out NoCopy varchar2,
299                         p_edi_rec21     out NoCopy varchar2,
300                         p_edi_rec22     out NoCopy varchar2,
301                         p_edi_rec23     out NoCopy varchar2,
302                         p_edi_rec24     out NoCopy varchar2,
303                         p_edi_rec25     out NoCopy varchar2,
304                         p_edi_rec26     out NoCopy varchar2,
305                         p_edi_rec27     out NoCopy varchar2,
306                         p_edi_rec28     out NoCopy varchar2,
310   function  get_summary(p_benefit_type  in varchar2,
307                         p_edi_rec29     out NoCopy varchar2,
308                         p_edi_rec30     out NoCopy varchar2) return number;
309 
311                         p_tax_year      in varchar2,
312                         p_value1        in varchar2,
313                         p_value2        in varchar2,
314                         p_value3        in varchar2,
315                         p_value4        in varchar2,
316                         p_value5        in varchar2,
317                         p_value6        in varchar2,
318                         p_value7        in varchar2,
319                         p_value8        in varchar2,
320                         p_value9        in varchar2,
321                         p_value10       in varchar2,
322                         p_value11       in varchar2,
323                         p_value12       in varchar2,
324                         p_value13       in varchar2,
325                         p_value14       in varchar2,
326                         p_value15       in varchar2,
327                         p_value16       in varchar2,
328                         p_value17       in varchar2,
329                         p_value18       in varchar2,
330                         p_value19       in varchar2,
331                         p_value20       in varchar2,
332                         p_value21       in varchar2,
333                         p_value22       in varchar2,
334                         p_value23       in varchar2,
335                         p_value24       in varchar2,
336                         p_value25       in varchar2,
337                         p_value26       in varchar2,
338                         p_value27       in varchar2,
339                         p_value28       in varchar2,
340                         p_value29       in varchar2,
341                         p_value30       in varchar2,
342                         p_edi_rec1      out NoCopy varchar2,
343                         p_edi_rec2      out NoCopy varchar2,
344                         p_edi_rec3      out NoCopy varchar2,
345                         p_edi_rec4      out NoCopy varchar2,
346                         p_edi_rec5      out NoCopy varchar2,
347                         p_edi_rec6      out NoCopy varchar2,
348                         p_edi_rec7      out NoCopy varchar2,
349                         p_edi_rec8      out NoCopy varchar2,
350                         p_edi_rec9      out NoCopy varchar2,
351                         p_edi_rec10     out NoCopy varchar2,
352                         p_edi_rec11     out NoCopy varchar2,
353                         p_edi_rec12     out NoCopy varchar2,
354                         p_edi_rec13     out NoCopy varchar2,
355                         p_edi_rec14     out NoCopy varchar2,
356                         p_edi_rec15     out NoCopy varchar2,
357                         p_edi_rec16     out NoCopy varchar2,
358                         p_edi_rec17     out NoCopy varchar2,
359                         p_edi_rec18     out NoCopy varchar2,
360                         p_edi_rec19     out NoCopy varchar2,
361                         p_edi_rec20     out NoCopy varchar2,
362                         p_edi_rec21     out NoCopy varchar2,
363                         p_edi_rec22     out NoCopy varchar2,
364                         p_edi_rec23     out NoCopy varchar2,
365                         p_edi_rec24     out NoCopy varchar2,
366                         p_edi_rec25     out NoCopy varchar2,
367                         p_edi_rec26     out NoCopy varchar2,
368                         p_edi_rec27     out NoCopy varchar2,
369                         p_edi_rec28     out NoCopy varchar2,
370                         p_edi_rec29     out NoCopy varchar2,
371                         p_edi_rec30     out NoCopy varchar2) return number;
372 
373   function  get_footer(p_tax_year     in     varchar2,
374                        p_record_count in     varchar2,
375                        p_error_count  in     varchar2,
376                        p_missing_val  in     varchar2,
377                        p_error_msg1   out NoCopy varchar2,
378                        p_error_msg2   out NoCopy varchar2,
379                        p_edi_rec1     out NoCopy varchar2,
380                        p_edi_rec2     out NoCopy varchar2,
381                        p_edi_rec3     out NoCopy varchar2) return number;
382 
383   function  count_occurrence(p_benefit_type  in  varchar2,
384                              p_person_id     in  varchar2,
385                              p_employer_ref  in  varchar2,
386                              p_tax_year      in  varchar2,
387                              p_pact_id       in  varchar2) return number;
388 
389   function  check_occurrence(p_benefit_type in varchar2,
390                              p_tax_year     in varchar2) return varchar2;
391 
392   function  get_benefit_name(p_benefit_type in varchar2,
393                              p_tax_year     in varchar2) return varchar2;
394 
395 END PAY_GB_P11D_EDI_CONTROL;