[Home] [Help]
PACKAGE BODY: APPS.PAY_PAYGBP45_A4_PKG
Source
1 PACKAGE BODY PAY_PAYGBP45_A4_PKG as
2 /* $Header: paygbp45a4.pkb 120.4.12020000.4 2012/08/08 10:37:30 kvinayku ship $ */
3 /*===========================================================================+
4 | Copyright (c) 1993 Oracle Corporation |
5 | Redwood Shores, California, USA |
6 | All rights reserved. |
7 +============================================================================
8 Name
9 PAY_PAYGBP45_A4_PKG
10 Purpose
11 To generate P45 A4 XML Data
12 Notes
13
14 History
15 21-OCT-08 rlingama 115.0 Initial Version
16 24-OCT-08 rlingama 115.1 Bug 7261906.Modifed the address lines logic.
17 11-Dec-08 rlingama 115.2 Bug 7261906.Modifed the adress line 4 logic when town is null
18 22-Jan-09 rlingama 115.3 Bug 7716343.Added space after the town_regin field
19 22-Jan-09 rlingama 115.4 Bug 7716343.Restricted the field lengths.
20 20-Jul-09 dwkrishn 115.5 Bug 8678216 P45 incorrectly reporting negative tax balance
21 03-Dec-09 rlingama 115.6 Bug 9170440 P45 incorrectly reporting negative balance for tax and tax paid
22 19-Feb-09 rlingama 115.7 Bug 9393657 Modified the code to ensure, we display visibility of the total pay/tax and
23 total pay/tax in this employment fields depending on the tax basis.
24 21-Mar-12 kvinayku 115.8 Bug 13441825 Modified total pay and total tax logic.
25 09-Apr-12 kvinayku 115.9 Bug 13441825 Modified total pay and total tax logic.
26 08-Aug-12 kvinayku 115.10 Bug 14243309 Modified the code to display 0.00 in sec 8 of P45 when tax balance is negative.
27 ==============================================================================*/
28 FUNCTION BEFOREREPORT RETURN BOOLEAN IS
29 BEGIN
30 DECLARE
31 L_TEST NUMBER;
32 L_ERS_ADDRESS VARCHAR2(60);
33 BEGIN
34 --HR_STANDARD.EVENT('BEFORE REPORT');
35 INSERT INTO FND_SESSIONS
36 (SESSION_ID
37 ,EFFECTIVE_DATE)
38 SELECT
39 USERENV('sessionid'),
40 TRUNC(SYSDATE)
41 FROM
42 DUAL
43 WHERE not exists (
44 SELECT
45 1
46 FROM
47 FND_SESSIONS FS
48 WHERE FS.SESSION_ID = USERENV('sessionid') );
49 P_SESSION_DATE := SYSDATE;
50 P_DATE_TODAY := SYSDATE;
51 IF P_ASSIGNMENT_ACTION_ID IS NULL THEN
52 P_ACTION_RESTRICTION := 'AND act.payroll_action_id = ' || P_PAYROLL_ACTION_ID;
53 ELSE
54 P_ACTION_RESTRICTION := 'AND act.assignment_action_id = ' || P_ASSIGNMENT_ACTION_ID;
55 END IF;
56 SELECT
57 SUBSTR(PAY_GB_EOY_ARCHIVE.GET_PARAMETER(P.LEGISLATIVE_PARAMETERS
58 ,'TAX_REF')
59 ,1
60 ,3),
61 SUBSTR(LTRIM(SUBSTR(PAY_GB_EOY_ARCHIVE.GET_PARAMETER(P.LEGISLATIVE_PARAMETERS
62 ,'TAX_REF')
63 ,4
64 ,11)
65 ,'/')
66 ,1
67 ,10),
68 SUBSTR(PAY_GB_EOY_ARCHIVE.GET_ARCH_STR(P.PAYROLL_ACTION_ID
69 ,'X_EMPLOYERS_ADDRESS_LINE'
70 ,'0')
71 ,1
72 ,60),
73 SUBSTR(PAY_GB_EOY_ARCHIVE.GET_ARCH_STR(P.PAYROLL_ACTION_ID
74 ,'X_EMPLOYERS_NAME'
75 ,'0')
76 ,1
77 ,40)
78 INTO C_TAX_DIST_NO,C_TAX_DIST_REF,L_ERS_ADDRESS,C_ERS_NAME
79 FROM
80 PAY_PAYROLL_ACTIONS P
81 WHERE P.PAYROLL_ACTION_ID = P_PAYROLL_ACTION_ID;
82 SPLIT_EMPLOYER_ADDRESS(L_ERS_ADDRESS
83 ,C_ERS_ADDR_LINE1
84 ,C_ERS_ADDR_LINE2
85 ,C_ERS_ADDR_LINE3);
86 END;
87 RETURN (TRUE);
88 END BEFOREREPORT;
89
90 FUNCTION C_FORMAT_DATA_FORMULA(TITLE IN VARCHAR2
91 ,ADDRESS_LINE1 IN VARCHAR2
92 ,ADDRESS_LINE2 IN VARCHAR2
93 ,ADDRESS_LINE3 IN VARCHAR2
94 ,TOWN_OR_CITY IN VARCHAR2
95 ,COUNTY IN VARCHAR2
96 ,COUNTRY IN VARCHAR2
97 ,POST_CODE IN VARCHAR2
98 ,TAXABLE_PAY IN NUMBER
99 ,PREVIOUS_TAXABLE_PAY IN NUMBER
100 ,TAX_PAID IN NUMBER
101 ,PREVIOUS_TAX_PAID IN NUMBER
102 ,NI_NUMBER IN VARCHAR2
103 ,TERMINATION_DATE IN DATE
104 ,C_3_PART IN VARCHAR2
105 ,W1_M1_INDICATOR IN VARCHAR2
106 ,SEX VARCHAR2
107 ,DATE_OF_BIRTH DATE) RETURN VARCHAR2 IS
108 BEGIN
109 C_TITLE := substr(HR_GENERAL.DECODE_LOOKUP('TITLE',TITLE),1,34);
110
111 C_PER_ADDRESS_LINE1 := substr(ADDRESS_LINE1,1,34);
112 /*C_PER_ADDRESS_LINE2 := SUBSTR(RTRIM(ADDRESS_LINE2) || RTRIM(', ' || ADDRESS_LINE3
113 ,', ')
114 ,1
115 ,60);
116 C_PER_ADDRESS_LINE3 := RTRIM(TOWN_OR_CITY) || ' ' || RTRIM(COUNTY);*/
117 /*Assgined the address lines to corresponding address lines.*/
118 C_PER_ADDRESS_LINE2 := substr(ADDRESS_LINE2,1,34);
119 C_PER_ADDRESS_LINE3 := substr(ADDRESS_LINE3,1,34);
120 --C_PER_ADDRESS_LINE4 := COUNTRY || ' ' || POST_CODE;
121 --C_PER_ADDRESS_LINE4 := POST_CODE;
122 IF upper(COUNTRY) = 'UNITED KINGDOM' then
123 C_PER_ADDRESS_LINE4 := RTRIM(TOWN_OR_CITY);
124 ELSE
125 IF TOWN_OR_CITY is not null then
126 C_PER_ADDRESS_LINE4 := RTRIM(TOWN_OR_CITY) || ', ' || RTRIM(COUNTRY);
127 ELSE
128 C_PER_ADDRESS_LINE4 := RTRIM(COUNTRY);
129 END IF;
130 END IF;
131 C_PER_ADDRESS_LINE4 := substr(C_PER_ADDRESS_LINE4,1,34);
132
133 C_W1_M1_INDICATOR := W1_M1_INDICATOR; -- bug 13441825
134
135 C_TOTAL_PAY_TD := NVL(TAXABLE_PAY
136 ,0) + NVL(PREVIOUS_TAXABLE_PAY
137 ,0);
138 C_TOTAL_TAX_TD := NVL(TAX_PAID
139 ,0) + NVL(PREVIOUS_TAX_PAID
140 ,0);
141 C_NI12 := SUBSTR(NI_NUMBER
142 ,1
143 ,2);
144 C_NI34 := SUBSTR(NI_NUMBER
145 ,3
146 ,2);
147 C_NI56 := SUBSTR(NI_NUMBER
148 ,5
149 ,2);
150 C_NI78 := SUBSTR(NI_NUMBER
151 ,7
152 ,2);
153 C_NI9 := SUBSTR(NI_NUMBER
154 ,9
155 ,1);
156 C_DATE_OF_LEAVING_DD := TO_CHAR(TERMINATION_DATE
157 ,'DD');
158 C_DATE_OF_LEAVING_MM := TO_CHAR(TERMINATION_DATE
159 ,'MM');
160 C_DATE_OF_LEAVING_YYYY := TO_CHAR(TERMINATION_DATE
161 ,'YYYY');
162
163 IF UPPER(SEX) = 'M' THEN
164 C_SEX_M := 'X';
165 C_SEX_F := '';
166 ELSIF UPPER(SEX) = 'F' THEN
167 C_SEX_F := 'X';
168 C_SEX_M := '';
169 END IF;
170
171 C_DATE_OF_BIRTH_DD := TO_CHAR(DATE_OF_BIRTH
172 ,'DD');
173 C_DATE_OF_BIRTH_MM := TO_CHAR(DATE_OF_BIRTH
174 ,'MM');
175 C_DATE_OF_BIRTH_YYYY := TO_CHAR(DATE_OF_BIRTH
176 ,'YYYY');
177
178 IF SUBSTR(C_DATE_OF_LEAVING_DD
179 ,1
180 ,1) = '0' THEN
181 C_DATE_OF_LEAVING_DD := ' ' || SUBSTR(C_DATE_OF_LEAVING_DD
182 ,2
183 ,2);
184 END IF;
185 IF SUBSTR(C_DATE_OF_LEAVING_MM
186 ,1
187 ,1) = '0' THEN
188 C_DATE_OF_LEAVING_MM := ' ' || SUBSTR(C_DATE_OF_LEAVING_MM
189 ,2
190 ,2);
191 END IF;
192 IF C_3_PART = 'TRUE' THEN
193 IF W1_M1_INDICATOR IS NULL THEN
194 /*GET_POUNDS_PENCE(C_TOTAL_PAY_TD
195 ,C_PAY_TD_POUNDS
196 ,C_PAY_TD_PENCE);
197 GET_POUNDS_PENCE(C_TOTAL_TAX_TD
198 ,C_TAX_TD_POUNDS
199 ,C_TAX_TD_PENCE);*/
200
201 C_PAY_TD_POUNDS:= C_TOTAL_PAY_TD;
202 C_TOTAL_TAX_TD := C_TOTAL_TAX_TD;
203
204 -- Start of Bug 9393657
205 C_PAY_IN_EMP_POUNDS := NULL;
206 --C_PAY_IN_EMP_PENCE := '';
207 C_TAX_IN_EMP_POUNDS := NULL;
208 -- C_TAX_IN_EMP_PENCE := '';
209 -- End of Bug 9393657
210 ELSE
211 /*GET_POUNDS_PENCE(TAXABLE_PAY
212 ,C_PAY_IN_EMP_POUNDS
213 ,C_PAY_IN_EMP_PENCE);
214 GET_POUNDS_PENCE(TAX_PAID
215 ,C_TAX_IN_EMP_POUNDS
216 ,C_TAX_IN_EMP_PENCE);*/
217
218 C_PAY_IN_EMP_POUNDS := TAXABLE_PAY;
219 C_TAX_IN_EMP_POUNDS := TAX_PAID;
220 -- Start of Bug 9393657
221 C_PAY_TD_POUNDS := NULL;
222 --C_PAY_TD_PENCE := '';
223 C_TAX_TD_POUNDS := NULL;
224 --C_TAX_TD_PENCE := '';
225 -- End of Bug 9393657
226 END IF;
227 ELSIF C_3_PART = 'FALSE' THEN
228 IF W1_M1_INDICATOR IS NULL THEN
229 /*GET_POUNDS_PENCE(C_TOTAL_PAY_TD
230 ,C_PAY_TD_POUNDS
231 ,C_PAY_TD_PENCE);
232 GET_POUNDS_PENCE(C_TOTAL_TAX_TD
233 ,C_TAX_TD_POUNDS
234 ,C_TAX_TD_PENCE);*/
235
236 C_PAY_TD_POUNDS := C_TOTAL_PAY_TD;
237 C_TAX_TD_POUNDS := C_TOTAL_TAX_TD;
238
239 IF NVL(PREVIOUS_TAXABLE_PAY
240 ,0) = 0 AND NVL(PREVIOUS_TAX_PAID
241 ,0) = 0 THEN
242 -- End of Bug 9393657
243 C_PAY_IN_EMP_POUNDS := NULL;
244 --C_PAY_IN_EMP_PENCE := '';
245 C_TAX_IN_EMP_POUNDS := NULL;
246 --C_TAX_IN_EMP_PENCE := '';
247 -- End of Bug 9393657
248 ELSE
249 /* GET_POUNDS_PENCE(TAXABLE_PAY
250 ,C_PAY_IN_EMP_POUNDS
251 ,C_PAY_IN_EMP_PENCE);
252 GET_POUNDS_PENCE(TAX_PAID
253 ,C_TAX_IN_EMP_POUNDS
254 ,C_TAX_IN_EMP_PENCE);*/
255 C_PAY_IN_EMP_POUNDS := TAXABLE_PAY;
256 C_TAX_IN_EMP_POUNDS := TAX_PAID;
257 END IF;
258 ELSE
259 /* GET_POUNDS_PENCE(TAXABLE_PAY
260 ,C_PAY_IN_EMP_POUNDS
261 ,C_PAY_IN_EMP_PENCE);
262 GET_POUNDS_PENCE(TAX_PAID
263 ,C_TAX_IN_EMP_POUNDS
264 ,C_TAX_IN_EMP_PENCE);*/
265
266 C_PAY_IN_EMP_POUNDS := TAXABLE_PAY;
267 C_TAX_IN_EMP_POUNDS := TAX_PAID;
268 -- Start of Bug 9393657
269 C_PAY_TD_POUNDS := NULL;
270 --C_PAY_TD_PENCE := '';
271 C_TAX_TD_POUNDS := NULL;
272 --C_TAX_TD_PENCE := '';
273 -- End of Bug 9393657
274 END IF;
275
276
277
278 END IF;
279
280 RETURN NULL;
281 END C_FORMAT_DATA_FORMULA;
282
283 PROCEDURE GET_POUNDS_PENCE(P_TOTAL IN NUMBER
284 ,P_POUNDS IN OUT NOCOPY NUMBER
285 ,P_PENCE IN OUT NOCOPY NUMBER) IS
286 BEGIN
287 IF P_TOTAL <> 0 THEN
288 P_POUNDS := TRUNC(P_TOTAL);
289 P_PENCE := ABS(100 * (P_TOTAL - P_POUNDS));
290 ELSE
291 P_POUNDS := NULL;
292 P_PENCE := NULL;
293 END IF;
294 END GET_POUNDS_PENCE;
295
296 PROCEDURE SPLIT_EMPLOYER_ADDRESS(P_EMPLOYER_ADDRESS IN VARCHAR2
297 ,P_EMP_ADDR_LINE_1 IN OUT NOCOPY VARCHAR2
298 ,P_EMP_ADDR_LINE_2 IN OUT NOCOPY VARCHAR2
299 ,P_EMP_ADDR_LINE_3 IN OUT NOCOPY VARCHAR2) IS
300 LINE_LENGTH CONSTANT NUMBER DEFAULT 34;
301 OUT_LINE1 VARCHAR2(34) := NULL;
302 OUT_LINE2 VARCHAR2(34) := NULL;
303 CURRENT_CHAR VARCHAR2(1);
304 IND NUMBER;
305 REMAINING_CHARS NUMBER;
306 WRAP_POINT NUMBER := 34;
307 P_REMAINING_ADDRESS VARCHAR2(600);
308 BEGIN
309 IF NVL(LENGTH(RTRIM(P_EMPLOYER_ADDRESS))
310 ,0) > 34 THEN
311 FOR ind IN REVERSE 1 .. LINE_LENGTH LOOP
312 CURRENT_CHAR := SUBSTR(P_EMPLOYER_ADDRESS
313 ,IND
314 ,1);
315 IF IND = LINE_LENGTH AND CURRENT_CHAR = ',' THEN
316 WRAP_POINT := LINE_LENGTH;
317 EXIT;
318 ELSIF IND = LINE_LENGTH AND CURRENT_CHAR <> ',' THEN
319 NULL;
320 ELSIF IND < LINE_LENGTH AND CURRENT_CHAR <> ',' THEN
321 NULL;
322 ELSIF IND < LINE_LENGTH AND CURRENT_CHAR = ',' THEN
323 WRAP_POINT := IND;
324 EXIT;
325 END IF;
326 END LOOP;
327 IF length(P_EMPLOYER_ADDRESS) - WRAP_POINT > 34 THEN
328 REMAINING_CHARS := length(P_EMPLOYER_ADDRESS) - WRAP_POINT;
329 P_EMP_ADDR_LINE_1 := SUBSTR(P_EMPLOYER_ADDRESS
330 ,1
331 ,WRAP_POINT);
332 P_REMAINING_ADDRESS := SUBSTR(P_EMPLOYER_ADDRESS
333 ,WRAP_POINT + 1
334 ,REMAINING_CHARS);
335 WRAP_POINT := 34;
336 FOR ind IN REVERSE 1 .. LINE_LENGTH LOOP
337 CURRENT_CHAR := SUBSTR(P_REMAINING_ADDRESS
338 ,IND
339 ,1);
340 IF IND = LINE_LENGTH AND CURRENT_CHAR = ',' THEN
341 WRAP_POINT := LINE_LENGTH;
342 EXIT;
343 ELSIF IND = LINE_LENGTH AND CURRENT_CHAR <> ',' THEN
344 NULL;
345 ELSIF IND < LINE_LENGTH AND CURRENT_CHAR <> ',' THEN
346 NULL;
347 ELSIF IND < LINE_LENGTH AND CURRENT_CHAR = ',' THEN
348 WRAP_POINT := IND;
349 EXIT;
350 END IF;
351 END LOOP;
352 REMAINING_CHARS := length(P_REMAINING_ADDRESS) - WRAP_POINT;
353 P_EMP_ADDR_LINE_2 := LTRIM(SUBSTR(P_REMAINING_ADDRESS
354 ,1
355 ,WRAP_POINT));
356 P_EMP_ADDR_LINE_3 := LTRIM(SUBSTR(P_REMAINING_ADDRESS
357 ,WRAP_POINT + 1
358 ,34));
359 ELSE
360 REMAINING_CHARS := length(P_EMPLOYER_ADDRESS) - WRAP_POINT;
361 P_EMP_ADDR_LINE_1 := SUBSTR(P_EMPLOYER_ADDRESS
362 ,1
363 ,WRAP_POINT);
364 P_EMP_ADDR_LINE_2 := LTRIM(SUBSTR(P_EMPLOYER_ADDRESS
365 ,WRAP_POINT + 1
366 ,34));
367 END IF;
368 ELSE
369 P_EMP_ADDR_LINE_1 := P_EMPLOYER_ADDRESS;
370 P_EMP_ADDR_LINE_2 := NULL;
371 END IF;
372 END SPLIT_EMPLOYER_ADDRESS;
373
374 FUNCTION C_3_PARTFORMULA RETURN VARCHAR2 IS
375 BEGIN
376 DECLARE
377 L_3_PART NUMBER(1);
378 BEGIN
379 SELECT
380 1
381 INTO L_3_PART
382 FROM
383 FF_GLOBALS_F
384 WHERE GLOBAL_NAME = 'P45_REPORT_TYPE'
385 AND SUBSTR(GLOBAL_VALUE
386 ,1
387 ,1) = '3'
388 AND sysdate between EFFECTIVE_START_DATE
389 AND EFFECTIVE_END_DATE;
390 RETURN ('TRUE');
391 EXCEPTION
392 WHEN NO_DATA_FOUND THEN
393 RETURN ('FALSE');
394 END;
395 RETURN NULL;
396 END C_3_PARTFORMULA;
397
398 FUNCTION AFTERREPORT RETURN BOOLEAN IS
399 BEGIN
400 --HR_STANDARD.EVENT('AFTER REPORT');
401 RETURN (TRUE);
402 END AFTERREPORT;
403
404 FUNCTION C_TITLE_P RETURN VARCHAR2 IS
405 BEGIN
406 RETURN C_TITLE;
407 END C_TITLE_P;
408
409 FUNCTION C_NI12_P RETURN VARCHAR2 IS
410 BEGIN
411 RETURN C_NI12;
412 END C_NI12_P;
413
414 FUNCTION C_NI34_P RETURN VARCHAR2 IS
415 BEGIN
416 RETURN C_NI34;
417 END C_NI34_P;
418
419 FUNCTION C_NI56_P RETURN VARCHAR2 IS
420 BEGIN
421 RETURN C_NI56;
422 END C_NI56_P;
423
424 FUNCTION C_NI78_P RETURN VARCHAR2 IS
425 BEGIN
426 RETURN C_NI78;
427 END C_NI78_P;
428
429 FUNCTION C_NI9_P RETURN VARCHAR2 IS
430 BEGIN
431 RETURN C_NI9;
432 END C_NI9_P;
433
434 FUNCTION C_DATE_OF_LEAVING_DD_P RETURN VARCHAR2 IS
435 BEGIN
436 RETURN C_DATE_OF_LEAVING_DD;
437 END C_DATE_OF_LEAVING_DD_P;
438
439 FUNCTION C_DATE_OF_LEAVING_MM_P RETURN VARCHAR2 IS
440 BEGIN
441 RETURN C_DATE_OF_LEAVING_MM;
442 END C_DATE_OF_LEAVING_MM_P;
443
444 FUNCTION C_DATE_OF_LEAVING_YYYY_P RETURN VARCHAR2 IS
445 BEGIN
446 RETURN C_DATE_OF_LEAVING_YYYY;
447 END C_DATE_OF_LEAVING_YYYY_P;
448
449 FUNCTION C_DATE_OF_BIRTH_DD_P RETURN VARCHAR2 IS
450 BEGIN
451 RETURN C_DATE_OF_BIRTH_DD;
452 END C_DATE_OF_BIRTH_DD_P;
453
454 FUNCTION C_DATE_OF_BIRTH_MM_P RETURN VARCHAR2 IS
455 BEGIN
456 RETURN C_DATE_OF_BIRTH_MM;
457 END C_DATE_OF_BIRTH_MM_P;
458
459 FUNCTION C_DATE_OF_BIRTH_YYYY_P RETURN VARCHAR2 IS
460 BEGIN
461 RETURN C_DATE_OF_BIRTH_YYYY;
462 END C_DATE_OF_BIRTH_YYYY_P;
463
464 FUNCTION C_SEX_M_P RETURN VARCHAR2 IS
465 BEGIN
466 RETURN C_SEX_M;
467 END C_SEX_M_P;
468
469 FUNCTION C_SEX_F_P RETURN VARCHAR2 IS
470 BEGIN
471 RETURN C_SEX_F;
472 END C_SEX_F_P;
473
474 FUNCTION C_TOTAL_TAX_TD_P RETURN NUMBER IS
475 BEGIN
476 RETURN C_TOTAL_TAX_TD;
477 END C_TOTAL_TAX_TD_P;
478
479 FUNCTION C_TOTAL_PAY_TD_P RETURN NUMBER IS
480 BEGIN
481 RETURN C_TOTAL_PAY_TD;
482 END C_TOTAL_PAY_TD_P;
483
484 FUNCTION C_PER_ADDRESS_LINE1_P RETURN VARCHAR2 IS
485 BEGIN
486 RETURN C_PER_ADDRESS_LINE1;
487 END C_PER_ADDRESS_LINE1_P;
488
489 FUNCTION C_PER_ADDRESS_LINE2_P RETURN VARCHAR2 IS
490 BEGIN
491 RETURN C_PER_ADDRESS_LINE2;
492 END C_PER_ADDRESS_LINE2_P;
493
494 FUNCTION C_PER_ADDRESS_LINE3_P RETURN VARCHAR2 IS
495 BEGIN
496 RETURN C_PER_ADDRESS_LINE3;
497 END C_PER_ADDRESS_LINE3_P;
498
499 FUNCTION C_PER_ADDRESS_LINE4_P RETURN VARCHAR2 IS
500 BEGIN
501 RETURN C_PER_ADDRESS_LINE4;
502 END C_PER_ADDRESS_LINE4_P;
503
504 FUNCTION C_PAY_IN_EMP_POUNDS_P RETURN NUMBER IS
505 BEGIN
506 if C_PAY_IN_EMP_POUNDS < 0 AND C_W1_M1_INDICATOR IS NULL then -- Bug 9170440 Bug 13441825
507 C_PAY_IN_EMP_POUNDS := NULL; --Bug 9393657
508 end if;
509 RETURN C_PAY_IN_EMP_POUNDS;
510 END C_PAY_IN_EMP_POUNDS_P;
511
512 FUNCTION C_PAY_IN_EMP_PENCE_P RETURN NUMBER IS
513 BEGIN
514 RETURN C_PAY_IN_EMP_PENCE;
515 END C_PAY_IN_EMP_PENCE_P;
516
517 FUNCTION C_TAX_IN_EMP_POUNDS_P RETURN NUMBER IS
518 BEGIN
519 if C_TAX_IN_EMP_POUNDS < 0 AND C_W1_M1_INDICATOR IS NULL then -- Bug 8678216 Bug 13441825
520 C_TAX_IN_EMP_POUNDS := 0; --Bug 9393657 Bug 14243309
521 end if;
522 RETURN C_TAX_IN_EMP_POUNDS;
523 END C_TAX_IN_EMP_POUNDS_P;
524
525 FUNCTION C_TAX_IN_EMP_PENCE_P RETURN NUMBER IS
526 BEGIN
527 RETURN C_TAX_IN_EMP_PENCE;
528 END C_TAX_IN_EMP_PENCE_P;
529
530 FUNCTION C_PAY_TD_POUNDS_P RETURN NUMBER IS
531 BEGIN
532 C_PAY_TD_POUNDS := NVL(C_PAY_TD_POUNDS,0); -- Bug 13441825
533 if C_PAY_TD_POUNDS <= 0 AND C_W1_M1_INDICATOR IS NOT NULL then -- Bug 9170440 Bug 13441825
534 C_PAY_TD_POUNDS := NULL; --Bug 9393657
535 end if;
536 RETURN C_PAY_TD_POUNDS;
537 END C_PAY_TD_POUNDS_P;
538
539 FUNCTION C_PAY_TD_PENCE_P RETURN NUMBER IS
540 BEGIN
541 RETURN C_PAY_TD_PENCE;
542 END C_PAY_TD_PENCE_P;
543
544 FUNCTION C_TAX_TD_POUNDS_P RETURN NUMBER IS
545 BEGIN
546 C_TAX_TD_POUNDS := NVL(C_TAX_TD_POUNDS,0); -- Bug 13441825
547 if C_TAX_TD_POUNDS <= 0 AND C_W1_M1_INDICATOR IS NOT NULL then -- Bug 9170440 Bug 13441825
548 C_TAX_TD_POUNDS := NULL; --Bug 9393657
549 end if;
550 RETURN C_TAX_TD_POUNDS;
551 END C_TAX_TD_POUNDS_P;
552
553 FUNCTION C_TAX_TD_PENCE_P RETURN NUMBER IS
554 BEGIN
555 RETURN C_TAX_TD_PENCE;
556 END C_TAX_TD_PENCE_P;
557
558 FUNCTION C_BUSINESS_GROUP_NAME_P RETURN VARCHAR2 IS
559 BEGIN
560 RETURN C_BUSINESS_GROUP_NAME;
561 END C_BUSINESS_GROUP_NAME_P;
562
563 FUNCTION C_REPORT_SUBTITLE_P RETURN VARCHAR2 IS
564 BEGIN
565 RETURN C_REPORT_SUBTITLE;
566 END C_REPORT_SUBTITLE_P;
567
568 FUNCTION C_FORMULA_ID_P RETURN NUMBER IS
569 BEGIN
570 RETURN C_FORMULA_ID;
571 END C_FORMULA_ID_P;
572
573 FUNCTION C_MESSAGE_P RETURN VARCHAR2 IS
574 BEGIN
575 RETURN C_MESSAGE;
576 END C_MESSAGE_P;
577
578 FUNCTION C_ERS_ADDR_LINE1_P RETURN VARCHAR2 IS
579 BEGIN
580 RETURN C_ERS_ADDR_LINE1;
581 END C_ERS_ADDR_LINE1_P;
582
583 FUNCTION C_ERS_ADDR_LINE2_P RETURN VARCHAR2 IS
584 BEGIN
585 RETURN C_ERS_ADDR_LINE2;
586 END C_ERS_ADDR_LINE2_P;
587
588 FUNCTION C_ERS_ADDR_LINE3_P RETURN VARCHAR2 IS
589 BEGIN
590 RETURN C_ERS_ADDR_LINE3;
591 END C_ERS_ADDR_LINE3_P;
592
593 FUNCTION C_ERS_NAME_P RETURN VARCHAR2 IS
594 BEGIN
595 RETURN C_ERS_NAME;
596 END C_ERS_NAME_P;
597
598 FUNCTION C_TAX_DIST_NO_P RETURN VARCHAR2 IS
599 BEGIN
600 RETURN C_TAX_DIST_NO;
601 END C_TAX_DIST_NO_P;
602
603 FUNCTION C_TAX_DIST_REF_P RETURN VARCHAR2 IS
604 BEGIN
605 RETURN C_TAX_DIST_REF;
606 END C_TAX_DIST_REF_P;
607
608 END PAY_PAYGBP45_A4_PKG;