DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_GB_EYCTL

Source


1 PACKAGE BODY PAY_GB_EYCTL AS
2 /* $Header: payeyctl.pkb 115.2 99/10/07 04:08:05 porting ship  $ */
3 /* Copyright (c) Oracle Corporation 1995. All rights reserved
4 
5   Name          : PAYEYCTL
6   Description   : End of year control process
7   Author        : P.Driver
8   Date Created  : 17/11/95
9 
10  Change List
11  -----------
12  Date      Name            Vers     Bug No     Description
13  +---------+---------------+--------+----------+-------------------------+
14  23/11/95  P.Driver                            Fix bugs in P60 call and
15                                                mag tape parameters. The
16                                                call to mag tape proc
17                                                altered.
18  05/12/95  P.Driver                            Only call P60 if no
19                                                process has failed.
20  24/04/96  T.Inekuku                           Added and set failure
21                                                variable to true if error
22                                                with extract, also added
23                                                return to terminate.
24  14/06/96  C.Barbieri                          The current version do not
25                                                delete any data in the DB.
26                                                Now the EOY Process is
27                                                aborted if one of the child
28                                                process has an error.
29  30/07/96  J.Alloun                            Added error handling.
30  05/08/96  aswong			       Added exit at the end.
31  07/10/99  P Davies                            Changed each occurrence of
32                                                DBMS_Output.Put_Line with
33                                                hr_utility.trace.
34 */
35 
36 
37 PROCEDURE eoy_control(	ERRBUF              OUT VARCHAR2
38 			,RETCODE             OUT NUMBER
39 			,p_permit_no         IN VARCHAR2
40 			,p_tax_year          IN NUMBER
41 			,p_eoy_mode          IN VARCHAR2
42 			,p_business_group_id IN NUMBER
43 			,p_tax_dist_ref      IN VARCHAR2
44 			,p_sort_order1       IN VARCHAR2
45 			,p_sort_order2       IN VARCHAR2
46 			,p_sort_order3       IN VARCHAR2
47 			,p_sort_order4       IN VARCHAR2
48 			,p_sort_order5       IN VARCHAR2
49 			,p_sort_order6       IN VARCHAR2
50 			,p_sort_order7       IN VARCHAR2
51 			,p_align             IN VARCHAR2
52 			,p_ni_y_flag         In VARCHAR2) IS
53 --
54 -- This procedure controls the execution of the EOY process.
55 -- The extract is called first followed by the mag tape process,
56 -- the p35 listing and, only if the full eoy mode is set, the p60
57 -- report is run last.
58 --
59 l_extract_id   NUMBER;
60 l_ass_id       NUMBER;
61 l_mag_id       NUMBER;
62 l_p35_id       NUMBER;
63 l_p60_id       NUMBER;
64 l_session_date DATE;
65 l_session_char VARCHAR2(11);
66 l_wait_outcome BOOLEAN;
67 l_phase        VARCHAR2(80);
68 l_status       VARCHAR2(80);
69 l_dev_phase    VARCHAR2(80);
70 l_dev_status   VARCHAR2(80);
71 l_message      VARCHAR2(80);
72 l_request_id   VARCHAR2(80);
73 l_file_name    VARCHAR2(80);
74 l_errbuf       VARCHAR2(1000);
75 l_retcode      NUMBER(2);
76 
77 --
78 PROG_FAILURE   CONSTANT NUMBER := 2 ;
79 PROG_SUCCESS   CONSTANT NUMBER := 0 ;
80 --
81 BEGIN
82 
83   hr_utility.trace('Start EOY_CONTROL in PAYEYCTL.pkb');
84   l_session_date := TRUNC(SYSDATE);
85   l_session_char := TO_CHAR(TRUNC(SYSDATE),'DD-MON-YYYY');
86   l_request_id   := fnd_profile.value('CONC_REQUEST_ID');
87 ------------------------------
88 -- Call EOY EXTRACT PROCESS --
89 ------------------------------
90   hr_utility.trace('Start EXTRACT PROCESS');
91   pay_year_end_extract.extract(
92 				p_permit_no,
93 				p_business_group_id,
94 				p_tax_dist_ref,
95 				p_tax_year,
96 				l_request_id,
97 				p_ni_y_flag,
98 				l_retcode,
99 				l_errbuf);
100 --
101   hr_utility.trace('Finished EXTRACT PROCESS');
102   hr_utility.trace('');
103 --
104   IF l_retcode = 0 THEN
105     errbuf := l_errbuf;
106     hr_utility.trace('EXTRACT returned failure message: see '||l_errbuf);
107     retcode := PROG_FAILURE ;
108     hr_utility.raise_error;
109     return;
110   END IF;
111 -------------------------------------
112 -- Call MULTIPLE ASSIGNMENT REPORT --
113 -------------------------------------
114   hr_utility.trace('');
115   hr_utility.trace('Start MULTIPLE ASSIGNMENT REPORT');
116   l_ass_id := fnd_request.submit_request(
117 					application => 'PAY',
118 					program     => 'PAYYEMAR',
119 					argument1   => l_request_id);
120   l_file_name := 'l' || TO_CHAR(l_ass_id) || '.req';
121   IF l_ass_id = 0 THEN
122     errbuf  := 'Error calling the multiple assignments report ';
123     hr_utility.trace('MULTIPLE ASSIGNMENT REPORT returned failure message: see ' || l_file_name);
124     retcode := PROG_FAILURE ;
125     hr_utility.raise_error;
126     return ;
127   END IF;
128   -- Now commit request
129   COMMIT;
130   hr_utility.trace('    Submitted Req id: ' || TO_CHAR(l_ass_id) );
131   l_wait_outcome := fnd_concurrent.wait_for_request(
132 			   request_id => l_ass_id,
133 			   interval   => 5,
134 			   phase      => l_phase,
135 			   status     => l_status,
136 			   dev_phase  => l_dev_phase,
137 			   dev_status => l_dev_status,
138 			   message    => l_message);
139 
140   hr_utility.trace('    Status : '||l_dev_status);
141   hr_utility.trace('    Phase  : '||l_dev_phase);
142   IF l_dev_phase = 'COMPLETE' AND l_dev_status <> 'NORMAL' THEN
143     errbuf  := 'Error in the multiple assignments report ';
144     hr_utility.trace('MULTIPLE ASSIGNMENT REPORT returned failure message: see ' || l_file_name);
145     retcode := PROG_FAILURE ;
146     hr_utility.raise_error;
147     return;
148   END IF;
149   hr_utility.trace('Finished MULTIPLE ASSIGNMENT REPORT');
150 ---------------------------
151 -- Call MAG TAPE PROCESS --
152 ---------------------------
153   hr_utility.trace('');
154   hr_utility.trace('Start MAG TAPE PROCESS');
155   l_mag_id := fnd_request.submit_request(
156 			application => 'PAY',
157 			program     => 'PYUMAG',
158 			argument1  => 'pay_gb_eoy.eoy',
159 			argument2  =>  NULL,
160 			argument3  =>  NULL,
161 			argument4  =>  l_session_char,
162 			argument5  =>  'PERMIT='||p_permit_no,
163 			argument6  =>  'EOY_MODE='||p_eoy_mode,
164 			argument7  =>  'TAX_DISTRICT_REFERENCE='
165 					||p_tax_dist_ref,
166 			argument8  =>  'BUSINESS_GROUP_ID='
167 					||p_business_group_id);
168 
169   l_file_name := 'l' || TO_CHAR(l_mag_id) || '.req';
170   IF l_mag_id = 0 THEN
171     errbuf  := 'Error calling the mag tape process';
172     hr_utility.trace('MAG TAPE PROCESS returned failure message: see ' || l_file_name);
173     retcode := PROG_FAILURE ;
174     hr_utility.raise_error;
175     return ;
176   END IF;
177   COMMIT;
178   hr_utility.trace('    Submitted Req id: ' || TO_CHAR(l_mag_id) );
179   l_wait_outcome := fnd_concurrent.wait_for_request(
180 			   request_id => l_mag_id,
181 			   interval   => 5,
182 			   phase      => l_phase,
183 			   status     => l_status,
184 			   dev_phase  => l_dev_phase,
185 			   dev_status => l_dev_status,
186 			   message    => l_message);
187 
188   hr_utility.trace('    Status : '||l_dev_status);
189   hr_utility.trace('    Phase  : '||l_dev_phase);
190   IF l_dev_phase = 'COMPLETE' AND l_dev_status <> 'NORMAL' THEN
191     errbuf  := 'Error in the mag tape process';
192     hr_utility.trace('MAG TAPE PROCESS returned failure message: see ' || l_file_name);
193     retcode := PROG_FAILURE ;
194     hr_utility.raise_error;
195     return;
196   END IF;
197   hr_utility.trace('Finished MAG TAPE PROCESS');
198 ----------------------
199 -- Call P35 PROCESS --
200 ----------------------
201   hr_utility.trace('');
202   hr_utility.trace('Start P35 REPORT');
203   l_p35_id := fnd_request.submit_request(
204 			   application       => 'PAY',
205 			   program           => 'PAYRPP35',
206 		           argument1         => l_mag_id,
207 		           argument2         => p_permit_no,
208 			   argument3         => p_tax_dist_ref,
209 			   argument4         => p_business_group_id);
210   -- Check the result of the p35 call
211   l_file_name := 'l' || TO_CHAR(l_p35_id) || '.req';
212   IF l_p35_id = 0 THEN
213     errbuf  := 'Error calling the P35 report';
214     hr_utility.trace('P35 REPORT returned failure message: see ' || l_file_name);
215     retcode := PROG_FAILURE ;
216     hr_utility.raise_error;
217     return ;
218   END IF;
219   COMMIT;
220   hr_utility.trace('    Submitted Req id: ' || TO_CHAR(l_p35_id) );
221   l_wait_outcome := fnd_concurrent.wait_for_request(
222 			   request_id => l_p35_id,
223 			   phase      => l_phase,
224 			   status     => l_status,
225 			   dev_phase  => l_dev_phase,
226 			   dev_status => l_dev_status,
227 			   message    => l_message);
228   hr_utility.trace('    Status : '||l_dev_status);
229   hr_utility.trace('    Phase  : '||l_dev_phase);
230   IF l_dev_phase = 'COMPLETE' AND l_dev_status <> 'NORMAL' THEN
231     errbuf  := 'Error in the P35 report';
232     hr_utility.trace('P35 REPORT returned failure message: see ' || l_file_name);
233     retcode := PROG_FAILURE ;
234     hr_utility.raise_error;
235     return;
236   END IF;
237   hr_utility.trace('Finished P35 REPORT');
238 ----------------------
239 -- Call P60 PROCESS --
240 ----------------------
241   IF p_eoy_mode = 'F' THEN
242     hr_utility.trace('');
243     hr_utility.trace('Start P60 REPORT');
244     IF UPPER(NVL(p_align,'N')) = 'Y' THEN
245       l_p60_id := fnd_request.submit_request(
246 			   application => 'PAY',
247 			   program     => 'PAYRPP60',
248 		           argument1  => p_permit_no,
249 		           argument2  => p_tax_year,
250 		           argument3  => p_sort_order1,
251 		           argument4  => p_sort_order2,
252 		           argument5  => p_sort_order3,
253 		           argument6  => p_sort_order4,
254 		           argument7  => p_sort_order5,
255 		           argument8  => p_sort_order6,
256 		           argument9  => p_sort_order7,
257 		           argument10  => p_business_group_id,
258 		           argument11  => p_align,
259 			   argument12  => p_tax_dist_ref);
260       l_file_name := 'l' || TO_CHAR(l_p60_id) || '.req';
261       IF l_p60_id = 0 THEN
262 	errbuf  := 'Error calling the P60 report';
263         hr_utility.trace('P60 REPORT returned failure message: see ' || l_file_name);
264         retcode := PROG_FAILURE ;
265         hr_utility.raise_error;
266         return ;
267       END IF;
268       COMMIT;
269       hr_utility.trace('    Submitted Req id: ' || TO_CHAR(l_p60_id) );
270       l_wait_outcome := fnd_concurrent.wait_for_request(
271   			   request_id => l_p60_id,
272 			   phase      => l_phase,
273 			   status     => l_status,
274 			   dev_phase  => l_dev_phase,
275 			   dev_status => l_dev_status,
276 			   message    => l_message);
277       hr_utility.trace('    Status : '||l_dev_status);
278       hr_utility.trace('    Phase  : '||l_dev_phase);
279       IF l_dev_phase = 'COMPLETE' AND l_dev_status <> 'NORMAL' THEN
280 	errbuf  := 'Error in the P60 report';
281         hr_utility.trace('P60 REPORT returned failure message: see ' || l_file_name);
282         retcode := PROG_FAILURE ;
283         hr_utility.raise_error;
284 	return;
285       END IF;
286       hr_utility.trace('Finished P60 REPORT');
287     END IF;
288 ----------------------
289 -- Call P60 PROCESS --
290 ----------------------
291     hr_utility.trace('');
292     hr_utility.trace('Start P60 REPORT');
293     l_p60_id := fnd_request.submit_request(
294 			   application => 'PAY',
295 			   program     => 'PAYRPP60',
296 		           argument1  => p_permit_no,
297 		           argument2  => p_tax_year,
298 		           argument3  => p_sort_order1,
299 		           argument4  => p_sort_order2,
300 		           argument5  => p_sort_order3,
301 		           argument6  => p_sort_order4,
302 		           argument7  => p_sort_order5,
303 		           argument8  => p_sort_order6,
304 		           argument9  => p_sort_order7,
305 		           argument10  => p_business_group_id,
306 		           argument11  => 'N',
307 			   argument12  => p_tax_dist_ref);
308   -- Check the result of the extract call
309     l_file_name := 'l' || TO_CHAR(l_p60_id) || '.req';
310     IF l_p60_id = 0 THEN
311 	errbuf  := 'Error calling the P60 report';
312         hr_utility.trace('P60 REPORT returned failure message: see '|| l_file_name);
313         retcode := PROG_FAILURE ;
314         hr_utility.raise_error;
315         return ;
316     END IF;
317     COMMIT;
318     hr_utility.trace('    Submitted Req id: ' || TO_CHAR(l_p60_id) );
319     l_wait_outcome := fnd_concurrent.wait_for_request(
320 			   request_id => l_p60_id,
321 			   phase      => l_phase,
322 			   status     => l_status,
323 			   dev_phase  => l_dev_phase,
324 			   dev_status => l_dev_status,
325 			   message    => l_message);
326     hr_utility.trace('    Status : '||l_dev_status);
327     hr_utility.trace('    Phase  : '||l_dev_phase);
328     IF l_dev_phase = 'COMPLETE' AND l_dev_status <> 'NORMAL' THEN
329 	errbuf  := 'Error in the P60 report';
330         hr_utility.trace('P60 REPORT returned failure message: see ' || l_file_name);
331       retcode := PROG_FAILURE ;
332       hr_utility.raise_error;
333       return;
334     END IF;
335     hr_utility.trace('Finished P60 REPORT');
336   END IF;
337   hr_utility.trace('Finished EOY_CONTROL');
338 END;
339 END;/* End of package */