[Home] [Help]
PACKAGE BODY: APPS.OE_OE_MULTI_HEADER_SCREDIT
Source
1 PACKAGE BODY OE_OE_Multi_Header_Scredit AS
2 /* $Header: OEXMHSCB.pls 120.1.12000000.2 2007/07/27 08:25:53 cpati ship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'OE_OE_Multi_Header_Scredit';
7
8 -- Global variables holding cached record.
9
10 g_Header_Multi_Scredit_Tbl HEADER_Multi_SCREDIT_Tbl_Type;
11 g_Header_Multi_Scredit_Count Number := 0;
12 g_Multi_MSG_Tbl OE_DEBUG_PUB.Debug_Tbl_Type;
13 G_Multi_Msg_count Number := 0;
14 G_MULTI_MSG_Index Number := 0;
15
16 -- Forward declaration of procedures maintaining entity record cache.
17
18 Function Get_Multi_Errors
19 (p_start_with_first Varchar2 default FND_API.G_TRUE
20 ) Return Varchar2 IS
21 --
22 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
23 --
24 Begin
25 if p_start_with_first = FND_API.G_TRUE
26 then G_MULTI_MSG_INDEX := 1;
27 else
28 G_MULTI_MSG_INDEX := G_Multi_MSG_Index + 1;
29 end if;
30 if G_MULTI_MSG_INDEX > G_MULTI_MSG_COUNT then
31 Return NULL;
32 else
33 Return(G_MULTI_MSG_TBL(g_multi_msg_index));
34 end if;
35 End Get_Multi_Errors;
36
37 Procedure add_multi_errors(p_msg Varchar2)
38 IS
39 --
40 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
41 --
42 Begin
43 if p_msg is not null then
44 g_multi_msg_count := g_multi_msg_count + 1;
45 g_multi_msg_tbl(g_multi_msg_count) := p_msg;
46 end if;
47 END add_multi_errors;
48
49 Procedure Copy_Errors_Multi_Msg( p_header_id in number,
50 p_msg_count in Number) IS
51 Cursor C_order_number( p_header_id number) IS
52 select 'Following Errors Have occured for Order, Order Number '
53 || to_char(order_number)
54 from OE_ORDER_HEADERS
55 where header_id = p_header_id;
56 l_order_number varchar2(500);
57 I number;
58 --
59 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
60 --
61 Begin
62 -- open c_order_number(p_header_id);
63 -- fetch c_order_number
64 -- into l_order_number;
65 -- close c_order_number;
66 -- add_multi_errors(l_order_number);
67 /*
68 for I in 1..p_msg_count loop
69 oe_msg_pub.add_with_context(
70 oe_msg_pub.get(I,FND_API.G_FALSE),
71
72 OE_GLOBALS.g_entity_header,to_char(p_header_id));
73 end loop;
74 */
75 null;
76
77 End Copy_errors_multi_msg;
78
79 Procedure Get_Substring
80 (String IN OUT NOCOPY /* file.sql.39 change */ VARCHAR2
81 , Sub_string IN OUT NOCOPY /* file.sql.39 change */ VARCHAR2
82 ) IS
83 Pos1 NUMBER;
84 Temp_sub_string VARCHAR2(200) := NULL;
85 x_delim Varchar2(1) := FND_API.G_MISS_CHAR;
86 --
87 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
88 --
89 BEGIN
90 Pos1 := INSTR(String,x_delim,1);
91 IF Pos1 > 0 THEN
92 Temp_sub_string := SUBSTR(String,1,Pos1 - 1);
93 String := SUBSTR(String,Pos1 + 1);
94 END IF;
95 Sub_string := Temp_sub_string;
96 END Get_Substring;
97
98 /* Replace credit type : R - Revenue
99 NR - Non Revenue
100 B - Both Revenue and Non-Revenue
101 */
102
103 PROCEDURE Replace_Header_Scredit
104 ( p_Header_ID IN Number
105 ,p_replace_credit_type IN Varchar2
106 ,p_Return_Status OUT NOCOPY Varchar2
107
108 ,p_msg_count OUT NOCOPY NUMBER
109
110 ,p_msg_data OUT NOCOPY Varchar2
111
112 )
113 IS
114 l_Header_Scredit_rec OE_Order_PUB.Header_Scredit_Rec_Type;
115 l_old_Header_Scredit_rec OE_Order_PUB.Header_Scredit_Rec_Type;
116 l_Header_Scredit_tbl OE_Order_PUB.Header_Scredit_Tbl_Type;
117 l_old_Header_Scredit_tbl OE_Order_PUB.Header_Scredit_Tbl_Type;
118 l_control_rec OE_GLOBALS.Control_Rec_Type;
119 l_return_status Varchar2(30);
120 l_x_header_rec OE_Order_PUB.Header_Rec_Type;
121 l_x_Header_Adj_rec OE_Order_PUB.Header_Adj_Rec_Type;
122 l_x_Header_Adj_tbl OE_Order_PUB.Header_Adj_Tbl_Type;
123 l_x_Header_Scredit_rec OE_Order_PUB.Header_Scredit_Rec_Type;
124 l_x_Header_Scredit_tbl OE_Order_PUB.Header_Scredit_Tbl_Type;
125 l_x_line_rec OE_Order_PUB.Line_Rec_Type;
126 l_x_line_tbl OE_Order_PUB.Line_Tbl_Type;
127 l_x_Line_Adj_rec OE_Order_PUB.Line_Adj_Rec_Type;
128 l_x_Line_Adj_tbl OE_Order_PUB.Line_Adj_Tbl_Type;
129 l_x_Line_Scredit_rec OE_Order_PUB.Line_Scredit_Rec_Type;
130 l_x_Line_Scredit_tbl OE_Order_PUB.Line_Scredit_Tbl_Type;
131 l_x_Lot_Serial_rec OE_Order_PUB.Lot_Serial_Rec_Type;
132 l_x_Lot_Serial_tbl OE_Order_PUB.Lot_Serial_Tbl_Type;
133 l_x_action_request_tbl OE_Order_PUB.request_tbl_type;
134 l_x_Header_price_Att_tbl OE_Order_PUB.Header_Price_Att_Tbl_Type;
135 l_x_Header_Adj_Att_tbl OE_Order_PUB.Header_Adj_Att_Tbl_Type;
136 l_x_Header_Adj_Assoc_tbl OE_Order_PUB.Header_Adj_Assoc_Tbl_Type;
137 l_x_Line_price_Att_tbl OE_Order_PUB.Line_Price_Att_Tbl_Type;
138 l_x_Line_Adj_Att_tbl OE_Order_PUB.Line_Adj_Att_Tbl_Type;
139 l_x_Line_Adj_Assoc_tbl OE_Order_PUB.Line_Adj_Assoc_Tbl_Type;
140
141 Cursor C_OLD_R_SALES_CREDIT_ID(P_HEADER_ID Number) IS
142 SELECT Sales_Credit_ID
143 FROM OE_SALES_CREDITS SC,
144 OE_SALES_CREDIT_TYPES SCT
145 WHERE HEADER_ID = P_HEADER_ID
146 AND SCT.SALES_CREDIT_TYPE_ID = SC.SALES_CREDIT_TYPE_ID
147 AND SCT.QUOTA_FLAG = 'Y'
148 AND LINE_ID IS NULL;
149 Cursor C_OLD_NR_SALES_CREDIT_ID(P_HEADER_ID Number) IS
150 SELECT Sales_Credit_ID
151 FROM OE_SALES_CREDITS SC,
152 OE_SALES_CREDIT_TYPES SCT
153 WHERE HEADER_ID = P_HEADER_ID
154 AND SCT.SALES_CREDIT_TYPE_ID = SC.SALES_CREDIT_TYPE_ID
155 AND SCT.QUOTA_FLAG = 'N'
156 AND LINE_ID IS NULL;
157 Cursor C_OLD_SALES_CREDIT_ID(P_HEADER_ID Number) IS
158 SELECT Sales_Credit_ID
159 FROM OE_SALES_CREDITS
160 WHERE HEADER_ID = P_HEADER_ID
161 AND LINE_ID IS NULL;
162 I Number;
163 --serla begin
164 l_x_Header_Payment_tbl OE_Order_PUB.Header_Payment_Tbl_Type;
165 l_x_Line_Payment_tbl OE_Order_PUB.Line_Payment_Tbl_Type;
166 --serla end
167 --
168 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
169 --
170 BEGIN
171 l_Header_Scredit_tbl.delete;
172 l_Old_Header_Scredit_tbl.delete;
173
174 -- Set control flags for Delete
175
176 l_control_rec.controlled_operation := TRUE;
177 l_control_rec.validate_entity := FALSE;
178 l_control_rec.write_to_DB := TRUE;
179
180 l_control_rec.default_attributes := FALSE;
181 l_control_rec.change_attributes := FALSE;
182 l_control_rec.process := FALSE;
183
184 -- Instruct API to retain its caches
185
186 l_control_rec.clear_api_cache := FALSE;
187 l_control_rec.clear_api_requests := FALSE;
188
189 -- Delete Existing Sales Credits for the Header
190 I := 1;
191 IF P_REPLACE_CREDIT_TYPE = 'R' then -- Replace Revenue
192 FOR R_OLD_SALES_CREDIT IN C_OLD_R_SALES_CREDIT_ID(p_header_id) LOOP
193 -- Read DB record from cache
194
195 OE_Header_Scredit_Util.Lock_Row
196 ( p_sales_credit_id => R_OLD_SALES_CREDIT.SALES_CREDIT_ID
197 , p_x_header_Scredit_rec => l_Header_Scredit_rec
198 , x_return_status => l_return_status
199 );
200
201 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
202 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
203 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
204 RAISE FND_API.G_EXC_ERROR;
205 END IF;
206 -- Set Operation.
207
208 l_Header_Scredit_rec.operation := OE_GLOBALS.G_OPR_LOCK;
209 -- Populate Header_Scredit table
210
211 l_x_Header_Scredit_tbl(I) := l_Header_Scredit_rec;
212 I := I +1;
213 END LOOP;
214 ELSIF P_REPLACE_CREDIT_TYPE = 'NR' then -- Replace NON Revenue
215 FOR R_OLD_SALES_CREDIT IN C_OLD_NR_SALES_CREDIT_ID(p_header_id) LOOP
216 -- Read DB record from cache
217
218 OE_Header_Scredit_Util.Lock_Row
219 ( p_sales_credit_id => R_OLD_SALES_CREDIT.SALES_CREDIT_ID
220 , p_x_header_Scredit_rec => l_Header_Scredit_rec
221 , x_return_status => l_return_status
222 );
223
224 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
225 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
226 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
227 RAISE FND_API.G_EXC_ERROR;
228 END IF;
229 -- Set Operation.
230
231 l_Header_Scredit_rec.operation := OE_GLOBALS.G_OPR_LOCK;
232 -- Populate Header_Scredit table
233
234 l_x_Header_Scredit_tbl(I) := l_Header_Scredit_rec;
235 I := I +1;
236 END LOOP;
237 ELSE -- Replace both Revenue and Non-Revenue
238 FOR R_OLD_SALES_CREDIT IN C_OLD_SALES_CREDIT_ID(p_header_id) LOOP
239 -- Read DB record from cache
240
241 OE_Header_Scredit_Util.Lock_Row
242 ( p_sales_credit_id => R_OLD_SALES_CREDIT.SALES_CREDIT_ID
243 , p_x_header_Scredit_rec => l_Header_Scredit_rec
244 , x_return_status => l_return_status
245 );
246
247 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
248 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
249 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
250 RAISE FND_API.G_EXC_ERROR;
251 END IF;
252 -- Set Operation.
253
254 l_Header_Scredit_rec.operation := OE_GLOBALS.G_OPR_LOCK;
255 -- Populate Header_Scredit table
256
257 l_x_Header_Scredit_tbl(I) := l_Header_Scredit_rec;
258 I := I +1;
259 END LOOP;
260 END IF;
261
262 -- Set the operation code to Delete from LOCK
263 FOR J in 1..(I-1) LOOP
264 l_x_Header_Scredit_tbl(j).operation := OE_GLOBALS.G_OPR_DELETE;
265 END LOOP;
266
267 -- Call OE_Order_PVT.Process_order
268 OE_Order_PVT.Process_order
269 ( p_api_version_number => 1.0
270 , p_init_msg_list => FND_API.G_TRUE
271 , x_return_status => l_return_status
272 , x_msg_count => p_msg_count
273 , x_msg_data => p_msg_data
274 , p_control_rec => l_control_rec
275 , p_x_header_rec => l_x_header_rec
276 , p_x_Header_Adj_tbl => l_x_Header_Adj_tbl
277 , p_x_Header_Scredit_tbl => l_x_Header_Scredit_tbl
278 --serla begin
279 , p_x_Header_Payment_tbl => l_x_Header_Payment_tbl
280 --serla end
281 , p_x_line_tbl => l_x_line_tbl
282 , p_x_Line_Adj_tbl => l_x_Line_Adj_tbl
283 , p_x_Line_Scredit_tbl => l_x_Line_Scredit_tbl
284 --serla begin
285 , p_x_Line_Payment_tbl => l_x_Line_Payment_tbl
286 --serla end
287 , p_x_Lot_Serial_tbl => l_x_Lot_Serial_tbl
288 , p_x_action_request_tbl => l_x_action_request_tbl
289 , p_x_Header_price_Att_tbl => l_x_Header_price_Att_tbl
290 , p_x_Header_Adj_Att_tbl => l_x_Header_Adj_Att_tbl
291 , p_x_Header_Adj_Assoc_tbl => l_x_Header_Adj_Assoc_tbl
292 , p_x_Line_price_Att_tbl => l_x_Line_price_Att_tbl
293 , p_x_Line_Adj_Att_tbl => l_x_Line_Adj_Att_tbl
294 , p_x_Line_Adj_Assoc_tbl => l_x_Line_Adj_Assoc_tbl
295
296 );
297
298 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
299 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
300 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
301 RAISE FND_API.G_EXC_ERROR;
302 END IF;
303
304 -- Set return status.
305
306 p_return_status := FND_API.G_RET_STS_SUCCESS;
307
308 l_x_Header_Scredit_tbl.delete;
309 l_Old_Header_Scredit_tbl.delete;
310 -- Set control flags.
311
312 l_control_rec.controlled_operation := TRUE;
313 l_control_rec.validate_entity := TRUE;
314 l_control_rec.write_to_DB := TRUE;
315
316 l_control_rec.default_attributes := TRUE;
317 l_control_rec.change_attributes := TRUE;
318 l_control_rec.process := FALSE;
319
320 -- Instruct API to retain its caches
321
322 l_control_rec.clear_api_cache := FALSE;
323 l_control_rec.clear_api_requests := FALSE;
324
325
326 -- Populate Header_Scredit table for Inserts
327 For I in 1 .. g_Header_Multi_Scredit_Count Loop
328 l_Header_Scredit_rec := OE_Order_PUB.G_MISS_HEADER_SCREDIT_REC;
329 l_Header_Scredit_rec.operation := OE_GLOBALS.G_OPR_CREATE;
330 l_Header_Scredit_rec.Header_id := p_header_id;
331 l_Header_Scredit_rec.SalesRep_Id
332 := g_Header_Multi_Scredit_Tbl(I).SalesRep_Id;
333 l_Header_Scredit_rec.sales_Credit_type_id
334 := g_Header_Multi_Scredit_Tbl(I).sales_Credit_type_id;
335 l_Header_Scredit_rec.percent
336 := g_Header_Multi_Scredit_Tbl(I).percent;
337 -- changes start for bug 3742335
338 l_Header_Scredit_rec.Context := g_Header_Multi_Scredit_Tbl(I).Context ;
339 l_Header_Scredit_rec.Attribute1 := g_Header_Multi_Scredit_Tbl(I).Attribute1 ;
340 l_Header_Scredit_rec.Attribute2 := g_Header_Multi_Scredit_Tbl(I).Attribute2 ;
341 l_Header_Scredit_rec.Attribute3 := g_Header_Multi_Scredit_Tbl(I).Attribute3 ;
342 l_Header_Scredit_rec.Attribute4 := g_Header_Multi_Scredit_Tbl(I).Attribute4 ;
343 l_Header_Scredit_rec.Attribute5 := g_Header_Multi_Scredit_Tbl(I).Attribute5 ;
344 l_Header_Scredit_rec.Attribute6 := g_Header_Multi_Scredit_Tbl(I).Attribute6 ;
345 l_Header_Scredit_rec.Attribute7 := g_Header_Multi_Scredit_Tbl(I).Attribute7 ;
346 l_Header_Scredit_rec.Attribute8 := g_Header_Multi_Scredit_Tbl(I).Attribute8 ;
347 l_Header_Scredit_rec.Attribute9 := g_Header_Multi_Scredit_Tbl(I).Attribute9 ;
348 l_Header_Scredit_rec.Attribute10 := g_Header_Multi_Scredit_Tbl(I).Attribute10;
349 l_Header_Scredit_rec.Attribute11 := g_Header_Multi_Scredit_Tbl(I).Attribute11;
350 l_Header_Scredit_rec.Attribute12 := g_Header_Multi_Scredit_Tbl(I).Attribute12;
351 l_Header_Scredit_rec.Attribute13 := g_Header_Multi_Scredit_Tbl(I).Attribute13;
352 l_Header_Scredit_rec.Attribute14 := g_Header_Multi_Scredit_Tbl(I).Attribute14;
353 l_Header_Scredit_rec.Attribute15 := g_Header_Multi_Scredit_Tbl(I).Attribute15;
354 -- changes end for bug 3742335
355 l_Header_Scredit_rec.sales_group_id := g_Header_Multi_Scredit_Tbl(I).sales_group_id; --5692017
356 l_Header_Scredit_rec.sales_group_updated_flag := g_Header_Multi_Scredit_Tbl(I).sales_group_updated_flag; --5692017
357 l_x_Header_Scredit_tbl(I) := l_Header_Scredit_rec;
358 l_old_Header_Scredit_tbl(I) := OE_Order_PUB.G_MISS_HEADER_SCREDIT_REC;
359 END loop;
360
361 -- Call OE_Order_PVT.Process_order
362 OE_DELAYED_REQUESTS_PVT.Clear_Request(x_return_status => l_return_status);
363
364 OE_Order_PVT.Process_order
365 ( p_api_version_number => 1.0
366 , p_init_msg_list => FND_API.G_FALSE
367 , x_return_status => l_return_status
368 , x_msg_count => p_msg_count
369 , x_msg_data => p_msg_data
370 , p_control_rec => l_control_rec
371 , p_x_Header_Scredit_tbl => l_x_Header_Scredit_tbl
372 --serla begin
373 , p_x_Header_Payment_tbl => l_x_Header_Payment_tbl
374 --serla end
375 , p_old_Header_Scredit_tbl => l_old_Header_Scredit_tbl
376 , p_x_header_rec => l_x_header_rec
377 , p_x_Header_Adj_tbl => l_x_Header_Adj_tbl
378 , p_x_line_tbl => l_x_line_tbl
379 , p_x_Line_Adj_tbl => l_x_Line_Adj_tbl
380 , p_x_Line_Scredit_tbl => l_x_Line_Scredit_tbl
381 --serla begin
382 , p_x_Line_Payment_tbl => l_x_Line_Payment_tbl
383 --serla end
384 , p_x_Lot_Serial_tbl => l_x_Lot_Serial_tbl
385 , p_x_action_request_tbl => l_x_action_request_tbl
386 , p_x_Header_price_Att_tbl => l_x_Header_price_Att_tbl
387 , p_x_Header_Adj_Att_tbl => l_x_Header_Adj_Att_tbl
388 , p_x_Header_Adj_Assoc_tbl => l_x_Header_Adj_Assoc_tbl
389 , p_x_Line_price_Att_tbl => l_x_Line_price_Att_tbl
390 , p_x_Line_Adj_Att_tbl => l_x_Line_Adj_Att_tbl
391 , p_x_Line_Adj_Assoc_tbl => l_x_Line_Adj_Assoc_tbl
392
393 );
394
395 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
396 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
397 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
398 RAISE FND_API.G_EXC_ERROR;
399 END IF;
400
401 OE_OE_Form_Header_Scredit.Process_Entity
402 (x_return_status =>l_return_status
403 ,x_msg_count => p_msg_count
404 ,x_msg_data => p_msg_data
405 );
406
407 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
408 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
409 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
410 RAISE FND_API.G_EXC_ERROR;
411 END IF;
412
413 p_return_status := FND_API.G_RET_STS_SUCCESS;
414
415 EXCEPTION
416
417 WHEN FND_API.G_EXC_ERROR THEN
418
419 p_return_status := FND_API.G_RET_STS_ERROR;
420
421 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
422
423 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
424
425 WHEN OTHERS THEN
426
427 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
428
429 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
430 THEN
431 oe_msg_pub.Add_Exc_Msg
432 ( G_PKG_NAME
433 , 'Replace_Header_Scredit'
434 );
435 END IF;
436
437 END Replace_Header_Scredit;
438
439 Procedure Add_Multi_Header_Scredit_Req
440 (p_init IN Varchar2 Default FND_API.G_FALSE
441 ,p_salesrep_id IN Number
442 ,p_sales_Credit_type_id IN Number
443 ,p_percent IN Number
444 -- changes start for bug 3742335
445 ,p_Context Varchar2
446 ,p_Attribute1 Varchar2
447 ,p_Attribute2 Varchar2
448 ,p_Attribute3 Varchar2
449 ,p_Attribute4 Varchar2
450 ,p_Attribute5 Varchar2
451 ,p_Attribute6 Varchar2
452 ,p_Attribute7 Varchar2
453 ,p_Attribute8 Varchar2
454 ,p_Attribute9 Varchar2
455 ,p_Attribute10 Varchar2
456 ,p_Attribute11 Varchar2
457 ,p_Attribute12 Varchar2
458 ,p_Attribute13 Varchar2
459 ,p_Attribute14 Varchar2
460 ,p_Attribute15 Varchar2
461 -- changes end for bug 3742335
462 ,p_sales_group_id IN Number --5692017
463 ,p_sales_group_updated_flag IN Varchar2 --5692017
464 ,p_return_status OUT NOCOPY Varchar2
465
466 ,p_msg_count OUT NOCOPY NUMBER
467
468 ,p_msg_data OUT NOCOPY Varchar2
469
470 ) IS
471 I number;
472 --
473 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
474 --
475 BEGIN
476 p_return_status := FND_API.G_RET_STS_SUCCESS;
477 if p_init = FND_API.G_TRUE then
478 -- Initialize message list.
479 oe_msg_pub.initialize;
480 g_Header_Multi_Scredit_Count := 0;
481 g_Header_Multi_Scredit_Tbl.delete;
482 end if;
483 g_Header_Multi_Scredit_Count := g_Header_Multi_Scredit_Count +1;
484 I := g_Header_Multi_Scredit_Count;
485 g_Header_Multi_Scredit_Tbl(I).salesrep_id := p_salesrep_id;
486 g_Header_Multi_Scredit_Tbl(I).sales_Credit_type_id := p_sales_Credit_type_id;
487 g_Header_Multi_Scredit_Tbl(I).percent := p_percent;
488 -- changes start for bug 3742335
489 g_Header_Multi_Scredit_Tbl(I).Context := p_Context ;
490 g_Header_Multi_Scredit_Tbl(I).Attribute1 := p_Attribute1;
491 g_Header_Multi_Scredit_Tbl(I).Attribute2 := p_Attribute2;
492 g_Header_Multi_Scredit_Tbl(I).Attribute3 := p_Attribute3;
493 g_Header_Multi_Scredit_Tbl(I).Attribute4 := p_Attribute4;
494 g_Header_Multi_Scredit_Tbl(I).Attribute5 := p_Attribute5;
495 g_Header_Multi_Scredit_Tbl(I).Attribute6 := p_Attribute6;
496 g_Header_Multi_Scredit_Tbl(I).Attribute7 := p_Attribute7;
497 g_Header_Multi_Scredit_Tbl(I).Attribute8 := p_Attribute8;
498 g_Header_Multi_Scredit_Tbl(I).Attribute9 := p_Attribute9;
499 g_Header_Multi_Scredit_Tbl(I).Attribute10 := p_Attribute10;
500 g_Header_Multi_Scredit_Tbl(I).Attribute11 := p_Attribute11;
501 g_Header_Multi_Scredit_Tbl(I).Attribute12 := p_Attribute12;
502 g_Header_Multi_Scredit_Tbl(I).Attribute13 := p_Attribute13;
503 g_Header_Multi_Scredit_Tbl(I).Attribute14 := p_Attribute14;
504 g_Header_Multi_Scredit_Tbl(I).Attribute15 := p_Attribute15;
505 -- changes end for bug 3742335
506 g_Header_Multi_Scredit_Tbl(I).sales_group_id := p_sales_group_id; --5692017
507 g_Header_Multi_Scredit_Tbl(I).sales_group_updated_flag := p_sales_group_updated_flag; --5692017
508
509 oe_msg_pub.Count_And_Get
510 ( p_count => p_msg_count
511 , p_data => p_msg_data
512 );
513 EXCEPTION
514
515 WHEN FND_API.G_EXC_ERROR THEN
516
517 p_return_status := FND_API.G_RET_STS_ERROR;
518
519 -- Get message count and data
520
521 oe_msg_pub.Count_And_Get
522 ( p_count => p_msg_count
523 , p_data => p_msg_data
524 );
525
526 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
527
528 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
529
530 -- Get message count and data
531
532 oe_msg_pub.Count_And_Get
533 ( p_count => p_msg_count
534 , p_data => p_msg_data
535 );
536
537 WHEN OTHERS THEN
538
539 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
540
541 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
542 THEN
543 oe_msg_pub.Add_Exc_Msg
544 ( G_PKG_NAME
545 , 'Add_Multi_Header_Scredit_Req'
546 );
547 END IF;
548
549 -- Get message count and data
550
551 oe_msg_pub.Count_And_Get
552 ( p_count => p_msg_count
553 , p_data => p_msg_data
554 );
555
556 END Add_Multi_Header_Scredit_Req;
557
558 Procedure Replace_Multi_Header_Scredit
559 (
560 p_cont_on_error IN Varchar2 Default FND_API.G_TRUE
561 ,p_header_id_list IN Oe_Globals.Selected_Record_Tbl --MOAC PI
562 ,p_replace_credit_type IN Varchar2
563 ,p_Return_Status OUT NOCOPY Varchar2
564
565 ,p_msg_count OUT NOCOPY NUMBER
566
567 ,p_msg_data OUT NOCOPY Varchar2
568
569 ) IS
570 l_x_header_id number;
571 l_x_header_id_str Varchar2(80);
572 --l_x_header_id_list Varchar2(2000) := p_header_id_list;
573 l_return_status Varchar2(30);
574 --MOAC PI
575 l_msg_count Number;
576 l_x_org_id Number;
577 l_prev_org_id Number;
578 i Number;
579 --
580 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
581 --
582 BEGIN
583
584 OE_MSG_PUB.initialize;
585 g_Multi_MSG_Tbl.Delete;
586 g_Multi_MSG_count := 0;
587 p_return_status := FND_API.G_RET_STS_SUCCESS;
588 --MOAC PI
589 i := p_header_id_list.first;
590 while i is not null loop
591 SAVEPOINT Header_Salescredit;
592 l_x_header_id := p_header_id_list(i).id1;
593 l_x_org_id := p_header_id_list(i).org_id;
594 IF l_prev_org_id is null or l_prev_org_id <> l_x_org_id Then
595 MO_GLOBAL.set_policy_context(p_access_mode => 'S', p_org_id => l_x_Org_Id);
596 L_prev_org_id := l_x_org_id;
597 End If;
598 --MOAC PI
599 IF l_debug_level > 0 THEN
600 oe_debug_pub.add( 'PROCESSING SALES CREDIT FOR HEADER ID ' || TO_CHAR ( L_X_HEADER_ID ) ) ;
601 END IF;
602 Replace_Header_Scredit(l_x_header_id
603 ,p_replace_credit_type
604 ,l_return_status
605 ,l_msg_count
606 ,p_msg_data);
607 if l_return_status <> FND_API.G_RET_STS_SUCCESS then
608 Copy_Errors_Multi_Msg(l_x_header_id,
609 l_msg_count);
610 p_return_status := l_return_status;
611 rollback to Header_Salescredit;
612 if p_cont_on_error = FND_API.G_TRUE then
613 null;
614 else
615 EXIT;
616 end if;
617 end if;
618 i := p_header_id_list.next(i); --MOAC PI
619 END LOOP;
620 IF l_return_status <> FND_API.G_RET_STS_SUCCESS then
621 RAISE FND_API.G_EXC_ERROR;
622 END IF;
623 oe_msg_pub.Count_And_Get
624 ( p_count => p_msg_count
625 , p_data => p_msg_data
626 );
627 EXCEPTION
628
629 WHEN FND_API.G_EXC_ERROR THEN
630
631 p_return_status := FND_API.G_RET_STS_ERROR;
632
633 -- Get message count and data
634
635 oe_msg_pub.Count_And_Get
636 ( p_count => p_msg_count
637 , p_data => p_msg_data
638 );
639
640 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
641
642 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
643
644 -- Get message count and data
645
646 oe_msg_pub.Count_And_Get
647 ( p_count => p_msg_count
648 , p_data => p_msg_data
649 );
650
651 WHEN OTHERS THEN
652
653 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
654
655 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
656 THEN
657 oe_msg_pub.Add_Exc_Msg
658 ( G_PKG_NAME
659 , 'Replace_Multi_Header_Scredit'
660 );
661 END IF;
662
663 -- Get message count and data
664
665 oe_msg_pub.Count_And_Get
666 ( p_count => p_msg_count
667 , p_data => p_msg_data
668 );
669
670 END Replace_Multi_Header_Scredit;
671
672 END OE_OE_Multi_Header_Scredit;