DBA Data[Home] [Help]

PACKAGE: APPS.PAY_P45_PKG

Source


1 PACKAGE PAY_P45_PKG as
2 /* $Header: payrp45.pkh 120.6.12010000.2 2008/08/06 06:39:58 ubhat ship $ */
3 --
4 /*===========================================================================+
5  |               Copyright (c) 1993 Oracle Corporation                       |
6  |                  Redwood Shores, California, USA                          |
7  |                       All rights reserved.                                |
8  +============================================================================
9  Name
10     PAY_P45_PKG
11   Purpose
12     Supports the VIEW P45 form (PAYWSR45) called from the form PAYGBTAX.
13     This is a UK Specific form/package.
14 Notes
15 
16   History
17     07-AUG-94   P.Shergil   40.0        Date Created.
18     29-AUG-94   H.Minton    40.1        Added Function to get the formula id
19     04-OCT-94   R.Fine      40.2        Renamed package to start PAY_
20     08-MAR-2000 J. Moyano  115.1        Function get_student_loan_flag added.
21     14-AUG-2000 A.Parkes   115.2        Added P45 Archiver hooks and cursors.
22     08-FEB-2001 S.Robinson 115.3        Procedure pop_term_from_archive added.
23     19-FEB-2001 A.Parkes   115.4        Removed action_status from
24                                         csr_edi_assignments select.
25                                         Added get_report_request_error func
26     29-MAR-2001 A.Parkes   115.5        Put space in RECEIVER_ID value.
27                            115.6        842703 added X_TRANSFER_DATE param
28                                         to get_data
29     17-FEB-2002 S.Robinson 115.7        Added dbdrv commands.
30     27-FEB-2002 K.Thampan  115.8        Added X_STUDENT_LOAN_FLAG to procedure
31                                         pop_term_asg_from_archive
32     12-Dec-2002 A.Mills    115.9        Added nocopy via utility
33     20-Aug-2003 A.Mills    115.9        Agg PAYE changes.
34     13-May-2004 K.Thampan  115.12       Put NONE in the field where NI number
35                                         is not available on P45 EDI file
36     18-JAN-2005 navesriv   115.13       Displayed Employee PAYE Reference in full
37                                         by increasing the length of the field
38     26-APR-2005 kthampan   115.14       Add one parameter to the procedure
39                                         pop_term_asg_from_archive
40     19-JUN-2006 K.Thampan  115.15       Substr title to 4 chars. Bug 5169434
41     04-SEP-2006 ajeyam     115.16       New proc/functions created to find whether
42                                         P45 issued (or) not for the given
43                                         assignment. Bug 5144323
44     05-SEP-2006 ajeyam     115.17       Parameters added/changed for new report-
45                                         show the p45 issued for act asgs 5144323
46     13-NOV-2007 parusia    115.18       Added 2 new cursors csr_tax_district and
47                                         csr_edi_assignments for P45PT1. Bug 6345375
48     27-DEC-2007 rlingama   115.19       Modified X_COUNTY to X_COUNTRY in
49                                         csr_movded5_edi_assignments cursor.Bug 6710197
50      4-Jan-2008 parusia    115.20       Selected middle_name also from cursor
51                                         csr_movded5_edi_assignments. Bug 6710229
52     14-May-2008 rlingama   115.21       Bug 7028893.Added function PAYE_RETURN_P45_ISSUED_FLAG.
53      ============================================================================*/
54 --
55 -- CURSORS
56 CURSOR csr_tax_district IS
57 SELECT 'SENDER_ID=P', upper(nvl(org_information11,' ')),
58   'RECEIVER_ID=P', 'INLAND REVENUE',
59   'TEST_INDICATOR=P', decode(pay_gb_eoy_archive.get_parameter
60                         (legislative_parameters,
61 			 'TEST'),'Y','1',' '),
62   'URGENT_MARKER=P',  decode(pay_gb_eoy_archive.get_parameter
63                         (legislative_parameters,
64 			 'URGENT'),'Y','Y',' '),
65   'REQUEST_ID=P', fnd_number.number_to_canonical(pact.request_id),
66   'FORM_TYPE=P', '4',
67   'FORM_TYPE_MEANING=P', 'P45',
68   'TAX_DIST_NO=P', substr(hoi.org_information1,1,3),
69   'TAX_DIST_REF=P',
70   upper(substr(ltrim(substr(hoi.org_information1,4,11),'/') ,1,10)),                    /* Bug no 4086012    */
71   'TAX_DISTRICT=P', upper(nvl(substr(hoi.org_information2 ,1,40),' ')),
72   'EMPLOYERS_ADDRESS_LINE=P',
73   upper(nvl(substr(hoi.org_information4,1,60),' ')),
74   'EMPLOYERS_NAME=P', upper(nvl(substr(hoi.org_information3,1,36),' '))
75 FROM  pay_payroll_actions pact,
76       hr_organization_information hoi
77 WHERE pact.payroll_action_id = pay_magtape_generic.get_parameter_value
78                                      ('TRANSFER_PAYROLL_ACTION_ID')
79   AND   hoi.org_information_context = 'Tax Details References'
80   AND    substr(pact.legislative_parameters,
81                 instr(pact.legislative_parameters,'TAX_REF=') + 8,
82                     instr(pact.legislative_parameters||' ',' ',
83                           instr(pact.legislative_parameters,'TAX_REF=')+8)
84 		- instr(pact.legislative_parameters,'TAX_REF=') - 8)
85            = hoi.org_information1
86   AND hoi.organization_id = pact.business_group_id;
87 --
88 CURSOR csr_edi_assignments IS
89 SELECT
90   'ASSIGNMENT_ACTION_ID=C', act.assignment_action_id,
91   'CHARS_ALREADY_TESTED=P', pay_gb_eoy_archive.get_parameter
92                               (pact.legislative_parameters,'CHAR_ERROR'),
93   'ADDRESS_LINE1=P',
94   upper(nvl(max(decode(fue.user_entity_name,
95                        'X_ADDRESS_LINE1',substr(fai.VALUE,1,35))),' ')),
96   'ADDRESS_LINE2=P',
97   upper(nvl(max(decode(fue.user_entity_name,
98                        'X_ADDRESS_LINE2',substr(fai.VALUE,1,35))),' ')),
99   'ADDRESS_LINE3=P',
100   upper(nvl(max(decode(fue.user_entity_name,
101                        'X_ADDRESS_LINE3',substr(fai.VALUE,1,35))),' ')),
102   'ASSIGNMENT_NUMBER=P',
103   upper(nvl(max(decode(fue.user_entity_name,
104 		       'X_ASSIGNMENT_NUMBER',
105 		       substr(fai.VALUE,1,20))),' ')),
106   'COUNTY=P',
107   upper(nvl(max(decode(fue.user_entity_name,'X_COUNTY',
108 		       substr(fai.VALUE,1,35))),' ')),
109   'FIRST_NAME=P',
110   nvl(max(decode(fue.user_entity_name,'X_FIRST_NAME',
111 		 substr(upper(fai.VALUE),1,35))),' '),
112   'LAST_NAME=P',
113   nvl(max(decode(fue.user_entity_name,'X_LAST_NAME',
114 		 substr(upper(fai.VALUE),1,35))),' '),
115   'NATIONAL_INSURANCE_NUMBER=P',
116   nvl(max(decode(fue.user_entity_name,
117 		 'X_NATIONAL_INSURANCE_NUMBER',
118 		 substr(upper(fai.VALUE),1,9))),'NONE'),
119   'POSTAL_CODE=P',
120   nvl(max(decode(fue.user_entity_name,'X_POSTAL_CODE',
121 		 substr(upper(fai.VALUE),1,9))),' '),
122   'TITLE=P',
123   nvl(max(decode(fue.user_entity_name,'X_TITLE',
124 		 substr(upper(fai.VALUE),1,4))),' '),
125   'TOWN_OR_CITY=P',
126   upper(nvl(max(decode(fue.user_entity_name,
127 		       'X_TOWN_OR_CITY',
128 		       substr(fai.VALUE,1,35))),' '))
129 FROM   pay_assignment_actions act_edi,
130        pay_action_interlocks  pai,
131        pay_assignment_actions act,
132        pay_payroll_actions    pact,
133        ff_archive_items       fai,
134        ff_user_entities       fue
135 WHERE  act_edi.payroll_action_id = pay_magtape_generic.get_parameter_value
136                                          ('TRANSFER_PAYROLL_ACTION_ID')
137   AND  act_edi.assignment_action_id = pai.locking_action_id
138   AND  act.assignment_action_id     = pai.locked_action_id
139   AND  pact.payroll_action_id       = act.payroll_action_id
140   AND  act.assignment_action_id     = fai.context1
141   AND  fai.archive_type              <> 'PA'
142   AND  fai.user_entity_id           = fue.user_entity_id
143 GROUP  BY act.assignment_action_id, pay_gb_eoy_archive.get_parameter
144                                 (pact.legislative_parameters,'CHAR_ERROR'),
145           act.action_status
146 ORDER  BY 12;
147 --
148 --
149 /* Added for P45PT1 ( Bug 6345375 ) */
150 CURSOR csr_movded5_tax_district IS
151 SELECT 'SENDER_ID=P', upper(nvl(org_information11,' ')),
152   'RECEIVER_ID=P'   , 'HMRC',
153   'TEST_INDICATOR=P', decode(pay_gb_eoy_archive.get_parameter
154                         (legislative_parameters,
155                          'TEST'),'Y','1',' '),
156   'URGENT_MARKER=P' ,  ' ',
157   'REQUEST_ID=P'    , fnd_number.number_to_canonical(pact.request_id),
158   'FORM_TYPE=P'     , '4',
159   'FORM_TYPE_MEANING=P', 'P45PT1',
160   'TAX_DIST_NO=P'   , substr(hoi.org_information1,1,3),
161   'TAX_DIST_REF=P'  , upper(substr(ltrim(substr(hoi.org_information1,4,11),'/') ,1,10)),  /* Bug no 4086012    */
162   'TAX_DISTRICT=P'  , upper(nvl(substr(hoi.org_information2 ,1,40),' ')),
163   'EMPLOYERS_ADDRESS_LINE=P', upper(nvl(substr(hoi.org_information4,1,60),' ')),
164   'EMPLOYERS_NAME=P', upper(nvl(substr(hoi.org_information3,1,36),' ')),
165   'TEST_ID=P'       , nvl(pay_gb_eoy_archive.get_parameter
166                          (legislative_parameters,
167                           'TEST_ID'),' ') /*added for P45PT1*/
168 FROM  pay_payroll_actions pact,
169       hr_organization_information hoi
170 WHERE pact.payroll_action_id = pay_magtape_generic.get_parameter_value
171                                      ('TRANSFER_PAYROLL_ACTION_ID')
172   AND   hoi.org_information_context = 'Tax Details References'
173   AND    substr(pact.legislative_parameters,
174                 instr(pact.legislative_parameters,'TAX_REF=') + 8,
175                     instr(pact.legislative_parameters||' ',' ',
176                           instr(pact.legislative_parameters,'TAX_REF=')+8)
177 		- instr(pact.legislative_parameters,'TAX_REF=') - 8)
178            = hoi.org_information1
179   AND hoi.organization_id = pact.business_group_id;
180 --
181 CURSOR csr_movded5_edi_assignments IS
182 SELECT
183   'ASSIGNMENT_ACTION_ID=C', act.assignment_action_id,
184   'CHARS_ALREADY_TESTED=P', pay_gb_eoy_archive.get_parameter
185                               (pact.legislative_parameters,'CHAR_ERROR'),
186   'ADDRESS_LINE1=P',
187   upper(nvl(max(decode(fue.user_entity_name,
188                        'X_ADDRESS_LINE1',substr(fai.VALUE,1,35))),' ')),
189   'ADDRESS_LINE2=P',
190   upper(nvl(max(decode(fue.user_entity_name,
191                        'X_ADDRESS_LINE2',substr(fai.VALUE,1,35))),' ')),
192   'ADDRESS_LINE3=P',
193   upper(nvl(max(decode(fue.user_entity_name,
194                        'X_ADDRESS_LINE3',substr(fai.VALUE,1,35))),' ')),
195   'ASSIGNMENT_NUMBER=P',
196   upper(nvl(max(decode(fue.user_entity_name,
197 		       'X_ASSIGNMENT_NUMBER',
198 		       substr(fai.VALUE,1,20))),' ')),
199   'COUNTY=P',
200   upper(nvl(max(decode(fue.user_entity_name,'X_COUNTRY',
201 		       substr(fai.VALUE,1,35))),' ')), /* Country parameter*/
202   'FIRST_NAME=P',
203   nvl(max(decode(fue.user_entity_name,'X_FIRST_NAME',
204 		 substr(upper(fai.VALUE),1,35))),' '),
205   'MIDDLE_NAME=P',   /*Bug 6710229*/
206   nvl(max(decode(fue.user_entity_name,'X_MIDDLE_NAME',
207 		 substr(upper(fai.VALUE),1,35))),' '),
208   'LAST_NAME=P',
209   nvl(max(decode(fue.user_entity_name,'X_LAST_NAME',
210 		 substr(upper(fai.VALUE),1,35))),' '),
211   'NATIONAL_INSURANCE_NUMBER=P',
212   nvl(max(decode(fue.user_entity_name,
213 		 'X_NATIONAL_INSURANCE_NUMBER',
214 		 substr(upper(fai.VALUE),1,9))),' '),
215   'POSTAL_CODE=P',
216   nvl(max(decode(fue.user_entity_name,'X_POSTAL_CODE',
217 		 substr(upper(fai.VALUE),1,9))),' '),
218   'TITLE=P',
219   nvl(max(decode(fue.user_entity_name,'X_TITLE',
220 		 substr(upper(fai.VALUE),1,4))),' '),
221   'TOWN_OR_CITY=P',
222   upper(nvl(max(decode(fue.user_entity_name,
223 		       'X_TOWN_OR_CITY',
224 		       substr(fai.VALUE,1,35))),' ')),
225   'EFFECTIVE_DATE=P',      fnd_date.date_to_canonical(pact.effective_date)
226 FROM   pay_assignment_actions act_edi,
227        pay_action_interlocks  pai,
228        pay_assignment_actions act,
229        pay_payroll_actions    pact,
230        ff_archive_items       fai,
231        ff_user_entities       fue
232 WHERE  act_edi.payroll_action_id = pay_magtape_generic.get_parameter_value
233                                          ('TRANSFER_PAYROLL_ACTION_ID')
234   AND  act_edi.assignment_action_id = pai.locking_action_id
235   AND  act.assignment_action_id     = pai.locked_action_id
236   AND  pact.payroll_action_id       = act.payroll_action_id
237   AND  act.assignment_action_id     = fai.context1
238   AND  fai.archive_type              <> 'PA'
239   AND  fai.user_entity_id           = fue.user_entity_id
240 GROUP  BY act.assignment_action_id, pay_gb_eoy_archive.get_parameter
241                                 (pact.legislative_parameters,'CHAR_ERROR'),
242           act.action_status, fnd_date.date_to_canonical(pact.effective_date)
243 ORDER  BY 12;
244 /* Addition for P45PT1 ( Bug 6345375 ) ends*/
245 --
246 --
247   level_cnt number; -- required by the generic magtape procedure.
248 -- FUNCTION get_report_request_error
249 -- Function to retrieve the global g_fnd_rep_request_msg which will be
250 -- populated with the fnd message in the event of the P45 report submission
251 -- failing.
252 FUNCTION get_report_request_error RETURN VARCHAR2;
253 --
254 -- PROCEDURE range_cursor
255 -- Procedure which returns a varchar2 defining a SQL Statement to select
256 -- all the people in the business group.
257 -- The archiver uses this cursor to split the people into chunks for parallel
258 -- processing.
259 -- This procedure is used for both the P45 Archive process and the P45 EDI
260 -- process.  When called by the P45 Archive process it also archives the
261 -- tax ref. info.
262 PROCEDURE range_cursor (pactid IN NUMBER,
263                         sqlstr out nocopy varchar2);
264 --
265 PROCEDURE arch_act_creation(pactid IN NUMBER,
266                             stperson IN NUMBER,
267                             endperson IN NUMBER,
268                             chunk IN NUMBER);
269 --
270 PROCEDURE archinit(p_payroll_action_id IN NUMBER);
271 --
272 PROCEDURE archive_code(p_assactid IN NUMBER, p_effective_date IN DATE);
273 --
274 -- PROCEDURE spawn_reports
275 -- This is the procedure called after P45 archiving has taken place.  It is
276 -- called as the magtape hook, but instead of creating a file, it is used to
277 -- spawn the P45 report.  It will call the PAY_GB_P45_REPORT_SUBMISSION
278 -- formula to report the report request id and to stop the magtape process.
279 PROCEDURE spawn_reports;
280 --
281 PROCEDURE edi_act_creation(pactid IN NUMBER,
282                             stperson IN NUMBER,
283                             endperson IN NUMBER,
284                             chunk IN NUMBER);
285 --
286 -----------------------------------------------------------------------------
287 -- Name                                                                    --
288 --   get_p45_formula_id                                                   --
289 -- Purpose                                                                 --
290 --   this function finds the formula id for the validation of the PAYE     --
291 --   tax_code element entry value.
292 -----------------------------------------------------------------------------
293 --
294 FUNCTION get_p45_formula_id RETURN NUMBER;
295 -----------------------------------------------------------------------------
296 --
297 --
298 -----------------------------------------------------------------------------
299 --
300 -- Name                                                                    --
301 --   get_student_loan_flag                                                 --
302 -- Purpose                                                                 --
303 --   this function finds if the employee has a Student Loan effective at   --
304 --   the time employment ceases. Returns 'Y' if 'End Date' is not prior    --
305 --   or equal to the termination date.                                     --
306 -----------------------------------------------------------------------------
307 --
308 FUNCTION get_student_loan_flag (p_assignment_id in NUMBER,
309                                 p_termination_date in DATE,
310                                 p_session_date in DATE) RETURN VARCHAR2;
311 --
312 --
313 -----------------------------------------------------------------------------
314 
315 procedure get_data(X_PERSON_ID     in number,
316                    X_SESSION_DATE  in date,
317                    X_ADDRESS_LINE1 in out nocopy varchar2,
318                    X_ADDRESS_LINE2 in out nocopy varchar2,
319                    X_ADDRESS_LINE3 in out nocopy varchar2,
320                    X_TOWN_OR_CITY  in out nocopy varchar2,
321                    X_REGION_1      in out nocopy varchar2,
322                    X_COUNTRY       in out nocopy varchar2,
323                    X_POSTAL_CODE   in out nocopy varchar2,
324                    X_ASSIGNMENT_ID        in     number,
325                    X_ASSIGNMENT_ACTION_ID in out nocopy number,
326                    X_ASSIGNMENT_END_DATE    in     date,
327                    X_DATE_EARNED          in out nocopy date,
328                    X_PAYROLL_ACTION_ID    in out nocopy number,
329                    X_TRANSFER_DATE        in     date default
330                                                  hr_general.end_of_time);
331 
332 procedure get_data(X_PERSON_ID     in number,
333                    X_SESSION_DATE  in date,
334                    X_ADDRESS_LINE1 in out nocopy varchar2,
335                    X_ADDRESS_LINE2 in out nocopy varchar2,
336                    X_ADDRESS_LINE3 in out nocopy varchar2,
337                    X_TOWN_OR_CITY  in out nocopy varchar2,
338                    X_REGION_1      in out nocopy varchar2,
339                    X_COUNTRY       in out nocopy varchar2,
340                    X_POSTAL_CODE   in out nocopy varchar2,
341                    X_ASSIGNMENT_ID        in     number,
342                    X_ASSIGNMENT_ACTION_ID in out nocopy number,
343                    X_ASSIGNMENT_END_DATE    in     date,
344                    X_DATE_EARNED          in out nocopy date,
345                    X_PAYROLL_ACTION_ID    in out nocopy number,
346                    X_EMPLOYER_NAME        in out nocopy varchar2,
347                    X_EMPLOYER_ADDRESS     in out nocopy varchar2,
348                    X_TRANSFER_DATE        in     date default
349                                                  hr_general.end_of_time);
350 
351 procedure get_form_query_data(X_ASSIGNMENT_ID           in number,
352                               X_LAST_NAME               in out nocopy varchar2,
353                               X_TITLE                   in out nocopy varchar2,
354                               X_FIRST_NAME              in out nocopy varchar2,
355                               X_NATIONAL_IDENTIFIER     in out nocopy varchar2,
356                               X_PERSON_ID               in out nocopy number,
357                               X_ACTUAL_TERMINATION_DATE in out nocopy date,
358                               X_DECEASED_FLAG           in out nocopy varchar2,
359                               X_ASSIGNMENT_NUMBER       in out nocopy varchar2,
360                               X_PAYROLL_ID              in out nocopy number,
361                               X_ORGANIZATION_ID         in out nocopy number,
362                               X_ORG_NAME                in out nocopy varchar2);
363 
364 procedure pop_term_asg_from_archive(X_ASSIGNMENT_ACTION_ID  in number,
365                                 X_NI1                   in out nocopy varchar2,
366                                 X_NI2                   in out nocopy varchar2,
367                                 X_NI3                   in out nocopy varchar2,
368                                 X_NI4                   in out nocopy varchar2,
369                                 X_NI5                   in out nocopy varchar2,
370                                 X_NI6                   in out nocopy varchar2,
371                                 X_NI7                   in out nocopy varchar2,
372                                 X_NI8                   in out nocopy varchar2,
373                                 X_NI9                   in out nocopy varchar2,
374                                 X_LAST_NAME             in out nocopy varchar2,
375                                 X_TITLE                 in out nocopy varchar2,
376                                 X_FIRST_NAME            in out nocopy varchar2,
377                                 X_DATE_OF_LEAVING_DD    in out nocopy varchar2,
378                                 X_DATE_OF_LEAVING_MM    in out nocopy varchar2,
379                                 X_DATE_OF_LEAVING_YY    in out nocopy varchar2,
380                                 X_TAX_CODE_AT_LEAVING   in out nocopy varchar2,
381                                 X_WK1_OR_MTH1           in out nocopy varchar2,
382                                 X_WEEK_NO               in out nocopy varchar2,
383                                 X_MONTH_NO              in out nocopy varchar2,
384                                 X_PAY_TD_POUNDS         in out nocopy number,
385                                 X_PAY_TD_PENCE          in out nocopy number,
386                                 X_TAX_TD_POUNDS         in out nocopy number,
387                                 X_TAX_TD_PENCE          in out nocopy number,
388                                 X_PAY_IN_EMP_POUNDS     in out nocopy number,
389                                 X_PAY_IN_EMP_PENCE      in out nocopy number,
390                                 X_TAX_IN_EMP_POUNDS     in out nocopy number,
391                                 X_TAX_IN_EMP_PENCE      in out nocopy number,
392                                 X_ASSIGNMENT_NUMBER     in out nocopy varchar2,
393                                 X_ORG_NAME              in out nocopy varchar2,
394                                 X_ADDRESS_LINE1         in out nocopy varchar2,
395                                 X_ADDRESS_LINE2         in out nocopy varchar2,
396                                 X_ADDRESS_LINE3         in out nocopy varchar2,
397                                 X_TOWN_OR_CITY          in out nocopy varchar2,
398                                 X_REGION_1              in out nocopy varchar2,
399                                 X_POSTAL_CODE           in out nocopy varchar2,
400                                 X_DECEASED_FLAG         in out nocopy varchar2,
401                                 X_ISSUE_DATE            in out nocopy varchar2,
402                                 X_TAX_REF_TRANSFER      in out nocopy varchar2,
403                                 X_STUDENT_LOAN_FLAG     in out nocopy varchar2,
404                                 X_COUNTRY               in out nocopy varchar2);
405 
406 Procedure pop_term_pact_from_archive (X_PAYROLL_ACTION_ID in number,
407                                 X_EMPLOYER_NAME         in out nocopy varchar2,
408                                 X_EMPLOYER_ADDRESS      in out nocopy varchar2);
409 --------------------------------------------------------------------------
410 -- name get_p45_asg_action_id
411 -- Purpose
412 -- Get P45 Assignment Action id, Issue Date
413 -- for the given Assignment ID
414 --------------------------------------------------------------------------
415 PROCEDURE get_p45_asg_action_id(p_assignment_id        in number,
416                                 p_assignment_action_id out nocopy number,
417                                 p_issue_date           out nocopy date,
418                                 p_action_sequence      out nocopy number
419                                 );
420 --------------------------------------------------------------------------
421 -- name get_p45_eit_manual_issue_dt
422 -- purpose
423 -- Get the P45 Manual Issue date from Extra Info. table
424 -- for the given Assignment ID
425 --------------------------------------------------------------------------
426 FUNCTION get_p45_eit_manual_issue_dt(p_assignment_id in number) RETURN DATE;
427 
428 --------------------------------------------------------------------------
429 -- name get_p45_agg_asg_action_id
430 -- Get the Aggregated Assignment Id, Assignment Action id,
431 -- Final Payment Date for which the P45 been issued
432 --------------------------------------------------------------------------
433 PROCEDURE get_p45_agg_asg_action_id(p_assignment_id         in number,
434                                     p_agg_assignment_id     out nocopy number,
435                                     p_final_payment_date    out nocopy date,
436                                     p_p45_issue_date        out nocopy date,
437                                     p_p45_agg_asg_action_id out nocopy number
438                                    );
439 
440 --------------------------------------------------------------------------
441 -- name return_p45_issued_flag
442 --
443 -- Purpose                                                                 --
444 --   this function returns whether the P45 is issued or not for the given  --
445 --   assignment (Y-Yes/N-No)
446 -----------------------------------------------------------------------------
447 FUNCTION return_p45_issued_flag(p_assignment_id in number) RETURN VARCHAR2;
448 
449 -- Bug 7028893.Added function PAYE_RETURN_P45_ISSUED_FLAG.
450 --------------------------------------------------------------------------
451 -- FUNCTION paye_return_p45_issued_flag
452 -- DESCRIPTION return the P45 issued status for the given assignment (Y-Yes/N-No)
453 --------------------------------------------------------------------------
454 FUNCTION paye_return_p45_issued_flag(p_assignment_id in number,p_payroll_action_id in number) RETURN VARCHAR2;
455 
456 END PAY_P45_PKG;