DBA Data[Home] [Help]

PACKAGE BODY: APPS.PV_PROCESS_RULES_PKG

Source


1 PACKAGE BODY PV_PROCESS_RULES_PKG as
2 /* $Header: pvrtprub.pls 120.2 2006/06/01 21:42:11 solin noship $ */
3 -- Start of Comments
4 -- Package name     : PV_PROCESS_RULES_PKG
5 -- Purpose          :
6 -- History          :
7 --      01/08/2002  SOLIN    Created.
8 -- NOTE             :
9 -- End of Comments
10 
11 
12 G_PKG_NAME CONSTANT VARCHAR2(30):= 'PV_PROCESS_RULES_PKG';
13 G_FILE_NAME CONSTANT VARCHAR2(12) := 'pvrtprub.pls';
14 
15 AS_DEBUG_HIGH_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
16 AS_DEBUG_LOW_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
17 AS_DEBUG_MEDIUM_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
18 
19 PROCEDURE Insert_Row(
20           px_PROCESS_RULE_ID   IN OUT NOCOPY NUMBER
21          ,p_PARENT_RULE_ID   IN NUMBER
22          ,p_LAST_UPDATE_DATE    DATE
23          ,p_LAST_UPDATED_BY    NUMBER
24          ,p_CREATION_DATE    DATE
25          ,p_CREATED_BY    NUMBER
26          ,p_LAST_UPDATE_LOGIN    NUMBER
27          ,p_OBJECT_VERSION_NUMBER    NUMBER
28          ,p_REQUEST_ID    NUMBER
29          ,p_PROGRAM_APPLICATION_ID    NUMBER
30          ,p_PROGRAM_ID    NUMBER
31          ,p_PROGRAM_UPDATE_DATE    DATE
32          ,p_PROCESS_TYPE    VARCHAR2
33          ,p_RANK    NUMBER
34          ,p_STATUS_CODE    VARCHAR2
35          ,p_START_DATE    DATE
36          ,p_END_DATE    DATE
37          ,p_ACTION    VARCHAR2
38          ,p_ACTION_VALUE    VARCHAR2
39          ,p_OWNER_RESOURCE_ID    NUMBER
40          ,p_CURRENCY_CODE    VARCHAR2
41          ,p_PROCESS_RULE_NAME    VARCHAR2
42          ,p_DESCRIPTION    VARCHAR2
43          ,p_ATTRIBUTE_CATEGORY    VARCHAR2
44          ,p_ATTRIBUTE1    VARCHAR2
45          ,p_ATTRIBUTE2    VARCHAR2
46          ,p_ATTRIBUTE3    VARCHAR2
47          ,p_ATTRIBUTE4    VARCHAR2
48          ,p_ATTRIBUTE5    VARCHAR2
49          ,p_ATTRIBUTE6    VARCHAR2
50          ,p_ATTRIBUTE7    VARCHAR2
51          ,p_ATTRIBUTE8    VARCHAR2
52          ,p_ATTRIBUTE9    VARCHAR2
53          ,p_ATTRIBUTE10    VARCHAR2
54          ,p_ATTRIBUTE11    VARCHAR2
55          ,p_ATTRIBUTE12    VARCHAR2
56          ,p_ATTRIBUTE13    VARCHAR2
57          ,p_ATTRIBUTE14    VARCHAR2
58          ,p_ATTRIBUTE15    VARCHAR2
59 )
60  IS
61    CURSOR C2 IS SELECT PV_PROCESS_RULES_B_S.nextval FROM sys.dual;
62 BEGIN
63    If (px_PROCESS_RULE_ID IS NULL) OR (px_PROCESS_RULE_ID = FND_API.G_MISS_NUM) then
64        OPEN C2;
65        FETCH C2 INTO px_PROCESS_RULE_ID;
66        CLOSE C2;
67    End If;
68    INSERT INTO PV_PROCESS_RULES_B(
69            PROCESS_RULE_ID
70           ,PARENT_RULE_ID
71           ,LAST_UPDATE_DATE
72           ,LAST_UPDATED_BY
73           ,CREATION_DATE
74           ,CREATED_BY
75           ,LAST_UPDATE_LOGIN
76           ,OBJECT_VERSION_NUMBER
77           ,REQUEST_ID
78           ,PROGRAM_APPLICATION_ID
79           ,PROGRAM_ID
80           ,PROGRAM_UPDATE_DATE
81           ,PROCESS_TYPE
82           ,RANK
83           ,STATUS_CODE
84           ,START_DATE
85           ,END_DATE
86           ,ACTION
87           ,ACTION_VALUE
88           ,OWNER_RESOURCE_ID
89           ,CURRENCY_CODE
90           ,ATTRIBUTE_CATEGORY
91           ,ATTRIBUTE1
92           ,ATTRIBUTE2
93           ,ATTRIBUTE3
94           ,ATTRIBUTE4
95           ,ATTRIBUTE5
96           ,ATTRIBUTE6
97           ,ATTRIBUTE7
98           ,ATTRIBUTE8
99           ,ATTRIBUTE9
100           ,ATTRIBUTE10
101           ,ATTRIBUTE11
102           ,ATTRIBUTE12
103           ,ATTRIBUTE13
104           ,ATTRIBUTE14
105           ,ATTRIBUTE15
106           ) VALUES (
107            px_PROCESS_RULE_ID
108           ,decode( p_PARENT_RULE_ID, FND_API.G_MISS_NUM, NULL, p_PARENT_RULE_ID)
109           ,decode( p_LAST_UPDATE_DATE, FND_API.G_MISS_DATE, TO_DATE(NULL), p_LAST_UPDATE_DATE)
110           ,decode( p_LAST_UPDATED_BY, FND_API.G_MISS_NUM, NULL, p_LAST_UPDATED_BY)
111           ,decode( p_CREATION_DATE, FND_API.G_MISS_DATE, TO_DATE(NULL), p_CREATION_DATE)
112           ,decode( p_CREATED_BY, FND_API.G_MISS_NUM, NULL, p_CREATED_BY)
113           ,decode( p_LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM, NULL, p_LAST_UPDATE_LOGIN)
114           ,1
115           ,decode( p_REQUEST_ID, FND_API.G_MISS_NUM, NULL, p_REQUEST_ID)
116           ,decode( p_PROGRAM_APPLICATION_ID, FND_API.G_MISS_NUM, NULL, p_PROGRAM_APPLICATION_ID)
117           ,decode( p_PROGRAM_ID, FND_API.G_MISS_NUM, NULL, p_PROGRAM_ID)
118           ,decode( p_PROGRAM_UPDATE_DATE, FND_API.G_MISS_DATE, TO_DATE(NULL), p_PROGRAM_UPDATE_DATE)
119           ,decode( p_PROCESS_TYPE, FND_API.G_MISS_CHAR, NULL, p_PROCESS_TYPE)
120           ,decode( p_RANK, FND_API.G_MISS_NUM, NULL, p_RANK)
121           ,decode( p_STATUS_CODE, FND_API.G_MISS_CHAR, NULL, p_STATUS_CODE)
122           ,decode( p_START_DATE, FND_API.G_MISS_DATE, TO_DATE(NULL), p_START_DATE)
123           ,decode( p_END_DATE, FND_API.G_MISS_DATE, TO_DATE(NULL), p_END_DATE)
124           ,decode( p_ACTION, FND_API.G_MISS_CHAR, NULL, p_ACTION)
125           ,decode( p_ACTION_VALUE, FND_API.G_MISS_CHAR, NULL, p_ACTION_VALUE)
126           ,decode( p_OWNER_RESOURCE_ID, FND_API.G_MISS_NUM, NULL, p_OWNER_RESOURCE_ID)
127           ,decode( p_CURRENCY_CODE, FND_API.G_MISS_CHAR, NULL, p_CURRENCY_CODE)
128           ,decode( p_ATTRIBUTE_CATEGORY, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE_CATEGORY)
129           ,decode( p_ATTRIBUTE1, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE1)
130           ,decode( p_ATTRIBUTE2, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE2)
131           ,decode( p_ATTRIBUTE3, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE3)
132           ,decode( p_ATTRIBUTE4, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE4)
133           ,decode( p_ATTRIBUTE5, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE5)
134           ,decode( p_ATTRIBUTE6, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE6)
135           ,decode( p_ATTRIBUTE7, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE7)
136           ,decode( p_ATTRIBUTE8, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE8)
137           ,decode( p_ATTRIBUTE9, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE9)
138           ,decode( p_ATTRIBUTE10, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE10)
139           ,decode( p_ATTRIBUTE11, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE11)
140           ,decode( p_ATTRIBUTE12, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE12)
141           ,decode( p_ATTRIBUTE13, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE13)
142           ,decode( p_ATTRIBUTE14, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE14)
143           ,decode( p_ATTRIBUTE15, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE15)
144 );
145 
146    INSERT INTO PV_PROCESS_RULES_TL (
147           PROCESS_RULE_ID,
148           LAST_UPDATE_DATE,
149           LAST_UPDATED_BY,
150           CREATION_DATE,
151           CREATED_BY,
152           LAST_UPDATE_LOGIN,
153           PROCESS_RULE_NAME,
154           DESCRIPTION,
155           LANGUAGE,
156           SOURCE_LANG
157         ) SELECT
158           px_PROCESS_RULE_ID
159           ,decode( p_LAST_UPDATE_DATE, FND_API.G_MISS_DATE, TO_DATE(NULL), p_LAST_UPDATE_DATE)
160           ,decode( p_LAST_UPDATED_BY, FND_API.G_MISS_NUM, NULL, p_LAST_UPDATED_BY)
161           ,decode( p_CREATION_DATE, FND_API.G_MISS_DATE, TO_DATE(NULL), p_CREATION_DATE)
162           ,decode( p_CREATED_BY, FND_API.G_MISS_NUM, NULL, p_CREATED_BY)
163           ,decode( p_LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM, NULL, p_LAST_UPDATE_LOGIN)
164           ,decode( p_PROCESS_RULE_NAME, FND_API.G_MISS_CHAR, NULL, p_PROCESS_RULE_NAME)
165           ,decode( p_DESCRIPTION, FND_API.G_MISS_CHAR, NULL, p_DESCRIPTION)
166           ,l.LANGUAGE_CODE
167           ,USERENV('LANG')
168         FROM FND_LANGUAGES L
169         WHERE L.INSTALLED_FLAG IN ('I', 'B')
170         AND NOT EXISTS
171           (SELECT NULL
172           FROM PV_PROCESS_RULES_TL T
173           WHERE T.PROCESS_RULE_ID = PX_PROCESS_RULE_ID
174           AND T.LANGUAGE = L.LANGUAGE_CODE);
175 End Insert_Row;
176 
177 PROCEDURE Update_Row(
178           p_PROCESS_RULE_ID    NUMBER
179          ,p_LAST_UPDATE_DATE    DATE
180          ,p_LAST_UPDATED_BY    NUMBER
181          ,p_CREATION_DATE    DATE
182          ,p_CREATED_BY    NUMBER
183          ,p_LAST_UPDATE_LOGIN    NUMBER
184          ,p_OBJECT_VERSION_NUMBER    NUMBER
185          ,p_REQUEST_ID    NUMBER
186          ,p_PROGRAM_APPLICATION_ID    NUMBER
187          ,p_PROGRAM_ID    NUMBER
188          ,p_PROGRAM_UPDATE_DATE    DATE
189          ,p_PROCESS_TYPE    VARCHAR2
190          ,p_RANK    NUMBER
191          ,p_STATUS_CODE    VARCHAR2
192          ,p_START_DATE    DATE
193          ,p_END_DATE    DATE
194          ,p_ACTION    VARCHAR2
195          ,p_ACTION_VALUE    VARCHAR2
196          ,p_OWNER_RESOURCE_ID    NUMBER
197          ,p_CURRENCY_CODE    VARCHAR2
198          ,p_PROCESS_RULE_NAME    VARCHAR2
199          ,p_DESCRIPTION    VARCHAR2
200          ,p_ATTRIBUTE_CATEGORY    VARCHAR2
201          ,p_ATTRIBUTE1    VARCHAR2
202          ,p_ATTRIBUTE2    VARCHAR2
203          ,p_ATTRIBUTE3    VARCHAR2
204          ,p_ATTRIBUTE4    VARCHAR2
205          ,p_ATTRIBUTE5    VARCHAR2
206          ,p_ATTRIBUTE6    VARCHAR2
207          ,p_ATTRIBUTE7    VARCHAR2
208          ,p_ATTRIBUTE8    VARCHAR2
209          ,p_ATTRIBUTE9    VARCHAR2
210          ,p_ATTRIBUTE10    VARCHAR2
211          ,p_ATTRIBUTE11    VARCHAR2
212          ,p_ATTRIBUTE12    VARCHAR2
213          ,p_ATTRIBUTE13    VARCHAR2
214          ,p_ATTRIBUTE14    VARCHAR2
215          ,p_ATTRIBUTE15    VARCHAR2
216 )
217  IS
218  BEGIN
219     Update PV_PROCESS_RULES_B
220     SET
221         LAST_UPDATE_DATE = decode( p_LAST_UPDATE_DATE, FND_API.G_MISS_DATE, LAST_UPDATE_DATE, p_LAST_UPDATE_DATE)
222        ,LAST_UPDATED_BY = decode( p_LAST_UPDATED_BY, FND_API.G_MISS_NUM, LAST_UPDATED_BY, p_LAST_UPDATED_BY)
223        ,CREATION_DATE = decode( p_CREATION_DATE, FND_API.G_MISS_DATE, CREATION_DATE, p_CREATION_DATE)
224        ,CREATED_BY = decode( p_CREATED_BY, FND_API.G_MISS_NUM, CREATED_BY, p_CREATED_BY)
225        ,LAST_UPDATE_LOGIN = decode( p_LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM, LAST_UPDATE_LOGIN, p_LAST_UPDATE_LOGIN)
226        ,OBJECT_VERSION_NUMBER = decode( p_OBJECT_VERSION_NUMBER, FND_API.G_MISS_NUM, OBJECT_VERSION_NUMBER, p_OBJECT_VERSION_NUMBER+1)
227        ,REQUEST_ID = decode( p_REQUEST_ID, FND_API.G_MISS_NUM, REQUEST_ID, p_REQUEST_ID)
228        ,PROGRAM_APPLICATION_ID = decode( p_PROGRAM_APPLICATION_ID, FND_API.G_MISS_NUM, PROGRAM_APPLICATION_ID, p_PROGRAM_APPLICATION_ID)
229        ,PROGRAM_ID = decode( p_PROGRAM_ID, FND_API.G_MISS_NUM, PROGRAM_ID, p_PROGRAM_ID)
230        ,PROGRAM_UPDATE_DATE = decode( p_PROGRAM_UPDATE_DATE, FND_API.G_MISS_DATE, PROGRAM_UPDATE_DATE, p_PROGRAM_UPDATE_DATE)
231        ,PROCESS_TYPE = decode( p_PROCESS_TYPE, FND_API.G_MISS_CHAR, PROCESS_TYPE, p_PROCESS_TYPE)
232        ,RANK = decode( p_RANK, FND_API.G_MISS_NUM, RANK, p_RANK)
233        ,STATUS_CODE = decode( p_STATUS_CODE, FND_API.G_MISS_CHAR, STATUS_CODE, p_STATUS_CODE)
234        ,START_DATE = decode( p_START_DATE, FND_API.G_MISS_DATE, START_DATE, p_START_DATE)
235        ,END_DATE = decode( p_END_DATE, FND_API.G_MISS_DATE, END_DATE, p_END_DATE)
236        ,ACTION = decode( p_ACTION, FND_API.G_MISS_CHAR, ACTION, p_ACTION)
237        ,ACTION_VALUE = decode( p_ACTION_VALUE, FND_API.G_MISS_CHAR, ACTION_VALUE, p_ACTION_VALUE)
238        ,OWNER_RESOURCE_ID = decode( p_OWNER_RESOURCE_ID, FND_API.G_MISS_NUM, OWNER_RESOURCE_ID, p_OWNER_RESOURCE_ID)
239        ,CURRENCY_CODE = decode( p_CURRENCY_CODE, FND_API.G_MISS_CHAR, CURRENCY_CODE, p_CURRENCY_CODE)
240        ,ATTRIBUTE_CATEGORY = decode( p_ATTRIBUTE_CATEGORY, FND_API.G_MISS_CHAR, ATTRIBUTE_CATEGORY, p_ATTRIBUTE_CATEGORY)
241        ,ATTRIBUTE1 = decode( p_ATTRIBUTE1, FND_API.G_MISS_CHAR, ATTRIBUTE1, p_ATTRIBUTE1)
242        ,ATTRIBUTE2 = decode( p_ATTRIBUTE2, FND_API.G_MISS_CHAR, ATTRIBUTE2, p_ATTRIBUTE2)
243        ,ATTRIBUTE3 = decode( p_ATTRIBUTE3, FND_API.G_MISS_CHAR, ATTRIBUTE3, p_ATTRIBUTE3)
244        ,ATTRIBUTE4 = decode( p_ATTRIBUTE4, FND_API.G_MISS_CHAR, ATTRIBUTE4, p_ATTRIBUTE4)
245        ,ATTRIBUTE5 = decode( p_ATTRIBUTE5, FND_API.G_MISS_CHAR, ATTRIBUTE5, p_ATTRIBUTE5)
249        ,ATTRIBUTE9 = decode( p_ATTRIBUTE9, FND_API.G_MISS_CHAR, ATTRIBUTE9, p_ATTRIBUTE9)
246        ,ATTRIBUTE6 = decode( p_ATTRIBUTE6, FND_API.G_MISS_CHAR, ATTRIBUTE6, p_ATTRIBUTE6)
247        ,ATTRIBUTE7 = decode( p_ATTRIBUTE7, FND_API.G_MISS_CHAR, ATTRIBUTE7, p_ATTRIBUTE7)
248        ,ATTRIBUTE8 = decode( p_ATTRIBUTE8, FND_API.G_MISS_CHAR, ATTRIBUTE8, p_ATTRIBUTE8)
250        ,ATTRIBUTE10 = decode( p_ATTRIBUTE10, FND_API.G_MISS_CHAR, ATTRIBUTE10, p_ATTRIBUTE10)
251        ,ATTRIBUTE11 = decode( p_ATTRIBUTE11, FND_API.G_MISS_CHAR, ATTRIBUTE11, p_ATTRIBUTE11)
252        ,ATTRIBUTE12 = decode( p_ATTRIBUTE12, FND_API.G_MISS_CHAR, ATTRIBUTE12, p_ATTRIBUTE12)
253        ,ATTRIBUTE13 = decode( p_ATTRIBUTE13, FND_API.G_MISS_CHAR, ATTRIBUTE13, p_ATTRIBUTE13)
254        ,ATTRIBUTE14 = decode( p_ATTRIBUTE14, FND_API.G_MISS_CHAR, ATTRIBUTE14, p_ATTRIBUTE14)
255        ,ATTRIBUTE15 = decode( p_ATTRIBUTE15, FND_API.G_MISS_CHAR, ATTRIBUTE15, p_ATTRIBUTE15)
256     where PROCESS_RULE_ID = p_PROCESS_RULE_ID;
257 
258     If (SQL%NOTFOUND) then
259         RAISE NO_DATA_FOUND;
260     End If;
261 
262     Update PV_PROCESS_RULES_TL
263     SET
264         PROCESS_RULE_NAME = decode( p_PROCESS_RULE_NAME, FND_API.G_MISS_CHAR, PROCESS_RULE_NAME, p_PROCESS_RULE_NAME)
265        ,DESCRIPTION = decode( p_DESCRIPTION, FND_API.G_MISS_CHAR, DESCRIPTION, p_DESCRIPTION)
266        ,LAST_UPDATE_DATE = decode( p_LAST_UPDATE_DATE, FND_API.G_MISS_DATE, LAST_UPDATE_DATE, p_LAST_UPDATE_DATE)
267        ,LAST_UPDATED_BY = decode( p_LAST_UPDATED_BY, FND_API.G_MISS_NUM, LAST_UPDATED_BY, p_LAST_UPDATED_BY)
268        ,CREATION_DATE = decode( p_CREATION_DATE, FND_API.G_MISS_DATE, CREATION_DATE, p_CREATION_DATE)
269        ,CREATED_BY = decode( p_CREATED_BY, FND_API.G_MISS_NUM, CREATED_BY, p_CREATED_BY)
270        ,LAST_UPDATE_LOGIN = decode( p_LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM, LAST_UPDATE_LOGIN, p_LAST_UPDATE_LOGIN)
271     WHERE PROCESS_RULE_ID = P_PROCESS_RULE_ID
272     AND USERENV('LANG') IN (LANGUAGE, SOURCE_LANG);
273 
274     If (SQL%NOTFOUND) then
275         RAISE NO_DATA_FOUND;
276     End If;
277 
278 END Update_Row;
279 
280 PROCEDURE Delete_Row(
281     p_PROCESS_RULE_ID  NUMBER)
282  IS
283  BEGIN
284    DELETE FROM PV_PROCESS_RULES_B
285    WHERE PROCESS_RULE_ID = p_PROCESS_RULE_ID;
286    If (SQL%NOTFOUND) then
287        RAISE NO_DATA_FOUND;
288    End If;
289 
290    DELETE FROM PV_PROCESS_RULES_TL
291    WHERE PROCESS_RULE_ID = p_PROCESS_RULE_ID;
292    If (SQL%NOTFOUND) then
293        RAISE NO_DATA_FOUND;
294    End If;
295 END Delete_Row;
296 
297 PROCEDURE Lock_Row(
298           p_PROCESS_RULE_ID    NUMBER
299          ,p_LAST_UPDATE_DATE    DATE
300          ,p_LAST_UPDATED_BY    NUMBER
301          ,p_CREATION_DATE    DATE
302          ,p_CREATED_BY    NUMBER
303          ,p_LAST_UPDATE_LOGIN    NUMBER
304          ,p_OBJECT_VERSION_NUMBER    NUMBER
305          ,p_REQUEST_ID    NUMBER
306          ,p_PROGRAM_APPLICATION_ID    NUMBER
307          ,p_PROGRAM_ID    NUMBER
308          ,p_PROGRAM_UPDATE_DATE    DATE
309          ,p_PROCESS_TYPE    VARCHAR2
310          ,p_RANK    NUMBER
311          ,p_STATUS_CODE    VARCHAR2
312          ,p_START_DATE    DATE
313          ,p_END_DATE    DATE
314          ,p_ACTION    VARCHAR2
315          ,p_ACTION_VALUE    VARCHAR2
316          ,p_OWNER_RESOURCE_ID    NUMBER
317          ,p_CURRENCY_CODE    VARCHAR2
318          ,p_PROCESS_RULE_NAME    VARCHAR2
319          ,p_DESCRIPTION    VARCHAR2
320          ,p_ATTRIBUTE_CATEGORY    VARCHAR2
321          ,p_ATTRIBUTE1    VARCHAR2
322          ,p_ATTRIBUTE2    VARCHAR2
323          ,p_ATTRIBUTE3    VARCHAR2
324          ,p_ATTRIBUTE4    VARCHAR2
325          ,p_ATTRIBUTE5    VARCHAR2
326          ,p_ATTRIBUTE6    VARCHAR2
327          ,p_ATTRIBUTE7    VARCHAR2
328          ,p_ATTRIBUTE8    VARCHAR2
329          ,p_ATTRIBUTE9    VARCHAR2
330          ,p_ATTRIBUTE10    VARCHAR2
331          ,p_ATTRIBUTE11    VARCHAR2
332          ,p_ATTRIBUTE12    VARCHAR2
333          ,p_ATTRIBUTE13    VARCHAR2
334          ,p_ATTRIBUTE14    VARCHAR2
335          ,p_ATTRIBUTE15    VARCHAR2
336 )
337  IS
338    CURSOR C IS
339        SELECT *
340        FROM PV_PROCESS_RULES_B
341        WHERE PROCESS_RULE_ID =  p_PROCESS_RULE_ID
342        FOR UPDATE of PROCESS_RULE_ID NOWAIT;
343    Recinfo C%ROWTYPE;
344 
345    CURSOR c1 IS
346        SELECT PROCESS_RULE_NAME,
347               DESCRIPTION,
348               DECODE(LANGUAGE, USERENV('LANG'), 'Y', 'N') BASELANG
349        FROM PV_PROCESS_RULES_TL
350        WHERE PROCESS_RULE_ID = P_PROCESS_RULE_ID
351        AND USERENV('LANG') IN (LANGUAGE, SOURCE_LANG)
352        FOR UPDATE OF PROCESS_RULE_ID NOWAIT;
353  BEGIN
354     OPEN C;
355     FETCH C INTO Recinfo;
356     If (C%NOTFOUND) then
357         CLOSE C;
358         FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_DELETED');
359         APP_EXCEPTION.RAISE_EXCEPTION;
360     End If;
361     CLOSE C;
362     if (
363            (      Recinfo.PROCESS_RULE_ID = p_PROCESS_RULE_ID)
364        AND (    ( Recinfo.LAST_UPDATE_DATE = p_LAST_UPDATE_DATE)
365             OR (    ( Recinfo.LAST_UPDATE_DATE IS NULL )
366                 AND (  p_LAST_UPDATE_DATE IS NULL )))
367        AND (    ( Recinfo.LAST_UPDATED_BY = p_LAST_UPDATED_BY)
368             OR (    ( Recinfo.LAST_UPDATED_BY IS NULL )
369                 AND (  p_LAST_UPDATED_BY IS NULL )))
370        AND (    ( Recinfo.CREATION_DATE = p_CREATION_DATE)
371             OR (    ( Recinfo.CREATION_DATE IS NULL )
372                 AND (  p_CREATION_DATE IS NULL )))
373        AND (    ( Recinfo.CREATED_BY = p_CREATED_BY)
374             OR (    ( Recinfo.CREATED_BY IS NULL )
375                 AND (  p_CREATED_BY IS NULL )))
376        AND (    ( Recinfo.LAST_UPDATE_LOGIN = p_LAST_UPDATE_LOGIN)
377             OR (    ( Recinfo.LAST_UPDATE_LOGIN IS NULL )
378                 AND (  p_LAST_UPDATE_LOGIN IS NULL )))
379        AND (    ( Recinfo.OBJECT_VERSION_NUMBER = p_OBJECT_VERSION_NUMBER)
380             OR (    ( Recinfo.OBJECT_VERSION_NUMBER IS NULL )
381                 AND (  p_OBJECT_VERSION_NUMBER IS NULL )))
382        AND (    ( Recinfo.REQUEST_ID = p_REQUEST_ID)
383             OR (    ( Recinfo.REQUEST_ID IS NULL )
384                 AND (  p_REQUEST_ID IS NULL )))
385        AND (    ( Recinfo.PROGRAM_APPLICATION_ID = p_PROGRAM_APPLICATION_ID)
386             OR (    ( Recinfo.PROGRAM_APPLICATION_ID IS NULL )
387                 AND (  p_PROGRAM_APPLICATION_ID IS NULL )))
388        AND (    ( Recinfo.PROGRAM_ID = p_PROGRAM_ID)
389             OR (    ( Recinfo.PROGRAM_ID IS NULL )
390                 AND (  p_PROGRAM_ID IS NULL )))
391        AND (    ( Recinfo.PROGRAM_UPDATE_DATE = p_PROGRAM_UPDATE_DATE)
392             OR (    ( Recinfo.PROGRAM_UPDATE_DATE IS NULL )
393                 AND (  p_PROGRAM_UPDATE_DATE IS NULL )))
394        AND (    ( Recinfo.PROCESS_TYPE = p_PROCESS_TYPE)
395             OR (    ( Recinfo.PROCESS_TYPE IS NULL )
396                 AND (  p_PROCESS_TYPE IS NULL )))
397        AND (    ( Recinfo.RANK = p_RANK)
398             OR (    ( Recinfo.RANK IS NULL )
399                 AND (  p_RANK IS NULL )))
400        AND (    ( Recinfo.STATUS_CODE = p_STATUS_CODE)
401             OR (    ( Recinfo.STATUS_CODE IS NULL )
402                 AND (  p_STATUS_CODE IS NULL )))
403        AND (    ( Recinfo.START_DATE = p_START_DATE)
404             OR (    ( Recinfo.START_DATE IS NULL )
405                 AND (  p_START_DATE IS NULL )))
406        AND (    ( Recinfo.END_DATE = p_END_DATE)
407             OR (    ( Recinfo.END_DATE IS NULL )
408                 AND (  p_END_DATE IS NULL )))
409        AND (    ( Recinfo.ACTION = p_ACTION)
410             OR (    ( Recinfo.ACTION IS NULL )
411                 AND (  p_ACTION IS NULL )))
412        AND (    ( Recinfo.ACTION_VALUE = p_ACTION_VALUE)
413             OR (    ( Recinfo.ACTION_VALUE IS NULL )
414                 AND (  p_ACTION_VALUE IS NULL )))
415        AND (    ( Recinfo.OWNER_RESOURCE_ID = p_OWNER_RESOURCE_ID)
416             OR (    ( Recinfo.OWNER_RESOURCE_ID IS NULL )
417                 AND (  p_OWNER_RESOURCE_ID IS NULL )))
418        AND (    ( Recinfo.CURRENCY_CODE = p_CURRENCY_CODE)
419             OR (    ( Recinfo.CURRENCY_CODE IS NULL )
420                 AND (  p_CURRENCY_CODE IS NULL )))
421        AND (    ( Recinfo.ATTRIBUTE_CATEGORY = p_ATTRIBUTE_CATEGORY)
422             OR (    ( Recinfo.ATTRIBUTE_CATEGORY IS NULL )
423                 AND (  p_ATTRIBUTE_CATEGORY IS NULL )))
424        AND (    ( Recinfo.ATTRIBUTE1 = p_ATTRIBUTE1)
425             OR (    ( Recinfo.ATTRIBUTE1 IS NULL )
426                 AND (  p_ATTRIBUTE1 IS NULL )))
427        AND (    ( Recinfo.ATTRIBUTE2 = p_ATTRIBUTE2)
428             OR (    ( Recinfo.ATTRIBUTE2 IS NULL )
429                 AND (  p_ATTRIBUTE2 IS NULL )))
430        AND (    ( Recinfo.ATTRIBUTE3 = p_ATTRIBUTE3)
431             OR (    ( Recinfo.ATTRIBUTE3 IS NULL )
432                 AND (  p_ATTRIBUTE3 IS NULL )))
433        AND (    ( Recinfo.ATTRIBUTE4 = p_ATTRIBUTE4)
434             OR (    ( Recinfo.ATTRIBUTE4 IS NULL )
435                 AND (  p_ATTRIBUTE4 IS NULL )))
436        AND (    ( Recinfo.ATTRIBUTE5 = p_ATTRIBUTE5)
437             OR (    ( Recinfo.ATTRIBUTE5 IS NULL )
438                 AND (  p_ATTRIBUTE5 IS NULL )))
439        AND (    ( Recinfo.ATTRIBUTE6 = p_ATTRIBUTE6)
440             OR (    ( Recinfo.ATTRIBUTE6 IS NULL )
441                 AND (  p_ATTRIBUTE6 IS NULL )))
442        AND (    ( Recinfo.ATTRIBUTE7 = p_ATTRIBUTE7)
443             OR (    ( Recinfo.ATTRIBUTE7 IS NULL )
444                 AND (  p_ATTRIBUTE7 IS NULL )))
445        AND (    ( Recinfo.ATTRIBUTE8 = p_ATTRIBUTE8)
446             OR (    ( Recinfo.ATTRIBUTE8 IS NULL )
447                 AND (  p_ATTRIBUTE8 IS NULL )))
448        AND (    ( Recinfo.ATTRIBUTE9 = p_ATTRIBUTE9)
449             OR (    ( Recinfo.ATTRIBUTE9 IS NULL )
450                 AND (  p_ATTRIBUTE9 IS NULL )))
451        AND (    ( Recinfo.ATTRIBUTE10 = p_ATTRIBUTE10)
452             OR (    ( Recinfo.ATTRIBUTE10 IS NULL )
453                 AND (  p_ATTRIBUTE10 IS NULL )))
454        AND (    ( Recinfo.ATTRIBUTE11 = p_ATTRIBUTE11)
455             OR (    ( Recinfo.ATTRIBUTE11 IS NULL )
456                 AND (  p_ATTRIBUTE11 IS NULL )))
457        AND (    ( Recinfo.ATTRIBUTE12 = p_ATTRIBUTE12)
458             OR (    ( Recinfo.ATTRIBUTE12 IS NULL )
459                 AND (  p_ATTRIBUTE12 IS NULL )))
460        AND (    ( Recinfo.ATTRIBUTE13 = p_ATTRIBUTE13)
461             OR (    ( Recinfo.ATTRIBUTE13 IS NULL )
462                 AND (  p_ATTRIBUTE13 IS NULL )))
466        AND (    ( Recinfo.ATTRIBUTE15 = p_ATTRIBUTE15)
463        AND (    ( Recinfo.ATTRIBUTE14 = p_ATTRIBUTE14)
464             OR (    ( Recinfo.ATTRIBUTE14 IS NULL )
465                 AND (  p_ATTRIBUTE14 IS NULL )))
467             OR (    ( Recinfo.ATTRIBUTE15 IS NULL )
468                 AND (  p_ATTRIBUTE15 IS NULL )))
469        ) then
470        return;
471    else
472        FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_CHANGED');
473        APP_EXCEPTION.RAISE_EXCEPTION;
474    End If;
475 
476    FOR tlinfo IN c1 LOOP
477        IF (tlinfo.BASELANG = 'Y') THEN
478            IF (   (tlinfo.PROCESS_RULE_NAME = P_PROCESS_RULE_NAME)
479               AND (tlinfo.DESCRIPTION = P_DESCRIPTION) )
480            THEN
481                NULL;
482            ELSE
483                fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
484                app_exception.raise_exception;
485            END IF;
486        END IF;
487   END LOOP;
488 END Lock_Row;
489 
490 
491 PROCEDURE Add_Language
492 IS
493 BEGIN
494   DELETE FROM PV_PROCESS_RULES_TL T
495   WHERE NOT EXISTS
496     (SELECT NULL
497      FROM PV_PROCESS_RULES_B B
498      WHERE B.PROCESS_RULE_ID = T.PROCESS_RULE_ID
499     );
500 
501   UPDATE PV_PROCESS_RULES_TL T SET (
502        PROCESS_RULE_NAME,
503        DESCRIPTION
504        ) = (SELECT
505               B.PROCESS_RULE_NAME
506              ,B.DESCRIPTION
507            FROM PV_PROCESS_RULES_TL B
508            WHERE B.PROCESS_RULE_ID = T.PROCESS_RULE_ID
509              AND B.LANGUAGE = T.SOURCE_LANG)
510   WHERE (
511        T.PROCESS_RULE_ID
512       ,T.LANGUAGE
513   ) IN (SELECT
514            SUBT.PROCESS_RULE_ID
515           ,SUBT.LANGUAGE
516         FROM PV_PROCESS_RULES_TL SUBB, PV_PROCESS_RULES_TL SUBT
517         WHERE SUBB.PROCESS_RULE_ID = SUBT.PROCESS_RULE_ID
518           AND SUBB.LANGUAGE = SUBT.SOURCE_LANG
519           AND (SUBB.PROCESS_RULE_NAME <> SUBT.PROCESS_RULE_NAME
520                 OR SUBB.DESCRIPTION <> SUBT.DESCRIPTION
521                 OR (SUBB.PROCESS_RULE_NAME IS NULL AND SUBT.PROCESS_RULE_NAME IS NOT NULL)
522                 OR (SUBB.DESCRIPTION IS NOT NULL AND SUBT.DESCRIPTION IS NULL)
523                )
524   );
525 
526   INSERT INTO PV_PROCESS_RULES_TL (
527             PROCESS_RULE_ID
528            ,LAST_UPDATE_DATE
529            ,LAST_UPDATED_BY
530            ,CREATION_DATE
531            ,CREATED_BY
532            ,LAST_UPDATE_LOGIN
533            ,LANGUAGE
534            ,SOURCE_LANG
535            ,PROCESS_RULE_NAME
536            ,DESCRIPTION
537   ) SELECT
538             B.PROCESS_RULE_ID
539            ,B.LAST_UPDATE_DATE
540            ,B.LAST_UPDATED_BY
541            ,B.CREATION_DATE
542            ,B.CREATED_BY
543            ,B.LAST_UPDATE_LOGIN
544            ,L.LANGUAGE_CODE
545            ,B.SOURCE_LANG
546            ,B.PROCESS_RULE_NAME
547            ,B.DESCRIPTION
548   FROM PV_PROCESS_RULES_TL B, FND_LANGUAGES L
549   WHERE L.INSTALLED_FLAG IN ('I', 'B')
550   AND B.LANGUAGE = USERENV('LANG')
551   AND NOT EXISTS
552     (SELECT NULL
553     FROM PV_PROCESS_RULES_TL T
554     WHERE T.PROCESS_RULE_ID = B.PROCESS_RULE_ID
555     AND T.LANGUAGE = L.LANGUAGE_CODE);
556 
557 END Add_Language;
558 
559 
560 PROCEDURE Load_Row (
561   px_PROCESS_RULE_ID        IN OUT NOCOPY NUMBER,
562   p_PARENT_RULE_ID          IN NUMBER,
563   p_PROCESS_TYPE            IN VARCHAR2,
564   p_RANK                    IN NUMBER,
565   p_STATUS_CODE             IN VARCHAR2,
566   p_START_DATE              IN DATE,
567   p_END_DATE                IN DATE,
568   p_ACTION                  IN VARCHAR2,
569   p_ACTION_VALUE            IN VARCHAR2,
570   p_OWNER_RESOURCE_ID       IN NUMBER,
571   p_CURRENCY_CODE           IN VARCHAR2,
572   p_PROCESS_RULE_NAME       IN VARCHAR2,
573   p_DESCRIPTION             IN VARCHAR2,
574   p_OWNER                   IN VARCHAR2)
575 IS
576     l_user_id               NUMBER := 0;
577     l_row_id                VARCHAR2(100);
578 
579     CURSOR c_get_last_updated (c_PROCESS_RULE_ID NUMBER) IS
580         SELECT last_updated_by, OBJECT_VERSION_NUMBER
581         FROM PV_PROCESS_RULES_B
582         WHERE PROCESS_RULE_ID = c_PROCESS_RULE_ID;
583     l_last_updated_by       NUMBER;
584     l_object_version_number NUMBER;
585 
586 BEGIN
587     OPEN c_get_last_updated (px_PROCESS_RULE_ID);
588     FETCH c_get_last_updated INTO l_last_updated_by, l_object_version_number;
589     CLOSE c_get_last_updated;
590 
591     IF nvl(l_last_updated_by, 1) = 1
592     THEN
593 
594         Update_Row(
595           p_PROCESS_RULE_ID        => px_PROCESS_RULE_ID
596          ,p_LAST_UPDATE_DATE       => SYSDATE
597          ,p_LAST_UPDATED_BY        => fnd_load_util.owner_id(P_OWNER)
598          ,p_CREATION_DATE          => FND_API.G_MISS_DATE
599          ,p_CREATED_BY             => FND_API.G_MISS_NUM
600          ,p_LAST_UPDATE_LOGIN      => fnd_load_util.owner_id(P_OWNER)
601          ,p_OBJECT_VERSION_NUMBER  => l_object_version_number
602          ,p_REQUEST_ID             => FND_API.G_MISS_NUM
603          ,p_PROGRAM_APPLICATION_ID => FND_API.G_MISS_NUM
604          ,p_PROGRAM_ID             => FND_API.G_MISS_NUM
605          ,p_PROGRAM_UPDATE_DATE    => FND_API.G_MISS_DATE
606          ,p_PROCESS_TYPE           => p_PROCESS_TYPE
607          ,p_RANK                   => p_RANK
608          ,p_STATUS_CODE            => p_STATUS_CODE
609          ,p_START_DATE             => p_START_DATE
610          ,p_END_DATE               => p_END_DATE
611          ,p_ACTION                 => p_ACTION
612          ,p_ACTION_VALUE           => p_ACTION_VALUE
613          ,p_OWNER_RESOURCE_ID      => p_OWNER_RESOURCE_ID
614          ,p_CURRENCY_CODE          => p_CURRENCY_CODE
615          ,p_PROCESS_RULE_NAME      => p_PROCESS_RULE_NAME
616          ,p_DESCRIPTION            => p_DESCRIPTION
617          ,p_ATTRIBUTE_CATEGORY     => FND_API.G_MISS_CHAR
618          ,p_ATTRIBUTE1             => FND_API.G_MISS_CHAR
619          ,p_ATTRIBUTE2             => FND_API.G_MISS_CHAR
620          ,p_ATTRIBUTE3             => FND_API.G_MISS_CHAR
621          ,p_ATTRIBUTE4             => FND_API.G_MISS_CHAR
622          ,p_ATTRIBUTE5             => FND_API.G_MISS_CHAR
623          ,p_ATTRIBUTE6             => FND_API.G_MISS_CHAR
624          ,p_ATTRIBUTE7             => FND_API.G_MISS_CHAR
625          ,p_ATTRIBUTE8             => FND_API.G_MISS_CHAR
626          ,p_ATTRIBUTE9             => FND_API.G_MISS_CHAR
627          ,p_ATTRIBUTE10            => FND_API.G_MISS_CHAR
628          ,p_ATTRIBUTE11            => FND_API.G_MISS_CHAR
629          ,p_ATTRIBUTE12            => FND_API.G_MISS_CHAR
630          ,p_ATTRIBUTE13            => FND_API.G_MISS_CHAR
631          ,p_ATTRIBUTE14            => FND_API.G_MISS_CHAR
632          ,p_ATTRIBUTE15            => FND_API.G_MISS_CHAR);
633 
634     END IF;
635 
636     EXCEPTION
637         when no_data_found then
638 
639             Insert_Row(
640           px_PROCESS_RULE_ID       => px_PROCESS_RULE_ID
641          ,p_PARENT_RULE_ID         => p_PARENT_RULE_ID
642          ,p_LAST_UPDATE_DATE       => SYSDATE
643          ,p_LAST_UPDATED_BY        => fnd_load_util.owner_id(P_OWNER)
644          ,p_CREATION_DATE          => SYSDATE
645          ,p_CREATED_BY             => fnd_load_util.owner_id(P_OWNER)
646          ,p_LAST_UPDATE_LOGIN      => fnd_load_util.owner_id(P_OWNER)
647          ,p_OBJECT_VERSION_NUMBER  => l_object_version_number
648          ,p_REQUEST_ID             => FND_API.G_MISS_NUM
649          ,p_PROGRAM_APPLICATION_ID => FND_API.G_MISS_NUM
650          ,p_PROGRAM_ID             => FND_API.G_MISS_NUM
651          ,p_PROGRAM_UPDATE_DATE    => FND_API.G_MISS_DATE
652          ,p_PROCESS_TYPE           => p_PROCESS_TYPE
653          ,p_RANK                   => p_RANK
654          ,p_STATUS_CODE            => p_STATUS_CODE
655          ,p_START_DATE             => p_START_DATE
656          ,p_END_DATE               => p_END_DATE
657          ,p_ACTION                 => p_ACTION
658          ,p_ACTION_VALUE           => p_ACTION_VALUE
659          ,p_OWNER_RESOURCE_ID      => p_OWNER_RESOURCE_ID
660          ,p_CURRENCY_CODE          => p_CURRENCY_CODE
661          ,p_PROCESS_RULE_NAME      => p_PROCESS_RULE_NAME
662          ,p_DESCRIPTION            => p_DESCRIPTION
663          ,p_ATTRIBUTE_CATEGORY     => FND_API.G_MISS_CHAR
664          ,p_ATTRIBUTE1             => FND_API.G_MISS_CHAR
665          ,p_ATTRIBUTE2             => FND_API.G_MISS_CHAR
666          ,p_ATTRIBUTE3             => FND_API.G_MISS_CHAR
667          ,p_ATTRIBUTE4             => FND_API.G_MISS_CHAR
668          ,p_ATTRIBUTE5             => FND_API.G_MISS_CHAR
669          ,p_ATTRIBUTE6             => FND_API.G_MISS_CHAR
670          ,p_ATTRIBUTE7             => FND_API.G_MISS_CHAR
671          ,p_ATTRIBUTE8             => FND_API.G_MISS_CHAR
672          ,p_ATTRIBUTE9             => FND_API.G_MISS_CHAR
673          ,p_ATTRIBUTE10            => FND_API.G_MISS_CHAR
674          ,p_ATTRIBUTE11            => FND_API.G_MISS_CHAR
675          ,p_ATTRIBUTE12            => FND_API.G_MISS_CHAR
676          ,p_ATTRIBUTE13            => FND_API.G_MISS_CHAR
677          ,p_ATTRIBUTE14            => FND_API.G_MISS_CHAR
678          ,p_ATTRIBUTE15            => FND_API.G_MISS_CHAR);
679 
680 END LOAD_ROW;
681 
682 
683 PROCEDURE Translate_Row(
684        px_PROCESS_RULE_ID	      	 IN  NUMBER
685       ,p_PROCESS_RULE_NAME               IN  VARCHAR2
686       ,p_DESCRIPTION			 IN  VARCHAR2
687       ,p_OWNER_RESOURCE_ID		 IN  VARCHAR2
688       )
689 
690 IS
691 
692  BEGIN
693     UPDATE PV_PROCESS_RULES_TL SET
694        PROCESS_RULE_NAME               = NVL(p_PROCESS_RULE_NAME, PROCESS_RULE_NAME)
695       ,DESCRIPTION		       = NVL(p_DESCRIPTION, DESCRIPTION)
696       ,SOURCE_LANG                     = USERENV('LANG')
697       ,LAST_UPDATE_DATE                = SYSDATE
698       ,LAST_UPDATED_BY                 = DECODE(p_OWNER_RESOURCE_ID, 'SEED', 1, 0)
699       ,LAST_UPDATE_LOGIN               = 0
700     WHERE  PROCESS_RULE_ID = px_PROCESS_RULE_ID
701     AND      USERENV('LANG') IN (language, source_lang);
702 
703 END TRANSLATE_ROW;
704 
705 
706 End PV_PROCESS_RULES_PKG;