[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;