1 PACKAGE BODY OE_Validate_Contract AS
2 /* $Header: OEXLPCTB.pls 115.0 99/07/15 19:24:37 porting shi $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'OE_Validate_Contract';
7
8 -- Procedure Entity
9
10 PROCEDURE Entity
11 ( x_return_status OUT VARCHAR2
12 , p_Contract_rec IN OE_Pricing_Cont_PUB.Contract_Rec_Type
13 , p_old_Contract_rec IN OE_Pricing_Cont_PUB.Contract_Rec_Type :=
14 OE_Pricing_Cont_PUB.G_MISS_CONTRACT_REC
15 )
16 IS
17 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
18 BEGIN
19
20 -- Check required attributes.
21
22 IF p_Contract_rec.pricing_contract_id IS NULL
23 THEN
24
25 l_return_status := FND_API.G_RET_STS_ERROR;
26
27 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
28 THEN
29
30 FND_MESSAGE.SET_NAME('OE','OE_ATTRIBUTE_REQUIRED');
31 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','agreement');
32 OE_MSG_PUB.Add;
33
34 END IF;
35
36 END IF;
37
38 --
39 -- Check rest of required attributes here.
40 --
41
42
43 -- Return Error if a required attribute is missing.
44
45 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
46
47 RAISE FND_API.G_EXC_ERROR;
48
49 END IF;
50
51 --
52 -- Check conditionally required attributes here.
53 --
54
55
56 --
57 -- Validate attribute dependencies here.
58 --
59
60
61 -- Done validating entity
62
63 x_return_status := l_return_status;
64
65 EXCEPTION
66
67 WHEN FND_API.G_EXC_ERROR THEN
68
69 x_return_status := FND_API.G_RET_STS_ERROR;
70
71 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
72
73 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
74
75 WHEN OTHERS THEN
76
77 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
78
79 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
80 THEN
81 OE_MSG_PUB.Add_Exc_Msg
82 ( G_PKG_NAME
83 , 'Entity'
84 );
85 END IF;
86
87 END Entity;
88
89 -- Procedure Attributes
90
91 PROCEDURE Attributes
92 ( x_return_status OUT VARCHAR2
93 , p_Contract_rec IN OE_Pricing_Cont_PUB.Contract_Rec_Type
94 , p_old_Contract_rec IN OE_Pricing_Cont_PUB.Contract_Rec_Type :=
95 OE_Pricing_Cont_PUB.G_MISS_CONTRACT_REC
96 )
97 IS
98 BEGIN
99
100 x_return_status := FND_API.G_RET_STS_SUCCESS;
101
102 -- Validate Contract attributes
103
104 IF p_Contract_rec.agreement_id IS NOT NULL AND
105 ( p_Contract_rec.agreement_id <>
106 p_old_Contract_rec.agreement_id OR
107 p_old_Contract_rec.agreement_id IS NULL )
108 THEN
109 IF NOT OE_Validate_Attr.Agreement(p_Contract_rec.agreement_id) THEN
110 x_return_status := FND_API.G_RET_STS_ERROR;
111 END IF;
112 END IF;
113
114 IF p_Contract_rec.created_by IS NOT NULL AND
115 ( p_Contract_rec.created_by <>
116 p_old_Contract_rec.created_by OR
117 p_old_Contract_rec.created_by IS NULL )
118 THEN
119 IF NOT OE_Validate_Attr.Created_By(p_Contract_rec.created_by) THEN
120 x_return_status := FND_API.G_RET_STS_ERROR;
121 END IF;
122 END IF;
123
124 IF p_Contract_rec.creation_date IS NOT NULL AND
125 ( p_Contract_rec.creation_date <>
126 p_old_Contract_rec.creation_date OR
127 p_old_Contract_rec.creation_date IS NULL )
128 THEN
129 IF NOT OE_Validate_Attr.Creation_Date(p_Contract_rec.creation_date) THEN
130 x_return_status := FND_API.G_RET_STS_ERROR;
131 END IF;
132 END IF;
133
134 IF p_Contract_rec.discount_id IS NOT NULL AND
135 ( p_Contract_rec.discount_id <>
136 p_old_Contract_rec.discount_id OR
137 p_old_Contract_rec.discount_id IS NULL )
138 THEN
139 IF NOT OE_Validate_Attr.Discount(p_Contract_rec.discount_id) THEN
140 x_return_status := FND_API.G_RET_STS_ERROR;
141 END IF;
142 END IF;
143
144 IF p_Contract_rec.last_updated_by IS NOT NULL AND
145 ( p_Contract_rec.last_updated_by <>
146 p_old_Contract_rec.last_updated_by OR
147 p_old_Contract_rec.last_updated_by IS NULL )
148 THEN
149 IF NOT OE_Validate_Attr.Last_Updated_By(p_Contract_rec.last_updated_by) THEN
150 x_return_status := FND_API.G_RET_STS_ERROR;
151 END IF;
152 END IF;
153
154 IF p_Contract_rec.last_update_date IS NOT NULL AND
155 ( p_Contract_rec.last_update_date <>
156 p_old_Contract_rec.last_update_date OR
157 p_old_Contract_rec.last_update_date IS NULL )
158 THEN
159 IF NOT OE_Validate_Attr.Last_Update_Date(p_Contract_rec.last_update_date) THEN
160 x_return_status := FND_API.G_RET_STS_ERROR;
161 END IF;
162 END IF;
163
164 IF p_Contract_rec.last_update_login IS NOT NULL AND
165 ( p_Contract_rec.last_update_login <>
166 p_old_Contract_rec.last_update_login OR
167 p_old_Contract_rec.last_update_login IS NULL )
168 THEN
169 IF NOT OE_Validate_Attr.Last_Update_Login(p_Contract_rec.last_update_login) THEN
170 x_return_status := FND_API.G_RET_STS_ERROR;
171 END IF;
172 END IF;
173
174 IF p_Contract_rec.price_list_id IS NOT NULL AND
175 ( p_Contract_rec.price_list_id <>
176 p_old_Contract_rec.price_list_id OR
177 p_old_Contract_rec.price_list_id IS NULL )
178 THEN
179 IF NOT OE_Validate_Attr.Price_List(p_Contract_rec.price_list_id) THEN
180 x_return_status := FND_API.G_RET_STS_ERROR;
181 END IF;
182 END IF;
183
184 IF p_Contract_rec.pricing_contract_id IS NOT NULL AND
185 ( p_Contract_rec.pricing_contract_id <>
186 p_old_Contract_rec.pricing_contract_id OR
187 p_old_Contract_rec.pricing_contract_id IS NULL )
188 THEN
189 IF NOT OE_Validate_Attr.Pricing_Contract(p_Contract_rec.pricing_contract_id) THEN
190 x_return_status := FND_API.G_RET_STS_ERROR;
191 END IF;
192 END IF;
193
194 IF (p_Contract_rec.attribute1 IS NOT NULL AND
195 ( p_Contract_rec.attribute1 <>
196 p_old_Contract_rec.attribute1 OR
197 p_old_Contract_rec.attribute1 IS NULL ))
198 OR (p_Contract_rec.attribute10 IS NOT NULL AND
199 ( p_Contract_rec.attribute10 <>
200 p_old_Contract_rec.attribute10 OR
201 p_old_Contract_rec.attribute10 IS NULL ))
202 OR (p_Contract_rec.attribute11 IS NOT NULL AND
203 ( p_Contract_rec.attribute11 <>
204 p_old_Contract_rec.attribute11 OR
205 p_old_Contract_rec.attribute11 IS NULL ))
206 OR (p_Contract_rec.attribute12 IS NOT NULL AND
207 ( p_Contract_rec.attribute12 <>
208 p_old_Contract_rec.attribute12 OR
209 p_old_Contract_rec.attribute12 IS NULL ))
210 OR (p_Contract_rec.attribute13 IS NOT NULL AND
211 ( p_Contract_rec.attribute13 <>
212 p_old_Contract_rec.attribute13 OR
213 p_old_Contract_rec.attribute13 IS NULL ))
214 OR (p_Contract_rec.attribute14 IS NOT NULL AND
215 ( p_Contract_rec.attribute14 <>
216 p_old_Contract_rec.attribute14 OR
217 p_old_Contract_rec.attribute14 IS NULL ))
218 OR (p_Contract_rec.attribute15 IS NOT NULL AND
219 ( p_Contract_rec.attribute15 <>
220 p_old_Contract_rec.attribute15 OR
221 p_old_Contract_rec.attribute15 IS NULL ))
222 OR (p_Contract_rec.attribute2 IS NOT NULL AND
223 ( p_Contract_rec.attribute2 <>
224 p_old_Contract_rec.attribute2 OR
225 p_old_Contract_rec.attribute2 IS NULL ))
226 OR (p_Contract_rec.attribute3 IS NOT NULL AND
227 ( p_Contract_rec.attribute3 <>
228 p_old_Contract_rec.attribute3 OR
229 p_old_Contract_rec.attribute3 IS NULL ))
230 OR (p_Contract_rec.attribute4 IS NOT NULL AND
231 ( p_Contract_rec.attribute4 <>
232 p_old_Contract_rec.attribute4 OR
233 p_old_Contract_rec.attribute4 IS NULL ))
234 OR (p_Contract_rec.attribute5 IS NOT NULL AND
235 ( p_Contract_rec.attribute5 <>
236 p_old_Contract_rec.attribute5 OR
237 p_old_Contract_rec.attribute5 IS NULL ))
238 OR (p_Contract_rec.attribute6 IS NOT NULL AND
239 ( p_Contract_rec.attribute6 <>
240 p_old_Contract_rec.attribute6 OR
241 p_old_Contract_rec.attribute6 IS NULL ))
242 OR (p_Contract_rec.attribute7 IS NOT NULL AND
243 ( p_Contract_rec.attribute7 <>
244 p_old_Contract_rec.attribute7 OR
245 p_old_Contract_rec.attribute7 IS NULL ))
246 OR (p_Contract_rec.attribute8 IS NOT NULL AND
247 ( p_Contract_rec.attribute8 <>
248 p_old_Contract_rec.attribute8 OR
249 p_old_Contract_rec.attribute8 IS NULL ))
250 OR (p_Contract_rec.attribute9 IS NOT NULL AND
251 ( p_Contract_rec.attribute9 <>
252 p_old_Contract_rec.attribute9 OR
253 p_old_Contract_rec.attribute9 IS NULL ))
254 OR (p_Contract_rec.context IS NOT NULL AND
255 ( p_Contract_rec.context <>
256 p_old_Contract_rec.context OR
257 p_old_Contract_rec.context IS NULL ))
258 THEN
259
260 -- These calls are temporarily commented out
261
262 /*
263 FND_FLEX_DESC_VAL.Set_Column_Value
264 ( column_name => 'ATTRIBUTE1'
265 , column_value => p_Contract_rec.attribute1
266 );
267 FND_FLEX_DESC_VAL.Set_Column_Value
268 ( column_name => 'ATTRIBUTE10'
269 , column_value => p_Contract_rec.attribute10
270 );
271 FND_FLEX_DESC_VAL.Set_Column_Value
272 ( column_name => 'ATTRIBUTE11'
273 , column_value => p_Contract_rec.attribute11
274 );
275 FND_FLEX_DESC_VAL.Set_Column_Value
276 ( column_name => 'ATTRIBUTE12'
277 , column_value => p_Contract_rec.attribute12
278 );
279 FND_FLEX_DESC_VAL.Set_Column_Value
280 ( column_name => 'ATTRIBUTE13'
281 , column_value => p_Contract_rec.attribute13
282 );
283 FND_FLEX_DESC_VAL.Set_Column_Value
284 ( column_name => 'ATTRIBUTE14'
285 , column_value => p_Contract_rec.attribute14
286 );
287 FND_FLEX_DESC_VAL.Set_Column_Value
288 ( column_name => 'ATTRIBUTE15'
289 , column_value => p_Contract_rec.attribute15
290 );
291 FND_FLEX_DESC_VAL.Set_Column_Value
292 ( column_name => 'ATTRIBUTE2'
293 , column_value => p_Contract_rec.attribute2
294 );
295 FND_FLEX_DESC_VAL.Set_Column_Value
296 ( column_name => 'ATTRIBUTE3'
297 , column_value => p_Contract_rec.attribute3
298 );
299 FND_FLEX_DESC_VAL.Set_Column_Value
300 ( column_name => 'ATTRIBUTE4'
301 , column_value => p_Contract_rec.attribute4
302 );
303 FND_FLEX_DESC_VAL.Set_Column_Value
304 ( column_name => 'ATTRIBUTE5'
305 , column_value => p_Contract_rec.attribute5
306 );
307 FND_FLEX_DESC_VAL.Set_Column_Value
308 ( column_name => 'ATTRIBUTE6'
309 , column_value => p_Contract_rec.attribute6
310 );
311 FND_FLEX_DESC_VAL.Set_Column_Value
312 ( column_name => 'ATTRIBUTE7'
313 , column_value => p_Contract_rec.attribute7
314 );
315 FND_FLEX_DESC_VAL.Set_Column_Value
316 ( column_name => 'ATTRIBUTE8'
317 , column_value => p_Contract_rec.attribute8
318 );
319 FND_FLEX_DESC_VAL.Set_Column_Value
320 ( column_name => 'ATTRIBUTE9'
321 , column_value => p_Contract_rec.attribute9
322 );
323 FND_FLEX_DESC_VAL.Set_Column_Value
324 ( column_name => 'CONTEXT'
325 , column_value => p_Contract_rec.context
326 );
327 */
328
329 -- Validate descriptive flexfield.
330
331 IF NOT OE_Validate_Attr.Desc_Flex( 'CONTRACT' ) THEN
332 x_return_status := FND_API.G_RET_STS_ERROR;
333 END IF;
334
335 END IF;
336
337 -- Done validating attributes
338
339 EXCEPTION
340
341 WHEN FND_API.G_EXC_ERROR THEN
342
343 x_return_status := FND_API.G_RET_STS_ERROR;
344
345 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
346
347 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
348
349 WHEN OTHERS THEN
350
351 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
352
353 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
354 THEN
355 OE_MSG_PUB.Add_Exc_Msg
356 ( G_PKG_NAME
357 , 'Attributes'
358 );
359 END IF;
360
361 END Attributes;
362
363 -- Procedure Entity_Delete
364
365 PROCEDURE Entity_Delete
366 ( x_return_status OUT VARCHAR2
367 , p_Contract_rec IN OE_Pricing_Cont_PUB.Contract_Rec_Type
368 )
369 IS
370 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
371 BEGIN
372
373 -- Validate entity delete.
374
375 NULL;
376
377 -- Done.
378
379 x_return_status := l_return_status;
380
381 EXCEPTION
382
383 WHEN FND_API.G_EXC_ERROR THEN
384
385 x_return_status := FND_API.G_RET_STS_ERROR;
386
387 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
388
389 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
390
391 WHEN OTHERS THEN
392
393 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
394
395 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
396 THEN
397 OE_MSG_PUB.Add_Exc_Msg
398 ( G_PKG_NAME
399 , 'Entity_Delete'
400 );
401 END IF;
402
403 END Entity_Delete;
404
405 END OE_Validate_Contract;