DBA Data[Home] [Help]

PACKAGE BODY: APPS.OZF_PARTNER_CLAIM_GRP

Source


1 PACKAGE BODY OZF_PARTNER_CLAIM_GRP AS
2 /* $Header: ozfgpclb.pls 120.3 2005/10/05 00:22:30 kdhulipa ship $ */
3 -- Start of Comments
4 -- Package name     : OZF_PARTNER_CLAIM_GRP
5 -- Purpose          :
6 -- History          :
7 -- NOTE             :
8 -- End of Comments
9 
10 G_PKG_NAME                 CONSTANT  VARCHAR2(30) := 'OZF_PARTNER_CLAIM_GRP';
11 G_FILE_NAME                CONSTANT  VARCHAR2(12) := 'ozfgpclb.pls';
12 
13 OZF_DEBUG_HIGH_ON          CONSTANT  BOOLEAN      := FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_high);
14 OZF_DEBUG_LOW_ON           CONSTANT  BOOLEAN      := FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low);
15 
16 ---------------------------------------------------------------------
17 --   PROCEDURE:  Create_Claim
18 --
19 --   PURPOSE:
20 --
21 --   PARAMETERS:
22 --   IN
23 --       p_api_version_number      IN   NUMBER                      Required
24 --       p_init_msg_list           IN   VARCHAR2                    Optional  Default = FND_API_G_FALSE
25 --       p_commit                  IN   VARCHAR2                    Optional  Default = FND_API.G_FALSE
26 --       p_validation_level        IN   NUMBER                      Optional  Default = FND_API.G_VALID_LEVEL_FULL
27 --       p_claim_rec               IN   CLAIM_REC_TYPE              Required
28 --       p_promotion_activity_tbl  IN   PROMOTION_ACTIVITY_TBL_TYPE Required
29 --
30 --   OUT:
31 --       x_return_status           OUT  VARCHAR2
32 --       x_msg_count               OUT  NUMBER
33 --       x_msg_data                OUT  VARCHAR2
34 --       x_claim_id                OUT  NUMBER
35 --       x_claim_number            OUT  VARCHAR2
36 --       x_claim_amount            OUT  NUMBER
37 --
38 --   NOTES:
39 --
40 ---------------------------------------------------------------------
41 PROCEDURE Create_Claim(
42     p_api_version_number         IN   NUMBER,
43     p_init_msg_list              IN   VARCHAR2,
44     p_validation_level           IN   NUMBER,
45     p_commit                     IN   VARCHAR2,
46 
47     x_return_status              OUT  NOCOPY VARCHAR2,
48     x_msg_count                  OUT  NOCOPY NUMBER,
49     x_msg_data                   OUT  NOCOPY VARCHAR2,
50 
51     p_claim_rec                  IN   CLAIM_REC_TYPE,
52     p_promotion_activity_rec     IN   PROMOTION_ACTIVITY_REC_TYPE,
53     x_claim_id                   OUT  NOCOPY NUMBER,
54     x_claim_number               OUT  NOCOPY VARCHAR2,
55     x_claim_amount               OUT  NOCOPY NUMBER
56 )
57 IS
58 l_api_version                CONSTANT NUMBER       := 1.0;
59 l_api_name                   CONSTANT VARCHAR2(30) := 'Create_Claim';
60 l_full_name                  CONSTANT VARCHAR2(60) := G_PKG_NAME||'.'||l_api_name;
61 l_return_status                       VARCHAR2(1);
62 ---
63 CURSOR csr_claim(cv_claim_id IN NUMBER) IS
64    SELECT claim_id
65    ,      claim_number
66    ,      amount
67    FROM ozf_claims_all
68    WHERE claim_id = cv_claim_id;
69 
70 l_claim_pub_rec                       CLAIM_REC_TYPE := p_claim_rec;
71 l_claim_pvt_rec                       OZF_Claim_PVT.claim_rec_type;
72 l_funds_util_flt                      OZF_Claim_Accrual_PVT.funds_util_flt_type;
73 l_claim_id                            NUMBER;
74 
75 -- [BEGIN OF BUG 4067282 FIXING]
76 l_session_org_id                      NUMBER;
77 
78 CURSOR csr_utiz_order(cv_claim_id IN NUMBER) IS
79    SELECT ln.claim_line_id
80    ,      ut.object_type
81    ,      ut.object_id
82    FROM ozf_funds_utilized_all_b ut
83    ,    ozf_claim_lines_util_all lu
84    ,    ozf_claim_lines_all ln
85    WHERE ln.claim_id = cv_claim_id
86    AND   ln.claim_line_id = lu.claim_line_id
87    AND   lu.utilization_id = ut.utilization_id
88    AND   ut.object_type = 'ORDER';
89 
90 l_claim_line_id         NUMBER;
91 l_source_object_class   OZF_CLAIMS_ALL.source_object_class%TYPE;
92 l_source_object_id      OZF_CLAIMS_ALL.source_object_id%TYPE;
93 
94 -- [END OF BUG 4067282 FIXING]
95 
96 BEGIN
97    -- Standard Start of API savepoint
98    SAVEPOINT Create_Partner_Claim;
99 
100    IF OZF_DEBUG_HIGH_ON THEN
101       OZF_Utility_PVT.debug_message(l_full_name||': start');
102    END IF;
103 
104    -- Standard call to check for call compatibility.
105    IF NOT FND_API.Compatible_API_Call ( l_api_version,
106                                         p_api_version_number,
107                                         l_api_name,
108                                         G_PKG_NAME ) THEN
109       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
110    END IF;
111 
112    -- Initialize message list if p_init_msg_list is set to TRUE.
113    IF FND_API.to_Boolean( p_init_msg_list ) THEN
114       FND_MSG_PUB.initialize;
115    END IF;
116 
117    -- Initialize API return status to SUCCESS
118    x_return_status := FND_API.G_RET_STS_SUCCESS;
119 
120 
121    -- Standard call to check for call compatibility.
122    IF NOT FND_API.Compatible_API_Call ( l_api_version,
123                                         p_api_version_number,
124                                         l_api_name,
125                                         G_PKG_NAME)
126    THEN
127       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
128    END IF;
129 
130    -- Initialize message list if p_init_msg_list is set to TRUE.
131    IF FND_API.to_Boolean( p_init_msg_list ) THEN
132       FND_MSG_PUB.initialize;
133    END IF;
134 
135    -- Debug Message
136    IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
137       FND_MESSAGE.Set_Name('AMS','AMS_API_DEBUG_MESSAGE');
138       FND_MESSAGE.Set_Token('TEXT',l_full_name||': Start');
139       FND_MSG_PUB.Add;
140    END IF;
141 
142    -- Initialize API return status to SUCCESS
143    x_return_status := FND_API.G_RET_STS_SUCCESS;
144 
145    -- [BEGIN OF BUG 4067282 FIXING]
146    l_session_org_id := MO_GLOBAL.GET_CURRENT_ORG_ID();  -- R12 Enahancements.
147 
148    IF p_claim_rec.org_id IS NOT NULL THEN
149       MO_GLOBAL.set_policy_context('S', p_claim_rec.org_id);  -- R12 Enhancements
150    END IF;
151    -- [END OF BUG 4067282 FIXING]
152 
153    -----------------------------
154    -- 1. Assignment Qualifier --
155    -----------------------------
156    -- raise business event
157    OZF_CLAIM_SETTLEMENT_PVT.Raise_Business_Event(
158        p_api_version            => l_api_version
159       ,p_init_msg_list          => FND_API.g_false
160       ,p_commit                 => FND_API.g_false
161       ,p_validation_level       => FND_API.g_valid_level_full
162       ,x_return_status          => l_return_status
163       ,x_msg_data               => x_msg_data
164       ,x_msg_count              => x_msg_count
165 
166       ,p_claim_id               => 000999
167       ,p_old_status             => NULL
168       ,p_new_status             => 'NEW'
169       ,p_event_name             => 'oracle.apps.ozf.claim.assignQualifier'
170    );
171    IF l_return_status = FND_API.g_ret_sts_error THEN
172       RAISE FND_API.g_exc_error;
173    ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
174       RAISE FND_API.g_exc_unexpected_error;
175    END IF;
176 
177    -----------------------------------------
178    -- 2. Minimum required fields checking --
179    -----------------------------------------
180    -- First, check whether all the required fields are filled for deductions.
181    -- These fields are
182    --                  cust_account_id
183    --                  currency_code
184    --                  source_object_id
185    --                  source_object_class
186    --                  source_object_number
187    IF l_claim_pub_rec.source_object_id IS NULL OR
188       l_claim_pub_rec.source_object_class IS NULL OR
189       l_claim_pub_rec.source_object_number IS NULL OR
190       l_claim_pub_rec.currency_code IS NULL OR
191       l_claim_pub_rec.cust_account_id IS NULL THEN
192       IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
193          FND_MESSAGE.Set_Name('OZF','OZF_REQUIRED_FIELDS_MISSING');
194          FND_MSG_PUB.Add;
195       END IF;
196       RAISE FND_API.G_EXC_ERROR;
197    END IF;
198 
199    ------------------------------------------
200    -- 3. Default and derive column valude  --
201    ------------------------------------------
202    l_claim_pvt_rec.claim_type_id                := l_claim_pub_rec.claim_type_id;
203    l_claim_pvt_rec.claim_date                   := l_claim_pub_rec.claim_date;
204    l_claim_pvt_rec.due_date                     := l_claim_pub_rec.due_date;
205    l_claim_pvt_rec.gl_date                      := l_claim_pub_rec.gl_date;
206    l_claim_pvt_rec.owner_id                     := l_claim_pub_rec.owner_id;
207    l_claim_pvt_rec.amount                       := l_claim_pub_rec.amount;
208    l_claim_pvt_rec.currency_code                := l_claim_pub_rec.currency_code;
209    l_claim_pvt_rec.exchange_rate_type           := l_claim_pub_rec.exchange_rate_type;
210    l_claim_pvt_rec.exchange_rate_date           := l_claim_pub_rec.exchange_rate_date;
211    l_claim_pvt_rec.exchange_rate                := l_claim_pub_rec.exchange_rate;
212    l_claim_pvt_rec.set_of_books_id              := l_claim_pub_rec.set_of_books_id;
213    l_claim_pvt_rec.source_object_id             := l_claim_pub_rec.source_object_id;
214    l_claim_pvt_rec.source_object_class          := l_claim_pub_rec.source_object_class;
215    l_claim_pvt_rec.source_object_type_id        := l_claim_pub_rec.source_object_type_id;
216    l_claim_pvt_rec.source_object_number         := l_claim_pub_rec.source_object_number;
217    l_claim_pvt_rec.cust_account_id              := l_claim_pub_rec.cust_account_id;
218    l_claim_pvt_rec.cust_billto_acct_site_id     := l_claim_pub_rec.cust_billto_acct_site_id;
219    l_claim_pvt_rec.cust_shipto_acct_site_id     := l_claim_pub_rec.cust_shipto_acct_site_id;
220    l_claim_pvt_rec.related_cust_account_id      := l_claim_pub_rec.pay_to_cust_account_id;
221    l_claim_pvt_rec.reason_code_id               := l_claim_pub_rec.reason_code_id;
222    l_claim_pvt_rec.customer_reason              := l_claim_pub_rec.customer_reason;
223    l_claim_pvt_rec.status_code                  := l_claim_pub_rec.status_code;
224    l_claim_pvt_rec.user_status_id               := l_claim_pub_rec.user_status_id;
225    l_claim_pvt_rec.sales_rep_id                 := l_claim_pub_rec.sales_rep_id;
226    l_claim_pvt_rec.collector_id                 := l_claim_pub_rec.collector_id;
227    l_claim_pvt_rec.contact_id                   := l_claim_pub_rec.contact_id;
228    l_claim_pvt_rec.broker_id                    := l_claim_pub_rec.broker_id;
229    l_claim_pvt_rec.customer_ref_date            := l_claim_pub_rec.customer_ref_date;
230    l_claim_pvt_rec.customer_ref_number          := l_claim_pub_rec.customer_ref_number;
231    l_claim_pvt_rec.comments                     := l_claim_pub_rec.comments;
232    l_claim_pvt_rec.attribute_category           := l_claim_pub_rec.attribute_category;
233    l_claim_pvt_rec.attribute1                   := l_claim_pub_rec.attribute1;
234    l_claim_pvt_rec.attribute2                   := l_claim_pub_rec.attribute2;
235    l_claim_pvt_rec.attribute3                   := l_claim_pub_rec.attribute3;
236    l_claim_pvt_rec.attribute4                   := l_claim_pub_rec.attribute4;
237    l_claim_pvt_rec.attribute5                   := l_claim_pub_rec.attribute5;
238    l_claim_pvt_rec.attribute6                   := l_claim_pub_rec.attribute6;
239    l_claim_pvt_rec.attribute7                   := l_claim_pub_rec.attribute7;
240    l_claim_pvt_rec.attribute8                   := l_claim_pub_rec.attribute8;
241    l_claim_pvt_rec.attribute9                   := l_claim_pub_rec.attribute9;
242    l_claim_pvt_rec.attribute10                  := l_claim_pub_rec.attribute10;
243    l_claim_pvt_rec.attribute11                  := l_claim_pub_rec.attribute11;
244    l_claim_pvt_rec.attribute12                  := l_claim_pub_rec.attribute12;
245    l_claim_pvt_rec.attribute13                  := l_claim_pub_rec.attribute13;
246    l_claim_pvt_rec.attribute14                  := l_claim_pub_rec.attribute14;
247    l_claim_pvt_rec.attribute15                  := l_claim_pub_rec.attribute15;
248    l_claim_pvt_rec.org_id                       := l_claim_pub_rec.org_id;
249 
250    l_funds_util_flt.activity_type               := 'OFFR';
251    l_funds_util_flt.activity_id                 := p_promotion_activity_rec.offer_id;
252    l_funds_util_flt.activity_product_id         := p_promotion_activity_rec.item_id;
253    l_funds_util_flt.reference_type              := p_promotion_activity_rec.reference_type;
254    l_funds_util_flt.reference_id                := p_promotion_activity_rec.reference_id;
255 
256 
257    ------------------------------------------
258    -- 4. Call OZF_CLAIM_ACCRUL_PVT
259    ------------------------------------------
260    OZF_Claim_Accrual_PVT.Create_Claim_For_Accruals(
261      p_api_version         => l_api_version
262     ,p_init_msg_list       => FND_API.g_false
263     ,p_commit              => FND_API.g_false
264     ,p_validation_level    => FND_API.g_valid_level_full
265 
266     ,x_return_status       => l_return_status
267     ,x_msg_count           => x_msg_count
268     ,x_msg_data            => x_msg_data
269 
270     ,p_claim_rec           => l_claim_pvt_rec
271     ,p_funds_util_flt      => l_funds_util_flt
272 
273     ,x_claim_id            => l_claim_id
274    );
275    IF l_return_status = FND_API.g_ret_sts_error THEN
276       RAISE FND_API.g_exc_error;
277    ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
278       RAISE FND_API.g_exc_unexpected_error;
279    END IF;
280 
281    -- [BEGIN OF BUG 4067282 FIXING]: Update Claim Line with Order information
282    -- Assumption: per referral claim <--> per order
283    -- Fix for Bug4576309: Replaced call to table handler with a direct update
284    OPEN csr_utiz_order(l_claim_id);
285    LOOP
286        FETCH csr_utiz_order INTO l_claim_line_id
287                            , l_source_object_class
288                            , l_source_object_id;
289        EXIT WHEN csr_utiz_order%NOTFOUND;
290        IF l_source_object_id IS NOT NULL THEN
291           UPDATE ozf_claim_lines_all
292            SET   source_object_class = l_source_object_class,
293                  source_object_id    = l_source_object_id,
294                  object_version_number = object_version_number + 1
295            WHERE claim_line_id = l_claim_line_id;
296        END IF;
297    END LOOP;
298    CLOSE csr_utiz_order;
299 
300    -- [END OF BUG 4067282 FIXING]
301 
302 
303    OPEN csr_claim(l_claim_id);
304    FETCH csr_claim INTO x_claim_id
305                       , x_claim_number
306                       , x_claim_amount;
307    CLOSE csr_claim;
308 
309    -- [BEGIN OF BUG 4067282 FIXING]
310    IF l_session_org_id IS NOT NULL THEN
311       MO_GLOBAL.set_policy_context('S', l_session_org_id);  -- R12 Enhancements
312    ELSE
313       MO_GLOBAL.set_policy_context('M', NULL); -- BUG 4650224
314    END IF;
315    -- [END OF BUG 4067282 FIXING]
316 
317 
318    -- Standard check for p_commit
319    IF FND_API.to_Boolean(p_commit) THEN
320       COMMIT WORK;
321    END IF;
322 
323    -- Debug Message
324    IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
325       FND_MESSAGE.Set_Name('OZF','OZF_API_DEBUG_MESSAGE');
326       FND_MESSAGE.Set_Token('TEXT',l_full_name||': End');
327       FND_MSG_PUB.Add;
328    END IF;
329 
330    -- Standard call to get message count and if count is 1, get message info.
331    FND_MSG_PUB.Count_And_Get(
332          p_count          =>   x_msg_count,
333          p_data           =>   x_msg_data
334    );
335 
336    IF OZF_DEBUG_HIGH_ON THEN
337       OZF_Utility_PVT.debug_message(l_full_name ||': end');
338    END IF;
339 
340 EXCEPTION
341    WHEN FND_API.G_EXC_ERROR THEN
342       ROLLBACK TO Create_Partner_Claim;
343       x_return_status := FND_API.G_RET_STS_ERROR;
344       FND_MSG_PUB.Count_And_Get (
345          p_encoded => FND_API.G_FALSE,
346          p_count   => x_msg_count,
347          p_data    => x_msg_data
348       );
349 
350    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
351       ROLLBACK TO Create_Partner_Claim;
352       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
353       IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
354          FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_CRE_DEDU_ERR');
355          FND_MSG_PUB.add;
356       END IF;
357       FND_MSG_PUB.Count_And_Get (
358          p_encoded => FND_API.G_FALSE,
359          p_count   => x_msg_count,
360          p_data    => x_msg_data
361       );
362 
363    WHEN OTHERS THEN
364       ROLLBACK TO Create_Partner_Claim;
365       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
366       IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
367          FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_CRE_DEDU_ERR');
368          FND_MSG_PUB.add;
369       END IF;
370       FND_MSG_PUB.Count_And_Get (
371          p_encoded => FND_API.G_FALSE,
372          p_count   => x_msg_count,
373          p_data    => x_msg_data
374       );
375 
376 End Create_Claim;
377 
378 
379 ---------------------------------------------------------------------
380 --   PROCEDURE: Update_Claim
381 --
382 --   PURPOSE:
383 --
384 --   PARAMETERS:
385 --   IN:
386 --       p_api_version_number      IN   NUMBER              Required
387 --       p_init_msg_list           IN   VARCHAR2            Optional  Default = FND_API_G_FALSE
388 --       p_validation_level        IN   NUMBER              Optional  Default = FND_API.G_VALID_LEVEL_FULL
389 --       p_commit                  IN   VARCHAR2            Optional  Default = FND_API.G_FALSE
390 --       P_claim_id                IN   NUMBER              Required
391 --       P_status_code             IN   VARCHAR2            Required
392 --       P_note_type               IN   VARCHAR2            Optional  Default = NULL
393 --       p_note_detail             IN   VARCHAR2            Optional  Default = NULL
394 --
395 --   OUT:
396 --       x_return_status           OUT NOCOPY VARCHAR2
397 --       x_msg_count               OUT NOCOPY NUMBER
398 --       x_msg_data                OUT NOCOPY VARCHAR2
399 --
400 --   Note:
401 --
402 ---------------------------------------------------------------------
403 PROCEDURE Update_Claim(
404     p_api_version_number         IN   NUMBER,
405     p_init_msg_list              IN   VARCHAR2,
406     p_validation_level           IN   NUMBER,
407     p_commit                     IN   VARCHAR2,
408 
409     x_return_status              OUT  NOCOPY VARCHAR2,
410     x_msg_count                  OUT  NOCOPY NUMBER,
411     x_msg_data                   OUT  NOCOPY VARCHAR2,
412 
413     p_claim_id                   IN   NUMBER,
414     p_status_code                IN   VARCHAR2,
415     p_comments                   IN   VARCHAR2,
416     p_note_type                  IN   VARCHAR2,
417     p_note_detail                IN   VARCHAR2
418 )
419 IS
420 l_api_version                CONSTANT NUMBER       := 1.0;
421 l_api_name                   CONSTANT VARCHAR2(30) := 'Update_Claim';
422 l_full_name                  CONSTANT VARCHAR2(60) := G_PKG_NAME||'.'||l_api_name;
423 l_return_status                       VARCHAR2(1);
424 --
425 l_dummy_number                        NUMBER;
426 l_status_code                         VARCHAR2(30);
427 l_claim_pvt_rec                       OZF_Claim_PVT.claim_rec_type;
428 l_x_note_id                           NUMBER;
429 
430 CURSOR csr_claim_status(cv_status_code IN VARCHAR2) IS
431   SELECT lookup_code
432   FROM ozf_lookups
433   WHERE lookup_type = 'OZF_CLAIM_STATUS';
434 
435 CURSOR csr_claim_obj_num(cv_claim_id IN NUMBER) IS
436   SELECT object_version_number
437   ,      org_id
438   FROM ozf_claims_all
439   WHERE claim_id = cv_claim_id;
440 
441 
442 -- [BEGIN OF BUG 4067282 FIXING]
443 l_session_org_id                      NUMBER;
444 l_claim_org_id                        NUMBER;
445 -- [END OF BUG 4067282 FIXING]
446 
447 
448 BEGIN
449    -- Standard Start of API savepoint
450    SAVEPOINT Update_Partner_Claim;
451 
452    IF OZF_DEBUG_HIGH_ON THEN
453       OZF_Utility_PVT.debug_message(l_full_name||': start');
454    END IF;
455 
456    -- Standard call to check for call compatibility.
457    IF NOT FND_API.Compatible_API_Call ( l_api_version,
458                                         p_api_version_number,
459                                         l_api_name,
460                                         G_PKG_NAME ) THEN
461       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
462    END IF;
463 
464    -- Initialize message list if p_init_msg_list is set to TRUE.
465    IF FND_API.to_Boolean( p_init_msg_list ) THEN
466       FND_MSG_PUB.initialize;
467    END IF;
468 
469    -- Initialize API return status to SUCCESS
470    x_return_status := FND_API.G_RET_STS_SUCCESS;
471 
472    -----------------------------------------
473    -- 1. Minimum required fields checking --
474    -----------------------------------------
475    IF p_claim_id IS NULL OR
476       p_status_code IS NULL THEN
477       IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
478          FND_MESSAGE.Set_Name('OZF','OZF_REQUIRED_FIELDS_MISSING');
479          FND_MSG_PUB.Add;
480       END IF;
481       RAISE FND_API.G_EXC_ERROR;
482    ELSE
483       OPEN csr_claim_status(p_status_code);
484       FETCH csr_claim_status INTO l_status_code;
485       CLOSE csr_claim_status;
486       IF l_status_code IS NULL THEN
487          IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
488             FND_MESSAGE.Set_Name('OZF','OZF_CLAIM_INVALID_STATUS');
489             FND_MSG_PUB.Add;
490          END IF;
491          RAISE FND_API.G_EXC_ERROR;
492       END IF;
493    END IF;
494 
495    -----------------------------------------
496    -- 2. Update Claim
497    -----------------------------------------
498    IF OZF_DEBUG_HIGH_ON THEN
499       OZF_Utility_PVT.debug_message('1. Update Claim');
500    END IF;
501 
502    l_claim_pvt_rec.claim_id := p_claim_id;
503 
504    OPEN csr_claim_obj_num(p_claim_id);
505    FETCH csr_claim_obj_num INTO l_claim_pvt_rec.object_version_number
506                               , l_claim_org_id;
507    CLOSE csr_claim_obj_num;
508 
509    -- [BEGIN OF BUG 4067282 FIXING]
510    l_session_org_id := MO_GLOBAL.GET_CURRENT_ORG_ID();  -- R12 Enahancements.
511 
512    IF l_claim_org_id IS NOT NULL THEN
513       MO_GLOBAL.set_policy_context('S', l_claim_org_id);  -- R12 Enhancements, BUG 4650224
514    END IF;
515    -- [END OF BUG 4067282 FIXING]
516 
517    IF p_status_code = 'APPROVED' THEN
518       BEGIN
519           UPDATE ozf_claims_all
520           SET status_code = 'APPROVED'
521           ,   user_status_id = OZF_UTILITY_PVT.get_default_user_status('OZF_CLAIM_STATUS', 'APPROVED')
522           WHERE claim_id = p_claim_id;
523       EXCEPTION
524           WHEN OTHERS THEN
525             IF OZF_DEBUG_LOW_ON THEN
526                FND_MESSAGE.Set_Name('OZF','OZF_API_DEBUG_MESSAGE');
527                FND_MESSAGE.Set_Token('TEXT',sqlerrm);
528                FND_MSG_PUB.Add;
529             END IF;
530             RAISE FND_API.g_exc_unexpected_error;
531       END;
532       l_claim_pvt_rec.status_code := 'CLOSED';
533    ELSE
534       l_claim_pvt_rec.status_code := p_status_code;
535    END IF;
536 
537    l_claim_pvt_rec.comments := SUBSTR(p_comments, 1, 2000);
538 
539    OZF_claim_PVT.Update_Claim (
540           p_api_version            => l_api_version
541          ,p_init_msg_list          => FND_API.G_FALSE
542          ,p_commit                 => FND_API.G_FALSE
543          ,p_validation_level       => FND_API.G_VALID_LEVEL_FULL
544          ,x_return_status          => l_return_status
545          ,x_msg_data               => x_msg_data
546          ,x_msg_count              => x_msg_count
547          ,p_claim                  => l_claim_pvt_rec
548          ,p_event                  => 'UPDATE'
549          ,p_mode                   => OZF_Claim_Utility_PVT.G_AUTO_MODE
550          ,x_object_version_number  => l_dummy_number
551    );
552    IF l_return_status = FND_API.g_ret_sts_error THEN
553       RAISE FND_API.g_exc_error;
554    ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
555       RAISE FND_API.g_exc_unexpected_error;
556    END IF;
557 
558    -----------------------------------------
559    -- 3. Create Note
560    -----------------------------------------
561    IF p_note_detail IS NOT NULL THEN
562       IF OZF_DEBUG_HIGH_ON THEN
563          OZF_Utility_PVT.debug_message('2. Create Note');
564       END IF;
565 
566       JTF_NOTES_PUB.Create_Note(
567            p_api_version              => l_api_version
568           ,x_return_status            => l_return_status
569           ,x_msg_count                => x_msg_count
570           ,x_msg_data                 => x_msg_data
571           ,p_source_object_id         => p_claim_id
572           ,p_source_object_code       => 'AMS_CLAM'
573           ,p_notes                    => p_note_detail
574           ,p_note_status              => NULL
575           ,p_entered_by               => FND_GLOBAL.user_id
576           ,p_entered_date             => SYSDATE
577           ,p_last_updated_by          => FND_GLOBAL.user_id
578           ,x_jtf_note_id              => l_x_note_id
579           ,p_note_type                => p_note_type
580           ,p_last_update_date         => SYSDATE
581           ,p_creation_date            => SYSDATE
582       );
583       IF l_return_status = FND_API.g_ret_sts_error THEN
584          RAISE FND_API.g_exc_error;
585       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
586          RAISE FND_API.g_exc_unexpected_error;
587       END IF;
588    END IF;
589 
590    -- [BEGIN OF BUG 4067282 FIXING]
591    IF l_session_org_id IS NOT NULL THEN
592       MO_GLOBAL.set_policy_context('S', l_session_org_id);  -- R12 Enhancements
593    ELSE
594       MO_GLOBAL.set_policy_context('M', NULL);  -- BUG 4650224
595    END IF;
596    -- [END OF BUG 4067282 FIXING]
597 
598    -- Standard check for p_commit
599    IF FND_API.to_Boolean(p_commit) THEN
600       COMMIT WORK;
601    END IF;
602 
603    -- Standard call to get message count and if count is 1, get message info.
604    FND_MSG_PUB.Count_And_Get(
605       p_count    => x_msg_count,
606       p_data     => x_msg_data
607    );
608 
609    IF OZF_DEBUG_HIGH_ON THEN
610       OZF_Utility_PVT.debug_message(l_full_name||': start');
611    END IF;
612 
613 EXCEPTION
614    WHEN FND_API.G_EXC_ERROR THEN
615       ROLLBACK TO Update_Partner_Claim;
616       x_return_status := FND_API.G_RET_STS_ERROR;
617       FND_MSG_PUB.Count_And_Get (
618             p_encoded => FND_API.G_FALSE,
619             p_count   => x_msg_count,
620             p_data    => x_msg_data
621       );
622 
623    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
624       ROLLBACK TO Update_Partner_Claim;
625       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
626       FND_MSG_PUB.Count_And_Get (
627             p_encoded => FND_API.G_FALSE,
628             p_count   => x_msg_count,
629             p_data    => x_msg_data
630       );
631 
632    WHEN OTHERS THEN
633       ROLLBACK TO Update_Partner_Claim;
634       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
635       IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
636          FND_MESSAGE.set_name('AMS', 'AMS_CLAIM_UPD_DEDU_ERR');
637          FND_MSG_PUB.add;
638       END IF;
639       FND_MSG_PUB.Count_And_Get (
640             p_encoded => FND_API.G_FALSE,
641             p_count   => x_msg_count,
642             p_data    => x_msg_data
643       );
644 
645 End Update_Claim;
646 
647 
648 END OZF_PARTNER_CLAIM_GRP;