DBA Data[Home] [Help]

PACKAGE BODY: APPS.PSP_PAYROLL_SUB_LINES_PKG

Source


1 package body PSP_PAYROLL_SUB_LINES_PKG as
2  /* $Header: PSPPITSB.pls 120.0 2005/06/02 16:01:30 appldev noship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out NOCOPY VARCHAR2,
5   X_PAYROLL_SUB_LINE_ID in NUMBER,
6   X_PAYROLL_LINE_ID in NUMBER,
7   X_SUB_LINE_START_DATE in DATE,
8   X_SUB_LINE_END_DATE in DATE,
9   X_REASON_CODE in VARCHAR2,
10   X_PAY_AMOUNT in NUMBER,
11   X_DAILY_RATE in NUMBER,
12   X_SALARY_USED in NUMBER,
13   X_CURRENT_SALARY in NUMBER,
14   X_FTE in NUMBER,
15   X_ORGANIZATION_ID in NUMBER,
16   X_JOB_ID in NUMBER,
17   X_POSITION_ID in NUMBER,
18   X_GRADE_ID    in NUMBER,
19   X_PEOPLE_GRP_ID in NUMBER,
20   X_EMPLOYMENT_BEGIN_DATE in DATE,
21   X_EMPLOYMENT_END_DATE in DATE,
22   X_EMPLOYEE_STATUS_INACTIVE_DAT in DATE,
23   X_EMPLOYEE_STATUS_ACTIVE_DATE in DATE,
24   X_ASSIGNMENT_BEGIN_DATE in DATE,
25   X_ASSIGNMENT_END_DATE in DATE,
26   X_ATTRIBUTE_CATEGORY IN VARCHAR2,	-- Introduced DFF columns for bug fix 2908859
27   X_ATTRIBUTE1 IN VARCHAR2,
28   X_ATTRIBUTE2 IN VARCHAR2,
29   X_ATTRIBUTE3 IN VARCHAR2,
30   X_ATTRIBUTE4 IN VARCHAR2,
31   X_ATTRIBUTE5 IN VARCHAR2,
32   X_ATTRIBUTE6 IN VARCHAR2,
33   X_ATTRIBUTE7 IN VARCHAR2,
34   X_ATTRIBUTE8 IN VARCHAR2,
35   X_ATTRIBUTE9 IN VARCHAR2,
36   X_ATTRIBUTE10 IN VARCHAR2,
37   X_MODE in VARCHAR2 default 'R'
38   ) is
39     cursor C is select ROWID from PSP_PAYROLL_SUB_LINES
40       where PAYROLL_SUB_LINE_ID = X_PAYROLL_SUB_LINE_ID;
41     X_LAST_UPDATE_DATE DATE;
42     X_LAST_UPDATED_BY NUMBER;
43     X_LAST_UPDATE_LOGIN NUMBER;
44 begin
45   X_LAST_UPDATE_DATE := SYSDATE;
46   if(X_MODE = 'I') then
47     X_LAST_UPDATED_BY := 1;
48     X_LAST_UPDATE_LOGIN := 0;
49   elsif (X_MODE = 'R') then
50     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
51     if X_LAST_UPDATED_BY is NULL then
52       X_LAST_UPDATED_BY := -1;
53     end if;
54     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
55     if X_LAST_UPDATE_LOGIN is NULL then
56       X_LAST_UPDATE_LOGIN := -1;
57     end if;
58   else
59     FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
60     app_exception.raise_exception;
61   end if;
62   insert into PSP_PAYROLL_SUB_LINES (
63     PAYROLL_SUB_LINE_ID,
64     PAYROLL_LINE_ID,
65     SUB_LINE_START_DATE,
66     SUB_LINE_END_DATE,
67     REASON_CODE,
68     PAY_AMOUNT,
69     DAILY_RATE,
70     SALARY_USED,
71     CURRENT_SALARY,
72     FTE,
73     ORGANIZATION_ID,
74     JOB_ID,
75     POSITION_ID,
76     GRADE_ID,
77     PEOPLE_GROUP_ID,
78     EMPLOYMENT_BEGIN_DATE,
79     EMPLOYMENT_END_DATE,
80     EMPLOYEE_STATUS_INACTIVE_DATE,
81     EMPLOYEE_STATUS_ACTIVE_DATE,
82     ASSIGNMENT_BEGIN_DATE,
83     ASSIGNMENT_END_DATE,
84     CREATION_DATE,
85     CREATED_BY,
86     LAST_UPDATE_DATE,
87     LAST_UPDATED_BY,
88     LAST_UPDATE_LOGIN,
89     ATTRIBUTE_CATEGORY,		-- Introduced DFF columns for bug fix 2908859
90     ATTRIBUTE1,
91     ATTRIBUTE2,
92     ATTRIBUTE3,
93     ATTRIBUTE4,
94     ATTRIBUTE5,
95     ATTRIBUTE6,
96     ATTRIBUTE7,
97     ATTRIBUTE8,
98     ATTRIBUTE9,
99     ATTRIBUTE10
100   ) values (
101     X_PAYROLL_SUB_LINE_ID,
102     X_PAYROLL_LINE_ID,
103     X_SUB_LINE_START_DATE,
104     X_SUB_LINE_END_DATE,
105     X_REASON_CODE,
106     X_PAY_AMOUNT,
107     X_DAILY_RATE,
108     X_SALARY_USED,
109     X_CURRENT_SALARY,
110     X_FTE,
111     X_ORGANIZATION_ID,
112     X_JOB_ID,
113     X_POSITION_ID,
114     X_GRADE_ID    ,
115     X_PEOPLE_GRP_ID ,
116     X_EMPLOYMENT_BEGIN_DATE,
117     X_EMPLOYMENT_END_DATE,
118     X_EMPLOYEE_STATUS_INACTIVE_DAT,
119     X_EMPLOYEE_STATUS_ACTIVE_DATE,
120     X_ASSIGNMENT_BEGIN_DATE,
121     X_ASSIGNMENT_END_DATE,
122     X_LAST_UPDATE_DATE,
123     X_LAST_UPDATED_BY,
124     X_LAST_UPDATE_DATE,
125     X_LAST_UPDATED_BY,
126     X_LAST_UPDATE_LOGIN,
127     X_ATTRIBUTE_CATEGORY,		-- Introduced DFF columns for bug fix 2908859
128     X_ATTRIBUTE1,
129     X_ATTRIBUTE2,
130     X_ATTRIBUTE3,
131     X_ATTRIBUTE4,
132     X_ATTRIBUTE5,
133     X_ATTRIBUTE6,
134     X_ATTRIBUTE7,
135     X_ATTRIBUTE8,
136     X_ATTRIBUTE9,
137     X_ATTRIBUTE10
138   );
139 
140   open c;
141   fetch c into X_ROWID;
142   if (c%notfound) then
143     close c;
144     raise no_data_found;
145   end if;
146   close c;
147 
148 end INSERT_ROW;
149 
150 procedure LOCK_ROW (
151   X_PAYROLL_SUB_LINE_ID in NUMBER,
152   X_PAYROLL_LINE_ID in NUMBER,
153   X_SUB_LINE_START_DATE in DATE,
154   X_SUB_LINE_END_DATE in DATE,
155   X_REASON_CODE in VARCHAR2,
156   X_PAY_AMOUNT in NUMBER,
157   X_DAILY_RATE in NUMBER,
158   X_SALARY_USED in NUMBER,
159   X_CURRENT_SALARY in NUMBER,
160   X_FTE in NUMBER,
161   X_ORGANIZATION_ID in NUMBER,
162   X_JOB_ID in NUMBER,
163   X_POSITION_ID in NUMBER,
164   X_GRADE_ID    in NUMBER,
165   X_PEOPLE_GRP_ID in NUMBER,
166   X_EMPLOYMENT_BEGIN_DATE in DATE,
167   X_EMPLOYMENT_END_DATE in DATE,
168   X_EMPLOYEE_STATUS_INACTIVE_DAT in DATE,
169   X_EMPLOYEE_STATUS_ACTIVE_DATE in DATE,
170   X_ASSIGNMENT_BEGIN_DATE in DATE,
171   X_ASSIGNMENT_END_DATE in DATE,
172   X_ATTRIBUTE_CATEGORY IN VARCHAR2,	-- Introduced DFF columns for bug fix 2908859
173   X_ATTRIBUTE1 IN VARCHAR2,
174   X_ATTRIBUTE2 IN VARCHAR2,
175   X_ATTRIBUTE3 IN VARCHAR2,
176   X_ATTRIBUTE4 IN VARCHAR2,
177   X_ATTRIBUTE5 IN VARCHAR2,
178   X_ATTRIBUTE6 IN VARCHAR2,
179   X_ATTRIBUTE7 IN VARCHAR2,
180   X_ATTRIBUTE8 IN VARCHAR2,
181   X_ATTRIBUTE9 IN VARCHAR2,
182   X_ATTRIBUTE10 IN VARCHAR2
183 ) is
184   cursor c1 is select
185       PAYROLL_LINE_ID,
186       SUB_LINE_START_DATE,
187       SUB_LINE_END_DATE,
188       REASON_CODE,
189       PAY_AMOUNT,
190       DAILY_RATE,
191       SALARY_USED,
192       CURRENT_SALARY,
193       FTE,
194       ORGANIZATION_ID,
195       JOB_ID,
196       POSITION_ID,
197       GRADE_ID,
198       PEOPLE_GROUP_ID,
199       EMPLOYMENT_BEGIN_DATE,
200       EMPLOYMENT_END_DATE,
201       EMPLOYEE_STATUS_INACTIVE_DATE,
202       EMPLOYEE_STATUS_ACTIVE_DATE,
203       ASSIGNMENT_BEGIN_DATE,
204       ASSIGNMENT_END_DATE,
205       ATTRIBUTE_CATEGORY,
206       ATTRIBUTE1,
207       ATTRIBUTE2,
208       ATTRIBUTE3,
209       ATTRIBUTE4,
210       ATTRIBUTE5,
211       ATTRIBUTE6,
212       ATTRIBUTE7,
213       ATTRIBUTE8,
214       ATTRIBUTE9,
215       ATTRIBUTE10
216     from PSP_PAYROLL_SUB_LINES
217     where PAYROLL_SUB_LINE_ID = X_PAYROLL_SUB_LINE_ID
218     for update of PAYROLL_SUB_LINE_ID nowait;
219   tlinfo c1%rowtype;
220 
221 begin
222   open c1;
223   fetch c1 into tlinfo;
224   if (c1%notfound) then
225     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
226     app_exception.raise_exception;
227     close c1;
228     return;
229   end if;
230   close c1;
231 
232   if ( (tlinfo.PAYROLL_LINE_ID = X_PAYROLL_LINE_ID)
233       AND (tlinfo.SUB_LINE_START_DATE = X_SUB_LINE_START_DATE)
234       AND (tlinfo.SUB_LINE_END_DATE = X_SUB_LINE_END_DATE)
235       AND ((tlinfo.REASON_CODE = X_REASON_CODE)
236            OR ((tlinfo.REASON_CODE is null)
237                AND (X_REASON_CODE is null)))
238       AND (tlinfo.PAY_AMOUNT = X_PAY_AMOUNT)
239       AND (tlinfo.DAILY_RATE = X_DAILY_RATE)
240       AND (tlinfo.SALARY_USED = X_SALARY_USED)
241       AND ((tlinfo.CURRENT_SALARY = X_CURRENT_SALARY)
242            OR ((tlinfo.CURRENT_SALARY is null)
243                AND (X_CURRENT_SALARY is null)))
244       AND ((tlinfo.FTE = X_FTE)
245            OR ((tlinfo.FTE is null)
246                AND (X_FTE is null)))
247       AND ((tlinfo.ORGANIZATION_ID = X_ORGANIZATION_ID)
248            OR ((tlinfo.ORGANIZATION_ID is null)
249                AND (X_ORGANIZATION_ID is null)))
250       AND ((tlinfo.JOB_ID = X_JOB_ID)
251            OR ((tlinfo.JOB_ID is null)
252                AND (X_JOB_ID is null)))
253       AND ((tlinfo.POSITION_ID = X_POSITION_ID)
254            OR ((tlinfo.POSITION_ID is null)
255                AND (X_POSITION_ID is null)))
256       AND ((tlinfo.GRADE_ID = X_GRADE_ID)
257            OR ((tlinfo.GRADE_ID is null)
258                AND (X_GRADE_ID is null)))
259       AND ((tlinfo.PEOPLE_GROUP_ID = X_PEOPLE_GRP_ID)
260            OR ((tlinfo.PEOPLE_GROUP_ID is null)
261                AND (X_PEOPLE_GRP_ID is null)))
262       AND ((tlinfo.EMPLOYMENT_BEGIN_DATE = X_EMPLOYMENT_BEGIN_DATE)
263            OR ((tlinfo.EMPLOYMENT_BEGIN_DATE is null)
264                AND (X_EMPLOYMENT_BEGIN_DATE is null)))
265       AND ((tlinfo.EMPLOYMENT_END_DATE = X_EMPLOYMENT_END_DATE)
266            OR ((tlinfo.EMPLOYMENT_END_DATE is null)
267                AND (X_EMPLOYMENT_END_DATE is null)))
268       AND ((tlinfo.EMPLOYEE_STATUS_INACTIVE_DATE = X_EMPLOYEE_STATUS_INACTIVE_DAT)
269            OR ((tlinfo.EMPLOYEE_STATUS_INACTIVE_DATE is null)
270                AND (X_EMPLOYEE_STATUS_INACTIVE_DAT is null)))
271       AND ((tlinfo.EMPLOYEE_STATUS_ACTIVE_DATE = X_EMPLOYEE_STATUS_ACTIVE_DATE)
272            OR ((tlinfo.EMPLOYEE_STATUS_ACTIVE_DATE is null)
273                AND (X_EMPLOYEE_STATUS_ACTIVE_DATE is null)))
274       AND ((tlinfo.ASSIGNMENT_BEGIN_DATE = X_ASSIGNMENT_BEGIN_DATE)
275            OR ((tlinfo.ASSIGNMENT_BEGIN_DATE is null)
276                AND (X_ASSIGNMENT_BEGIN_DATE is null)))
277       AND ((tlinfo.ASSIGNMENT_END_DATE = X_ASSIGNMENT_END_DATE)
278            OR ((tlinfo.ASSIGNMENT_END_DATE is null)
279                AND (X_ASSIGNMENT_END_DATE is null)))
280       AND ((tlinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)		-- Introduced DFF columns for bug fix 2908859
281            OR ((tlinfo.ATTRIBUTE_CATEGORY is null)
282                AND (X_ATTRIBUTE_CATEGORY is null)))
283       AND ((tlinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
284            OR ((tlinfo.ATTRIBUTE1 is null)
285                AND (X_ATTRIBUTE1 is null)))
286       AND ((tlinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
287            OR ((tlinfo.ATTRIBUTE2 is null)
288                AND (X_ATTRIBUTE2 is null)))
289       AND ((tlinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
290            OR ((tlinfo.ATTRIBUTE3 is null)
291                AND (X_ATTRIBUTE3 is null)))
292       AND ((tlinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
293            OR ((tlinfo.ATTRIBUTE4 is null)
294                AND (X_ATTRIBUTE4 is null)))
295       AND ((tlinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
296            OR ((tlinfo.ATTRIBUTE5 is null)
297                AND (X_ATTRIBUTE5 is null)))
298       AND ((tlinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
299            OR ((tlinfo.ATTRIBUTE6 is null)
300                AND (X_ATTRIBUTE6 is null)))
301       AND ((tlinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
302            OR ((tlinfo.ATTRIBUTE7 is null)
303                AND (X_ATTRIBUTE7 is null)))
304       AND ((tlinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
305            OR ((tlinfo.ATTRIBUTE8 is null)
306                AND (X_ATTRIBUTE8 is null)))
307       AND ((tlinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
308            OR ((tlinfo.ATTRIBUTE9 is null)
309                AND (X_ATTRIBUTE9 is null)))
310       AND ((tlinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
311            OR ((tlinfo.ATTRIBUTE10 is null)
312                AND (X_ATTRIBUTE10 is null)))
313   ) then
314     null;
315   else
316     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
317     app_exception.raise_exception;
318   end if;
319   return;
320 end LOCK_ROW;
321 
322 procedure UPDATE_ROW (
323   X_PAYROLL_SUB_LINE_ID in NUMBER,
324   X_PAYROLL_LINE_ID in NUMBER,
325   X_SUB_LINE_START_DATE in DATE,
326   X_SUB_LINE_END_DATE in DATE,
327   X_REASON_CODE in VARCHAR2,
328   X_PAY_AMOUNT in NUMBER,
329   X_DAILY_RATE in NUMBER,
330   X_SALARY_USED in NUMBER,
331   X_CURRENT_SALARY in NUMBER,
332   X_FTE in NUMBER,
333   X_ORGANIZATION_ID in NUMBER,
334   X_JOB_ID in NUMBER,
335   X_POSITION_ID in NUMBER,
336   X_GRADE_ID    in NUMBER,
337   X_PEOPLE_GRP_ID in NUMBER,
338   X_EMPLOYMENT_BEGIN_DATE in DATE,
339   X_EMPLOYMENT_END_DATE in DATE,
340   X_EMPLOYEE_STATUS_INACTIVE_DAT in DATE,
341   X_EMPLOYEE_STATUS_ACTIVE_DATE in DATE,
342   X_ASSIGNMENT_BEGIN_DATE in DATE,
343   X_ASSIGNMENT_END_DATE in DATE,
344   X_ATTRIBUTE_CATEGORY IN VARCHAR2,	-- Introduced DFF columns for bug fix 2908859
345   X_ATTRIBUTE1 IN VARCHAR2,
346   X_ATTRIBUTE2 IN VARCHAR2,
347   X_ATTRIBUTE3 IN VARCHAR2,
348   X_ATTRIBUTE4 IN VARCHAR2,
349   X_ATTRIBUTE5 IN VARCHAR2,
350   X_ATTRIBUTE6 IN VARCHAR2,
351   X_ATTRIBUTE7 IN VARCHAR2,
352   X_ATTRIBUTE8 IN VARCHAR2,
353   X_ATTRIBUTE9 IN VARCHAR2,
354   X_ATTRIBUTE10 IN VARCHAR2,
355   X_MODE in VARCHAR2 default 'R'
356   ) is
357     X_LAST_UPDATE_DATE DATE;
358     X_LAST_UPDATED_BY NUMBER;
359     X_LAST_UPDATE_LOGIN NUMBER;
360 begin
361   X_LAST_UPDATE_DATE := SYSDATE;
362   if(X_MODE = 'I') then
363     X_LAST_UPDATED_BY := 1;
364     X_LAST_UPDATE_LOGIN := 0;
365   elsif (X_MODE = 'R') then
366     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
367     if X_LAST_UPDATED_BY is NULL then
368       X_LAST_UPDATED_BY := -1;
369     end if;
370     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
371     if X_LAST_UPDATE_LOGIN is NULL then
372       X_LAST_UPDATE_LOGIN := -1;
373     end if;
374   else
375     FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
376     app_exception.raise_exception;
377   end if;
378   update PSP_PAYROLL_SUB_LINES set
379     PAYROLL_LINE_ID = X_PAYROLL_LINE_ID,
380     SUB_LINE_START_DATE = X_SUB_LINE_START_DATE,
381     SUB_LINE_END_DATE = X_SUB_LINE_END_DATE,
382     REASON_CODE = X_REASON_CODE,
383     PAY_AMOUNT = X_PAY_AMOUNT,
384     DAILY_RATE = X_DAILY_RATE,
385     SALARY_USED = X_SALARY_USED,
386     CURRENT_SALARY = X_CURRENT_SALARY,
387     FTE = X_FTE,
388     ORGANIZATION_ID = X_ORGANIZATION_ID,
389     JOB_ID = X_JOB_ID,
390     POSITION_ID = X_POSITION_ID,
391     GRADE_ID    = X_GRADE_ID,
392     PEOPLE_GROUP_ID  = X_PEOPLE_GRP_ID,
393     EMPLOYMENT_BEGIN_DATE = X_EMPLOYMENT_BEGIN_DATE,
394     EMPLOYMENT_END_DATE = X_EMPLOYMENT_END_DATE,
395     EMPLOYEE_STATUS_INACTIVE_DATE = X_EMPLOYEE_STATUS_INACTIVE_DAT,
396     EMPLOYEE_STATUS_ACTIVE_DATE = X_EMPLOYEE_STATUS_ACTIVE_DATE,
397     ASSIGNMENT_BEGIN_DATE = X_ASSIGNMENT_BEGIN_DATE,
398     ASSIGNMENT_END_DATE = X_ASSIGNMENT_END_DATE,
399     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
400     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
401     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
402     ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,			-- Introduced DFF columns for bub fix 2908859
403     ATTRIBUTE1 = X_ATTRIBUTE1,
404     ATTRIBUTE2 = X_ATTRIBUTE2,
405     ATTRIBUTE3 = X_ATTRIBUTE3,
406     ATTRIBUTE4 = X_ATTRIBUTE4,
407     ATTRIBUTE5 = X_ATTRIBUTE5,
408     ATTRIBUTE6 = X_ATTRIBUTE6,
409     ATTRIBUTE7 = X_ATTRIBUTE7,
410     ATTRIBUTE8 = X_ATTRIBUTE8,
411     ATTRIBUTE9 = X_ATTRIBUTE9,
412     ATTRIBUTE10 = X_ATTRIBUTE10
413   where PAYROLL_SUB_LINE_ID = X_PAYROLL_SUB_LINE_ID
414   ;
415   if (sql%notfound) then
416     raise no_data_found;
417   end if;
418 end UPDATE_ROW;
419 
420 procedure ADD_ROW (
421   X_ROWID in out NOCOPY VARCHAR2,
422   X_PAYROLL_SUB_LINE_ID in NUMBER,
423   X_PAYROLL_LINE_ID in NUMBER,
424   X_SUB_LINE_START_DATE in DATE,
425   X_SUB_LINE_END_DATE in DATE,
426   X_REASON_CODE in VARCHAR2,
427   X_PAY_AMOUNT in NUMBER,
428   X_DAILY_RATE in NUMBER,
429   X_SALARY_USED in NUMBER,
430   X_CURRENT_SALARY in NUMBER,
431   X_FTE in NUMBER,
432   X_ORGANIZATION_ID in NUMBER,
433   X_JOB_ID in NUMBER,
434   X_POSITION_ID in NUMBER,
435   X_GRADE_ID     in NUMBER,
436   X_PEOPLE_GRP_ID in NUMBER,
440   X_EMPLOYEE_STATUS_ACTIVE_DATE in DATE,
437   X_EMPLOYMENT_BEGIN_DATE in DATE,
438   X_EMPLOYMENT_END_DATE in DATE,
439   X_EMPLOYEE_STATUS_INACTIVE_DAT in DATE,
441   X_ASSIGNMENT_BEGIN_DATE in DATE,
442   X_ASSIGNMENT_END_DATE in DATE,
443   X_ATTRIBUTE_CATEGORY IN VARCHAR2,	-- Introduced DFF columns for bug fix 2908859
444   X_ATTRIBUTE1 IN VARCHAR2,
445   X_ATTRIBUTE2 IN VARCHAR2,
446   X_ATTRIBUTE3 IN VARCHAR2,
447   X_ATTRIBUTE4 IN VARCHAR2,
448   X_ATTRIBUTE5 IN VARCHAR2,
449   X_ATTRIBUTE6 IN VARCHAR2,
450   X_ATTRIBUTE7 IN VARCHAR2,
451   X_ATTRIBUTE8 IN VARCHAR2,
452   X_ATTRIBUTE9 IN VARCHAR2,
453   X_ATTRIBUTE10 IN VARCHAR2,
454   X_MODE in VARCHAR2 default 'R'
455   ) is
456   cursor c1 is select rowid from PSP_PAYROLL_SUB_LINES
457      where PAYROLL_SUB_LINE_ID = X_PAYROLL_SUB_LINE_ID
458   ;
459   dummy c1%rowtype;
460 begin
461   open c1;
462   fetch c1 into dummy;
463   if (c1%notfound) then
464     close c1;
465     INSERT_ROW (
466      X_ROWID,
467      X_PAYROLL_SUB_LINE_ID,
468      X_PAYROLL_LINE_ID,
469      X_SUB_LINE_START_DATE,
470      X_SUB_LINE_END_DATE,
471      X_REASON_CODE,
472      X_PAY_AMOUNT,
473      X_DAILY_RATE,
474      X_SALARY_USED,
475      X_CURRENT_SALARY,
476      X_FTE,
477      X_ORGANIZATION_ID,
478      X_JOB_ID,
479      X_POSITION_ID,
480      X_GRADE_ID,
481      X_PEOPLE_GRP_ID,
482      X_EMPLOYMENT_BEGIN_DATE,
483      X_EMPLOYMENT_END_DATE,
484      X_EMPLOYEE_STATUS_INACTIVE_DAT,
485      X_EMPLOYEE_STATUS_ACTIVE_DATE,
486      X_ASSIGNMENT_BEGIN_DATE,
487      X_ASSIGNMENT_END_DATE,
488      X_ATTRIBUTE_CATEGORY,		-- Introduced DFF columns for bug fix 2908859
489      X_ATTRIBUTE1,
490      X_ATTRIBUTE2,
491      X_ATTRIBUTE3,
492      X_ATTRIBUTE4,
493      X_ATTRIBUTE5,
494      X_ATTRIBUTE6,
495      X_ATTRIBUTE7,
496      X_ATTRIBUTE8,
497      X_ATTRIBUTE9,
498      X_ATTRIBUTE10,
499      X_MODE);
500     return;
501   end if;
502   close c1;
503   UPDATE_ROW (
504    X_PAYROLL_SUB_LINE_ID,
505    X_PAYROLL_LINE_ID,
506    X_SUB_LINE_START_DATE,
507    X_SUB_LINE_END_DATE,
508    X_REASON_CODE,
509    X_PAY_AMOUNT,
510    X_DAILY_RATE,
511    X_SALARY_USED,
512    X_CURRENT_SALARY,
513    X_FTE,
514    X_ORGANIZATION_ID,
515    X_JOB_ID,
516    X_POSITION_ID,
517    X_GRADE_ID,
518    X_PEOPLE_GRP_ID,
519    X_EMPLOYMENT_BEGIN_DATE,
520    X_EMPLOYMENT_END_DATE,
521    X_EMPLOYEE_STATUS_INACTIVE_DAT,
522    X_EMPLOYEE_STATUS_ACTIVE_DATE,
523    X_ASSIGNMENT_BEGIN_DATE,
524    X_ASSIGNMENT_END_DATE,
525    X_ATTRIBUTE_CATEGORY,		-- Introduced DFF columns for bug fix 2908859
526    X_ATTRIBUTE1,
527    X_ATTRIBUTE2,
528    X_ATTRIBUTE3,
529    X_ATTRIBUTE4,
530    X_ATTRIBUTE5,
531    X_ATTRIBUTE6,
532    X_ATTRIBUTE7,
533    X_ATTRIBUTE8,
534    X_ATTRIBUTE9,
535    X_ATTRIBUTE10,
536    X_MODE);
537 end ADD_ROW;
538 
539 procedure DELETE_ROW (
540   X_PAYROLL_SUB_LINE_ID in NUMBER
541 ) is
542 begin
543   delete from PSP_PAYROLL_SUB_LINES
544   where PAYROLL_SUB_LINE_ID = X_PAYROLL_SUB_LINE_ID;
545   if (sql%notfound) then
546     raise no_data_found;
547   end if;
548 end DELETE_ROW;
549 
550 end PSP_PAYROLL_SUB_LINES_PKG;