DBA Data[Home] [Help]

PACKAGE BODY: APPS.CN_RATE_DIMENSIONS_PKG

Source


1 PACKAGE BODY CN_RATE_DIMENSIONS_PKG AS
2 /* $Header: cntrdimb.pls 120.3 2005/10/19 00:53:21 chanthon ship $ */
3 
4 procedure INSERT_ROW (
5   X_RATE_DIMENSION_ID     IN OUT NOCOPY CN_RATE_DIMENSIONS.RATE_DIMENSION_ID%TYPE,
6   X_NAME                  IN     CN_RATE_DIMENSIONS.NAME%TYPE,
7   X_DESCRIPTION           IN     CN_RATE_DIMENSIONS.DESCRIPTION%TYPE := NULL,
8   X_DIM_UNIT_CODE         IN     CN_RATE_DIMENSIONS.DIM_UNIT_CODE%TYPE,
9   X_NUMBER_TIER           IN     CN_RATE_DIMENSIONS.NUMBER_TIER%TYPE,
10   -- R12 MOAC Changes--Start
11   X_ORG_ID                IN     CN_RATE_DIMENSIONS.ORG_ID%TYPE,  --new
12   -- R12 MOAC Changes--End
13   X_ATTRIBUTE_CATEGORY    IN     CN_RATE_DIMENSIONS.ATTRIBUTE_CATEGORY%TYPE := NULL,
14   X_ATTRIBUTE1            IN     CN_RATE_DIMENSIONS.ATTRIBUTE1%TYPE := NULL,
15   X_ATTRIBUTE2            IN     CN_RATE_DIMENSIONS.ATTRIBUTE2%TYPE := NULL,
16   X_ATTRIBUTE3            IN     CN_RATE_DIMENSIONS.ATTRIBUTE3%TYPE := NULL,
17   X_ATTRIBUTE4            IN     CN_RATE_DIMENSIONS.ATTRIBUTE4%TYPE := NULL,
18   X_ATTRIBUTE5            IN     CN_RATE_DIMENSIONS.ATTRIBUTE5%TYPE := NULL,
19   X_ATTRIBUTE6            IN     CN_RATE_DIMENSIONS.ATTRIBUTE6%TYPE := NULL,
20   X_ATTRIBUTE7            IN     CN_RATE_DIMENSIONS.ATTRIBUTE7%TYPE := NULL,
21   X_ATTRIBUTE8            IN     CN_RATE_DIMENSIONS.ATTRIBUTE8%TYPE := NULL,
22   X_ATTRIBUTE9            IN     CN_RATE_DIMENSIONS.ATTRIBUTE9%TYPE := NULL,
23   X_ATTRIBUTE10           IN     CN_RATE_DIMENSIONS.ATTRIBUTE10%TYPE := NULL,
24   X_ATTRIBUTE11           IN     CN_RATE_DIMENSIONS.ATTRIBUTE11%TYPE := NULL,
25   X_ATTRIBUTE12           IN     CN_RATE_DIMENSIONS.ATTRIBUTE12%TYPE := NULL,
26   X_ATTRIBUTE13           IN     CN_RATE_DIMENSIONS.ATTRIBUTE13%TYPE := NULL,
27   X_ATTRIBUTE14           IN     CN_RATE_DIMENSIONS.ATTRIBUTE14%TYPE := NULL,
28   X_ATTRIBUTE15           IN     CN_RATE_DIMENSIONS.ATTRIBUTE15%TYPE := NULL,
29   X_CREATION_DATE         IN     CN_RATE_DIMENSIONS.CREATION_DATE%TYPE     := SYSDATE,
30   X_CREATED_BY            IN     CN_RATE_DIMENSIONS.CREATED_BY%TYPE        := FND_GLOBAL.USER_ID,
31   X_LAST_UPDATE_DATE      IN     CN_RATE_DIMENSIONS.LAST_UPDATE_DATE%TYPE  := SYSDATE,
32   X_LAST_UPDATED_BY       IN     CN_RATE_DIMENSIONS.LAST_UPDATED_BY%TYPE   := FND_GLOBAL.USER_ID,
33   X_LAST_UPDATE_LOGIN     IN     CN_RATE_DIMENSIONS.LAST_UPDATE_LOGIN%TYPE := FND_GLOBAL.LOGIN_ID) IS
34 
35   cursor C is select rate_dimension_id from CN_RATE_DIMENSIONS
36     where RATE_DIMENSION_ID = x_rate_dimension_id;
37 
38   CURSOR id IS SELECT cn_rate_dimensions_s.NEXTVAL FROM dual;
39 BEGIN
40    IF (x_rate_dimension_id IS NULL) THEN
41       OPEN id;
42       FETCH id INTO x_rate_dimension_id;
43       IF (id%notfound) THEN
44 	 CLOSE id;
45 	 RAISE no_data_found;
46       END IF;
47       CLOSE id;
48    END IF;
49 
50   insert into CN_RATE_DIMENSIONS (
51     RATE_DIMENSION_ID,
52     NAME,
53     DESCRIPTION,
54     DIM_UNIT_CODE,
55     NUMBER_TIER,
56     -- R12 MOAC Changes--Start
57     ORG_ID,
58     -- R12 MOAC Changes--End
59     ATTRIBUTE_CATEGORY,
60     ATTRIBUTE1,
61     ATTRIBUTE2,
62     ATTRIBUTE3,
63     ATTRIBUTE4,
64     ATTRIBUTE5,
65     ATTRIBUTE6,
66     ATTRIBUTE7,
67     ATTRIBUTE8,
68     ATTRIBUTE9,
69     ATTRIBUTE10,
70     ATTRIBUTE11,
71     ATTRIBUTE12,
72     ATTRIBUTE13,
73     ATTRIBUTE14,
74     ATTRIBUTE15,
75     CREATED_BY,
76     CREATION_DATE,
77     LAST_UPDATE_LOGIN,
78     LAST_UPDATE_DATE,
79     LAST_UPDATED_BY,
80     OBJECT_VERSION_NUMBER
81   ) VALUES (
82     X_RATE_DIMENSION_ID,
83     X_NAME,
84     X_DESCRIPTION,
85     X_DIM_UNIT_CODE,
86     X_NUMBER_TIER,
87     -- R12 MOAC Changes--Start
88     X_ORG_ID,
89     -- R12 MOAC Changes--End
90     X_ATTRIBUTE_CATEGORY,
91     X_ATTRIBUTE1,
92     X_ATTRIBUTE2,
93     X_ATTRIBUTE3,
94     X_ATTRIBUTE4,
95     X_ATTRIBUTE5,
96     X_ATTRIBUTE6,
97     X_ATTRIBUTE7,
98     X_ATTRIBUTE8,
99     X_ATTRIBUTE9,
100     X_ATTRIBUTE10,
101     X_ATTRIBUTE11,
102     X_ATTRIBUTE12,
103     X_ATTRIBUTE13,
104     X_ATTRIBUTE14,
105     X_ATTRIBUTE15,
106     X_CREATED_BY,
107     X_CREATION_DATE,
108     X_LAST_UPDATE_LOGIN,
109     X_LAST_UPDATE_DATE,
110     X_LAST_UPDATED_BY,
111     1);
112 
113   open c;
114   fetch c into x_rate_dimension_id;
115   if (c%notfound) then
116     close c;
117     raise no_data_found;
118   end if;
119   close c;
120 
121 end INSERT_ROW;
122 
123 procedure LOCK_ROW (
124   X_RATE_DIMENSION_ID     IN     CN_RATE_DIMENSIONS.RATE_DIMENSION_ID%TYPE,
125   X_OBJECT_VERSION_NUMBER IN     CN_RATE_DIMENSIONS.OBJECT_VERSION_NUMBER%TYPE) IS
126 
127    cursor c is
128    select object_version_number
129      from CN_RATE_DIMENSIONS
130     where RATE_DIMENSION_ID = X_RATE_DIMENSION_ID
131       for update of RATE_DIMENSION_ID nowait;
132 
133    tlinfo c%rowtype ;
134 BEGIN
135    open  c;
136    fetch c into tlinfo;
137    if (c%notfound) then
138       close c;
139       fnd_message.set_name('CN', 'CN_RECORD_DELETED');
140       fnd_msg_pub.add;
141       raise fnd_api.g_exc_unexpected_error;
142    end if;
143    close c;
144 
145    if (tlinfo.object_version_number <> x_object_version_number) then
146       fnd_message.set_name('CN', 'CN_RECORD_CHANGED');
147       fnd_msg_pub.add;
148       raise fnd_api.g_exc_unexpected_error;
149    end if;
150 
151 END LOCK_ROW;
152 
153 procedure UPDATE_ROW (
154   X_RATE_DIMENSION_ID     IN     CN_RATE_DIMENSIONS.RATE_DIMENSION_ID%TYPE,
155   X_NAME                  IN     CN_RATE_DIMENSIONS.NAME%TYPE          := CN_API.G_MISS_CHAR,
156   X_DESCRIPTION           IN     CN_RATE_DIMENSIONS.DESCRIPTION%TYPE   := CN_API.G_MISS_CHAR,
157   X_DIM_UNIT_CODE         IN     CN_RATE_DIMENSIONS.DIM_UNIT_CODE%TYPE := CN_API.G_MISS_CHAR,
158   X_NUMBER_TIER           IN     CN_RATE_DIMENSIONS.NUMBER_TIER%TYPE   := CN_API.G_MISS_NUM,
159   X_ATTRIBUTE_CATEGORY    IN     CN_RATE_DIMENSIONS.ATTRIBUTE_CATEGORY%TYPE := CN_API.G_MISS_CHAR,
160   X_ATTRIBUTE1            IN     CN_RATE_DIMENSIONS.ATTRIBUTE1%TYPE    := CN_API.G_MISS_CHAR,
161   X_ATTRIBUTE2            IN     CN_RATE_DIMENSIONS.ATTRIBUTE2%TYPE    := CN_API.G_MISS_CHAR,
162   X_ATTRIBUTE3            IN     CN_RATE_DIMENSIONS.ATTRIBUTE3%TYPE    := CN_API.G_MISS_CHAR,
163   X_ATTRIBUTE4            IN     CN_RATE_DIMENSIONS.ATTRIBUTE4%TYPE    := CN_API.G_MISS_CHAR,
164   X_ATTRIBUTE5            IN     CN_RATE_DIMENSIONS.ATTRIBUTE5%TYPE    := CN_API.G_MISS_CHAR,
165   X_ATTRIBUTE6            IN     CN_RATE_DIMENSIONS.ATTRIBUTE6%TYPE    := CN_API.G_MISS_CHAR,
166   X_ATTRIBUTE7            IN     CN_RATE_DIMENSIONS.ATTRIBUTE7%TYPE    := CN_API.G_MISS_CHAR,
167   X_ATTRIBUTE8            IN     CN_RATE_DIMENSIONS.ATTRIBUTE8%TYPE    := CN_API.G_MISS_CHAR,
168   X_ATTRIBUTE9            IN     CN_RATE_DIMENSIONS.ATTRIBUTE9%TYPE    := CN_API.G_MISS_CHAR,
169   X_ATTRIBUTE10           IN     CN_RATE_DIMENSIONS.ATTRIBUTE10%TYPE   := CN_API.G_MISS_CHAR,
170   X_ATTRIBUTE11           IN     CN_RATE_DIMENSIONS.ATTRIBUTE11%TYPE   := CN_API.G_MISS_CHAR,
171   X_ATTRIBUTE12           IN     CN_RATE_DIMENSIONS.ATTRIBUTE12%TYPE   := CN_API.G_MISS_CHAR,
172   X_ATTRIBUTE13           IN     CN_RATE_DIMENSIONS.ATTRIBUTE13%TYPE   := CN_API.G_MISS_CHAR,
173   X_ATTRIBUTE14           IN     CN_RATE_DIMENSIONS.ATTRIBUTE14%TYPE   := CN_API.G_MISS_CHAR,
174   X_ATTRIBUTE15           IN     CN_RATE_DIMENSIONS.ATTRIBUTE15%TYPE   := CN_API.G_MISS_CHAR,
175   X_LAST_UPDATE_DATE      IN     CN_RATE_DIMENSIONS.LAST_UPDATE_DATE%TYPE  := SYSDATE,
176   X_LAST_UPDATED_BY       IN     CN_RATE_DIMENSIONS.LAST_UPDATED_BY%TYPE   := FND_GLOBAL.USER_ID,
177   X_LAST_UPDATE_LOGIN     IN     CN_RATE_DIMENSIONS.LAST_UPDATE_LOGIN%TYPE := FND_GLOBAL.LOGIN_ID,
178   X_OBJECT_VERSION_NUMBER IN OUT NOCOPY    CN_RATE_DIMENSIONS.OBJECT_VERSION_NUMBER%TYPE) IS
179 
180 BEGIN
181 
182    X_OBJECT_VERSION_NUMBER := X_OBJECT_VERSION_NUMBER + 1;
183 
184    update CN_RATE_DIMENSIONS set
185     NAME = Decode(X_NAME, fnd_api.g_miss_char, name, x_name),
186     DESCRIPTION = Decode(X_DESCRIPTION, fnd_api.g_miss_char, description, x_description),
187     DIM_UNIT_CODE = Decode(X_DIM_UNIT_CODE, fnd_api.g_miss_char, dim_unit_code, x_dim_unit_code),
188     NUMBER_TIER = Decode(X_NUMBER_TIER, fnd_api.g_miss_num, number_tier, x_number_tier),
189     ATTRIBUTE_CATEGORY = Decode(X_ATTRIBUTE_CATEGORY, fnd_api.g_miss_char, attribute_category, x_attribute_category),
190     ATTRIBUTE1 = Decode(X_ATTRIBUTE1, fnd_api.g_miss_char, attribute1, x_attribute1),
191     ATTRIBUTE2 = Decode(X_ATTRIBUTE2, fnd_api.g_miss_char, attribute2, x_attribute2),
192     ATTRIBUTE3 = Decode(X_ATTRIBUTE3, fnd_api.g_miss_char, attribute3, x_attribute3),
193     ATTRIBUTE4 = Decode(X_ATTRIBUTE4, fnd_api.g_miss_char, attribute4, x_attribute4),
194     ATTRIBUTE5 = Decode(X_ATTRIBUTE5, fnd_api.g_miss_char, attribute5, x_attribute5),
195     ATTRIBUTE6 = Decode(X_ATTRIBUTE6, fnd_api.g_miss_char, attribute6, x_attribute6),
196     ATTRIBUTE7 = Decode(X_ATTRIBUTE7, fnd_api.g_miss_char, attribute7, x_attribute7),
197     ATTRIBUTE8 = Decode(X_ATTRIBUTE8, fnd_api.g_miss_char, attribute8, x_attribute8),
198     ATTRIBUTE9 = Decode(X_ATTRIBUTE9, fnd_api.g_miss_char, attribute9, x_attribute9),
199     ATTRIBUTE10 = Decode(X_ATTRIBUTE10, fnd_api.g_miss_char, attribute10, x_attribute10),
200     ATTRIBUTE11 = Decode(X_ATTRIBUTE11, fnd_api.g_miss_char, attribute11, x_attribute11),
201     ATTRIBUTE12 = Decode(X_ATTRIBUTE12, fnd_api.g_miss_char, attribute12, x_attribute12),
202     ATTRIBUTE13 = Decode(X_ATTRIBUTE13, fnd_api.g_miss_char, attribute13, x_attribute13),
203     ATTRIBUTE14 = Decode(X_ATTRIBUTE14, fnd_api.g_miss_char, attribute14, x_attribute14),
204     ATTRIBUTE15 = Decode(X_ATTRIBUTE15, fnd_api.g_miss_char, attribute15, x_attribute15),
205     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
206     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
207     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
208     OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER
209   where RATE_DIMENSION_ID = x_rate_dimension_id;
210 
211   if (sql%notfound) then
212     raise no_data_found;
213   end if;
214 end UPDATE_ROW;
215 
216 procedure DELETE_ROW (
217   X_RATE_DIMENSION_ID       IN     CN_RATE_DIMENSIONS.RATE_DIMENSION_ID%TYPE) is
218 begin
219   -- delete dimension_tiers first
220   delete from cn_rate_dim_tiers
221    where rate_dimension_id = x_rate_dimension_id;
222 
223   delete from cn_rate_dimensions
224    where rate_dimension_id = x_rate_dimension_id;
225 
226   if (sql%notfound) then
227      fnd_message.set_name('CN', 'CN_RECORD_DELETED');
228      fnd_msg_pub.add;
229      raise fnd_api.g_exc_unexpected_error;
230   end if;
231 
232 end DELETE_ROW;
233 
234 end CN_RATE_DIMENSIONS_PKG;