DBA Data[Home] [Help]

PACKAGE BODY: APPS.CN_PAYRUNS_PKG

Source


1 PACKAGE BODY cn_payruns_pkg AS
2 -- $Header: cnpruntb.pls 120.3 2005/09/22 13:01:26 rnagired ship $
3 
4    -- ===========================================================================
5 -- Procedure Name : Insert_Record
6 -- Purpose        : Main insert procedure
7 -- ===========================================================================
8    PROCEDURE INSERT_RECORD (
9       x_payrun_id                IN       NUMBER,
10       x_name                              cn_payruns.NAME%TYPE,
11       x_pay_period_id                     cn_payruns.pay_period_id%TYPE,
12       x_incentive_type_code               cn_payruns.incentive_type_code%TYPE,
13       x_pay_group_id                      cn_payruns.pay_group_id%TYPE,
14       x_pay_date                          cn_payruns.pay_date%TYPE,
15       x_accounting_period_id              cn_payruns.accounting_period_id%TYPE,
16       x_batch_id                          cn_payruns.batch_id%TYPE,
17       x_status                            cn_payruns.status%TYPE,
18       x_created_by                        cn_payruns.created_by%TYPE,
19       x_creation_date                     cn_payruns.creation_date%TYPE,
20       x_object_version_number             cn_payruns.object_version_number%TYPE,
21       x_org_id                            cn_payruns.org_id%TYPE,
22 	x_payrun_mode                  	cn_payruns.payrun_mode%TYPE
23    )
24    IS
25    BEGIN
26       INSERT INTO cn_payruns
27                   (payrun_id,
28                    NAME,
29                    pay_period_id,
30                    incentive_type_code,
31                    pay_group_id,
32                    pay_date,
33                    accounting_period_id,
34                    batch_id,
35                    status,
36                    created_by,
37                    creation_date,
38                    object_version_number,
39                    org_id,
40 			 payrun_mode
41 
42                   )
43            VALUES (NVL (x_payrun_id, cn_payruns_s.NEXTVAL),
44                    x_name,
45                    x_pay_period_id,
46                    x_incentive_type_code,
47                    x_pay_group_id,
48                    x_pay_date,
49                    x_accounting_period_id,
50                    x_batch_id,
51                    x_status,
52                    x_created_by,
53                    x_creation_date,
54                    x_object_version_number,
55                    x_org_id,
56 			 x_payrun_mode
57                   );
58    END INSERT_RECORD;
59 
60 -- ===========================================================================
61 -- Procedure Name : Lock_Record
62 -- Purpose        : Lock db row after form record is changed
63 -- Notes          : Only called from the form
64 -- ===========================================================================
65    PROCEDURE LOCK_RECORD (
66       x_rowid                             VARCHAR2,
67       x_payrun_id                         NUMBER
68    )
69    IS
70       CURSOR c
71       IS
72          SELECT        *
73                   FROM cn_payruns
74                  WHERE payrun_id = x_payrun_id
75          FOR UPDATE OF payrun_id NOWAIT;
76 
77       recinfo                       c%ROWTYPE;
78    BEGIN
79       OPEN c;
80 
81       FETCH c
82        INTO recinfo;
83 
84       IF (c%NOTFOUND)
85       THEN
86          CLOSE c;
87 
88          fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
89          app_exception.raise_exception;
90       END IF;
91 
92       CLOSE c;
93 
94       IF recinfo.payrun_id = x_payrun_id
95       THEN
96          RETURN;
97       ELSE
98          fnd_message.set_name ('FND', 'FORM_RECORD_CHANGED');
99          app_exception.raise_exception;
100       END IF;
101    END LOCK_RECORD;
102 
103 -- ===========================================================================
104 -- Procedure Name : Update Record
105 -- Purpose        : To Update the Payment Plans
106 -- ===========================================================================
107    PROCEDURE UPDATE_RECORD (
108       x_payrun_id                         cn_payruns.payrun_id%TYPE,
109       x_name                              cn_payruns.NAME%TYPE := fnd_api.g_miss_char,
110       x_pay_period_id                     cn_payruns.pay_period_id%TYPE := cn_api.g_miss_id,
111       x_incentive_type_code               cn_payruns.incentive_type_code%TYPE := cn_api.g_miss_char,
112       x_pay_group_id                      cn_payruns.pay_group_id%TYPE := cn_api.g_miss_id,
113       x_pay_date                          cn_payruns.pay_date%TYPE := fnd_api.g_miss_date,
114       x_accounting_period_id              cn_payruns.accounting_period_id%TYPE := cn_api.g_miss_id,
115       x_batch_id                          cn_payruns.batch_id%TYPE := cn_api.g_miss_id,
116       x_status                            cn_payruns.status%TYPE := fnd_api.g_miss_char,
117       x_last_updated_by                   cn_payruns.last_updated_by%TYPE,
118       x_last_update_date                  cn_payruns.last_update_date%TYPE,
119       x_last_update_login                 cn_payruns.last_update_login%TYPE,
120       x_object_version_number             cn_payruns.object_version_number%TYPE
121    )
122    IS
123       l_name                        cn_payruns.NAME%TYPE;
124       l_pay_period_id               cn_payruns.pay_period_id%TYPE;
125       l_incentive_type_code         cn_payruns.incentive_type_code%TYPE;
126       l_pay_group_id                cn_payruns.pay_group_id%TYPE;
127       l_pay_date                    cn_payruns.pay_date%TYPE;
128       l_accounting_period_id        cn_payruns.accounting_period_id%TYPE;
129       l_batch_id                    cn_payruns.batch_id%TYPE;
130       l_status                      cn_payruns.status%TYPE;
131 
132       CURSOR payrun_cur
133       IS
134          SELECT *
135            FROM cn_payruns
136           WHERE payrun_id = x_payrun_id;
137 
138       l_payrun_rec                  payrun_cur%ROWTYPE;
139    BEGIN
140       OPEN payrun_cur;
141 
142       FETCH payrun_cur
143        INTO l_payrun_rec;
144 
145       CLOSE payrun_cur;
146 
147       SELECT DECODE (x_name, fnd_api.g_miss_char, l_payrun_rec.NAME, x_name),
148              DECODE (x_pay_period_id, cn_api.g_miss_id, l_payrun_rec.pay_period_id, x_pay_period_id),
149              DECODE (x_incentive_type_code, cn_api.g_miss_char, l_payrun_rec.incentive_type_code, x_incentive_type_code),
150              DECODE (x_pay_group_id, cn_api.g_miss_id, l_payrun_rec.pay_group_id, x_pay_group_id),
151              DECODE (x_pay_date, fnd_api.g_miss_date, l_payrun_rec.pay_date, x_pay_date),
152              DECODE (x_accounting_period_id, cn_api.g_miss_id, l_payrun_rec.accounting_period_id, x_accounting_period_id),
153              DECODE (x_batch_id, cn_api.g_miss_id, l_payrun_rec.batch_id, x_batch_id),
154              DECODE (x_status, fnd_api.g_miss_char, l_payrun_rec.status, x_status)
155         INTO l_name,
156              l_pay_period_id,
157              l_incentive_type_code,
158              l_pay_group_id,
159              l_pay_date,
160              l_accounting_period_id,
161              l_batch_id,
162              l_status
163         FROM DUAL;
164 
165       UPDATE cn_payruns
166          SET NAME = l_name,
167              pay_period_id = l_pay_period_id,
168              incentive_type_code = l_incentive_type_code,
169              pay_group_id = l_pay_group_id,
170              pay_date = l_pay_date,
171              accounting_period_id = l_accounting_period_id,
172              batch_id = l_batch_id,
173              status = l_status,
174              last_update_date = x_last_update_date,
175              last_updated_by = x_last_updated_by,
176              last_update_login = x_last_update_login,
177              object_version_number = x_object_version_number + 1
178        WHERE payrun_id = x_payrun_id AND object_version_number = x_object_version_number;
179 
180       IF (SQL%NOTFOUND)
181       THEN
182          RAISE NO_DATA_FOUND;
183       END IF;
184    END UPDATE_RECORD;
185 
186 -- ===========================================================================
187 -- Procedure Name : Delete_Record
188 -- Purpose        : Delete the Payment Plan if it has not been assigned
189 --                  to a salesrep
190 -- ===========================================================================
191    PROCEDURE DELETE_RECORD (
192       x_payrun_id                         NUMBER
193    )
194    IS
195    BEGIN
196       DELETE FROM cn_payruns
197             WHERE payrun_id = x_payrun_id;
198    END DELETE_RECORD;
199 END cn_payruns_pkg;