1 PACKAGE BODY OE_CNCL_Validate_Line_Scredit AS
2 /* $Header: OEXVCLCB.pls 120.0 2005/05/31 23:39:23 appldev noship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'OE_CNCL_Validate_Line_Scredit';
7
8 Function Duplicate_Salescredit
9 (p_salesrep_id IN Number
10 ,p_sales_credit_type_id IN NUMBER
11 ,p_line_id IN NUMBER
12 ,p_sales_credit_id IN NUMBER
13 ) RETURN BOOLEAN IS
14 Cursor C_Dup_Salescredit(p_salesrep_id NUMBER
15 ,p_sales_credit_type_id NUMBER
16 ,p_line_id NUMBER
17 ,p_sales_credit_id NUMBER) IS
18 SELECT 'DUPLICATE'
19 FROM oe_sales_credits
20 WHERE line_id = p_line_id
21 AND salesrep_id = p_salesrep_id
22 AND sales_credit_type_id = p_sales_credit_type_id
23 AND sales_credit_id <> nvl(p_sales_credit_id,-5);
24 l_dummy varchar2(30);
25 BEGIN
26 OE_DEBUG_PUB.Add('Entering OE_CNCL_VALIDATE_LINE_SCREDIT.Duplicate_Salescredit',1);
27 OPEN C_Dup_Salescredit(p_salesrep_id
28 ,p_sales_credit_type_id
29 ,p_line_id
30 ,p_sales_credit_id);
31 FETCH C_Dup_Salescredit INTO l_dummy;
32 CLOSE C_Dup_Salescredit;
33 IF l_dummy = 'DUPLICATE' THEN
34 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
35 THEN
36
37 FND_MESSAGE.SET_NAME('ONT','OE_VAL_DUP_LINE_CREDIT');
38 oe_msg_pub.add;
39
40 END IF;
41 OE_DEBUG_PUB.Add('Exiting OE_CNCL_VALIDATE_LINE_SCREDIT.Duplicate_Salescredit',1);
42 Return TRUE;
43 ELSE
44 OE_DEBUG_PUB.Add('Exiting OE_CNCL_VALIDATE_LINE_SCREDIT.Duplicate_Salescredit',1);
45 Return FALSE;
46 END IF;
47 END Duplicate_Salescredit;
48
49
50 -- Procedure Entity
51
52 PROCEDURE Entity
53 ( x_return_status OUT NOCOPY VARCHAR2 /* file.sql.39 change */
54 , p_Line_Scredit_rec IN OE_Order_PUB.Line_Scredit_Rec_Type
55 )
56
57 IS
58 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
59 BEGIN
60 OE_DEBUG_PUB.Add('Entering OE_CNCL_VALIDATE_LINE_SCREDIT.Entity',1);
61
62 -- Check required attributes.
63
64 /* IF p_Line_Scredit_rec.sales_credit_id IS NULL
65 THEN
66 oe_debug_pub.add('Validate Entity - 1',1);
67
68 l_return_status := FND_API.G_RET_STS_ERROR;
69
70 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
71 THEN
72
73 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
74 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','sales_credit');
75 oe_msg_pub.add;
76
77 END IF;
78
79 END IF;
80 */
81
82 IF p_Line_Scredit_rec.sales_credit_type_id IS NULL
83 THEN
84 oe_debug_pub.add('Validate Entity - 1',1);
85
86 l_return_status := FND_API.G_RET_STS_ERROR;
87
88 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
89 THEN
90
91 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
92 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','sales_credit_type_id');
93 oe_msg_pub.add;
94
95 END IF;
96
97 END IF;
98 --
99 -- Check rest of required attributes here.
100 --
101 /* IF p_line_Scredit_rec.HEADER_ID IS NULL
102 THEN
103 oe_debug_pub.add('Validate Entity - 2',1);
104
105 l_return_status := FND_API.G_RET_STS_ERROR;
106
107 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
108 THEN
109
110 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
111 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','HEADER');
112 oe_msg_pub.add;
113
114 END IF;
115
116 END IF;
117
118 IF p_line_Scredit_rec.line_id IS NULL
119 THEN
120 oe_debug_pub.add('Validate Entity - 3',1);
121
122 l_return_status := FND_API.G_RET_STS_ERROR;
123
124 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
125 THEN
126
127 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
128 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','LINE');
129 oe_msg_pub.add;
130
131 END IF;
132
133 END IF;
134 */
135
136 IF p_line_Scredit_rec.PERCENT IS NULL
137 THEN
138 oe_debug_pub.add('Validate Entity - 5',1);
139
140 l_return_status := FND_API.G_RET_STS_ERROR;
141
142 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
143 THEN
144
145 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
146 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','PERCENT');
147 oe_msg_pub.add;
148
149 END IF;
150
151 END IF;
152
153
154
155 -- Return Error if a required attribute is missing.
156
157 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
158
159 RAISE FND_API.G_EXC_ERROR;
160
161 END IF;
162
163 --
164 -- Check conditionally required attributes here.
165 --
166
167
168 --
169 -- Validate attribute dependencies here.
170 --
171 IF Duplicate_Salescredit
172 (p_salesrep_id=>p_Line_Scredit_rec.salesrep_id
173 ,p_sales_credit_type_id=>p_Line_Scredit_rec.sales_credit_type_id
174 ,p_line_id=>p_Line_Scredit_rec.line_id
175 ,p_sales_credit_id=>p_Line_Scredit_rec.sales_credit_id)
176 THEN
177 oe_debug_pub.add('Validate Entity - 6',1);
178 l_return_status := FND_API.G_RET_STS_ERROR;
179 END IF;
180
181 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
182 RAISE FND_API.G_EXC_ERROR;
183 end if;
184
185
186 -- Done validating entity
187
188 x_return_status := l_return_status;
189 OE_DEBUG_PUB.Add('Exiting OE_CNCL_VALIDATE_LINE_SCREDIT.Entity',1);
190
191 EXCEPTION
192
193 WHEN FND_API.G_EXC_ERROR THEN
194
195 x_return_status := FND_API.G_RET_STS_ERROR;
196
197 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
198
199 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
200
201 WHEN OTHERS THEN
202
203 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
204
205 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
206 THEN
207 oe_msg_pub.add_Exc_Msg
208 ( G_PKG_NAME
209 , 'Entity'
210 );
211 END IF;
212
213 END Entity;
214
215 -- Procedure Attributes
216
217 PROCEDURE Attributes
218 ( x_return_status OUT NOCOPY VARCHAR2 /* file.sql.39 change */
219 , p_Line_Scredit_rec IN OE_Order_PUB.Line_Scredit_Rec_Type
220 )
221 IS
222 BEGIN
223 OE_DEBUG_PUB.Add('Entering OE_CNCL_VALIDATE_LINE_SCREDIT.Attributes',1);
224
225 x_return_status := FND_API.G_RET_STS_SUCCESS;
226
227 -- Validate Line_Scredit attributes
228
229 IF p_Line_Scredit_rec.created_by IS NOT NULL
230 THEN
231 IF NOT OE_CNCL_Validate.Created_By(p_Line_Scredit_rec.created_by) THEN
232 x_return_status := FND_API.G_RET_STS_ERROR;
233 END IF;
234 END IF;
235
236 IF p_Line_Scredit_rec.creation_date IS NOT NULL
237 THEN
238 IF NOT OE_CNCL_Validate.Creation_Date(p_Line_Scredit_rec.creation_date) THEN
239 x_return_status := FND_API.G_RET_STS_ERROR;
240 END IF;
241 END IF;
242
243 IF p_Line_Scredit_rec.dw_update_advice_flag IS NOT NULL
244 THEN
245 IF NOT OE_CNCL_Validate.Dw_Update_Advice(p_Line_Scredit_rec.dw_update_advice_flag) THEN
246 x_return_status := FND_API.G_RET_STS_ERROR;
247 END IF;
248 END IF;
249
250 /* IF p_Line_Scredit_rec.header_id IS NOT NULL
251 THEN
252 IF NOT OE_CNCL_Validate.Header(p_Line_Scredit_rec.header_id) THEN
253 x_return_status := FND_API.G_RET_STS_ERROR;
254 END IF;
255 END IF;
256 */
257
258 IF p_Line_Scredit_rec.last_updated_by IS NOT NULL
259 THEN
260 IF NOT OE_CNCL_Validate.Last_Updated_By(p_Line_Scredit_rec.last_updated_by) THEN
261 x_return_status := FND_API.G_RET_STS_ERROR;
262 END IF;
263 END IF;
264
265 IF p_Line_Scredit_rec.last_update_date IS NOT NULL
266 THEN
267 IF NOT OE_CNCL_Validate.Last_Update_Date(p_Line_Scredit_rec.last_update_date) THEN
268 x_return_status := FND_API.G_RET_STS_ERROR;
269 END IF;
270 END IF;
271
272 IF p_Line_Scredit_rec.last_update_login IS NOT NULL
273 THEN
274 IF NOT OE_CNCL_Validate.Last_Update_Login(p_Line_Scredit_rec.last_update_login) THEN
275 x_return_status := FND_API.G_RET_STS_ERROR;
276 END IF;
277 END IF;
278
279 /* IF p_Line_Scredit_rec.line_id IS NOT NULL
280 THEN
281 IF NOT OE_CNCL_Validate.Line(p_Line_Scredit_rec.line_id) THEN
282 x_return_status := FND_API.G_RET_STS_ERROR;
283 END IF;
284 END IF;
285 */
286 IF p_Line_Scredit_rec.percent IS NOT NULL
287 THEN
288 IF NOT OE_CNCL_Validate.Percent(p_Line_Scredit_rec.percent) THEN
289 x_return_status := FND_API.G_RET_STS_ERROR;
290 END IF;
291 END IF;
292
293
294 IF p_Line_Scredit_rec.salesrep_id IS NOT NULL
295 THEN
296 IF NOT OE_CNCL_Validate.Salesrep(p_Line_Scredit_rec.salesrep_id) THEN
297 x_return_status := FND_API.G_RET_STS_ERROR;
298 END IF;
299 END IF;
300
301 /* IF p_Line_Scredit_rec.sales_credit_id IS NOT NULL
302 THEN
303 IF NOT OE_CNCL_Validate.Sales_Credit(p_Line_Scredit_rec.sales_credit_id) THEN
304 x_return_status := FND_API.G_RET_STS_ERROR;
305 END IF;
306 END IF;
307 */
308
309 IF p_Line_Scredit_rec.wh_update_date IS NOT NULL
310 THEN
311 IF NOT OE_CNCL_Validate.Wh_Update_Date(p_Line_Scredit_rec.wh_update_date) THEN
312 x_return_status := FND_API.G_RET_STS_ERROR;
313 END IF;
314 END IF;
315
316 IF p_Line_Scredit_rec.attribute1 IS NOT NULL
317
318 OR p_Line_Scredit_rec.attribute10 IS NOT NULL
319 OR p_Line_Scredit_rec.attribute11 IS NOT NULL
320 OR p_Line_Scredit_rec.attribute12 IS NOT NULL
321 OR p_Line_Scredit_rec.attribute13 IS NOT NULL
322 OR p_Line_Scredit_rec.attribute14 IS NOT NULL
323 OR p_Line_Scredit_rec.attribute15 IS NOT NULL
324 OR p_Line_Scredit_rec.attribute2 IS NOT NULL
325 OR p_Line_Scredit_rec.attribute3 IS NOT NULL
326 OR p_Line_Scredit_rec.attribute4 IS NOT NULL
327 OR p_Line_Scredit_rec.attribute5 IS NOT NULL
328 OR p_Line_Scredit_rec.attribute6 IS NOT NULL
329 OR p_Line_Scredit_rec.attribute7 IS NOT NULL
330 OR p_Line_Scredit_rec.attribute8 IS NOT NULL
331 OR p_Line_Scredit_rec.attribute9 IS NOT NULL
332 OR p_Line_Scredit_rec.context IS NOT NULL
333 THEN
334
335
336 oe_debug_pub.add('Before calling Line Sales_Credits_Desc_Flex',2);
337 IF NOT OE_CNCL_VALIDATE.Sales_Credits_Desc_Flex
338 (p_context => p_Line_Scredit_rec.context
339 ,p_attribute1 => p_Line_Scredit_rec.attribute1
340 ,p_attribute2 => p_Line_Scredit_rec.attribute2
341 ,p_attribute3 => p_Line_Scredit_rec.attribute3
342 ,p_attribute4 => p_Line_Scredit_rec.attribute4
343 ,p_attribute5 => p_Line_Scredit_rec.attribute5
344 ,p_attribute6 => p_Line_Scredit_rec.attribute6
345 ,p_attribute7 => p_Line_Scredit_rec.attribute7
346 ,p_attribute8 => p_Line_Scredit_rec.attribute8
347 ,p_attribute9 => p_Line_Scredit_rec.attribute9
348 ,p_attribute10 => p_Line_Scredit_rec.attribute10
349 ,p_attribute11 => p_Line_Scredit_rec.attribute11
350 ,p_attribute12 => p_Line_Scredit_rec.attribute12
351 ,p_attribute13 => p_Line_Scredit_rec.attribute13
352 ,p_attribute14 => p_Line_Scredit_rec.attribute14
353 ,p_attribute15 => p_Line_Scredit_rec.attribute15) THEN
354
355 x_return_status := FND_API.G_RET_STS_ERROR;
356
357 END IF;
358 oe_debug_pub.add('After Line Sales_Credits_Desc_Flex ' || x_return_status,2);
359
360 END IF;
361
362 OE_DEBUG_PUB.Add('Exiting OE_CNCL_VALIDATE_LINE_SCREDIT.Attributes',1);
363 -- Done validating attributes
364
365 EXCEPTION
366
367 WHEN FND_API.G_EXC_ERROR THEN
368
369 x_return_status := FND_API.G_RET_STS_ERROR;
370
371 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
372
373 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
374
375 WHEN OTHERS THEN
376
377 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
378
379 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
380 THEN
381 oe_msg_pub.add_Exc_Msg
382 ( G_PKG_NAME
383 , 'Attributes'
384 );
385 END IF;
386
387 END Attributes;
388
389
390 END OE_CNCL_Validate_Line_Scredit;