[Home] [Help]
PACKAGE BODY: APPS.XTR_RM_MD_CURVE_RATES_PKG
Source
1 PACKAGE BODY XTR_RM_MD_CURVE_RATES_PKG as
2 /* $Header: xtrmdcrb.pls 120.1 2005/06/29 10:33:15 csutaria ship $ */
3
4 PROCEDURE INSERT_ROW(
5 X_ROWID IN out nocopy VARCHAR2,
6 X_RATE_CODE VARCHAR2,
7 X_CURVE_CODE VARCHAR2,
8 X_CREATED_BY NUMBER,
9 X_CREATION_DATE DATE,
10 X_LAST_UPDATED_BY NUMBER,
11 X_LAST_UPDATE_DATE DATE,
12 X_LAST_UPDATE_LOGIN NUMBER) IS
13
14 CURSOR C IS SELECT ROWID FROM XTR_RM_MD_CURVE_RATES
15 WHERE RATE_CODE = X_RATE_CODE AND CURVE_CODE = X_CURVE_CODE;
16
17 CURSOR CHECK_UNIQUE IS SELECT RATE_CODE, CURVE_CODE FROM XTR_RM_MD_CURVE_RATES
18 WHERE RATE_CODE = X_RATE_CODE AND CURVE_CODE = X_CURVE_CODE;
19
20 V_RATE_CODE VARCHAR2(20);
21 V_CURVE_CODE VARCHAR2(20);
22
23 BEGIN
24 OPEN CHECK_UNIQUE;
25 FETCH CHECK_UNIQUE INTO V_RATE_CODE, V_CURVE_CODE;
26 -- ONLY INSERT IF NO DUPLICATE ROWS FOUND, ELSE DO NOTHING
27 IF (CHECK_UNIQUE%NOTFOUND) THEN
28 INSERT INTO XTR_RM_MD_CURVE_RATES
29 (
30 RATE_CODE,
31 CURVE_CODE,
32 CREATED_BY,
33 CREATION_DATE,
34 LAST_UPDATED_BY,
35 LAST_UPDATE_DATE,
36 LAST_UPDATE_LOGIN)
37 VALUES (X_RATE_CODE,
38 X_CURVE_CODE,
39 X_CREATED_BY,
40 X_CREATION_DATE,
41 X_LAST_UPDATED_BY,
42 X_LAST_UPDATE_DATE,
43 X_LAST_UPDATE_LOGIN);
44 OPEN C;
45 FETCH C INTO X_ROWID;
46 IF (C%NOTFOUND) THEN
47 CLOSE C;
48 RAISE NO_DATA_FOUND;
49 END IF;
50 CLOSE C;
51 END IF;
52 END INSERT_ROW;
53
54
55 PROCEDURE DELETE_ROW (X_ROWID VARCHAR2) IS
56 BEGIN
57 -- Perform delete
58 DELETE FROM XTR_RM_MD_CURVE_RATES
59 WHERE ROWID = X_ROWID;
60 IF (SQL%NOTFOUND) THEN
61 RAISE NO_DATA_FOUND;
62 END IF;
63 END DELETE_ROW;
64
65
66 PROCEDURE UPDATE_ROW (
67 X_ROWID VARCHAR2,
68 X_RATE_CODE VARCHAR2,
69 X_CURVE_CODE VARCHAR2,
70 X_LAST_UPDATED_BY NUMBER,
71 X_LAST_UPDATE_DATE DATE,
72 X_LAST_UPDATE_LOGIN NUMBER) IS
73 BEGIN
74 UPDATE XTR_RM_MD_CURVE_RATES
75 SET RATE_CODE = X_RATE_CODE,
76 CURVE_CODE = X_CURVE_CODE,
77 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
78 LAST_UPDATE_DATE= X_LAST_UPDATE_DATE,
79 LAST_UPDATE_LOGIN= X_LAST_UPDATE_LOGIN
80 WHERE ROWID = X_ROWID;
81
82 IF (SQL%NOTFOUND) THEN
83 RAISE NO_DATA_FOUND;
84 END IF;
85 END UPDATE_ROW;
86
87 PROCEDURE LOCK_ROW(
88 X_ROWID VARCHAR2,
89 X_RATE_CODE VARCHAR2,
90 X_CURVE_CODE VARCHAR2) IS
91
92 CURSOR C IS
93 SELECT *
94 FROM XTR_RM_MD_CURVE_RATES
95 WHERE ROWID = X_ROWID
96 FOR UPDATE OF RATE_CODE, CURVE_CODE NOWAIT;
97
98 RECINFO C%ROWTYPE;
99
100 BEGIN
101 OPEN C;
102 FETCH C INTO RECINFO;
103 IF (C%NOTFOUND) THEN
104 CLOSE C;
105 FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_DELETED');
106 APP_EXCEPTION.RAISE_EXCEPTION;
107 END IF;
108 CLOSE C;
109
110 IF (
111 (RECINFO.RATE_CODE = X_RATE_CODE)
112 AND (RECINFO.CURVE_CODE = X_CURVE_CODE)) THEN
113 RETURN;
114 ELSE
115 FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_CHANGED');
116 APP_EXCEPTION.RAISE_EXCEPTION;
117 END IF;
118 END LOCK_ROW;
119
120
121 END XTR_RM_MD_CURVE_RATES_PKG;
122