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