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