[Home] [Help]
PACKAGE BODY: APPS.AR_REVENUEADJUST_PUB
Source
4 G_PKG_NAME CONSTANT VARCHAR2(30):= 'AR_RevenueAdjust_PUB';
1 PACKAGE BODY AR_RevenueAdjust_PUB AS
2 /*$Header: ARXPRADB.pls 120.7.12010000.2 2008/08/28 20:03:37 mraymond ship $*/
3
5 PG_DEBUG varchar2(1) := NVL(FND_PROFILE.value('AFLOG_ENABLED'),'N');
6
7
8 -----------------------------------------------------------------------
9 -- The following subroutine group_compatible is local procedure
10 -- introdcued for the Sales Group project. This subroutine checks
11 -- for backward compatibility. If the API user passes 'B' for
12 -- sales_credit_type indicating both Revenue and Non-Revenue then
13 -- from_salesgroup_id or to_salesgroup_id can not be populated.
14 -- if they are then we raise an error.
15 ------------------------------------------------------------------------
16
17 FUNCTION group_compatible (
18 p_rev_adj_rec ar_revenue_adjustment_pvt.rev_adj_rec_type)
19 RETURN BOOLEAN IS
20
21 BEGIN
22
23 IF p_rev_adj_rec.sales_credit_type = 'B' THEN
24 IF (p_rev_adj_rec.from_salesgroup_id IS NOT NULL OR
25 p_rev_adj_rec.to_salesgroup_id IS NOT NULL) THEN
26 RETURN FALSE;
27 END IF;
28 END IF;
29
30 RETURN TRUE;
31
32 END group_compatible;
33
34 -----------------------------------------------------------------------
35 -- API name : Unearn_Revenue
36 -- Type : Public
37 -- Function : Transfers a specified amount of revenue from
38 -- earned to unearned revenue account
39 -- Pre-reqs : Sufficient earned revenue must exist.
40 -- Parameters :
41 -- IN : p_api_version NUMBER Required
42 -- p_init_msg_list VARCHAR2 Optional
43 -- Default = FND_API.G_FALSE
44 -- p_commit VARCHAR2 Optional
45 -- Default = FND_API.G_FALSE
46 -- p_rev_adj_rec Rev_Adj_Rec_Type Required
47 -- OUT NOCOPY : x_return_status VARCHAR2(1)
48 -- x_msg_count NUMBER
49 -- x_msg_data VARCHAR2(2000)
50 -- x_adjustment_id NUMBER
51 -- x_adjustment_number VARCHAR2
52 --
53 -- Version : Current version 2.0
54 -- Initial version created 31-MAY-2000
55 -- Initial version 1.0
56 --
57 -- Notes :
58 --
59 -----------------------------------------------------------------------
60
61 PROCEDURE Unearn_Revenue
62 ( p_api_version IN NUMBER
63 ,p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE
64 ,p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE
65 ,x_return_status OUT NOCOPY VARCHAR2
66 ,x_msg_count OUT NOCOPY NUMBER
67 ,x_msg_data OUT NOCOPY VARCHAR2
68 ,p_rev_adj_rec IN AR_Revenue_Adjustment_PVT.Rev_Adj_Rec_Type
69 ,p_org_id IN NUMBER DEFAULT NULL
70 ,x_adjustment_id OUT NOCOPY NUMBER
71 ,x_adjustment_number OUT NOCOPY VARCHAR2)
72 IS
73 l_api_name CONSTANT VARCHAR2(30) := 'Unearn_Revenue';
74 l_api_version CONSTANT NUMBER := 2.0;
75 l_org_return_status VARCHAR2(1);
76 l_org_id NUMBER;
77 BEGIN
78 IF PG_DEBUG in ('Y', 'C') THEN
79 arp_debug.debug('AR_RevenueAdjust_PUB.Unearn_Revenue()+');
80 END IF;
81 -- Standard Start of API savepoint
82 SAVEPOINT Unearn_Revenue_PUB;
83 -- Standard call to check for call compatibility.
84 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
85 p_api_version ,
86 l_api_name ,
87 G_PKG_NAME )
88 THEN
89 IF PG_DEBUG in ('Y', 'C') THEN
90 arp_debug.debug('Unearn_Revenue: ' || '.Unexpected EXCEPTION '||sqlerrm||
91 ' at AR_RevenueAdjust_PUB.Unearn_Revenue()+');
92 END IF;
93 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
94 END IF;
95 -- Initialize message list if p_init_msg_list is set to TRUE.
96 IF FND_API.to_Boolean( p_init_msg_list )
97 THEN
98 FND_MSG_PUB.initialize;
99 END IF;
100 -- Initialize API return status to success
101 x_return_status := FND_API.G_RET_STS_SUCCESS;
102 /* SSA change */
103 l_org_id := p_org_id;
104 l_org_return_status := FND_API.G_RET_STS_SUCCESS;
105 ar_mo_cache_utils.set_org_context_in_api(p_org_id =>l_org_id,
106 p_return_status =>l_org_return_status);
107 IF l_org_return_status <> FND_API.G_RET_STS_SUCCESS THEN
108 x_return_status := FND_API.G_RET_STS_ERROR;
109 ELSE
110 -- Introduced for the Sales Group Project.
111 -- ORASHID 11-AUG-2003
112 --
113 IF NOT group_compatible(p_rev_adj_rec) THEN
114 fnd_message.set_name('AR','AR_INCOMPATIBLE_CREDIT_TYPE');
115 fnd_msg_pub.add;
116 RAISE fnd_api.g_exc_error;
120 ( p_api_version => 2.0
117 END IF;
118
119 AR_Revenue_Adjustment_PVT.Unearn_Revenue
121 ,p_init_msg_list => p_init_msg_list
122 ,p_commit => p_commit
123 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
124 ,x_return_status => x_return_status
125 ,x_msg_count => x_msg_count
126 ,x_msg_data => x_msg_data
127 ,p_rev_adj_rec => p_rev_adj_rec
128 ,x_adjustment_id => x_adjustment_id
129 ,x_adjustment_number => x_adjustment_number);
130
131 -- Standard check of p_commit.
132 IF FND_API.To_Boolean( p_commit )
133 THEN
134 COMMIT WORK;
135 END IF;
136 END IF;
137 -- Standard call to get message count and if count is 1, get message info.
138 FND_MSG_PUB.Count_And_Get
139 (p_encoded => FND_API.G_FALSE,
140 p_count => x_msg_count,
141 p_data => x_msg_data);
142 EXCEPTION
143 WHEN FND_API.G_EXC_ERROR THEN
144 ROLLBACK TO Unearn_Revenue_PUB;
145 x_return_status := FND_API.G_RET_STS_ERROR ;
146 FND_MSG_PUB.Count_And_Get
147 (p_encoded => FND_API.G_FALSE,
148 p_count => x_msg_count,
149 p_data => x_msg_data);
150 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
151 IF PG_DEBUG in ('Y', 'C') THEN
152 arp_debug.debug('Unearn_Revenue: ' || 'Unexpected EXCEPTION '||sqlerrm||
153 ' at AR_RevenueAdjust_PUB.Unearn_Revenue()+');
154 END IF;
155 ROLLBACK TO Unearn_Revenue_PUB;
156 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
157 FND_MSG_PUB.Count_And_Get
158 (p_encoded => FND_API.G_FALSE,
159 p_count => x_msg_count,
160 p_data => x_msg_data);
161 WHEN OTHERS THEN
162 IF PG_DEBUG in ('Y', 'C') THEN
163 arp_debug.debug('Unearn_Revenue: ' || 'Unexpected EXCEPTION '||sqlerrm||
164 ' at AR_RevenueAdjust_PUB.Unearn_Revenue()+');
165 END IF;
166 ROLLBACK TO Unearn_Revenue_PUB;
167 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
168 IF FND_MSG_PUB.Check_Msg_Level
169 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
170 THEN
171 FND_MSG_PUB.Add_Exc_Msg
172 ( G_PKG_NAME ,
173 l_api_name
174 );
175 END IF;
176 FND_MSG_PUB.Count_And_Get
177 (p_encoded => FND_API.G_FALSE,
178 p_count => x_msg_count,
179 p_data => x_msg_data);
180 END Unearn_Revenue;
181
182 -----------------------------------------------------------------------
183 -- API name : Earn_Revenue
184 -- Type : Public
185 -- Function : Transfers a specified amount of revenue from
186 -- unearned to earned revenue account
190 -- p_init_msg_list VARCHAR2 Optional
187 -- Pre-reqs : Sufficient unearned revenue must exist.
188 -- Parameters :
189 -- IN : p_api_version NUMBER Required
191 -- Default = FND_API.G_FALSE
192 -- p_commit VARCHAR2 Optional
193 -- Default = FND_API.G_FALSE
194 -- p_rev_adj_rec Rev_Adj_Rec_Type Optional
195 -- OUT NOCOPY : x_return_status VARCHAR2(1)
196 -- x_msg_count NUMBER
197 -- x_msg_data VARCHAR2(2000)
198 -- x_adjustment_id NUMBER
199 -- x_adjustment_number VARCHAR2
200 --
201 -- Version : Current version 2.0
202 -- Initial version created 31-MAY-2000
203 -- Initial version 1.0
204 --
205 -- Notes :
206 --
207 -----------------------------------------------------------------------
208 PROCEDURE Earn_Revenue
209 ( p_api_version IN NUMBER
210 ,p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE
211 ,p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE
212 ,x_return_status OUT NOCOPY VARCHAR2
213 ,x_msg_count OUT NOCOPY NUMBER
214 ,x_msg_data OUT NOCOPY VARCHAR2
215 ,p_rev_adj_rec IN AR_Revenue_Adjustment_PVT.Rev_Adj_Rec_Type
216 ,p_org_id IN NUMBER DEFAULT NULL
217 ,x_adjustment_id OUT NOCOPY NUMBER
218 ,x_adjustment_number OUT NOCOPY VARCHAR2)
219 IS
220 l_api_name CONSTANT VARCHAR2(30) := 'Earn_Revenue';
221 l_api_version CONSTANT NUMBER := 2.0;
222 l_org_return_status VARCHAR2(1);
223 l_org_id NUMBER;
224 BEGIN
225 -- Standard Start of API savepoint
226 SAVEPOINT Earn_Revenue_PUB;
227 -- Standard call to check for call compatibility.
228 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
229 p_api_version ,
230 l_api_name ,
231 G_PKG_NAME )
232 THEN
233 IF PG_DEBUG in ('Y', 'C') THEN
234 arp_debug.debug('Earn_Revenue: ' || 'Unexpected EXCEPTION '||sqlerrm||
235 ' at AR_RevenueAdjust_PUB.Earn_Revenue()+');
236 END IF;
237 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
238 END IF;
239 -- Initialize message list if p_init_msg_list is set to TRUE.
240 IF FND_API.to_Boolean( p_init_msg_list )
241 THEN
242 FND_MSG_PUB.initialize;
243 END IF;
244 -- Initialize API return status to success
245 x_return_status := FND_API.G_RET_STS_SUCCESS;
246
247 /* SSA change */
248 l_org_id := p_org_id;
249 l_org_return_status := FND_API.G_RET_STS_SUCCESS;
250 ar_mo_cache_utils.set_org_context_in_api(p_org_id =>l_org_id,
251 p_return_status =>l_org_return_status);
252 IF l_org_return_status <> FND_API.G_RET_STS_SUCCESS THEN
253 x_return_status := FND_API.G_RET_STS_ERROR;
254 ELSE
255 -- Introduced for the Sales Group Project.
256 -- ORASHID 11-AUG-2003
257 --
258 IF NOT group_compatible(p_rev_adj_rec) THEN
259 fnd_message.set_name('AR','AR_INCOMPATIBLE_CREDIT_TYPE');
260 fnd_msg_pub.add;
261 RAISE fnd_api.g_exc_error;
262 END IF;
263
264 AR_Revenue_Adjustment_PVT.Earn_Revenue
265 ( p_api_version => 2.0
266 ,p_init_msg_list => p_init_msg_list
267 ,p_commit => p_commit
268 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
269 ,x_return_status => x_return_status
270 ,x_msg_count => x_msg_count
271 ,x_msg_data => x_msg_data
272 ,p_rev_adj_rec => p_rev_adj_rec
273 ,x_adjustment_id => x_adjustment_id
274 ,x_adjustment_number => x_adjustment_number);
275
276 -- Standard check of p_commit.
277 IF FND_API.To_Boolean( p_commit )
278 THEN
279 COMMIT WORK;
280 END IF;
281 -- Standard call to get message count and if count is 1, get message info.
282 END IF;
283 FND_MSG_PUB.Count_And_Get
284 (p_encoded => FND_API.G_FALSE,
285 p_count => x_msg_count,
286 p_data => x_msg_data);
287 EXCEPTION
288 WHEN FND_API.G_EXC_ERROR THEN
289 ROLLBACK TO Earn_Revenue_PUB;
290 x_return_status := FND_API.G_RET_STS_ERROR ;
291 FND_MSG_PUB.Count_And_Get
292 (p_encoded => FND_API.G_FALSE,
293 p_count => x_msg_count,
294 p_data => x_msg_data);
295 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
296 IF PG_DEBUG in ('Y', 'C') THEN
297 arp_debug.debug('Earn_Revenue: ' || 'Unexpected EXCEPTION '||sqlerrm||
298 ' at AR_RevenueAdjust_PUB.Earn_Revenue()+');
299 END IF;
300 ROLLBACK TO Earn_Revenue_PUB;
301 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
302 FND_MSG_PUB.Count_And_Get
303 (p_encoded => FND_API.G_FALSE,
304 p_count => x_msg_count,
305 p_data => x_msg_data);
306 WHEN OTHERS THEN
307 IF PG_DEBUG in ('Y', 'C') THEN
308 arp_debug.debug('Earn_Revenue: ' || 'Unexpected EXCEPTION '||sqlerrm||
312 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
309 ' at AR_RevenueAdjust_PUB.Earn_Revenue()+');
310 END IF;
311 ROLLBACK TO Earn_Revenue_PUB;
313 IF FND_MSG_PUB.Check_Msg_Level
314 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
315 THEN
316 FND_MSG_PUB.Add_Exc_Msg
317 ( G_PKG_NAME ,
318 l_api_name
319 );
320 END IF;
321 FND_MSG_PUB.Count_And_Get
322 (p_encoded => FND_API.G_FALSE,
323 p_count => x_msg_count,
324 p_data => x_msg_data);
325 END Earn_Revenue;
326
327 -----------------------------------------------------------------------
328 -- API name : Transfer_Sales_Credits
329 -- Type : Public
330 -- Function : Transfers revenue and/or non revenue sales credits
331 -- between the specified salesreps. The associated
332 -- earned revenue is transferred with revenue sales
333 -- credits
334 -- Pre-reqs : Sufficient earned revenue must exist for the salesrep
335 -- from whom sales credits are being transferred.
336 -- Parameters :
337 -- IN : p_api_version NUMBER Required
338 -- p_init_msg_list VARCHAR2 Optional
339 -- Default = FND_API.G_FALSE
340 -- p_commit VARCHAR2 Optional
341 -- Default = FND_API.G_FALSE
342 -- p_rev_adj_rec Rev_Adj_Rec_Type Optional
343 -- OUT NOCOPY : x_return_status VARCHAR2(1)
344 -- x_msg_count NUMBER
345 -- x_msg_data VARCHAR2(2000)
346 -- x_adjustment_id NUMBER
347 -- x_adjustment_number VARCHAR2
348 --
349 -- Version : Current version 2.0
350 -- Initial version created 31-MAY-2000
351 -- Initial version 1.0
352 --
353 -- Notes :
354 --
355 -----------------------------------------------------------------------
356 PROCEDURE Transfer_Sales_Credits
357 ( p_api_version IN NUMBER
358 ,p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE
359 ,p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE
360 ,x_return_status OUT NOCOPY VARCHAR2
361 ,x_msg_count OUT NOCOPY NUMBER
362 ,x_msg_data OUT NOCOPY VARCHAR2
363 ,p_rev_adj_rec IN AR_Revenue_Adjustment_PVT.Rev_Adj_Rec_Type
364 ,p_org_id IN NUMBER DEFAULT NULL
365 ,x_adjustment_id OUT NOCOPY NUMBER
366 ,x_adjustment_number OUT NOCOPY VARCHAR2)
367 IS
368 l_api_name CONSTANT VARCHAR2(30) := 'Transfer_Sales_Credits';
369 l_api_version CONSTANT NUMBER := 2.0;
370 l_org_return_status VARCHAR2(1);
371 l_org_id NUMBER;
372
373 BEGIN
374 IF PG_DEBUG in ('Y', 'C') THEN
375 arp_debug.debug('AR_RevenueAdjust_PUB.Transfer_Sales_Credits()+');
376 END IF;
377 -- Standard Start of API savepoint
378 SAVEPOINT Transfer_Sales_Credits_PUB;
379 -- Standard call to check for call compatibility.
380 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
381 p_api_version ,
382 l_api_name ,
383 G_PKG_NAME )
384 THEN
385 IF PG_DEBUG in ('Y', 'C') THEN
386 arp_debug.debug('Transfer_Sales_Credits: ' || 'Unexpected EXCEPTION '||sqlerrm||
387 ' at AR_RevenueAdjust_PUB.Transfer_Sales_Credits()+');
388 END IF;
389 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
390 END IF;
391 -- Initialize message list if p_init_msg_list is set to TRUE.
392 IF FND_API.to_Boolean( p_init_msg_list )
393 THEN
394 FND_MSG_PUB.initialize;
395 END IF;
396 -- Initialize API return status to success
397 x_return_status := FND_API.G_RET_STS_SUCCESS;
398
399
400
401 /* SSA change */
402 l_org_id := p_org_id;
403 l_org_return_status := FND_API.G_RET_STS_SUCCESS;
404 ar_mo_cache_utils.set_org_context_in_api(p_org_id =>l_org_id,
405 p_return_status =>l_org_return_status);
406 IF l_org_return_status <> FND_API.G_RET_STS_SUCCESS THEN
407 x_return_status := FND_API.G_RET_STS_ERROR;
408 ELSE
409 -- Introduced for the Sales Group Project.
410 -- ORASHID 11-AUG-2003
411 --
412 IF NOT group_compatible(p_rev_adj_rec) THEN
413 fnd_message.set_name('AR','AR_INCOMPATIBLE_CREDIT_TYPE');
414 fnd_msg_pub.add;
415 RAISE fnd_api.g_exc_error;
416 END IF;
417
418 AR_Revenue_Adjustment_PVT.Transfer_Sales_Credits
419 ( p_api_version => 2.0
420 ,p_init_msg_list => p_init_msg_list
421 ,p_commit => p_commit
422 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
423 ,x_return_status => x_return_status
424 ,x_msg_count => x_msg_count
425 ,x_msg_data => x_msg_data
426 ,p_rev_adj_rec => p_rev_adj_rec
427 ,x_adjustment_id => x_adjustment_id
428 ,x_adjustment_number => x_adjustment_number);
429
430 -- Standard check of p_commit.
431 IF FND_API.To_Boolean( p_commit )
432 THEN
433 COMMIT WORK;
434 END IF;
435 END IF;
436 -- Standard call to get message count and if count is 1, get message info.
437 FND_MSG_PUB.Count_And_Get
438 (p_encoded => FND_API.G_FALSE,
439 p_count => x_msg_count,
443 ROLLBACK TO Transfer_Sales_Credits_PUB;
440 p_data => x_msg_data);
441 EXCEPTION
442 WHEN FND_API.G_EXC_ERROR THEN
444 x_return_status := FND_API.G_RET_STS_ERROR ;
445 FND_MSG_PUB.Count_And_Get
446 (p_encoded => FND_API.G_FALSE,
447 p_count => x_msg_count,
448 p_data => x_msg_data);
449 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
450 IF PG_DEBUG in ('Y', 'C') THEN
451 arp_debug.debug('Transfer_Sales_Credits: ' || 'Unexpected EXCEPTION '||sqlerrm||
452 ' at AR_RevenueAdjust_PUB.Transfer_Sales_Credits()+');
453 END IF;
454 ROLLBACK TO Transfer_Sales_Credits_PUB;
455 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
456 FND_MSG_PUB.Count_And_Get
457 (p_encoded => FND_API.G_FALSE,
458 p_count => x_msg_count,
459 p_data => x_msg_data);
460 WHEN OTHERS THEN
461 IF PG_DEBUG in ('Y', 'C') THEN
462 arp_debug.debug('Transfer_Sales_Credits: ' || 'Unexpected EXCEPTION '||sqlerrm||
463 ' at AR_RevenueAdjust_PUB.Transfer_Sales_Credits()+');
464 END IF;
465 ROLLBACK TO Transfer_Sales_Credits_PUB;
466 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
467 IF FND_MSG_PUB.Check_Msg_Level
468 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
469 THEN
470 FND_MSG_PUB.Add_Exc_Msg
471 ( G_PKG_NAME ,
472 l_api_name
473 );
474 END IF;
475 FND_MSG_PUB.Count_And_Get
476 (p_encoded => FND_API.G_FALSE,
477 p_count => x_msg_count,
478 p_data => x_msg_data);
479
480 END Transfer_Sales_Credits;
481
482 -----------------------------------------------------------------------
483 -- API name : Add_Non_Revenue_Sales_Credits
484 -- Type : Public
485 -- Function : Adds non revenue sales credits to the specified
486 -- salesrep subject to any maximum limit of revenue
487 -- and non revenue sales credit per salesrep per line
488 -- as defined in the sales credit percent limit in
489 -- system options.
490 -- Pre-reqs : None
491 --
492 -- Parameters :
493 -- IN : p_api_version NUMBER Required
494 -- p_init_msg_list VARCHAR2 Optional
495 -- Default = FND_API.G_FALSE
496 -- p_commit VARCHAR2 Optional
497 -- Default = FND_API.G_FALSE
498 -- p_rev_adj_rec Rev_Adj_Rec_Type Optional
499 -- OUT NOCOPY : x_return_status VARCHAR2(1)
500 -- x_msg_count NUMBER
501 -- x_msg_data VARCHAR2(2000)
502 -- x_adjustment_id NUMBER
503 -- x_adjustment_number VARCHAR2
504 --
505 -- Version : Current version 2.0
506 -- Initial version created 31-MAY-2000
507 -- Initial version 1.0
508 --
509 -- Notes :
510 --
511 PROCEDURE Add_Non_Revenue_Sales_Credits
512 ( p_api_version IN NUMBER
513 ,p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE
514 ,p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE
515 ,x_return_status OUT NOCOPY VARCHAR2
516 ,x_msg_count OUT NOCOPY NUMBER
517 ,x_msg_data OUT NOCOPY VARCHAR2
518 ,p_rev_adj_rec IN AR_Revenue_Adjustment_PVT.Rev_Adj_Rec_Type
519 ,p_org_id IN NUMBER DEFAULT NULL
520 ,x_adjustment_id OUT NOCOPY NUMBER
521 ,x_adjustment_number OUT NOCOPY VARCHAR2)
522 IS
523 l_api_name CONSTANT VARCHAR2(30) :=
524 'Add_Non_Revenue_Sales_Credits';
525 l_api_version CONSTANT NUMBER := 2.0;
526 l_org_return_status VARCHAR2(1);
527 l_org_id NUMBER;
528
529 BEGIN
530
531 IF PG_DEBUG in ('Y', 'C') THEN
532 arp_debug.debug('AR_RevenueAdjust_PUB.Add_Non_Revenue_Sales_Credits()+');
533 END IF;
534 -- Standard Start of API savepoint
535 SAVEPOINT Add_Non_Rev_Sales_Credits_PUB;
536 -- Standard call to check for call compatibility.
537 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
538 p_api_version ,
539 l_api_name ,
540 G_PKG_NAME )
541 THEN
542 IF PG_DEBUG in ('Y', 'C') THEN
543 arp_debug.debug('Add_Non_Revenue_Sales_Credits: ' || 'Unexpected EXCEPTION '||sqlerrm||
544 ' at AR_RevenueAdjust_PUB.Add_Non_Revenue_Sales_Credits()+');
545 END IF;
546 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
547 END IF;
548 -- Initialize message list if p_init_msg_list is set to TRUE.
549 IF FND_API.to_Boolean( p_init_msg_list )
550 THEN
551 FND_MSG_PUB.initialize;
552 END IF;
553 -- Initialize API return status to success
554 x_return_status := FND_API.G_RET_STS_SUCCESS;
555
556 /* SSA change */
557 l_org_id := p_org_id;
558 l_org_return_status := FND_API.G_RET_STS_SUCCESS;
559 ar_mo_cache_utils.set_org_context_in_api(p_org_id =>l_org_id,
560 p_return_status =>l_org_return_status);
561 IF l_org_return_status <> FND_API.G_RET_STS_SUCCESS THEN
562 x_return_status := FND_API.G_RET_STS_ERROR;
563 ELSE
564 -- Introduced for the Sales Group Project.
565 -- ORASHID 11-AUG-2003
566 --
567 IF NOT group_compatible(p_rev_adj_rec) THEN
571 END IF;
568 fnd_message.set_name('AR','AR_INCOMPATIBLE_CREDIT_TYPE');
569 fnd_msg_pub.add;
570 RAISE fnd_api.g_exc_error;
572
573 AR_Revenue_Adjustment_PVT.Add_Non_Revenue_Sales_Credits
574 ( p_api_version => 2.0
575 ,p_init_msg_list => p_init_msg_list
576 ,p_commit => p_commit
577 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
578 ,x_return_status => x_return_status
579 ,x_msg_count => x_msg_count
580 ,x_msg_data => x_msg_data
581 ,p_rev_adj_rec => p_rev_adj_rec
582 ,x_adjustment_id => x_adjustment_id
583 ,x_adjustment_number => x_adjustment_number);
584
585 -- Standard check of p_commit.
586 IF FND_API.To_Boolean( p_commit )
587 THEN
588 COMMIT WORK;
589 END IF;
590 END IF;
591 -- Standard call to get message count and if count is 1, get message info.
592 FND_MSG_PUB.Count_And_Get
593 (p_encoded => FND_API.G_FALSE,
594 p_count => x_msg_count,
595 p_data => x_msg_data);
596 EXCEPTION
597 WHEN FND_API.G_EXC_ERROR THEN
598 ROLLBACK TO Add_Non_Rev_Sales_Credits_PUB;
599 x_return_status := FND_API.G_RET_STS_ERROR ;
600 FND_MSG_PUB.Count_And_Get
601 (p_encoded => FND_API.G_FALSE,
602 p_count => x_msg_count,
603 p_data => x_msg_data);
604 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
605 IF PG_DEBUG in ('Y', 'C') THEN
606 arp_debug.debug('Add_Non_Revenue_Sales_Credits: ' || 'Unexpected EXCEPTION '||sqlerrm||
607 ' at AR_RevenueAdjust_PUB.Add_Non_Revenue_Sales_Credits()+');
608 END IF;
609 ROLLBACK TO Add_Non_Rev_Sales_Credits_PUB;
610 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
611 FND_MSG_PUB.Count_And_Get
612 (p_encoded => FND_API.G_FALSE,
613 p_count => x_msg_count,
614 p_data => x_msg_data);
615 WHEN OTHERS THEN
616 IF PG_DEBUG in ('Y', 'C') THEN
617 arp_debug.debug('Add_Non_Revenue_Sales_Credits: ' || 'Unexpected EXCEPTION '||sqlerrm||
618 ' at AR_RevenueAdjust_PUB.Add_Non_Revenue_Sales_Credits()+');
619 END IF;
620 ROLLBACK TO Add_Non_Rev_Sales_Credits_PUB;
621 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
622 IF FND_MSG_PUB.Check_Msg_Level
623 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
624 THEN
625 FND_MSG_PUB.Add_Exc_Msg
626 ( G_PKG_NAME ,
627 l_api_name
628 );
629 END IF;
630 FND_MSG_PUB.Count_And_Get
631 (p_encoded => FND_API.G_FALSE,
632 p_count => x_msg_count,
633 p_data => x_msg_data);
634 END Add_Non_Revenue_Sales_Credits;
635
636 -----------------------------------------------------------------------
637 -- API name : Record_Customer_Acceptance
638 -- Type : Public
639 -- Function : Identifies customer_acceptance contingencies
640 -- for the specified transaction or line and
641 -- clears them. Also recognizes revenue if
642 -- the customer_acceptance contingency was the
643 -- last issue for the line.
644 -- Pre-reqs : None
645 --
646 -- Parameters :
647 -- IN : p_api_version NUMBER Required
648 -- p_init_msg_list VARCHAR2 Optional
649 -- Default = FND_API.G_FALSE
650 -- p_commit VARCHAR2 Optional
651 -- Default = FND_API.G_FALSE
652 -- p_rev_adj_rec Rev_Adj_Rec_Type Optional
653 -- OUT NOCOPY : x_return_status VARCHAR2(1)
654 -- x_msg_count NUMBER
655 -- x_msg_data VARCHAR2(2000)
656 --
657 -- Version : Current version 2.0
658 -- Initial version created 26-JUN-2006
659 -- Initial version 2.0
660 --
661 -- Notes :
662 --
663 PROCEDURE Record_Customer_Acceptance
664 ( p_api_version IN NUMBER
665 ,p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE
666 ,p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE
667 ,x_return_status OUT NOCOPY VARCHAR2
668 ,x_msg_count OUT NOCOPY NUMBER
669 ,x_msg_data OUT NOCOPY VARCHAR2
670 ,p_rev_adj_rec IN AR_Revenue_Adjustment_PVT.Rev_Adj_Rec_Type
671 ,p_org_id IN NUMBER DEFAULT NULL)
672 IS
673 l_api_name CONSTANT VARCHAR2(30) :=
674 'Record_Customer_Acceptance';
675 l_api_version CONSTANT NUMBER := 2.0;
676 l_org_return_status VARCHAR2(1);
677 l_org_id NUMBER;
678 li_desc_flexfield ar_revenue_management_pvt.desc_flexfield;
679 lo_scenario NUMBER;
680 lo_first_rev_adj_id NUMBER;
681 lo_last_rev_adj_id NUMBER;
682 l_scenario VARCHAR2(128);
683 BEGIN
684
685 IF PG_DEBUG in ('Y', 'C') THEN
686 arp_debug.debug('AR_RevenueAdjust_PUB.Record_Customer_Acceptance()+');
687 END IF;
688 -- Standard Start of API savepoint
689 SAVEPOINT Record_Customer_Acceptance_PUB;
690 -- Standard call to check for call compatibility.
691 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
692 p_api_version ,
693 l_api_name ,
694 G_PKG_NAME )
695 THEN
699 END IF;
696 IF PG_DEBUG in ('Y', 'C') THEN
697 arp_debug.debug('Unexpected EXCEPTION '||sqlerrm||
698 ' at AR_RevenueAdjust_PUB.Record_Customer_Acceptance()+');
700 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
701 END IF;
702 -- Initialize message list if p_init_msg_list is set to TRUE.
703 IF FND_API.to_Boolean( p_init_msg_list )
704 THEN
705 FND_MSG_PUB.initialize;
706 END IF;
707 -- Initialize API return status to success
708 x_return_status := FND_API.G_RET_STS_SUCCESS;
709
710 /* SSA change */
711 l_org_id := p_org_id;
712 l_org_return_status := FND_API.G_RET_STS_SUCCESS;
713 ar_mo_cache_utils.set_org_context_in_api(p_org_id =>l_org_id,
714 p_return_status =>l_org_return_status);
715 IF l_org_return_status <> FND_API.G_RET_STS_SUCCESS THEN
716 x_return_status := FND_API.G_RET_STS_ERROR;
717 ELSE
718 /* Copy desc flexfield data */
719 li_desc_flexfield.attribute_category := p_rev_adj_rec.attribute_category;
720 li_desc_flexfield.attribute1 := p_rev_adj_rec.attribute1;
721 li_desc_flexfield.attribute2 := p_rev_adj_rec.attribute2;
722 li_desc_flexfield.attribute3 := p_rev_adj_rec.attribute3;
723 li_desc_flexfield.attribute4 := p_rev_adj_rec.attribute4;
724 li_desc_flexfield.attribute5 := p_rev_adj_rec.attribute5;
725 li_desc_flexfield.attribute6 := p_rev_adj_rec.attribute6;
726 li_desc_flexfield.attribute7 := p_rev_adj_rec.attribute7;
727 li_desc_flexfield.attribute8 := p_rev_adj_rec.attribute8;
728 li_desc_flexfield.attribute9 := p_rev_adj_rec.attribute9;
729 li_desc_flexfield.attribute10 := p_rev_adj_rec.attribute10;
730 li_desc_flexfield.attribute11 := p_rev_adj_rec.attribute11;
731 li_desc_flexfield.attribute12 := p_rev_adj_rec.attribute12;
732 li_desc_flexfield.attribute13 := p_rev_adj_rec.attribute13;
733 li_desc_flexfield.attribute14 := p_rev_adj_rec.attribute14;
734 li_desc_flexfield.attribute15 := p_rev_adj_rec.attribute15;
735
736 /* Call internal procedure to record acceptance */
737 AR_Revenue_Adjustment_PVT.Record_Acceptance
738 ( p_customer_trx_id => p_rev_adj_rec.customer_trx_id
739 ,p_category_id => p_rev_adj_rec.from_category_id
740 ,p_inventory_item_id => p_rev_adj_rec.from_inventory_item_id
741 ,p_customer_trx_line_id => p_rev_adj_rec.from_cust_trx_line_id
742 ,p_gl_date => p_rev_adj_rec.gl_date
743 ,p_comments => p_rev_adj_rec.comments
744 ,p_ram_desc_flexfield => li_desc_flexfield
745 ,x_scenario => lo_scenario
746 ,x_first_rev_adj_id => lo_first_rev_adj_id
747 ,x_last_rev_adj_id => lo_last_rev_adj_id
748 ,x_return_status => x_return_status
749 ,x_msg_count => x_msg_count
750 ,x_msg_data => x_msg_data);
751
752 /* Document results in debug log */
753 IF PG_DEBUG in ('Y', 'C') THEN
754 IF lo_scenario = 0
755 THEN
756 l_scenario := 'Transaction revenue NOT recognized';
757 ELSIF lo_scenario = 1
758 THEN
759 l_scenario := 'Transaction revenue PARTIALLY recognized';
760 ELSIF lo_scenario = 2
761 THEN
762 l_scenario := 'Transaction revenue FULLY recognized';
763 ELSE
764 l_scenario := 'UNKNOWN RESULT';
765 END IF;
766
767 arp_debug.debug('first rev_adj_id = ' || lo_first_rev_adj_id);
768 arp_debug.debug('last rev_adj_id = ' || lo_last_rev_adj_id);
769 arp_debug.debug('result (scenario)= ' || l_scenario);
770 END IF;
771
772 -- Standard check of p_commit.
773 IF FND_API.To_Boolean( p_commit )
774 THEN
775 COMMIT WORK;
776 END IF;
777 END IF;
778 -- Standard call to get message count and if count is 1, get message info.
779 FND_MSG_PUB.Count_And_Get
780 (p_encoded => FND_API.G_FALSE,
781 p_count => x_msg_count,
782 p_data => x_msg_data);
783 EXCEPTION
784 WHEN FND_API.G_EXC_ERROR THEN
785 ROLLBACK TO Add_Non_Rev_Sales_Credits_PUB;
786 x_return_status := FND_API.G_RET_STS_ERROR ;
787 FND_MSG_PUB.Count_And_Get
788 (p_encoded => FND_API.G_FALSE,
789 p_count => x_msg_count,
790 p_data => x_msg_data);
791 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
792 IF PG_DEBUG in ('Y', 'C') THEN
793 arp_debug.debug('Unexpected EXCEPTION '||sqlerrm||
794 ' at AR_RevenueAdjust_PUB.Record_Customer_Acceptance()+');
795 END IF;
796 ROLLBACK TO Record_Customer_Acceptance_PUB;
797 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
798 FND_MSG_PUB.Count_And_Get
799 (p_encoded => FND_API.G_FALSE,
800 p_count => x_msg_count,
801 p_data => x_msg_data);
802 WHEN OTHERS THEN
803 IF PG_DEBUG in ('Y', 'C') THEN
804 arp_debug.debug('Unexpected EXCEPTION '||sqlerrm||
805 ' at AR_RevenueAdjust_PUB.Record_Customer_Acceptance()+');
806 END IF;
807 ROLLBACK TO Record_Customer_Acceptance_PUB;
808 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
809 IF FND_MSG_PUB.Check_Msg_Level
810 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
811 THEN
812 FND_MSG_PUB.Add_Exc_Msg
813 ( G_PKG_NAME ,
814 l_api_name
815 );
816 END IF;
817 FND_MSG_PUB.Count_And_Get
818 (p_encoded => FND_API.G_FALSE,
822
819 p_count => x_msg_count,
820 p_data => x_msg_data);
821 END Record_Customer_Acceptance;
823 -----------------------------------------------------------------------
824 -- API name : Update_Contingency_Expirations
825 -- Type : Public
826 -- Function : Update contingency expiration_date(s)
827 -- for a transaction or line.
828 -- Also recognizes revenue if
829 -- the contingency has expired.
830 -- Pre-reqs : None
831 --
832 -- Parameters :
833 -- IN : p_api_version NUMBER Required
834 -- p_init_msg_list VARCHAR2 Optional
835 -- Default = FND_API.G_FALSE
836 -- p_commit VARCHAR2 Optional
837 -- Default = FND_API.G_FALSE
838 -- p_customer_trx_id NUMBER Required
839 -- p_customer_trx_line_id NUMBER Optional
840 -- p_contingency_id NUMBER Optional
841 -- p_expiration_date DATE Optional
842 -- p_expiration_days NUMBER Optional
843 -- NOTE: Must pass either date or days
844 -- OUT NOCOPY : x_return_status VARCHAR2(1)
845 -- x_msg_count NUMBER
846 -- x_msg_data VARCHAR2(2000)
847 --
848 -- Version : Current version 2.0
849 -- Initial version created 26-JUN-2006
850 -- Initial version 2.0
851 --
852 -- Notes :
853 /* 27-AUG-2008 MRAYMOND 7311553 added line_id to
854 revenue_synchronizer call.
855 */
856 PROCEDURE Update_Contingency_Expirations
857 ( p_api_version IN NUMBER
858 ,p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE
859 ,p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE
860 ,x_return_status OUT NOCOPY VARCHAR2
861 ,x_msg_count OUT NOCOPY NUMBER
862 ,x_msg_data OUT NOCOPY VARCHAR2
863 ,p_org_id IN NUMBER DEFAULT NULL
864 ,p_customer_trx_id IN ra_customer_trx.customer_trx_id%type
865 ,p_customer_trx_line_id IN ra_customer_trx_lines.customer_trx_line_id%type DEFAULT NULL
866 ,p_contingency_id IN ar_line_conts.contingency_id%type DEFAULT NULL
867 ,p_expiration_date IN ar_line_conts.expiration_date%type DEFAULT NULL
868 ,p_expiration_days IN ar_line_conts.expiration_days%type DEFAULT NULL)
869 IS
870 l_api_name CONSTANT VARCHAR2(30) :=
871 'Update_Contingency_Expirations';
872 l_api_version CONSTANT NUMBER := 2.0;
873 l_org_return_status VARCHAR2(1);
874 l_org_id NUMBER;
875 lo_scenario NUMBER;
876 lo_first_adj_number NUMBER;
877 lo_last_adj_number NUMBER;
878 l_scenario VARCHAR2(128);
879 l_expiration_date DATE;
880 l_expiration_days NUMBER;
881
882 CURSOR c_conts IS
883 select lc.customer_trx_line_id customer_trx_line_id,
884 lc.contingency_id contingency_id,
885 NVL(lc.expiration_event_date,
886 decode(dr.expiration_event_code,
887 'TRANSACTION_DATE', trunc(t.trx_date),
888 'SHIP_CONFIRM_DATE', trunc(t.ship_date_actual), NULL))
889 expiration_event_date
890 from ra_customer_trx t,
891 ra_customer_trx_lines tl,
892 ar_line_conts lc,
893 ar_deferral_reasons dr
894 where t.customer_trx_id = p_customer_trx_id
895 and t.customer_trx_id = tl.customer_trx_id
896 and tl.customer_trx_line_id = nvl(p_customer_trx_line_id,
897 tl.customer_trx_line_id)
898 and tl.line_type = 'LINE'
899 and tl.customer_trx_line_id = lc.customer_trx_line_id
900 and lc.contingency_id = nvl(p_contingency_id, lc.contingency_id)
901 and lc.contingency_id = dr.contingency_id
902 and lc.completed_flag = 'N'
903 and dr.revrec_event_code = 'CONTINGENCY_EXPIRATION';
904
905 BEGIN
906
907 IF PG_DEBUG in ('Y', 'C') THEN
908 arp_debug.debug('AR_RevenueAdjust_PUB.Update_Contingency_Expirations()+');
909 END IF;
910 -- Standard Start of API savepoint
911 SAVEPOINT Update_Contingency_Expires_PUB;
912 -- Standard call to check for call compatibility.
913 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
914 p_api_version ,
915 l_api_name ,
916 G_PKG_NAME )
917 THEN
918 IF PG_DEBUG in ('Y', 'C') THEN
919 arp_debug.debug('Unexpected EXCEPTION '||sqlerrm||
920 ' at AR_RevenueAdjust_PUB.Update_Contingency_Expirations()+');
921 END IF;
922 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
923 END IF;
924 -- Initialize message list if p_init_msg_list is set to TRUE.
925 IF FND_API.to_Boolean( p_init_msg_list )
926 THEN
927 FND_MSG_PUB.initialize;
928 END IF;
929 -- Initialize API return status to success
930 x_return_status := FND_API.G_RET_STS_SUCCESS;
931
932 /* SSA change */
933 l_org_id := p_org_id;
934 l_org_return_status := FND_API.G_RET_STS_SUCCESS;
935 ar_mo_cache_utils.set_org_context_in_api(p_org_id =>l_org_id,
936 p_return_status =>l_org_return_status);
937 IF l_org_return_status <> FND_API.G_RET_STS_SUCCESS THEN
938 x_return_status := FND_API.G_RET_STS_ERROR;
939 ELSE
940 /* Make sure we have either an expiration_date or
944 THEN
941 an expiration_days passed in */
942 IF p_expiration_days IS NULL and
943 p_expiration_date IS NULL
945 x_return_status := FND_API.G_RET_STS_ERROR;
946 fnd_message.set_name('AR','AR_RVMG_EXPIR_DATE_CONFL');
947 fnd_msg_pub.add;
948 RAISE fnd_api.g_exc_error;
949 END IF;
950
951 /* Loop thru eligible contingencies and update */
952 FOR cont IN c_conts LOOP
953
954 /* Determine new expiration date */
955 IF p_expiration_date IS NOT NULL
956 THEN
957 l_expiration_date := TRUNC(p_expiration_date);
958 l_expiration_days := l_expiration_date - cont.expiration_event_date;
959 ELSE
960 /* days */
961 l_expiration_days := p_expiration_days;
962 l_expiration_date := TRUNC(cont.expiration_event_date +
963 l_expiration_days);
964 END IF;
965
966 IF PG_DEBUG IN ('Y', 'C')
967 THEN
968 arp_debug.debug('updating line:' || cont.customer_trx_line_id ||
969 ' cont_id:' || cont.contingency_id ||
970 ' expiration_date:' || l_expiration_date);
971 END IF;
972
973 ar_revenue_management_pvt.update_line_conts(
974 p_customer_trx_line_id => cont.customer_trx_line_id
975 ,p_contingency_id => cont.contingency_id
976 ,p_expiration_date => l_expiration_date
977 ,p_expiration_event_date => cont.expiration_event_date
978 ,p_expiration_days => l_expiration_days
979 ,p_completed_flag => NULL
980 ,p_reason_removal_date => NULL);
981
982 END LOOP;
983
984 /* Now synch up the revenue for any expired contingencies */
985 ar_revenue_management_pvt.revenue_synchronizer(
986 p_mode => 3
987 , p_customer_trx_id => p_customer_trx_id
988 , p_customer_trx_line_id => p_customer_trx_line_id
989 , p_gl_date => NULL
990 , p_comments => NULL
991 , p_ram_desc_flexfield => NULL
992 , x_scenario => lo_scenario
993 , x_first_adjustment_number => lo_first_adj_number
994 , x_last_adjustment_number => lo_last_adj_number
995 , x_return_status => x_return_status
996 , x_msg_count => x_msg_count
997 , x_msg_data => x_msg_data);
998
999 /* Document results in debug log */
1000 IF PG_DEBUG in ('Y', 'C') THEN
1001 IF lo_scenario = 0
1002 THEN
1003 l_scenario := 'Transaction revenue NOT recognized';
1004 ELSIF lo_scenario = 1
1005 THEN
1006 l_scenario := 'Transaction revenue PARTIALLY recognized';
1007 ELSIF lo_scenario = 2
1008 THEN
1009 l_scenario := 'Transaction revenue FULLY recognized';
1010 ELSE
1011 l_scenario := 'UNKNOWN RESULT';
1012 END IF;
1013
1014 arp_debug.debug('first rev_adj_id = ' || lo_first_adj_number);
1015 arp_debug.debug('last rev_adj_id = ' || lo_last_adj_number);
1016 arp_debug.debug('result (scenario)= ' || l_scenario);
1017 END IF;
1018
1019 -- Standard check of p_commit.
1020 IF FND_API.To_Boolean( p_commit )
1021 THEN
1022 COMMIT WORK;
1023 END IF;
1024 END IF;
1025 -- Standard call to get message count and if count is 1, get message info.
1026 FND_MSG_PUB.Count_And_Get
1027 (p_encoded => FND_API.G_FALSE,
1028 p_count => x_msg_count,
1029 p_data => x_msg_data);
1030 EXCEPTION
1031 WHEN FND_API.G_EXC_ERROR THEN
1032 ROLLBACK TO Add_Non_Rev_Sales_Credits_PUB;
1033 x_return_status := FND_API.G_RET_STS_ERROR ;
1034 FND_MSG_PUB.Count_And_Get
1035 (p_encoded => FND_API.G_FALSE,
1036 p_count => x_msg_count,
1037 p_data => x_msg_data);
1038 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1039 IF PG_DEBUG in ('Y', 'C') THEN
1040 arp_debug.debug('Unexpected EXCEPTION '||sqlerrm||
1041 ' at AR_RevenueAdjust_PUB.Update_Contingency_Expirations()');
1042 END IF;
1043 ROLLBACK TO Record_Customer_Acceptance_PUB;
1044 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1045 FND_MSG_PUB.Count_And_Get
1046 (p_encoded => FND_API.G_FALSE,
1047 p_count => x_msg_count,
1048 p_data => x_msg_data);
1049 WHEN OTHERS THEN
1050 IF PG_DEBUG in ('Y', 'C') THEN
1051 arp_debug.debug('Unexpected EXCEPTION '||sqlerrm||
1052 ' at AR_RevenueAdjust_PUB.Update_Contingency_Expirations()');
1053 END IF;
1054 ROLLBACK TO Record_Customer_Acceptance_PUB;
1055 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1056 IF FND_MSG_PUB.Check_Msg_Level
1057 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1058 THEN
1059 FND_MSG_PUB.Add_Exc_Msg
1060 ( G_PKG_NAME ,
1061 l_api_name
1062 );
1063 END IF;
1064 FND_MSG_PUB.Count_And_Get
1065 (p_encoded => FND_API.G_FALSE,
1066 p_count => x_msg_count,
1067 p_data => x_msg_data);
1068 END Update_Contingency_Expirations;
1069
1070 END AR_RevenueAdjust_PUB;