DBA Data[Home] [Help]

PACKAGE BODY: APPS.CE_FORECAST_CELLS_PKG

Source


1 PACKAGE BODY CE_FORECAST_CELLS_PKG as
2 /* $Header: cefcellb.pls 120.1 2002/11/12 21:35:02 bhchung ship $ */
3 
4   PROCEDURE Insert_Row(	X_Rowid			IN OUT NOCOPY	VARCHAR2,
5 			X_forecast_cell_id	IN OUT NOCOPY	NUMBER,
6 			X_forecast_id			NUMBER,
7 			X_forecast_header_id		NUMBER,
8 			X_forecast_row_id		NUMBER,
9 			X_forecast_column_id		NUMBER,
10 			X_amount			NUMBER,
11 		        X_Created_By                    NUMBER,
12                        	X_Creation_Date                 DATE,
13                        	X_Last_Updated_By               NUMBER,
14                        	X_Last_Update_Date              DATE,
15                        	X_Last_Update_Login             NUMBER) IS
16     CURSOR C1 IS SELECT rowid
17 		 FROM CE_FORECAST_CELLS
18 		 WHERE forecast_cell_id = X_forecast_cell_id;
19     CURSOR C2 IS SELECT CE_FORECAST_CELLS_S.nextval FROM sys.dual;
20   BEGIN
21     IF (X_forecast_cell_id IS NULL) THEN
22       OPEN C2;
23       FETCH C2 INTO X_forecast_cell_id;
24       CLOSE C2;
25     END IF;
26     INSERT INTO CE_FORECAST_CELLS(
27 			FORECAST_CELL_ID,
28  			FORECAST_ID,
29  			FORECAST_HEADER_ID,
30  			FORECAST_ROW_ID,
31  			FORECAST_COLUMN_ID,
32  			AMOUNT,
33  			CREATED_BY,
34  			CREATION_DATE,
35  			LAST_UPDATED_BY,
36  			LAST_UPDATE_DATE,
37  			LAST_UPDATE_LOGIN ) VALUES
38 		(	X_forecast_cell_id,
39 			X_forecast_id,
40 			X_forecast_header_id,
41 			X_forecast_row_id,
42 			X_forecast_column_id,
43 			X_amount,
44 			X_created_by,
45 			X_creation_date,
46 			X_last_updated_by,
47 			X_last_update_date,
48 			X_last_update_login);
49     OPEN C1;
50     FETCH C1 INTO X_rowid;
51     IF (C1%NOTFOUND) THEN
52       CLOSE C1;
53       Raise NO_DATA_FOUND;
54     END IF;
55     CLOSE C1;
56   END insert_row;
57 
58   PROCEDURE Update_Row(	X_cellid			NUMBER,
59 			X_amount			NUMBER,
60                        	X_Last_Updated_By               NUMBER,
61                        	X_Last_Update_Date              DATE,
62                        	X_Last_Update_Login             NUMBER) IS
63   BEGIN
64     UPDATE CE_FORECAST_CELLS
65     SET
66 	amount			= X_amount,
67 	last_updated_by		= X_last_updated_by,
68 	last_update_date	= X_last_update_date,
69 	last_update_login	= X_last_update_login
70     WHERE forecast_cell_id = X_cellid;
71 
72     if (SQL%NOTFOUND) then
73       Raise NO_DATA_FOUND;
74     end if;
75   END Update_Row;
76 
77 
78   PROCEDURE Delete_Row(X_Rowid VARCHAR2) IS
79   BEGIN
80     DELETE FROM CE_FORECAST_CELLS
81     WHERE rowid = X_Rowid;
82 
83     if (SQL%NOTFOUND) then
84       Raise NO_DATA_FOUND;
85     end if;
86   END Delete_Row;
87 
88   PROCEDURE Lock_Row(   X_forecast_cell_id              NUMBER,
89                         X_amount                        NUMBER) IS
90     CURSOR C IS
91 	SELECT	*
92 	FROM	CE_FORECAST_CELLS
93 	WHERE 	forecast_cell_id = X_forecast_cell_id
94 	FOR UPDATE of forecast_cell_id NOWAIT;
95     Recinfo C%ROWTYPE;
96   BEGIN
97     OPEN C;
98     FETCH C INTO Recinfo;
99     IF (C%NOTFOUND) THEN
100       CLOSE C;
101       FND_MESSAGE.set_name('FND', 'FORM_RECORD_DELETED');
102       APP_EXCEPTION.raise_exception;
103     END IF;
104     CLOSE C;
105 
106     IF (Recinfo.amount = X_amount ) THEN
107 	return;
108     ELSE
109       FND_MESSAGE.set_name('FND', 'FORM_RECORD_CHANGED');
110       APP_EXCEPTION.raise_exception;
111     END IF;
112   END Lock_Row;
113 
114 
115 
116 END CE_FORECAST_CELLS_PKG;