DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_GB_MULTI_PAYROLL_RUN

Source


1 PACKAGE BODY PAY_GB_MULTI_PAYROLL_RUN
2 /* $Header: pygbmps.pkb 120.0.12020000.2 2013/03/09 07:57:58 ssanjays noship $ */
3 AS
4 
5 
6 
7 
8 
9 /*
10 Procedure to update master and child record in series, ijn response to submit a process
11 like Pre-payments, BACS, Payslip generation, Retro
12 
13 */
14 PROCEDURE UPDATE_MASTER_CHILD(
15   P_CONCURRENT_REQUEST_ID IN NUMBER
16  ,P_PAYROLL_GROUP_ID IN NUMBER
17  ,P_PROCESS_NAME IN VARCHAR2
18  ,P_REQUEST_PARAMETERS IN VARCHAR2
19  ,P_REQUEST_SUBMISSION_DATE IN DATE
20  ,P_CHILD_REQ PAY_GB_MULTI_PAYROLL_RUN.CHILD_REQ)
21 IS
22 
23 BEGIN
24 
25 
26  PAY_GB_MULTI_DML_AND_VAL.ADD_MASTER_CON_DETAILS(
27 	  P_CONCURRENT_REQUEST_ID=>P_CONCURRENT_REQUEST_ID
28 	 ,P_PAYROLL_GROUP_ID=>P_PAYROLL_GROUP_ID
29 	 ,P_PROCESS_NAME=>P_PROCESS_NAME
30 	 ,P_REQUEST_PARAMETERS=>P_REQUEST_PARAMETERS
31 	 ,P_REQUEST_SUBMISSION_DATE=>SYSDATE
32 	);
33 
34 
35 FOR P IN P_CHILD_REQ.FIRST..P_CHILD_REQ.LAST
36 LOOP
37  hr_utility.trace('Child request to be stored:'||P_CHILD_REQ(P));
38 		 PAY_GB_MULTI_DML_AND_VAL.ADD_CHILD_CON_DETAILS(
39 					 P_CHILD_CON_ID=>P_CHILD_REQ(P),P_PARENT_CON_ID =>P_CONCURRENT_REQUEST_ID);
40 END LOOP;
41 
42 END UPDATE_MASTER_CHILD;
43 
44 
45 FUNCTION GET_PERIOD_NAME(P_TIME_PERIOD_NAME IN VARCHAR, P_PAYROLL_ID IN NUMBER)
46 RETURN NUMBER
47 IS
48 
49 V_TIME_PERIOD_ID NUMBER;
50 BEGIN
51 
52 	SELECT PTP.TIME_PERIOD_ID INTO
53 			V_TIME_PERIOD_ID
54 			FROM PER_TIME_PERIODS PTP
55 			WHERE PTP.PERIOD_NAME=P_TIME_PERIOD_NAME
56 			AND   PTP.PAYROLL_ID=P_PAYROLL_ID;
57 
58 RETURN V_TIME_PERIOD_ID;
59 
60 END GET_PERIOD_NAME;
61 
62 /*
63 Procedure to Bulk Run for Payroll Run UK
64 */
65 
66 PROCEDURE RUN_PAYROLL_UK(
67   errbuf  OUT NOCOPY VARCHAR2
68  ,retcode  OUT NOCOPY NUMBER
69 ,P_PAYROLL_GROUP_ID IN NUMBER
70 ,P_TIME_PERIOD_NAME IN VARCHAR
71 ,P_ELEMENT_SET_NAME IN NUMBER
72 ,P_RUN_TYPE IN NUMBER
73 ,P_ACTION_PARAMETER_GROUP IN VARCHAR2
74 )
75 
76  IS
77 
78 V_CONDOLIDATION_SET_ID NUMBER;
79 V_REGULAR_PAY_DATE DATE;
80 V_END_DATE DATE;
81 V_RUN_TYPE_ID NUMBER;
82 L_REQ_ID NUMBER;
83 V_PERIOD_ID NUMBER;
84 PAR_REQ_ID NUMBER;
85 PAR_REQ_PARAMS VARCHAR2(240);
86 l_ARGUMENT7    VARCHAR2(240);
87 l_ARGUMENT9    VARCHAR2(240):=P_ACTION_PARAMETER_GROUP;
88 l_ARGUMENT10   VARCHAR2(240);
89 l_profile_value VARCHAR2(240);
90 
91 
92 T_CHILD_REQ CHILD_REQ;
93 REQ_COUNT NUMBER;
94 
95  BEGIN
96 
97      hr_utility.trace('Inside '||PAY_GB_MULTI_PAYROLL_RUN.g_package);
98           hr_utility.trace('P_RUN_TYPE:'||P_RUN_TYPE);
99 hr_utility.trace('P_TIME_PERIOD_NAME'||P_TIME_PERIOD_NAME);
100 
101 
102 REQ_COUNT:=0;
103  FOR PAY_RUN IN CSR_ALL_PAYROLLS(P_PAYROLL_GROUP_ID)
104 
105  LOOP
106 
107      hr_utility.trace('Payroll_Id:'||PAY_RUN.PAYROLL_ID);
108      OPEN CSR_PAYROLL_PARAMETERS(PAY_RUN.PAYROLL_ID,P_TIME_PERIOD_NAME);
109           FETCH CSR_PAYROLL_PARAMETERS INTO V_CONDOLIDATION_SET_ID, V_REGULAR_PAY_DATE,V_END_DATE;
110           hr_utility.trace('V_CONDOLIDATION_SET--_V_REGULAR_PAY_DATE --V_END_DATE are:'||V_CONDOLIDATION_SET_ID||'-'||V_REGULAR_PAY_DATE||'-'||V_END_DATE);
111           hr_utility.trace('Payroll_id'||PAY_RUN.payroll_id);
112           hr_utility.trace('EARNED DATE:'||V_END_DATE);
113           hr_utility.trace('V_REGULAR_PAY_DATE:'||V_REGULAR_PAY_DATE);
114           hr_utility.trace('P_ELEMENT_SET_NAME:'||P_ELEMENT_SET_NAME);
115 
116 
117   					L_REQ_ID := FND_REQUEST.SUBMIT_REQUEST(
118             			APPLICATION       =>       'PAY'
119 								, PROGRAM           =>       'PAYROLL_RUN_UK'
120 								, DESCRIPTION       =>       NULL
121 								, START_TIME        =>       SYSDATE
122 								, SUB_REQUEST       =>      FALSE
123 								, ARGUMENT1         =>      'RUN'
124 								, ARGUMENT2        =>        PAY_RUN.payroll_id
125 								, ARGUMENT3        =>        V_CONDOLIDATION_SET_ID
126 								, ARGUMENT4        =>        fnd_date.date_to_canonical(V_END_DATE)
127 								, ARGUMENT5        =>        fnd_date.date_to_canonical(V_REGULAR_PAY_DATE)
128 								, ARGUMENT6        =>        P_ELEMENT_SET_NAME
129 								, ARGUMENT7        =>        l_ARGUMENT7
130 								, ARGUMENT8        =>        TO_NUMBER(P_RUN_TYPE)
131 								, ARGUMENT9        =>        l_ARGUMENT9
132 								, ARGUMENT10       =>        l_ARGUMENT10
133 						);
134 
135           hr_utility.trace('Concurrent Request Submitted for Payroll:'||PAY_RUN.payroll_id||'-'||L_REQ_ID);
136 			CLOSE CSR_PAYROLL_PARAMETERS;
137 T_CHILD_REQ(REQ_COUNT):=L_REQ_ID;
138 hr_utility.trace('Child request copied is:'||T_CHILD_REQ(REQ_COUNT));
139 REQ_COUNT:=REQ_COUNT+1;
140  END LOOP;
141 
142 OPEN CSR_PARENT_REQ_ID(L_REQ_ID);
143   FETCH CSR_PARENT_REQ_ID INTO PAR_REQ_ID, PAR_REQ_PARAMS;
144 CLOSE CSR_PARENT_REQ_ID;
145 
146 PAR_REQ_PARAMS:=PAR_REQ_PARAMS ||',ROLLBACK_PARAM=' ||P_TIME_PERIOD_NAME;
147 hr_utility.trace('Master request details stored are:'||PAR_REQ_ID||'-'||PAR_REQ_PARAMS);
148 
149 /*
150 Storing into the master and child tables
151 */
152 
153 --ADDING MASTER DETAILS
154 /*
155 Call to update the master and child record
156 */
157 
158   PAY_GB_MULTI_PAYROLL_RUN.UPDATE_MASTER_CHILD(
159  		 P_CONCURRENT_REQUEST_ID=>PAR_REQ_ID
160 	  ,P_PAYROLL_GROUP_ID =>P_PAYROLL_GROUP_ID
161 	  ,P_PROCESS_NAME =>'Payroll Run UK Multiple'
162 	  ,P_REQUEST_PARAMETERS =>PAR_REQ_PARAMS
163 	  ,P_REQUEST_SUBMISSION_DATE =>SYSDATE
164     ,P_CHILD_REQ =>T_CHILD_REQ);
165 
166 hr_utility.trace('after inserting into master and child records:');
167 
168  END RUN_PAYROLL_UK;
169 
170 
171 /*
172 Procedure to Run Bulk Prepayments
173 
174 */
175 PROCEDURE RUN_PREPAYMENTS_UK(
176   ERRBUF  OUT NOCOPY VARCHAR2
177  ,RETCODE  OUT NOCOPY NUMBER
178 ,P_PAYROLL_GROUP_ID IN NUMBER
179 ,P_START_DATE IN VARCHAR2
180 ,P_END_DATE IN VARCHAR2
181 ,P_PAYMENT_OVERRIDE_Y_N IN VARCHAR
182 ,P_PAYMENT_OVERRIDE_NAME IN VARCHAR
183 ,P_ACTION_PARAMETER_GROUP IN VARCHAR2
184 )
185 
186 IS
187 
188 L_REQ_ID NUMBER;
189 V_CONDOLIDATION_SET_ID NUMBER;
190 V_REGULAR_PAY_DATE DATE;
191 V_END_DATE DATE;
192 V_RUN_TYPE_ID      NUMBER;
193 l_ARGUMENT7        VARCHAR2(240);
194 l_ARGUMENT9        VARCHAR2(240);
195 l_ARGUMENT8        VARCHAR2(240);
196 PAR_REQ_ID NUMBER;
197 PAR_REQ_PARAMS VARCHAR2(240);
198 
199 
200 CURSOR CSR_DEF_PAY_METHOD (P_PAYROLL_ID IN NUMBER) IS
201 SELECT DISTINCT POPMF.ORG_PAYMENT_METHOD_NAME
202 FROM
203 PAY_ALL_PAYROLLS_F PAPF,
204 PAY_ORG_PAYMENT_METHODS_F POPMF
205 WHERE PAPF.DEFAULT_PAYMENT_METHOD_ID=POPMF.ORG_PAYMENT_METHOD_ID
206 AND   PAPF.BUSINESS_GROUP_ID=POPMF.BUSINESS_GROUP_ID
207 AND   PAPF.PAYROLL_ID=P_PAYROLL_ID;
208 
209 
210 
211 CURSOR CSR_GET_CONS_ID(P_PAYROLL_ID IN NUMBER)
212 IS
213 SELECT CONSOLIDATION_SET_ID
214 FROM PAY_ALL_PAYROLLS_F
215 WHERE PAYROLL_ID=P_PAYROLL_ID;
216 
217 T_CHILD_REQ CHILD_REQ;
218 REQ_COUNT NUMBER;
219 L_END_DATE DATE;
220 V_PAYMENT_OVERRIDE_NAME VARCHAR2(100);
221 
222 BEGIN
223 
224 
225 
226 		      hr_utility.trace('Inside:'||PAY_GB_MULTI_PAYROLL_RUN.g_package);
227 				  hr_utility.trace('P_START_DATE'||P_START_DATE);
228 					hr_utility.trace('P_END_DATE'||P_END_DATE);
229 					hr_utility.trace('P_PAYMENT_METHOD_OVERRIDE:'||P_PAYMENT_OVERRIDE_Y_N);
230 
231 
232 REQ_COUNT:=0;
233 
234 
235 IF P_PAYMENT_OVERRIDE_Y_N='Yes' THEN
236    V_PAYMENT_OVERRIDE_NAME:=P_PAYMENT_OVERRIDE_NAME;
237 END IF;
238 
239 
240  FOR PAY_RUN IN CSR_ALL_PAYROLLS(P_PAYROLL_GROUP_ID)
241  LOOP
242 
243    hr_utility.trace('Payroll_Id:'||PAY_RUN.PAYROLL_ID);
244    OPEN CSR_GET_CONS_ID(PAY_RUN.PAYROLL_ID);
245                  FETCH CSR_GET_CONS_ID INTO V_CONDOLIDATION_SET_ID;
246 
247 					L_REQ_ID := FND_REQUEST.SUBMIT_REQUEST(
248  	           			APPLICATION       =>       'PAY'
249 								, PROGRAM           =>       'PREPAY'
250 								, DESCRIPTION       =>       NULL
251 								, START_TIME        =>       SYSDATE
252 								, SUB_REQUEST        =>      FALSE
253 								, ARGUMENT1          =>      'PREPAY'
254 								, ARGUMENT2        =>        PAY_RUN.payroll_id
255 								, ARGUMENT3        =>        V_CONDOLIDATION_SET_ID
256 								, ARGUMENT4        =>        P_START_DATE
257 								, ARGUMENT5        =>        P_END_DATE
258 								, ARGUMENT6        =>        V_PAYMENT_OVERRIDE_NAME
259                 , ARGUMENT7        =>        P_ACTION_PARAMETER_GROUP
260 						);
261 
262       hr_utility.trace('Leaving one process: request id: is'||L_REQ_ID);
263      CLOSE CSR_GET_CONS_ID;
264 T_CHILD_REQ(REQ_COUNT):=L_REQ_ID;
265 hr_utility.trace('Child request copied is:'||T_CHILD_REQ(REQ_COUNT));
266 REQ_COUNT:=REQ_COUNT+1;
267   END LOOP;
268 
269 OPEN CSR_PARENT_REQ_ID(L_REQ_ID);
270   FETCH CSR_PARENT_REQ_ID INTO PAR_REQ_ID, PAR_REQ_PARAMS;
271 CLOSE CSR_PARENT_REQ_ID;
272 
273 hr_utility.trace('Master request details stored are:'||PAR_REQ_ID||'-'||PAR_REQ_PARAMS);
274 
275 /*
276 Storing into the master and child tables
277 */
278 /*
279 procedure call
280 */
281 
282 PAR_REQ_PARAMS:=PAR_REQ_PARAMS || 'ROLLBACK_PARAM=' ||P_END_DATE;
283 
284   PAY_GB_MULTI_PAYROLL_RUN.UPDATE_MASTER_CHILD(
285  		 P_CONCURRENT_REQUEST_ID=>PAR_REQ_ID
286 	  ,P_PAYROLL_GROUP_ID =>P_PAYROLL_GROUP_ID
287 	  ,P_PROCESS_NAME =>'Pre-payments'
288 	  ,P_REQUEST_PARAMETERS =>PAR_REQ_PARAMS
289 	  ,P_REQUEST_SUBMISSION_DATE =>SYSDATE
290     ,P_CHILD_REQ =>T_CHILD_REQ);
291 --ADDING MASTER DETAILS
292 
293 hr_utility.trace('Child records also updated successfully');
294 
295 END RUN_PREPAYMENTS_UK;
296 
297 
298 
299 /*
300 Bulk BACS submission
301 */
302 PROCEDURE RUN_BACS_UK(
303   ERRBUF  OUT NOCOPY VARCHAR2
304  ,RETCODE  OUT NOCOPY NUMBER
305  ,P_PAYROLL_GROUP_ID IN NUMBER
306  ,P_START_DATE IN VARCHAR
307  ,P_END_DATE IN VARCHAR
308  ,P_PAYMENT_TYPE IN VARCHAR2
309  ,P_PAYMENT_METHOD IN VARCHAR2
310  ,P_PROCESS_DATE IN VARCHAR
311  ,P_ACTION_PARAMETER_GROUP IN VARCHAR2
312  ,P_SORT_SEQUENCE IN VARCHAR2
313  ,P_SUBMISSION_NUMBER IN NUMBER
314  ,P_EXPIRATION_DATE IN VARCHAR
315  ,P_AUDIT_SAM_FREQ IN NUMBER
316  ,P_B_REPORT_TYPE IN VARCHAR2
317  ,P_B_FORMAT_TYPE IN VARCHAR2
318 )
319 IS
320 
321 L_REQ_ID NUMBER;
322 V_SUBMISSION_NUMBER_HID VARCHAR2(200);
323 V_EXPIR_DATE_HID VARCHAR2(300);
324 V_AUDIT_SAMPLE_HID VARCHAR2(50);
325 V_CONDOLIDATION_SET_ID NUMBER;
326 PAR_REQ_ID NUMBER;
327 PAR_REQ_PARAMS VARCHAR2(240);
328 T_CHILD_REQ CHILD_REQ;
329 REQ_COUNT NUMBER;
330 
331 CURSOR CSR_GET_CONS_ID(P_PAYROLL_ID IN NUMBER)
332 IS
333 SELECT CONSOLIDATION_SET_ID
334 FROM PAY_ALL_PAYROLLS_F
335 WHERE PAYROLL_ID=P_PAYROLL_ID;
336 
337 BEGIN
338 
339 		      hr_utility.trace('Inside:RUN_BACS_UK');
340 					hr_utility.trace('P_PAYROLL_GROUP_NAME:'||P_PAYROLL_GROUP_ID);
341 				  hr_utility.trace('P_START_DATE'||P_START_DATE);
342 					hr_utility.trace('P_END_DATE'||P_END_DATE);
343 					hr_utility.trace('P_PAYMENT_TYPE:'||'BACS Tape');
344 					hr_utility.trace('P_PAYMENT_METHOD:'||P_PAYMENT_METHOD);
345 					hr_utility.trace('P_PROCESS_DATE:'||P_PROCESS_DATE);
346 					hr_utility.trace('P_ACTION_PARAMETER_GROUP:'||P_ACTION_PARAMETER_GROUP);
347 					hr_utility.trace('P_SORT_SEQUENCE:'||P_SORT_SEQUENCE);
348 					hr_utility.trace('P_SUBMISSION_NUMBER:'||P_SUBMISSION_NUMBER);
349 					hr_utility.trace('P_EXPIRATION_DATE:'||P_EXPIRATION_DATE);
350 					hr_utility.trace('P_AUDIT_SAM_FREQ:'||P_AUDIT_SAM_FREQ);
351 					hr_utility.trace('P_B_REPORT_TYPE:'||P_B_REPORT_TYPE);
352 					hr_utility.trace('P_B_FORMAT_TYPE:'||P_B_FORMAT_TYPE);
353 
354 
355 REQ_COUNT:=0;
356  FOR PAY_RUN IN CSR_ALL_PAYROLLS(P_PAYROLL_GROUP_ID)
357  LOOP
358 
359   V_AUDIT_SAMPLE_HID:='TRANSFER_SELECT_COUNT='||lpad(nvl(P_AUDIT_SAM_FREQ,'0'),4,'0');
360 	V_EXPIR_DATE_HID:='TRANSFER_EXPIRY_DATE='||to_char(to_date('2012/12/12', 'YYYY/MM/DD HH24:MI:SS'),'YYYY/MM/DD HH24:MI:SS');
361   V_SUBMISSION_NUMBER_HID:='SUBMISSION_NUMBER='||P_SUBMISSION_NUMBER;
362 
363 					hr_utility.trace('V_AUDIT_SAMPLE_HID:'||V_AUDIT_SAMPLE_HID);
364 					hr_utility.trace('V_EXPIR_DATE_HID:'||V_EXPIR_DATE_HID);
365 					hr_utility.trace('V_SUBMISSION_NUMBER_HID:'||V_SUBMISSION_NUMBER_HID);
366 
367  OPEN CSR_GET_CONS_ID(PAY_RUN.payroll_id);
368    FETCH CSR_GET_CONS_ID INTO V_CONDOLIDATION_SET_ID;
369 
370 					hr_utility.trace('V_CONDOLIDATION_SET_ID:'||V_CONDOLIDATION_SET_ID);
371 
372 					L_REQ_ID := FND_REQUEST.SUBMIT_REQUEST(
373  	           			APPLICATION       =>       'PAY'
374 								, PROGRAM           =>       'BACS'
375 								, DESCRIPTION       =>       NULL
376 								, START_TIME        =>       SYSDATE
380 								, ARGUMENT3        =>        V_CONDOLIDATION_SET_ID
377 								, SUB_REQUEST        =>      FALSE
378 								, ARGUMENT1          =>      'MAGTAPE'
379 								, ARGUMENT2        =>        PAY_RUN.payroll_id
381 								, ARGUMENT4        =>        P_START_DATE
382 								, ARGUMENT5        =>        P_END_DATE
383 								, ARGUMENT6        =>        P_PAYMENT_TYPE
384                 , ARGUMENT7        =>        P_PAYMENT_METHOD
385 								, ARGUMENT8        =>        P_PROCESS_DATE
386 								, ARGUMENT9        =>        P_ACTION_PARAMETER_GROUP
387 								, ARGUMENT10        =>       P_SORT_SEQUENCE
388 								, ARGUMENT11        =>       P_SUBMISSION_NUMBER
389                 , ARGUMENT12        =>       V_SUBMISSION_NUMBER_HID
390 								, ARGUMENT13          =>     P_EXPIRATION_DATE
391 								, ARGUMENT14        =>       V_EXPIR_DATE_HID
392 								, ARGUMENT15       =>        P_AUDIT_SAM_FREQ
393 								, ARGUMENT16        =>       V_AUDIT_SAMPLE_HID
394 								, ARGUMENT17        =>       P_B_REPORT_TYPE
395 								, ARGUMENT18       =>        P_B_FORMAT_TYPE
396 						);
397  CLOSE CSR_GET_CONS_ID;
398 T_CHILD_REQ(REQ_COUNT):=L_REQ_ID;
399 hr_utility.trace('Child request copied is:'||T_CHILD_REQ(REQ_COUNT));
400 REQ_COUNT:=REQ_COUNT+1;
401  END LOOP;
402 
403 
404 OPEN CSR_PARENT_REQ_ID(L_REQ_ID);
405   FETCH CSR_PARENT_REQ_ID INTO PAR_REQ_ID, PAR_REQ_PARAMS;
406 CLOSE CSR_PARENT_REQ_ID;
407 
408 PAR_REQ_PARAMS:=PAR_REQ_PARAMS ||'ROLLBACK_PARAM=' ||P_END_DATE;
409 
410   PAY_GB_MULTI_PAYROLL_RUN.UPDATE_MASTER_CHILD(
411  		 P_CONCURRENT_REQUEST_ID=>PAR_REQ_ID
412 	  ,P_PAYROLL_GROUP_ID =>P_PAYROLL_GROUP_ID
413 	  ,P_PROCESS_NAME =>'Magnetic transfer'
414 	  ,P_REQUEST_PARAMETERS =>PAR_REQ_PARAMS
415 	  ,P_REQUEST_SUBMISSION_DATE =>SYSDATE
416     ,P_CHILD_REQ =>T_CHILD_REQ);
417 
418 END RUN_BACS_UK;
419 
420 
421 
422 /*
423 Run Bulk Cheque Writer Process
424 */
425 PROCEDURE RUN_CHEQUE_WRITER_UK(
426   ERRBUF  OUT NOCOPY VARCHAR2
427  ,RETCODE  OUT NOCOPY NUMBER
428 ,P_PAYROLL_GROUP_ID IN NUMBER
429  ,P_START_DATE IN VARCHAR2
430  ,P_END_DATE IN VARCHAR2
431  ,P_PAYMENT_TYPE IN VARCHAR2
432  ,P_PAYMENT_METHOD IN VARCHAR2
433  ,P_SORT_SEQUENCE IN VARCHAR2
434  ,P_CHEQUE_STYLE IN VARCHAR2
435  ,P_CHEQUE_START_NUMBER IN NUMBER
436  ,P_CHEQUE_END_NUMBER IN NUMBER
437  ,P_ACTION_PARAMETER_GROUP IN VARCHAR2
438 )
439 
440 IS
441 
442 L_REQ_ID NUMBER;
443 V_CONDOLIDATION_SET_ID NUMBER;
444 V_START_CHEQUE_NUMBER NUMBER;
445 T_START_CHEQUE_NUMBER NUMBER;
446 PAR_REQ_ID NUMBER;
447 PAR_REQ_PARAMS VARCHAR2(240);
448 T_CHILD_REQ CHILD_REQ;
449 REQ_COUNT NUMBER;
450 /*
451 CURSOR
452 */
453 CURSOR CSR_NEXT_CHEQUE_SEQUENCE (P_PAYROLL_ID IN NUMBER)
454 IS
455 SELECT COUNT(*)
456 FROM
457 PAY_PRE_PAYMENTS PPP
458 ,PAY_ASSIGNMENT_ACTIONS PAA
459 ,PER_ALL_ASSIGNMENTS_F PAAF
460 ,PAY_ORG_PAYMENT_METHODS_F POPMF
461 ,PER_TIME_PERIODS PTP
462 WHERE PPP.ASSIGNMENT_ACTION_ID=PAA.ASSIGNMENT_ACTION_ID
463 AND   PAA.ASSIGNMENT_ID=PAAF.ASSIGNMENT_ID
464 AND   PAAF.PAYROLL_ID=PTP.PAYROLL_ID
465 AND   PAAF.PAYROLL_ID=P_PAYROLL_ID
466 AND   PTP.START_DATE>=FND_DATE.CANONICAL_TO_DATE(P_START_DATE)
467 AND   PTP.END_DATE<=FND_DATE.CANONICAL_TO_DATE(P_END_DATE)
468 AND   POPMF.ORG_PAYMENT_METHOD_NAME='Cheque'
469 AND   PPP.ORG_PAYMENT_METHOD_ID=POPMF.ORG_PAYMENT_METHOD_ID;
470 
471 
472 CURSOR CSR_GET_CONS_ID(P_PAYROLL_ID IN NUMBER)
473 IS
474 SELECT CONSOLIDATION_SET_ID
475 FROM PAY_ALL_PAYROLLS_F
476 WHERE PAYROLL_ID=P_PAYROLL_ID;
477 
478 BEGIN
479 REQ_COUNT:=0;
480 
481 V_START_CHEQUE_NUMBER:=P_CHEQUE_START_NUMBER;
482 
483 
484 hr_utility.trace('P_START_DATE:'||P_START_DATE);
485  FOR PAY_RUN IN CSR_ALL_PAYROLLS(P_PAYROLL_GROUP_ID)
486  LOOP
487   OPEN CSR_GET_CONS_ID(PAY_RUN.payroll_id);
488     FETCH CSR_GET_CONS_ID INTO V_CONDOLIDATION_SET_ID;
489 
490 
491   hr_utility.trace('Start cheque number for payrollL'||PAY_RUN.payroll_id||V_START_CHEQUE_NUMBER);
492 
493 
494 
495 
496               L_REQ_ID := FND_REQUEST.SUBMIT_REQUEST(
497  	           			APPLICATION       =>       'PAY'
498 								, PROGRAM           =>       'CHEQUE_WRITER'
499 								, DESCRIPTION       =>       NULL
500 								, START_TIME        =>       SYSDATE
501 								, SUB_REQUEST        =>      FALSE
502 								, ARGUMENT1          =>      'CHEQUE'
503 								, ARGUMENT2        =>        PAY_RUN.payroll_id
504 								, ARGUMENT3        =>        V_CONDOLIDATION_SET_ID
505 								, ARGUMENT4        =>        P_START_DATE
506 								, ARGUMENT5        =>        P_END_DATE
507 								, ARGUMENT6        =>        P_PAYMENT_TYPE
508                 , ARGUMENT7        =>        P_PAYMENT_METHOD
509 								, ARGUMENT8        =>        P_SORT_SEQUENCE
510 								, ARGUMENT9        =>        P_CHEQUE_STYLE
511 								, ARGUMENT10        =>       V_START_CHEQUE_NUMBER
512 								, ARGUMENT11        =>       P_CHEQUE_END_NUMBER
513                 , ARGUMENT12        =>       P_ACTION_PARAMETER_GROUP
514 						);
515    CLOSE CSR_GET_CONS_ID;
516     hr_utility.trace('V_CONDOLIDATION_SET_ID:'||V_CONDOLIDATION_SET_ID);
517     hr_utility.trace('request_id:'||L_REQ_ID);
518    T_CHILD_REQ(REQ_COUNT):=L_REQ_ID;
519     hr_utility.trace('REQ_COUNT:'||REQ_COUNT);
520     REQ_COUNT:=REQ_COUNT+1;
521     hr_utility.trace('REQ_COUNT:'||REQ_COUNT);
522    --hr_utility.trace('Child request copied is:'||T_CHILD_REQ(REQ_COUNT));
523     OPEN  CSR_NEXT_CHEQUE_SEQUENCE(PAY_RUN.payroll_id);
524       FETCH CSR_NEXT_CHEQUE_SEQUENCE INTO T_START_CHEQUE_NUMBER;
525     CLOSE CSR_NEXT_CHEQUE_SEQUENCE;
526 
530  END LOOP;
527 V_START_CHEQUE_NUMBER:=V_START_CHEQUE_NUMBER+T_START_CHEQUE_NUMBER;
528 hr_utility.trace('V_START_CHEQUE_NUMBER:'||V_START_CHEQUE_NUMBER);
529 
531 hr_utility.trace('Loop over');
532 OPEN CSR_PARENT_REQ_ID(L_REQ_ID);
533   FETCH CSR_PARENT_REQ_ID INTO PAR_REQ_ID, PAR_REQ_PARAMS;
534 CLOSE CSR_PARENT_REQ_ID;
535 
536 
537 PAR_REQ_PARAMS:=PAR_REQ_PARAMS ||'ROLLBACK_PARAM=' ||P_END_DATE;
538 
539   PAY_GB_MULTI_PAYROLL_RUN.UPDATE_MASTER_CHILD(
540  		 P_CONCURRENT_REQUEST_ID=>PAR_REQ_ID
541 	  ,P_PAYROLL_GROUP_ID =>P_PAYROLL_GROUP_ID
542 	  ,P_PROCESS_NAME =>'Cheque writer'
543 	  ,P_REQUEST_PARAMETERS =>PAR_REQ_PARAMS
544 	  ,P_REQUEST_SUBMISSION_DATE =>SYSDATE
545     ,P_CHILD_REQ =>T_CHILD_REQ);
546 
547 
548 
549 END RUN_CHEQUE_WRITER_UK;
550 
551 
552 
553 /*
554 Run Bulk Self Service PaySlip Generation
555 */
556 PROCEDURE RUN_SS_PAY_SLIP_UK(
557 
558  ERRBUF  OUT NOCOPY VARCHAR2
559 ,RETCODE  OUT NOCOPY NUMBER
560 ,P_START_DATE IN VARCHAR
561 ,P_EFFECTIVE_DATE IN VARCHAR
562 ,P_BUSINESS_GROUP_ID IN NUMBER
563 ,P_ACTION_PARAMETER_GROUP IN VARCHAR2
564 ,P_END_DATE IN VARCHAR2
565 ,P_PAYROLL_GROUP_ID IN NUMBER
566 ,P_ARCHIVE_START_DATE IN VARCHAR2
567 ,P_ARCHIVE_END_DATE IN VARCHAR
568 ,P_ARCHIVE_START_DATE_HIDDEN IN VARCHAR2
569 ,P_ARCHIVE_END_DATE_HIDDEN IN VARCHAR2
570 )
571 
572 
573 IS
574 
575 V_CONDOLIDATION_SET_ID NUMBER;
576 L_REQ_ID NUMBER;
577 V_CONSOLIDATION_SET_NAME VARCHAR2(300);
578 V_CONSOLIDATION_SET_NAME_HID VARCHAR2(300);
579 V_CONSOLIDATION_SET_ID NUMBER;
580 V_MAG_FILE_NAME VARCHAR2(30);
581 V_REP_FILE_NAME VARCHAR2(30);
582 V_PAYROLL_ID_HID varchar2(200);
583 PAR_REQ_ID NUMBER;
584 PAR_REQ_PARAMS VARCHAR2(240);
585 T_CHILD_REQ CHILD_REQ;
586 REQ_COUNT NUMBER;
587 
588 CURSOR CSR_CONS_DET (P_PAYROLL_ID IN NUMBER)
589 IS
590 
591 SELECT PCS.CONSOLIDATION_SET_ID FROM
592 PAY_ALL_PAYROLLS_F PAPF,
593 PAY_CONSOLIDATION_SETS PCS
594 WHERE PAPF.CONSOLIDATION_SET_ID=PCS.CONSOLIDATION_SET_ID
595 AND   PAPF.PAYROLL_ID=P_PAYROLL_ID;
596 
597 BEGIN
598 
599 
600 
601     hr_utility.trace('P_PAYROLL_GROUP_NAME:'||P_PAYROLL_GROUP_ID);
602     hr_utility.trace('P_START_DATE:'||P_START_DATE);
603     hr_utility.trace('P_EFFECTIVE_DATE:'||P_EFFECTIVE_DATE);
604     hr_utility.trace('P_BUSINESS_GROUP_ID:'||P_BUSINESS_GROUP_ID);
605     hr_utility.trace('P_MAG_FILE_NAME:'||V_MAG_FILE_NAME);
606     hr_utility.trace('P_REP_FILE_NAME:'||V_REP_FILE_NAME);
607     hr_utility.trace('P_ACTION_PARAMETER_GROUP:'||P_ACTION_PARAMETER_GROUP);
608     hr_utility.trace('P_END_DATE:'||P_END_DATE);
609     hr_utility.trace('P_ARCHIVE_START_DATE:'||P_ARCHIVE_START_DATE);
610     hr_utility.trace('P_ARCHIVE_END_DATE:'||P_ARCHIVE_END_DATE);
611     hr_utility.trace('P_ARCHIVE_START_DATE_HIDDEN:'||P_ARCHIVE_START_DATE_HIDDEN);
612     hr_utility.trace('P_ARCHIVE_END_DATE_HIDDEN:'||P_ARCHIVE_END_DATE_HIDDEN);
613     hr_utility.trace('P_PAYROLL_ID_HID:'|| V_PAYROLL_ID_HID);
614     hr_utility.trace('V_CONSOLIDATION_SET_NAME:'||V_CONSOLIDATION_SET_NAME);
615 
616 REQ_COUNT:=0;
617  FOR PAY_RUN IN CSR_ALL_PAYROLLS(P_PAYROLL_GROUP_ID)
618  LOOP
619   OPEN CSR_CONS_DET(PAY_RUN.PAYROLL_ID);
620        FETCH CSR_CONS_DET INTO V_CONSOLIDATION_SET_ID;
621              V_PAYROLL_ID_HID:='PAYROLL='||PAY_RUN.PAYROLL_ID;
622   					 V_CONSOLIDATION_SET_NAME_HID:='CONSOLIDATION='||V_CONSOLIDATION_SET_ID;
623         hr_utility.trace('Payroll Id is:'||PAY_RUN.PAYROLL_ID);
624         hr_utility.trace('Payroll Id is:'||V_PAYROLL_ID_HID);
625         hr_utility.trace('V_CONSOLIDATION_SET_NAME_HID:'||V_CONSOLIDATION_SET_NAME_HID);
626 
627        L_REQ_ID := FND_REQUEST.SUBMIT_REQUEST(
628  	           			APPLICATION       =>       'PAY'
629 								, PROGRAM           =>       'UKPSGEN'
630 								, DESCRIPTION       =>       NULL
631 								, START_TIME        =>       SYSDATE
632 								, SUB_REQUEST        =>      FALSE
633 								, ARGUMENT1          =>      'ARCHIVE'
634 								, ARGUMENT2        =>        'UKPS'
635 								, ARGUMENT3        =>        'GB'
636 								, ARGUMENT4        =>         P_START_DATE
637 								, ARGUMENT5        =>         P_EFFECTIVE_DATE
638 								, ARGUMENT6        =>        'ARCHIVE'
639                 , ARGUMENT7        =>         P_BUSINESS_GROUP_ID
640                 , ARGUMENT8        =>         V_MAG_FILE_NAME
641                 , ARGUMENT9        =>         V_REP_FILE_NAME
642                 , ARGUMENT10        =>        P_ACTION_PARAMETER_GROUP
643                 , ARGUMENT11        =>        P_END_DATE
644                 , ARGUMENT12        =>        PAY_RUN.PAYROLL_ID
645                 , ARGUMENT13        =>        V_CONSOLIDATION_SET_ID
646                 , ARGUMENT14        =>        P_ARCHIVE_START_DATE
647                 , ARGUMENT15        =>        P_ARCHIVE_END_DATE
648                 , ARGUMENT16        =>        PAY_RUN.PAYROLL_ID
649                 , ARGUMENT17        =>        V_CONSOLIDATION_SET_NAME_HID
650                 , ARGUMENT18        =>        P_ARCHIVE_START_DATE_HIDDEN
651                 , ARGUMENT19        =>        P_ARCHIVE_END_DATE_HIDDEN
652 						);
653 
654 
655   CLOSE CSR_CONS_DET;
656   hr_utility.trace('Request Id: for payroll: '|| PAY_RUN.payroll_id ||' is:' ||L_REQ_ID);
657    T_CHILD_REQ(REQ_COUNT):=L_REQ_ID;
658    REQ_COUNT:=REQ_COUNT+1;
659   hr_utility.trace('REQ_COUNT:'||REQ_COUNT);
660  END LOOP;
661 OPEN CSR_PARENT_REQ_ID(L_REQ_ID);
662   FETCH CSR_PARENT_REQ_ID INTO PAR_REQ_ID, PAR_REQ_PARAMS;
663 CLOSE CSR_PARENT_REQ_ID;
664 
665 PAR_REQ_PARAMS:=PAR_REQ_PARAMS || 'ROLLBACK_PARAM=' ||P_END_DATE;
666 
667   PAY_GB_MULTI_PAYROLL_RUN.UPDATE_MASTER_CHILD(
668  		 P_CONCURRENT_REQUEST_ID=>PAR_REQ_ID
672 	  ,P_REQUEST_SUBMISSION_DATE =>SYSDATE
669 	  ,P_PAYROLL_GROUP_ID =>P_PAYROLL_GROUP_ID
670 	  ,P_PROCESS_NAME =>'Magnetic report'
671 	  ,P_REQUEST_PARAMETERS =>PAR_REQ_PARAMS
673     ,P_CHILD_REQ =>T_CHILD_REQ);
674 
675 
676 END RUN_SS_PAY_SLIP_UK;
677 
678 
679 
680 
681 
682 PROCEDURE RUN_RETRO_ENHANCED(
683   ERRBUF  OUT NOCOPY VARCHAR2
684  ,RETCODE  OUT NOCOPY NUMBER
685  ,P_ELEMENT_SET IN VARCHAR2
686  ,P_START_DATE IN VARCHAR2
687  ,P_EFFECTIVE_DATE IN VARCHAR2
688  ,P_ACTION_PARAMETER_GROUP IN VARCHAR2
689  ,P_RETRO_PAY_DEF IN VARCHAR2
690  ,P_PAYROLL_GROUP_ID IN NUMBER
691  ,P_ENTRY_CREATION_DATE IN VARCHAR2
692 )
693 IS
694 
695 L_REQ_ID NUMBER;
696 V_ASSIGNMENT_SET NUMBER;
697 PAR_REQ_ID NUMBER;
698 PAR_REQ_PARAMS VARCHAR2(240);
699 T_CHILD_REQ CHILD_REQ;
700 REQ_COUNT NUMBER;
701 BEGIN
702 REQ_COUNT:=0;
703 
704 		hr_utility.trace('P_PAYROLL_GROUP_NAME'||P_PAYROLL_GROUP_ID);
705 		hr_utility.trace('P_ELEMENT_SET'||P_ELEMENT_SET);
706 		hr_utility.trace('P_START_DATE'||P_START_DATE);
707 		hr_utility.trace('P_EFFECTIVE_DATE'||P_EFFECTIVE_DATE);
708 		hr_utility.trace('P_ACTION_PARAMETER_GROUPL_GROUP_NAME'||P_ACTION_PARAMETER_GROUP);
709 		hr_utility.trace('P_RETRO_PAY_DEF'||P_RETRO_PAY_DEF);
710 		hr_utility.trace('P_ENTRY_CREATION_DATE'||P_ENTRY_CREATION_DATE);
711 
712 FOR PAY_RUN IN CSR_ALL_PAYROLLS(P_PAYROLL_GROUP_ID)
713 LOOP
714 
715 				L_REQ_ID := FND_REQUEST.SUBMIT_REQUEST(
716  	           			APPLICATION      =>       'PAY'
717 								, PROGRAM          =>       'RETROENH'
718 								, DESCRIPTION      =>       NULL
719 								, START_TIME       =>       SYSDATE
720 								, SUB_REQUEST      =>       FALSE
721 								, ARGUMENT1        =>       'RETROELEMENT'
722 								, ARGUMENT2        =>       V_ASSIGNMENT_SET
723 								, ARGUMENT3        =>       P_ELEMENT_SET
724 								, ARGUMENT4        =>       P_START_DATE
725 								, ARGUMENT5        =>       P_EFFECTIVE_DATE
726 								, ARGUMENT6        =>       P_ACTION_PARAMETER_GROUP
727 								, ARGUMENT7        =>       P_RETRO_PAY_DEF
728 								, ARGUMENT8        =>       PAY_RUN.payroll_id
729 								, ARGUMENT9        =>       P_ENTRY_CREATION_DATE
730 								);
731 
732    T_CHILD_REQ(REQ_COUNT):=L_REQ_ID;
733 
734    REQ_COUNT:=REQ_COUNT+1;
735 END LOOP;
736 
737 OPEN CSR_PARENT_REQ_ID(L_REQ_ID);
738   FETCH CSR_PARENT_REQ_ID INTO PAR_REQ_ID, PAR_REQ_PARAMS;
739 CLOSE CSR_PARENT_REQ_ID;
740 
741 
742 PAR_REQ_PARAMS:=PAR_REQ_PARAMS ||'ROLLBACK_PARAM=' ||P_START_DATE;
743   PAY_GB_MULTI_PAYROLL_RUN.UPDATE_MASTER_CHILD(
744  		 P_CONCURRENT_REQUEST_ID=>PAR_REQ_ID
745 	  ,P_PAYROLL_GROUP_ID =>P_PAYROLL_GROUP_ID
746 	  ,P_PROCESS_NAME =>'Retropay by Element'
747 	  ,P_REQUEST_PARAMETERS =>PAR_REQ_PARAMS
748 	  ,P_REQUEST_SUBMISSION_DATE =>SYSDATE
749     ,P_CHILD_REQ =>T_CHILD_REQ);
750 
751 END RUN_RETRO_ENHANCED;
752 
753 /*
754 Tax Payments Listing Report
755 */
756 
757 PROCEDURE RUN_TPL_MULTI(
758   ERRBUF  OUT NOCOPY VARCHAR2
759  ,RETCODE  OUT NOCOPY NUMBER
760  ,P_BUSINESS_GROUP_ID IN NUMBER
761  ,P_PAYROLL_GROUP_ID IN NUMBER
762  ,P_TIME_PERIOD_NAME IN VARCHAR2
763  ,P_SORT_ORDER IN VARCHAR2
764  ,P_SUMMARY_ONLY IN VARCHAR2
765 
766 )
767 IS
768 
769 L_REQ_ID NUMBER;
770 V_CONDOLIDATION_SET_ID NUMBER;
771 V_TIME_PERIOD_ID NUMBER;
772 
773 CURSOR CSR_GET_CONS_ID(P_PAYROLL_ID IN NUMBER)
774 IS
775 SELECT CONSOLIDATION_SET_ID
776 FROM PAY_ALL_PAYROLLS_F
777 WHERE PAYROLL_ID=P_PAYROLL_ID;
778 
779 
780 
781 BEGIN
782 
783 		hr_utility.trace('Start of TPL Multiple Report');
784 		hr_utility.trace('P_PAYROLL_GROUP_NAME'||P_PAYROLL_GROUP_ID);
785 		hr_utility.trace('P_TIME_PERIOD_NAME'||P_TIME_PERIOD_NAME);
786 		hr_utility.trace('P_SORT_ORDER'||P_SORT_ORDER);
787 		hr_utility.trace('P_SUMMARY_ONLY'||P_SUMMARY_ONLY);
788 
789 FOR PAY_RUN IN CSR_ALL_PAYROLLS(P_PAYROLL_GROUP_ID)
790 LOOP
791 
792    OPEN CSR_GET_CONS_ID(PAY_RUN.PAYROLL_ID);
793                  FETCH CSR_GET_CONS_ID INTO V_CONDOLIDATION_SET_ID;
794            hr_utility.trace('payroll_id:'||PAY_RUN.PAYROLL_ID);
795            hr_utility.trace('P_TIME_PERIOD_NAME:'||P_TIME_PERIOD_NAME);
796         V_TIME_PERIOD_ID:=PAY_GB_MULTI_PAYROLL_RUN.GET_PERIOD_NAME(P_TIME_PERIOD_NAME,PAY_RUN.PAYROLL_ID);
797 	L_REQ_ID := FND_REQUEST.SUBMIT_REQUEST(
798  	           			APPLICATION       =>       'PAY'
799 								, PROGRAM           =>       'PAYRPTPL'
800 								, DESCRIPTION       =>       NULL
801 								, START_TIME        =>       SYSDATE
802 								, SUB_REQUEST        =>      FALSE
803 								, ARGUMENT1          =>      P_BUSINESS_GROUP_ID
804 								, ARGUMENT2        =>        PAY_RUN.payroll_id
805 								, ARGUMENT3        =>        V_TIME_PERIOD_ID
806 								, ARGUMENT4        =>        V_CONDOLIDATION_SET_ID
807 								, ARGUMENT5        =>        P_SORT_ORDER
808 								, ARGUMENT6        =>        P_SUMMARY_ONLY
809 
810 						);
811   hr_utility.trace('Request Id: for payroll: '|| PAY_RUN.payroll_id ||' is:' ||L_REQ_ID);
812    CLOSE CSR_GET_CONS_ID;
813 END LOOP;
814 
815 
816 END RUN_TPL_MULTI;
817 
818 
819 /*
820 Payment Summary Report
821 */
822 
823 PROCEDURE RUN_PAY_SUM_REP(
824   ERRBUF  OUT NOCOPY VARCHAR2
825  ,RETCODE  OUT NOCOPY NUMBER
826  ,P_BUSINESS_GROUP_ID IN NUMBER
827  ,P_PAYROLL_GROUP_ID IN NUMBER
828  ,P_EARLY_START_DATE IN VARCHAR2
829  ,P_EARLY_END_DATE IN VARCHAR2
830 )
831 
832 IS
833 L_REQ_ID NUMBER;
834 V_CONDOLIDATION_SET_NAME VARCHAR2(20);
838 		hr_utility.trace('P_PAYROLL_GROUP_NAME'||P_PAYROLL_GROUP_ID);
835 BEGIN
836 
837 		hr_utility.trace('P_BUSINESS_GROUP_ID'||P_BUSINESS_GROUP_ID);
839 		hr_utility.trace('P_EARLY_START_DATE'||P_EARLY_START_DATE);
840 		hr_utility.trace('P_EARLY_END_DATE'||P_EARLY_END_DATE);
841 
842 FOR PAY_RUN IN CSR_ALL_PAYROLLS(P_PAYROLL_GROUP_ID)
843 LOOP
844 
845 	L_REQ_ID := FND_REQUEST.SUBMIT_REQUEST(
846  	           			APPLICATION       =>       'PAY'
847 								, PROGRAM           =>       'PAYGBPAY'
848 								, DESCRIPTION       =>       NULL
849 								, START_TIME        =>       SYSDATE
850 								, SUB_REQUEST        =>      FALSE
851 								, ARGUMENT1          =>      P_BUSINESS_GROUP_ID
852 								, ARGUMENT2        =>        PAY_RUN.payroll_id
853 								, ARGUMENT3        =>        P_EARLY_START_DATE
854 								, ARGUMENT4        =>        P_EARLY_END_DATE
855 								, ARGUMENT5        =>        V_CONDOLIDATION_SET_NAME
856 								);
857   hr_utility.trace('Request Id: for payroll: '|| PAY_RUN.payroll_id ||' is:' ||L_REQ_ID);
858 
859 END LOOP;
860 
861 END RUN_PAY_SUM_REP;
862 
863 
864 /*
865 Gross to Net Report
866 */
867 PROCEDURE RUN_GROSS_TO_NET_MULTI(
868   ERRBUF  OUT NOCOPY VARCHAR2
869  ,RETCODE  OUT NOCOPY NUMBER
870  ,P_BUSINESS_GROUP_ID IN NUMBER
871  ,P_PAYROLL_GROUP_ID IN NUMBER
872  ,P_TIME_PERIOD_NAME IN VARCHAR2
873  ,P_GROSS_PAY_ID IN NUMBER
874  ,P_TOT_DED_ID IN NUMBER
875  ,P_DIR_PAY_ID IN NUMBER
876  ,P_EMP_CHAR_ID IN NUMBER
877 )
878 IS
879 L_REQ_ID NUMBER;
880 
881 V_CONDOLIDATION_SET_NAME VARCHAR2(20);
882 V_TIME_PERIOD_ID NUMBER;
883 BEGIN
884 
885 		hr_utility.trace('P_BUSINESS_GROUP_ID'||P_BUSINESS_GROUP_ID);
886 		hr_utility.trace('P_PAYROLL_GROUP_NAME'||P_PAYROLL_GROUP_ID);
887 		hr_utility.trace('P_TIME_PERIOD_NAME'||P_TIME_PERIOD_NAME);
888 
889 
890 
891 
892 
893 FOR PAY_RUN IN CSR_ALL_PAYROLLS(P_PAYROLL_GROUP_ID)
894 LOOP
895 
896 
897         V_TIME_PERIOD_ID:=PAY_GB_MULTI_PAYROLL_RUN.GET_PERIOD_NAME(P_TIME_PERIOD_NAME,PAY_RUN.PAYROLL_ID);
898 	L_REQ_ID := FND_REQUEST.SUBMIT_REQUEST(
899  	           			APPLICATION      =>       'PAY'
900 								, PROGRAM          =>       'PAYGBGTN'
901 								, DESCRIPTION      =>       NULL
902 								, START_TIME       =>       SYSDATE
903 								, SUB_REQUEST      =>       FALSE
904 								, ARGUMENT1        =>       P_BUSINESS_GROUP_ID
905 								, ARGUMENT2        =>       PAY_RUN.payroll_id
906 								, ARGUMENT3        =>       V_TIME_PERIOD_ID
907 								, ARGUMENT4        =>       V_CONDOLIDATION_SET_NAME
908 								, ARGUMENT5        =>       P_GROSS_PAY_ID
909 								, ARGUMENT6        =>       P_TOT_DED_ID
910 								, ARGUMENT7        =>       P_DIR_PAY_ID
911 								, ARGUMENT8        =>       P_EMP_CHAR_ID
912 								);
913   hr_utility.trace('Request Id: for payroll: '|| PAY_RUN.payroll_id ||' is:' ||L_REQ_ID);
914 END LOOP;
915 
916 END RUN_GROSS_TO_NET_MULTI;
917 
918 
919 
920 PROCEDURE RUN_ROLLBACK_RUN_UK(
921 
922   ERRBUF  OUT NOCOPY VARCHAR2
923  ,RETCODE  OUT NOCOPY NUMBER
924  ,P_PAYROLL_GROUP_ID IN NUMBER
925  ,P_PARENT_REQ_ID IN NUMBER
926 )
927 
928 IS
929 L_REQ_ID NUMBER;
930 V_PROCESS_NAME VARCHAR2(30);
931 V_PAYROLL_RUN number;
932 V_ASSIGNMENT_SET NUMBER;
933 T_CHILD_REQ_AL CHILD_REQ;
934 V_AL_COUNT NUMBER;
935 T_CHILD_REQ_NO_AL CHILD_REQ;
936 V_N_COUNT NUMBER;
937 PAR_REQ_ID NUMBER;
938 PAR_REQ_PARAMS VARCHAR2(100);
939 T_CHILD_REQ CHILD_REQ;
940 V_COUNT NUMBER;
941 P_PAY_ACTION_ID NUMBER;
942 
943 
944 
945 --CURSOR TO FIND THE CHIDL REQUEST OF THIS TYPE
946 
947 CURSOR CSR_CHILD_REQUEST(P_PARENT_REQ_ID IN NUMBER)
948 IS
949 SELECT PCMCRD.CHILD_CONCURRENT_REQUEST_ID CON_ID
950 FROM
951 PAY_GB_MP_CHILD_REQUEST_DET PCMCRD
952 WHERE PCMCRD.PARENT_CONCURRENT_REQUEST_ID=P_PARENT_REQ_ID;
953 
954 CURSOR CSR_PAYACT_ID(PROCESS_NAME IN NUMBER)
955 IS
956    SELECT PPA.PAYROLL_ACTION_ID
957     FROM PAY_PAYROLL_ACTIONS PPA WHERE PPA.REQUEST_ID=PROCESS_NAME;
958 
959 
960 T_ROLLBACK_REQ CHILD_REQ;
961 REQ_COUNT NUMBER;
962 
963 --type child_request_id is table of outputs_r index by binary_integer;
964 BEGIN
965 V_AL_COUNT:=0;
966 V_N_COUNT:=0;
967 V_COUNT:=0;
968 
969 REQ_COUNT:=1;
970 
971 hr_utility.trace('Parent Request Id:'||P_PARENT_REQ_ID);
972 
973 FOR PAY_RUN IN CSR_CHILD_REQUEST(P_PARENT_REQ_ID)
974 LOOP
975    hr_utility.trace('aCTUAL REQUEST iD:'||PAY_RUN.CON_ID);
976  IF PAY_GB_MULTI_DML_AND_VAL.CHK_ALREADY_ROLLED_BACK(PAY_RUN.CON_ID)=1 THEN
977         hr_utility.trace('child requestId:'||PAY_RUN.CON_ID);
978 
979        OPEN CSR_PAYACT_ID(PAY_RUN.CON_ID);
980             FETCH CSR_PAYACT_ID INTO P_PAY_ACTION_ID;
981        CLOSE CSR_PAYACT_ID;
982 
983   hr_utility.trace('payroll action id is:'||P_PAY_ACTION_ID);
984 
985 				L_REQ_ID := FND_REQUEST.SUBMIT_REQUEST(
986  	           			APPLICATION      =>       'PAY'
987 								, PROGRAM          =>       'ROLLBACK_RUN'
988 								, DESCRIPTION      =>       NULL
989 								, START_TIME       =>       SYSDATE
990 								, SUB_REQUEST      =>       FALSE
991 								, ARGUMENT1        =>       'ROLLBACK'
992 								, ARGUMENT2        =>       P_PAY_ACTION_ID
993 								, ARGUMENT3        =>       V_ASSIGNMENT_SET
994 								);
995 
996   ELSE
997            T_CHILD_REQ_AL(V_AL_COUNT):=PAY_RUN.CON_ID;
998       V_AL_COUNT:=V_AL_COUNT+1;
999   END IF;
1000 T_CHILD_REQ(REQ_COUNT):=PAY_RUN.CON_ID;
1001 T_ROLLBACK_REQ(REQ_COUNT):=L_REQ_ID;
1005 
1002 hr_utility.trace('Child ROLLBACK request copied is:'||T_CHILD_REQ(REQ_COUNT));
1003 REQ_COUNT:=REQ_COUNT+1;
1004 END LOOP;
1006 OPEN CSR_PARENT_REQ_ID(L_REQ_ID);
1007   FETCH CSR_PARENT_REQ_ID INTO PAR_REQ_ID, PAR_REQ_PARAMS;
1008 CLOSE CSR_PARENT_REQ_ID;
1009 -- update the child table and parent table with rollback details
1010 
1011 PAY_GB_MULTI_DML_AND_VAL.UPDATE_MASTER_ROLLBACK_DETAILS
1012 (
1013  P_MASTER_REQUEST_ID=>P_PARENT_REQ_ID
1014 ,P_PAYROLL_GROUP_ID=>P_PAYROLL_GROUP_ID
1015 ,P_ROLLBACK_REQUEST_ID=>PAR_REQ_ID
1016 );
1017 
1018 
1019 FOR P IN 1..REQ_COUNT
1020 LOOP
1021 
1022  PAY_GB_MULTI_DML_AND_VAL.UPDATE_CHILD_ROLLBACK_DETAILS
1023 (
1024  P_MASTER_REQUEST_ID=>P_PARENT_REQ_ID
1025 ,P_PAYROLL_GROUP_ID=>P_PAYROLL_GROUP_ID
1026 ,P_ROLLBACK_REQUEST_ID=>T_ROLLBACK_REQ(P)
1027 ,P_CHILD_REQUEST_ID=>T_CHILD_REQ(P)
1028 );
1029 END LOOP;
1030 
1031 FOR P IN 0..V_AL_COUNT
1032 LOOP
1033        PAY_GB_MULTI_DML_AND_VAL.UPDATE_ALREADY_ROLLEDBACK(P_REQUEST_ID=>T_CHILD_REQ_AL(P));
1034 
1035 END LOOP;
1036 
1037 
1038 END RUN_ROLLBACK_RUN_UK;
1039 
1040 
1041 
1042 PROCEDURE RUN_ROLLBACK_ALL_UK(
1043 
1044   ERRBUF  OUT NOCOPY VARCHAR2
1045  ,RETCODE  OUT NOCOPY NUMBER
1046  ,P_YEAR IN NUMBER
1047  ,P_PAYROLL_GROUP_ID IN NUMBER
1048  ,P_PROCESS_TYPE IN VARCHAR2
1049  ,P_PROCESS_NAME IN NUMBER
1050 )
1051 IS
1052 
1053 L_REQ_ID NUMBER;
1054 V_DUMMY_ONE VARCHAR2(10);
1055 V_DUMMY_TWO VARCHAR2(10);
1056 V_ASSIGNMENT_SET NUMBER;
1057 V_ASSIGN_SET_HID VARCHAR2(100);
1058 V_PAYROLL_RUN_HID VARCHAR2(100);
1059 T_CHILD_REQ_AL CHILD_REQ;
1060 V_AL_COUNT NUMBER;
1061 T_CHILD_REQ_NO_AL CHILD_REQ;
1062 V_N_COUNT NUMBER;
1063 PAR_REQ_ID NUMBER;
1064 PAR_REQ_PARAMS VARCHAR2(100);
1065 T_CHILD_REQ CHILD_REQ;
1066 V_COUNT NUMBER;
1067 P_PAY_ACTION_ID NUMBER;
1068 
1069 CURSOR CSR_CHILD_REQUEST(P_PARENT_REQ_ID IN NUMBER)
1070 IS
1071 SELECT PCMCRD.CHILD_CONCURRENT_REQUEST_ID CON_ID
1072 FROM
1073 PAY_GB_MP_CHILD_REQUEST_DET PCMCRD
1074 WHERE PCMCRD.PARENT_CONCURRENT_REQUEST_ID=P_PARENT_REQ_ID;
1075 
1076 
1077 CURSOR CSR_PAYACT_ID(PROCESS_NAME IN NUMBER)
1078 IS
1079    SELECT PPA.PAYROLL_ACTION_ID
1080     FROM PAY_PAYROLL_ACTIONS PPA WHERE PPA.REQUEST_ID=PROCESS_NAME;
1081 
1082 
1083 BEGIN
1084 V_AL_COUNT:=0;
1085 V_N_COUNT:=0;
1086 V_COUNT:=0;
1087 
1088 
1089 NULL;
1090 
1091 hr_utility.trace('P_PAYROLL_GROUP_ID:'||P_PAYROLL_GROUP_ID);
1092 hr_utility.trace('P_YEAR:'||P_YEAR);
1093 hr_utility.trace('P_PROCESS_TYPE:'||P_PROCESS_TYPE);
1094 hr_utility.trace('P_PROCESS_NAME:'||P_PROCESS_NAME);
1095 
1096 
1097 FOR PAY_RUN IN CSR_CHILD_REQUEST(P_PROCESS_NAME)
1098 LOOP
1099 
1100            hr_utility.trace('PAY_RUN.CON_ID'||PAY_RUN.CON_ID);
1101 
1102      IF PAY_GB_MULTI_DML_AND_VAL.CHK_ALREADY_ROLLED_BACK(PAY_RUN.CON_ID)=1 THEN
1103         hr_utility.trace('child requestId:'||PAY_RUN.CON_ID);
1104 
1105        OPEN CSR_PAYACT_ID(PAY_RUN.CON_ID);
1106             FETCH CSR_PAYACT_ID INTO P_PAY_ACTION_ID;
1107        CLOSE CSR_PAYACT_ID;
1108 
1109         hr_utility.trace('PAY_GB_MULTI_DML_AND_VAL.CHK_ALREADY_ROLLED_BACK(PAY_RUN.CON_ID)=1');
1110         hr_utility.trace('P_PAY_ACTION_ID passed is:'||P_PAY_ACTION_ID);
1111         V_PAYROLL_RUN_HID:='PAYROLL_ACTION_ID='||P_PAY_ACTION_ID;
1112      	L_REQ_ID := FND_REQUEST.SUBMIT_REQUEST(
1113  	           			APPLICATION      =>       'PAY'
1114 								, PROGRAM          =>       'ROLLBACK'
1115 								, DESCRIPTION      =>       NULL
1116 								, START_TIME       =>       SYSDATE
1117 								, SUB_REQUEST      =>       FALSE
1118 								, ARGUMENT1        =>       'ROLLBACK'
1119 								, ARGUMENT2        =>       V_DUMMY_ONE
1120 								, ARGUMENT3        =>       V_DUMMY_TWO
1121 								, ARGUMENT4        =>       P_YEAR
1122 								, ARGUMENT5        =>       P_PROCESS_TYPE
1123 								, ARGUMENT6        =>       P_PAY_ACTION_ID
1124 								, ARGUMENT7        =>       V_ASSIGNMENT_SET
1125 								, ARGUMENT8        =>       V_PAYROLL_RUN_HID
1126 								, ARGUMENT9        =>       V_ASSIGN_SET_HID
1127 								);
1128          T_CHILD_REQ(V_COUNT):= PAY_RUN.CON_ID;
1129          V_COUNT:=V_COUNT+1;
1130          T_CHILD_REQ_NO_AL(V_N_COUNT):=L_REQ_ID;
1131          V_N_COUNT:=V_N_COUNT+1;
1132 
1133       ELSE
1134 		T_CHILD_REQ_AL(V_AL_COUNT):=PAY_RUN.CON_ID;
1135 		V_AL_COUNT:=V_AL_COUNT+1;
1136       END IF;
1137 
1138 END LOOP;
1139 
1140 /*
1141 Find the request id of parent request submitted
1142 */
1143 
1144 OPEN CSR_PARENT_REQ_ID(L_REQ_ID);
1145   FETCH CSR_PARENT_REQ_ID INTO PAR_REQ_ID, PAR_REQ_PARAMS;
1146 CLOSE CSR_PARENT_REQ_ID;
1147 
1148 hr_utility.trace('bEFORE MASTER UPDATE');
1149 
1150 PAY_GB_MULTI_DML_AND_VAL.UPDATE_MASTER_ROLLBACK_DETAILS
1151 (
1152  P_MASTER_REQUEST_ID=>P_PROCESS_NAME
1153 ,P_PAYROLL_GROUP_ID=>P_PAYROLL_GROUP_ID
1154 ,P_ROLLBACK_REQUEST_ID=>PAR_REQ_ID
1155 );
1156 
1157 /*
1158 UPDATING THE ROLLBACK
1159 */
1160 
1161 hr_utility.trace('BEFORE CHILD UPDATE');
1162 FOR P IN 0..V_N_COUNT
1163 LOOP
1164 
1165  PAY_GB_MULTI_DML_AND_VAL.UPDATE_CHILD_ROLLBACK_DETAILS
1166 (
1167  P_MASTER_REQUEST_ID=>P_PROCESS_NAME
1168 ,P_PAYROLL_GROUP_ID=>P_PAYROLL_GROUP_ID
1169 ,P_ROLLBACK_REQUEST_ID=>T_CHILD_REQ_NO_AL(P)
1170 ,P_CHILD_REQUEST_ID=>T_CHILD_REQ(P)
1171 );
1172 END LOOP;
1173 
1174 
1175 /*
1176 UPDATE FOR ALREADY ROLLEDBACK REQUESTS
1177 */
1178 FOR P IN 0..V_AL_COUNT
1179 LOOP
1180        PAY_GB_MULTI_DML_AND_VAL.UPDATE_ALREADY_ROLLEDBACK(P_REQUEST_ID=>T_CHILD_REQ_AL(P));
1181 
1182 END LOOP;
1183 
1184 END RUN_ROLLBACK_ALL_UK;
1185 
1186 END PAY_GB_MULTI_PAYROLL_RUN;