DBA Data[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