[Home] [Help]
PACKAGE BODY: APPS.OZF_CLAIM_PUB
Source
1 PACKAGE BODY OZF_CLAIM_PUB as
2 /* $Header: ozfpclab.pls 120.15.12020000.2 2012/07/17 10:18:36 bkunjan ship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 -- OZF_CLAIM_PUB
7 -- Purpose
8 --
9 -- History
10 --
11 -- NOTE
12 --
13 -- MODIFICATION HISTORY
14 -- KPATRO 26-Dec-2007 12.1 Enhancement: Price Protection
15 -- Added a new column dpp_cust_account_id
16 -- KPATRO 17-Jan-2008 Added the PPVENDOR check for update claim
17 -- KPATRO 16-Apr-2008 Fix for bug 6965694
18 -- KPATRO 30-sep-2008 Fix for Bug 7443072
19 -- KPATRO 04-Apr-2009 Fix for Bug 8402328
20 -- KPATRO 17-Apr-2009 Fix for Bug 8438651
21 -- KPATRO 08-May-2009 Fix for Bug 8501176
22 -- KPATRO 29-Mar-2011 Fix for Bug 11932210
23 -- BKUNJAN 21-Sep-2011 ER 12985686 - SIEBEL TPM UPGRADE TO CHRM RELEASE 12.1.3+ : DEDUCTION RESOLUTION
24 -- BKUNJAN 11-Nov-2011 Bug 13346665 - OZF_CLAIM_PUB.UPDATE_CLAIM NOT UPDATING CLAIM LINE
25 -- APYADAV 28-Nov-2011 Bug 13421908 -FP 13418731 - CLAIM API ERROR WHEN IT TRIES TO ASSOCIATE OFFER WITH RELATIONSHIP:ALL
26 -- BKUNJAN 02-Dec-2011 Bug 13398807 - AFTER PATCH 13346665 RECEIVE ERROR CATEGORY ID IS INVALID
27 -- BKUNJAN 13-Dec-2011 Bug 13481137 - OZF_CLAIM_PUB.CREATE_EVENT NOT WORKING AS EXPECTED WHEN REVERTING GL ENTRY
28 -- BKUNJAN 17-Jul-2012 Bug 14297905 - ER : NEED TRADE MANAGEMENT ACCOUNT GENERATOR OZF_CSTL IN VERSION 12.2.1
29 -- End of Comments
30 -- ===============================================================
31 G_PKG_NAME CONSTANT VARCHAR2(30):= 'OZF_CLAIM_PUB';
32 G_FILE_NAME CONSTANT VARCHAR2(14) := 'ozfpclab.pls';
33
34 G_DEBUG BOOLEAN := FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_high);
35
36 ---------------------------------------------------------------------
37 -- PROCEDURE
38 -- create_claim
39 --
40 -- PURPOSE
41 -- This procedure creates claim and claim line with unique ID's
42 --
43 -- PARAMETERS
44 -- p_claim_line_tbl
45 -- p_claim_rec
46 -- x_claim_id
47 -- x_return_status
48 --
49 -- NOTES
50 ---------------------------------------------------------------------
51 PROCEDURE Create_Claim(
52 p_api_version_number IN NUMBER,
53 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
54 p_commit IN VARCHAR2 := FND_API.G_FALSE,
55 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
56 x_return_status OUT NOCOPY VARCHAR2,
57 x_msg_count OUT NOCOPY NUMBER,
58 x_msg_data OUT NOCOPY VARCHAR2,
59 p_claim_rec IN claim_rec_type,
60 p_claim_line_tbl IN claim_line_tbl_type,
61 x_claim_id OUT NOCOPY NUMBER
62 )
63 IS
64 L_API_NAME CONSTANT VARCHAR2(30) := 'Create_Claim';
65 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
66 l_pvt_claim_rec OZF_ClAIM_PVT.claim_rec_type;
67 l_x_pvt_claim_rec OZF_ClAIM_PVT.claim_rec_type;
68 l_claim_rec OZF_Claim_PUB.claim_rec_type := p_claim_rec;
69 l_claim_line_tbl claim_line_tbl_type := p_claim_line_tbl;
70 l_claim_line_rec claim_line_rec_type ;
71 l_pvt_line_rec OZF_CLAIM_LINE_PVT.claim_line_rec_type;
72 x_claim_LINE_id NUMBER;
73 l_error_index NUMBER;
74
75 -- Fix for Bug 11932210
76 CURSOR c_item_uom(p_item_uom IN VARCHAR2,p_inventory_item_id IN NUMBER,p_org_id IN NUMBER)IS
77 SELECT a.uom_code
78 FROM mtl_units_of_measure a,
79 mtl_system_items c
80 WHERE c.primary_unit_of_measure = a.unit_of_measure
81 AND c.organization_id = p_org_id
82 AND c.inventory_item_id = p_inventory_item_id
83 AND uom_code = p_item_uom;
84
85 l_item_uom VARCHAR2(30);
86
87 l_inv_org_id NUMBER := FND_PROFILE.VALUE('QP_ORGANIZATION_ID');
88
89 BEGIN
90 -- Standard Start of API savepoint
91 SAVEPOINT CREATE_Claim_PUB;
92 -- Standard call to check for call compatibility.
93 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
94 p_api_version_number,
95 l_api_name,
96 G_PKG_NAME)
97 THEN
98 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
99 END IF;
100 -- Initialize message list if p_init_msg_list is set to TRUE.
101 IF FND_API.to_Boolean( p_init_msg_list )
102 THEN
103 FND_MSG_PUB.initialize;
104 END IF;
105 -- Debug Message
106 IF g_debug THEN
107 OZF_UTILITY_PVT.debug_message('Public API: ' || l_api_name || ' pub start');
108 END IF;
109 -- Initialize API return status to SUCCESS
110 x_return_status := FND_API.G_RET_STS_SUCCESS;
111 --
112 -- API body
113 --
114 -- Construct the claim rec to pass to private api
115 --
116 l_pvt_claim_rec.claim_id:=l_claim_rec.claim_id;
117 l_pvt_claim_rec.object_version_number:=l_claim_rec.object_version_number;
118 l_pvt_claim_rec.last_update_date:=l_claim_rec.last_update_date;
119 l_pvt_claim_rec.last_updated_by:=l_claim_rec.last_updated_by;
120 l_pvt_claim_rec.creation_date:=l_claim_rec.creation_date;
121 l_pvt_claim_rec.created_by:=l_claim_rec.created_by;
122 l_pvt_claim_rec.last_update_login:=l_claim_rec.last_update_login;
123 l_pvt_claim_rec.request_id:=l_claim_rec.request_id;
124 l_pvt_claim_rec.program_application_id:=l_claim_rec.program_application_id;
125 l_pvt_claim_rec.program_update_date:=l_claim_rec.program_update_date;
126 l_pvt_claim_rec.program_id:=l_claim_rec.program_id;
127 l_pvt_claim_rec.created_from:=l_claim_rec.created_from;
128 l_pvt_claim_rec.batch_id:=l_claim_rec.batch_id;
129 l_pvt_claim_rec.claim_number:=l_claim_rec.claim_number;
130 l_pvt_claim_rec.claim_type_id:=l_claim_rec.claim_type_id;
131 l_pvt_claim_rec.claim_class:=l_claim_rec.claim_class;
132 l_pvt_claim_rec.claim_date:=l_claim_rec.claim_date;
133 l_pvt_claim_rec.due_date:=l_claim_rec.due_date;
134 l_pvt_claim_rec.owner_id:=l_claim_rec.owner_id;
135 l_pvt_claim_rec.history_event:=l_claim_rec.history_event;
136 l_pvt_claim_rec.history_event_date:=l_claim_rec.history_event_date;
137 l_pvt_claim_rec.history_event_description:=l_claim_rec.history_event_description;
138 l_pvt_claim_rec.split_from_claim_id:=l_claim_rec.split_from_claim_id;
139 l_pvt_claim_rec.duplicate_claim_id:=l_claim_rec.duplicate_claim_id;
140 l_pvt_claim_rec.split_date:=l_claim_rec.split_date;
141 l_pvt_claim_rec.root_claim_id:=l_claim_rec.root_claim_id;
142 l_pvt_claim_rec.amount:=l_claim_rec.amount;
143 l_pvt_claim_rec.amount_adjusted:=l_claim_rec.amount_adjusted;
144 l_pvt_claim_rec.amount_remaining:=l_claim_rec.amount_remaining;
145 l_pvt_claim_rec.amount_settled:=l_claim_rec.amount_settled;
146 l_pvt_claim_rec.acctd_amount:=l_claim_rec.acctd_amount;
147 l_pvt_claim_rec.acctd_amount_remaining:=l_claim_rec.acctd_amount_remaining;
148 l_pvt_claim_rec.tax_amount:=l_claim_rec.tax_amount;
149 l_pvt_claim_rec.tax_code:=l_claim_rec.tax_code;
150 l_pvt_claim_rec.tax_calculation_flag:=l_claim_rec.tax_calculation_flag;
151 l_pvt_claim_rec.currency_code:=l_claim_rec.currency_code;
152 l_pvt_claim_rec.exchange_rate_type:=l_claim_rec.exchange_rate_type;
153 l_pvt_claim_rec.exchange_rate_date:=l_claim_rec.exchange_rate_date;
154 l_pvt_claim_rec.exchange_rate:=l_claim_rec.exchange_rate;
155 l_pvt_claim_rec.set_of_books_id:=l_claim_rec.set_of_books_id;
156 l_pvt_claim_rec.original_claim_date:=l_claim_rec.original_claim_date;
157 l_pvt_claim_rec.source_object_id:=l_claim_rec.source_object_id;
158 l_pvt_claim_rec.source_object_class:=l_claim_rec.source_object_class;
159 l_pvt_claim_rec.source_object_type_id:=l_claim_rec.source_object_type_id;
160 l_pvt_claim_rec.source_object_number:=l_claim_rec.source_object_number;
161 l_pvt_claim_rec.cust_account_id:=l_claim_rec.cust_account_id;
162 l_pvt_claim_rec.cust_billto_acct_site_id:=l_claim_rec.cust_billto_acct_site_id;
163 l_pvt_claim_rec.cust_shipto_acct_site_id:=l_claim_rec.cust_shipto_acct_site_id;
164 l_pvt_claim_rec.location_id:=l_claim_rec.location_id;
165 l_pvt_claim_rec.pay_related_account_flag:=l_claim_rec.pay_related_account_flag;
166 l_pvt_claim_rec.related_cust_account_id:=l_claim_rec.related_cust_account_id;
167 l_pvt_claim_rec.related_site_use_id:=l_claim_rec.related_site_use_id;
168 l_pvt_claim_rec.relationship_type:=l_claim_rec.relationship_type;
169 l_pvt_claim_rec.vendor_id:=l_claim_rec.vendor_id;
170 l_pvt_claim_rec.vendor_site_id:=l_claim_rec.vendor_site_id;
171 l_pvt_claim_rec.reason_type:=l_claim_rec.reason_type;
172 l_pvt_claim_rec.reason_code_id:=l_claim_rec.reason_code_id;
173 l_pvt_claim_rec.task_template_group_id:=l_claim_rec.task_template_group_id;
174 l_pvt_claim_rec.status_code:=l_claim_rec.status_code;
175 l_pvt_claim_rec.user_status_id:=l_claim_rec.user_status_id;
176 l_pvt_claim_rec.sales_rep_id:=l_claim_rec.sales_rep_id;
177 l_pvt_claim_rec.collector_id:=l_claim_rec.collector_id;
178 l_pvt_claim_rec.contact_id:=l_claim_rec.contact_id;
179 l_pvt_claim_rec.broker_id:=l_claim_rec.broker_id;
180 l_pvt_claim_rec.territory_id:=l_claim_rec.territory_id;
181 l_pvt_claim_rec.customer_ref_date:=l_claim_rec.customer_ref_date;
182 l_pvt_claim_rec.customer_ref_number:=l_claim_rec.customer_ref_number;
183 l_pvt_claim_rec.assigned_to:=l_claim_rec.assigned_to;
184 l_pvt_claim_rec.receipt_id:=l_claim_rec.receipt_id;
185 l_pvt_claim_rec.receipt_number:=l_claim_rec.receipt_number;
186 l_pvt_claim_rec.doc_sequence_id:=l_claim_rec.doc_sequence_id;
187 l_pvt_claim_rec.doc_sequence_value:=l_claim_rec.doc_sequence_value;
188 l_pvt_claim_rec.gl_date:=l_claim_rec.gl_date;
189 l_pvt_claim_rec.payment_method:=l_claim_rec.payment_method;
190 l_pvt_claim_rec.voucher_id:=l_claim_rec.voucher_id;
191 l_pvt_claim_rec.voucher_number:=l_claim_rec.voucher_number;
192 l_pvt_claim_rec.payment_reference_id:=l_claim_rec.payment_reference_id;
193 l_pvt_claim_rec.payment_reference_number:=l_claim_rec.payment_reference_number;
194 l_pvt_claim_rec.payment_reference_date:=l_claim_rec.payment_reference_date;
195 l_pvt_claim_rec.payment_status:=l_claim_rec.payment_status;
196 l_pvt_claim_rec.approved_flag:=l_claim_rec.approved_flag;
197 l_pvt_claim_rec.approved_date:=l_claim_rec.approved_date;
198 l_pvt_claim_rec.approved_by:=l_claim_rec.approved_by;
199 l_pvt_claim_rec.settled_date:=l_claim_rec.settled_date;
200 l_pvt_claim_rec.settled_by:=l_claim_rec.settled_by;
201 l_pvt_claim_rec.effective_date:=l_claim_rec.effective_date;
202 l_pvt_claim_rec.custom_setup_id:=l_claim_rec.custom_setup_id;
203 l_pvt_claim_rec.task_id:=l_claim_rec.task_id;
204 l_pvt_claim_rec.country_id:=l_claim_rec.country_id;
205 l_pvt_claim_rec.order_type_id:=l_claim_rec.order_type_id;
206 l_pvt_claim_rec.comments:=l_claim_rec.comments;
207 l_pvt_claim_rec.attribute_category:=l_claim_rec.attribute_category;
208 l_pvt_claim_rec.attribute1:=l_claim_rec.attribute1;
209 l_pvt_claim_rec.attribute2:=l_claim_rec.attribute2;
210 l_pvt_claim_rec.attribute3:=l_claim_rec.attribute3;
211 l_pvt_claim_rec.attribute4:=l_claim_rec.attribute4;
212 l_pvt_claim_rec.attribute5:=l_claim_rec.attribute5;
213 l_pvt_claim_rec.attribute6:=l_claim_rec.attribute6;
214 l_pvt_claim_rec.attribute7:=l_claim_rec.attribute7;
215 l_pvt_claim_rec.attribute8:=l_claim_rec.attribute8;
216 l_pvt_claim_rec.attribute9:=l_claim_rec.attribute9;
217 l_pvt_claim_rec.attribute10:=l_claim_rec.attribute10;
218 l_pvt_claim_rec.attribute11:=l_claim_rec.attribute11;
219 l_pvt_claim_rec.attribute12:=l_claim_rec.attribute12;
220 l_pvt_claim_rec.attribute13:=l_claim_rec.attribute13;
221 l_pvt_claim_rec.attribute14:=l_claim_rec.attribute14;
222 l_pvt_claim_rec.attribute15:=l_claim_rec.attribute15;
223 l_pvt_claim_rec.deduction_attribute_category:=l_claim_rec.deduction_attribute_category;
224 l_pvt_claim_rec.deduction_attribute1:=l_claim_rec.deduction_attribute1;
225 l_pvt_claim_rec.deduction_attribute2:=l_claim_rec.deduction_attribute2;
226 l_pvt_claim_rec.deduction_attribute3:=l_claim_rec.deduction_attribute3;
227 l_pvt_claim_rec.deduction_attribute4:=l_claim_rec.deduction_attribute4;
228 l_pvt_claim_rec.deduction_attribute5:=l_claim_rec.deduction_attribute5;
229 l_pvt_claim_rec.deduction_attribute6:=l_claim_rec.deduction_attribute6;
230 l_pvt_claim_rec.deduction_attribute7:=l_claim_rec.deduction_attribute7;
231 l_pvt_claim_rec.deduction_attribute8:=l_claim_rec.deduction_attribute8;
232 l_pvt_claim_rec.deduction_attribute9:=l_claim_rec.deduction_attribute9;
233 l_pvt_claim_rec.deduction_attribute10:=l_claim_rec.deduction_attribute10;
234 l_pvt_claim_rec.deduction_attribute11:=l_claim_rec.deduction_attribute11;
235 l_pvt_claim_rec.deduction_attribute12:=l_claim_rec.deduction_attribute12;
236 l_pvt_claim_rec.deduction_attribute13:=l_claim_rec.deduction_attribute13;
237 l_pvt_claim_rec.deduction_attribute14:=l_claim_rec.deduction_attribute14;
238 l_pvt_claim_rec.deduction_attribute15:=l_claim_rec.deduction_attribute15;
239 l_pvt_claim_rec.org_id:=l_claim_rec.org_id;
240
241 l_pvt_claim_rec.write_off_flag :=l_claim_rec.write_off_flag;
242 l_pvt_claim_rec.write_off_threshold_amount :=l_claim_rec.write_off_threshold_amount;
243 l_pvt_claim_rec.under_write_off_threshold :=l_claim_rec.under_write_off_threshold;
244 l_pvt_claim_rec.customer_reason :=l_claim_rec.customer_reason;
245 l_pvt_claim_rec.ship_to_cust_account_id :=l_claim_rec.ship_to_cust_account_id;
246 l_pvt_claim_rec.amount_applied :=l_claim_rec.amount_applied;
247 l_pvt_claim_rec.applied_receipt_id :=l_claim_rec.applied_receipt_id;
248 l_pvt_claim_rec.applied_receipt_number :=l_claim_rec.applied_receipt_number;
249 l_pvt_claim_rec.wo_rec_trx_id :=l_claim_rec.wo_rec_trx_id;
250 l_pvt_claim_rec.group_claim_id :=l_claim_rec.group_claim_id;
251 l_pvt_claim_rec.appr_wf_item_key :=l_claim_rec.appr_wf_item_key;
252 l_pvt_claim_rec.cstl_wf_item_key :=l_claim_rec.cstl_wf_item_key;
253 l_pvt_claim_rec.batch_type :=l_claim_rec.batch_type;
254
255 --
256 -- Calling Private package: Create_Claim
257 -- Hint: Primary key needs to be returned
258 -- Check for default values befor creating claim.
259
260 OZF_claim_PVT.Check_Claim_Common_Element (
261 p_api_version => p_api_version_number,
262 p_init_msg_list => p_init_msg_list,
263 p_validation_level => p_validation_level,
264 x_Return_Status => x_return_status,
265 x_Msg_Count => x_msg_count,
266 x_Msg_Data => x_msg_data,
267 p_claim => l_pvt_claim_rec,
268 x_claim => l_x_pvt_claim_rec
269 );
270 -- Check return status from the above procedure call
271 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
272 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
273 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
274 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
275 END IF;
276 l_pvt_claim_rec := l_x_pvt_claim_rec;
277
278 -- OZF_UTILITY_PVT.debug_message('Call Private APICreate Claim Procdure 1');
279 OZF_claim_PVT.Create_Claim(
280 p_api_version => p_api_version_number,
281 p_init_msg_list => FND_API.G_FALSE,
282 p_commit => FND_API.G_FALSE,
283 P_Validation_Level => p_Validation_Level,
284 X_Return_Status => x_return_status,
285 X_Msg_Count => x_msg_count,
286 X_Msg_Data => x_msg_data,
287 P_claim => l_pvt_claim_rec,
288 X_CLAIM_ID => x_claim_id
289 );
290 -- Check return status from the above procedure call
291 IF x_return_status = FND_API.G_RET_STS_ERROR then
292 RAISE FND_API.G_EXC_ERROR;
293 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
294 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
295 END IF;
296
297 IF p_claim_line_tbl.count > 0 THEN
298 l_claim_line_tbl := p_claim_line_tbl;
299 FOR i IN p_claim_line_tbl.FIRST..p_claim_line_tbl.LAST LOOP
300 l_claim_line_tbl(i).claim_id := x_claim_id;
301 --// BKUNJAN Added validation
302 IF (l_claim_line_tbl(i).item_id <> FND_API.g_miss_num AND l_claim_line_tbl(i).item_id IS NOT NULL) AND (l_claim_line_tbl(i).QUANTITY_UOM <> FND_API.g_miss_char AND l_claim_line_tbl(i).QUANTITY_UOM IS NOT NULL) THEN
303 -- Fix for Bug 11932210
304 OPEN c_item_uom(l_claim_line_tbl(i).QUANTITY_UOM
305 ,l_claim_line_tbl(i).item_id
306 ,l_inv_org_id);
307 FETCH c_item_uom INTO l_item_uom;
308 CLOSE c_item_uom;
309
310 IF(l_item_uom IS NOT NULL) THEN
311 l_claim_line_tbl(i).QUANTITY_UOM := l_item_uom;
312 ELSE
313 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
314 FND_MESSAGE.set_name('OZF', 'OZF_METR_INVALID_UOM');
315 --//Unit of Measurement is Invalid
316 FND_MSG_PUB.add;
317 END IF;
318 x_return_status := fnd_api.G_RET_STS_UNEXP_ERROR;
319 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
320 RETURN;
321 END IF;
322 END IF;
323 --End for Fix of Bug 11932210
324 END LOOP;
325 END IF;
326 -- Call create claim line procedure
327 Create_Claim_Line_Tbl(
328 p_api_version => p_api_version_number
329 ,p_init_msg_list => FND_API.G_FALSE
330 ,P_commit => FND_API.G_FALSE
331 ,p_validation_level => p_validation_level
332 ,x_return_status => x_return_status
333 ,x_msg_data => x_msg_data
334 ,x_msg_count => x_msg_count
335 ,p_claim_line_tbl => l_claim_line_tbl
336 ,x_error_index => l_error_index);
337 IF g_debug THEN
338 ozf_utility_pvt.debug_message('return status for create_claim_line_tbl =>'||x_return_status);
339 END IF;
340 IF x_return_status = FND_API.G_RET_STS_ERROR then
341 RAISE FND_API.G_EXC_ERROR;
342 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
343 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
344 END IF;
345 -- Debug Message
346 IF g_debug THEN
347 OZF_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'end');
348 END IF;
349 IF FND_API.to_Boolean( p_commit )
350 THEN
351 COMMIT WORK;
352 END IF;
353 --OZF_UTILITY_PVT.DEBUG_MESSAGE('CLAIM_ID=>'||l_claim_line_rec.claim_id);
354 -- Standard call to get message count and if count is 1, get message info.
355 FND_MSG_PUB.Count_And_Get (
356 p_encoded => FND_API.G_FALSE,
357 p_count => x_msg_count,
358 p_data => x_msg_data
359 );
360 EXCEPTION
361 WHEN OZF_Utility_PVT.resource_locked THEN
362 ROLLBACK TO CREATE_Claim_PUB;
363 x_return_status := FND_API.G_RET_STS_ERROR;
364 OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
365 FND_MSG_PUB.Count_And_Get (
366 p_encoded => FND_API.G_FALSE,
367 p_count => x_msg_count,
368 p_data => x_msg_data
369 );
370 WHEN FND_API.G_EXC_ERROR THEN
371 ROLLBACK TO CREATE_Claim_PUB;
372 x_return_status := FND_API.G_RET_STS_ERROR;
373 -- Standard call to get message count and if count=1, get the message
374 FND_MSG_PUB.Count_And_Get (
375 p_encoded => FND_API.G_FALSE,
376 p_count => x_msg_count,
377 p_data => x_msg_data
378 );
379 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
380 ROLLBACK TO CREATE_Claim_PUB;
381 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
382 -- Standard call to get message count and if count=1, get the message
383 FND_MSG_PUB.Count_And_Get (
384 p_encoded => FND_API.G_FALSE,
385 p_count => x_msg_count,
386 p_data => x_msg_data
387 );
388 WHEN OTHERS THEN
389 ROLLBACK TO CREATE_Claim_PUB;
390 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
391 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
392 THEN
393 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
394 END IF;
395 -- Standard call to get message count and if count=1, get the message
396 FND_MSG_PUB.Count_And_Get (
397 p_encoded => FND_API.G_FALSE,
398 p_count => x_msg_count,
399 p_data => x_msg_data
400 );
401 End Create_Claim;
402 --Begin of create claim line
403 ---------------------------------------------------------------------
404 -- PROCEDURE
405 -- create_claim_line_Tbl
406 --
407 -- PURPOSE
408 -- This procedure claim line with unique ID's
409 --
410 -- PARAMETERS
411 --
412 -- p_claim_rec
413 -- x_claim_line_id
414 -- x_return_status
415 --
416 -- NOTES
417 ---------------------------------------------------------------------
418 PROCEDURE Create_Claim_Line_Tbl(
419 p_api_version IN NUMBER
420 ,p_init_msg_list IN VARCHAR2 := FND_API.g_false
421 ,p_commit IN VARCHAR2 := FND_API.g_false
422 ,p_validation_level IN NUMBER := FND_API.g_valid_level_full
423 ,x_return_status OUT NOCOPY VARCHAR2
424 ,x_msg_data OUT NOCOPY VARCHAR2
425 ,x_msg_count OUT NOCOPY NUMBER
426 ,p_claim_line_tbl IN claim_line_tbl_type
427 ,x_error_index OUT NOCOPY NUMBER
428 )
429 IS
430 L_API_NAME CONSTANT VARCHAR2(30) := 'Create_Claim_Line';
431 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
432 l_pvt_claim_line_rec OZF_CLAIM_LINE_PVT.claim_line_rec_type;
433 l_claim_LINE_id NUMBER;
434 l_claim_line_rec claim_line_rec_type;
435 l_error_index NUMBER;
436 l_pvt_claim_line_tbl OZF_CLAIM_LINE_PVT.claim_line_tbl_type ;
437 l_claim_line_tbl OZF_CLAIM_PUB.claim_line_tbl_type := p_claim_line_tbl;
438 BEGIN
439 SAVEPOINT Create_Claim_Line_Tbl;
440 -- Standard call to check for call compatibility.
441 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
442 p_api_version,
443 l_api_name,
444 G_PKG_NAME)
445 THEN
446 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
447 END IF;
448 -- Initialize message list if p_init_msg_list is set to TRUE.
449 IF FND_API.to_Boolean( p_init_msg_list )
450 THEN
451 FND_MSG_PUB.initialize;
452 END IF;
453 -- Debug Message
454 IF g_debug THEN
455 OZF_UTILITY_PVT.debug_message('Public API: ' || l_api_name || ' pub start');
456 END IF;
457 -- Initialize API return status to SUCCESS
458 x_return_status := FND_API.G_RET_STS_SUCCESS;
459 IF p_claim_line_tbl.count > 0 THEN
460 --
461 l_claim_line_tbl := p_claim_line_tbl;
462 FOR i IN p_claim_line_tbl.FIRST..p_claim_line_tbl.LAST LOOP
463 --
464 l_pvt_claim_line_tbl(i).claim_line_id := l_claim_line_tbl(i).claim_line_id ;
465 l_pvt_claim_line_tbl(i).object_version_number := l_claim_line_tbl(i).object_version_number;
466 l_pvt_claim_line_tbl(i).last_update_date := l_claim_line_tbl(i).last_update_date;
467 l_pvt_claim_line_tbl(i).last_updated_by := l_claim_line_tbl(i).last_updated_by ;
468 l_pvt_claim_line_tbl(i).creation_date := l_claim_line_tbl(i).creation_date ;
469 l_pvt_claim_line_tbl(i).created_by := l_claim_line_tbl(i).created_by ;
470 l_pvt_claim_line_tbl(i).last_update_login := l_claim_line_tbl(i).last_update_login;
471 l_pvt_claim_line_tbl(i).request_id := l_claim_line_tbl(i).request_id;
472 l_pvt_claim_line_tbl(i).program_application_id := l_claim_line_tbl(i).program_application_id;
473 l_pvt_claim_line_tbl(i).program_update_date := l_claim_line_tbl(i).program_update_date ;
474 l_pvt_claim_line_tbl(i).program_id := l_claim_line_tbl(i).program_id;
475 l_pvt_claim_line_tbl(i).created_from := l_claim_line_tbl(i).created_from;
476 l_pvt_claim_line_tbl(i).claim_id := l_claim_line_tbl(i).claim_id;
477 l_pvt_claim_line_tbl(i).line_number := l_claim_line_tbl(i).line_number;
478 l_pvt_claim_line_tbl(i).split_from_claim_line_id := l_claim_line_tbl(i).split_from_claim_line_id;
479 l_pvt_claim_line_tbl(i).amount := l_claim_line_tbl(i).amount;
480 l_pvt_claim_line_tbl(i).claim_currency_amount := l_claim_line_tbl(i).claim_currency_amount;
481 l_pvt_claim_line_tbl(i).acctd_amount := l_claim_line_tbl(i).acctd_amount;
482 l_pvt_claim_line_tbl(i).currency_code := l_claim_line_tbl(i).currency_code ;
483 l_pvt_claim_line_tbl(i).exchange_rate_type := l_claim_line_tbl(i).exchange_rate_type ;
484 l_pvt_claim_line_tbl(i).exchange_rate_date := l_claim_line_tbl(i).exchange_rate_date;
485 l_pvt_claim_line_tbl(i).exchange_rate := l_claim_line_tbl(i).exchange_rate;
486 l_pvt_claim_line_tbl(i).set_of_books_id := l_claim_line_tbl(i).set_of_books_id;
487 l_pvt_claim_line_tbl(i).valid_flag := l_claim_line_tbl(i).valid_flag;
488 l_pvt_claim_line_tbl(i).source_object_id := l_claim_line_tbl(i).source_object_id;
489 l_pvt_claim_line_tbl(i).source_object_class := l_claim_line_tbl(i).source_object_class;
490 l_pvt_claim_line_tbl(i).source_object_type_id := l_claim_line_tbl(i).source_object_type_id;
491 l_pvt_claim_line_tbl(i).source_object_line_id := l_claim_line_tbl(i).source_object_line_id;
492 l_pvt_claim_line_tbl(i).plan_id := l_claim_line_tbl(i).plan_id;
493 l_pvt_claim_line_tbl(i).offer_id := l_claim_line_tbl(i).offer_id;
494 l_pvt_claim_line_tbl(i).utilization_id := l_claim_line_tbl(i).utilization_id;
495 l_pvt_claim_line_tbl(i).payment_method := l_claim_line_tbl(i).payment_method;
496 l_pvt_claim_line_tbl(i).payment_reference_id := l_claim_line_tbl(i).payment_reference_id;
497 l_pvt_claim_line_tbl(i).payment_reference_number := l_claim_line_tbl(i).payment_reference_number;
498 l_pvt_claim_line_tbl(i).payment_reference_date := l_claim_line_tbl(i).payment_reference_date;
499 l_pvt_claim_line_tbl(i).voucher_id := l_claim_line_tbl(i).voucher_id;
500 l_pvt_claim_line_tbl(i).voucher_number := l_claim_line_tbl(i).voucher_number;
501 l_pvt_claim_line_tbl(i).payment_status := l_claim_line_tbl(i).payment_status;
502 l_pvt_claim_line_tbl(i).approved_flag := l_claim_line_tbl(i).approved_flag ;
503 l_pvt_claim_line_tbl(i).approved_date := l_claim_line_tbl(i).approved_date;
504 l_pvt_claim_line_tbl(i).approved_by := l_claim_line_tbl(i).approved_by ;
505 l_pvt_claim_line_tbl(i).settled_date := l_claim_line_tbl(i).settled_date;
506 l_pvt_claim_line_tbl(i).settled_by := l_claim_line_tbl(i).settled_by;
507 l_pvt_claim_line_tbl(i).performance_complete_flag := l_claim_line_tbl(i).performance_complete_flag;
508 l_pvt_claim_line_tbl(i).performance_attached_flag := l_claim_line_tbl(i).performance_attached_flag;
509 l_pvt_claim_line_tbl(i).item_id := l_claim_line_tbl(i).item_id;
510 l_pvt_claim_line_tbl(i).item_description := l_claim_line_tbl(i).item_description ;
511 l_pvt_claim_line_tbl(i).quantity := l_claim_line_tbl(i).quantity;
512 l_pvt_claim_line_tbl(i).quantity_uom := l_claim_line_tbl(i).quantity_uom;
513 l_pvt_claim_line_tbl(i).rate := l_claim_line_tbl(i).rate;
514 l_pvt_claim_line_tbl(i).activity_type := l_claim_line_tbl(i).activity_type;
515 l_pvt_claim_line_tbl(i).activity_id := l_claim_line_tbl(i).activity_id;
516 l_pvt_claim_line_tbl(i).related_cust_account_id := l_claim_line_tbl(i).related_cust_account_id;
517 l_pvt_claim_line_tbl(i).relationship_type := l_claim_line_tbl(i).relationship_type;
518 l_pvt_claim_line_tbl(i).earnings_associated_flag := l_claim_line_tbl(i).earnings_associated_flag;
519 l_pvt_claim_line_tbl(i).comments := l_claim_line_tbl(i).comments;
520 l_pvt_claim_line_tbl(i).tax_code := l_claim_line_tbl(i).tax_code;
521 l_pvt_claim_line_tbl(i).attribute_category := l_claim_line_tbl(i).attribute_category;
522 l_pvt_claim_line_tbl(i).attribute1 := l_claim_line_tbl(i).attribute1;
523 l_pvt_claim_line_tbl(i).attribute2 := l_claim_line_tbl(i).attribute2;
524 l_pvt_claim_line_tbl(i).attribute3 := l_claim_line_tbl(i).attribute3;
525 l_pvt_claim_line_tbl(i).attribute4 := l_claim_line_tbl(i).attribute4;
526 l_pvt_claim_line_tbl(i).attribute5 := l_claim_line_tbl(i).attribute5;
527 l_pvt_claim_line_tbl(i).attribute6 := l_claim_line_tbl(i).attribute6;
528 l_pvt_claim_line_tbl(i).attribute7 := l_claim_line_tbl(i).attribute7;
529 l_pvt_claim_line_tbl(i).attribute8 := l_claim_line_tbl(i).attribute8;
530 l_pvt_claim_line_tbl(i).attribute9 := l_claim_line_tbl(i).attribute9;
531 l_pvt_claim_line_tbl(i).attribute10 := l_claim_line_tbl(i).attribute10;
532 l_pvt_claim_line_tbl(i).attribute11 := l_claim_line_tbl(i).attribute11;
533 l_pvt_claim_line_tbl(i).attribute12 := l_claim_line_tbl(i).attribute12;
534 l_pvt_claim_line_tbl(i).attribute13 := l_claim_line_tbl(i).attribute13;
535 l_pvt_claim_line_tbl(i).attribute14 := l_claim_line_tbl(i).attribute14;
536 l_pvt_claim_line_tbl(i).attribute15 := l_claim_line_tbl(i).attribute15;
537 l_pvt_claim_line_tbl(i).org_id := l_claim_line_tbl(i).org_id ;
538 l_pvt_claim_line_tbl(i).update_from_tbl_flag := l_claim_line_tbl(i).update_from_tbl_flag;
539 l_pvt_claim_line_tbl(i).tax_action := l_claim_line_tbl(i).tax_action;
540 l_pvt_claim_line_tbl(i).sale_date := l_claim_line_tbl(i).sale_date;
541 l_pvt_claim_line_tbl(i).item_type := l_claim_line_tbl(i).item_type;
542 l_pvt_claim_line_tbl(i).tax_amount := l_claim_line_tbl(i).tax_amount;
543 l_pvt_claim_line_tbl(i).claim_curr_tax_amount := l_claim_line_tbl(i).claim_curr_tax_amount;
544 l_pvt_claim_line_tbl(i).activity_line_id := l_claim_line_tbl(i).activity_line_id;
545 l_pvt_claim_line_tbl(i).offer_type := l_claim_line_tbl(i).offer_type;
546 l_pvt_claim_line_tbl(i).prorate_earnings_flag := l_claim_line_tbl(i).prorate_earnings_flag;
547 l_pvt_claim_line_tbl(i).earnings_end_date := l_claim_line_tbl(i).earnings_end_date;
548 --12.1 Enhancement : Price Protection
549 l_pvt_claim_line_tbl(i).dpp_cust_account_id := l_claim_line_tbl(i).dpp_cust_account_id;
550
551 END LOOP;
552 END IF;
553
554 -- call to create_claim_line_tbl
555 Ozf_Claim_Line_Pvt.Create_Claim_Line_Tbl(
556 p_api_version => p_api_version
557 ,p_init_msg_list => FND_API.G_FALSE
558 ,P_commit => FND_API.G_FALSE
559 ,p_validation_level => p_validation_level
560 ,x_return_status => x_return_status
561 ,x_msg_data => x_msg_data
562 ,x_msg_count => x_msg_count
563 ,p_claim_line_tbl => l_pvt_claim_line_tbl
564 ,x_error_index => l_error_index);
565 IF g_debug THEN
566 ozf_utility_pvt.debug_message('return status for create_claim_line_tbl =>'||x_return_status);
567 END IF;
568 IF x_return_status = FND_API.G_RET_STS_ERROR then
569 RAISE FND_API.G_EXC_ERROR;
570 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
571 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
572 END IF;
573 -- Standard check for p_commit
574 IF FND_API.to_Boolean( p_commit )
575 THEN
576 COMMIT WORK;
577 END IF;
578 -- Debug Message
579 IF g_debug THEN
580 OZF_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'end');
581 END IF;
582 -- Standard call to get message count and if count is 1, get message info.
583 FND_MSG_PUB.Count_And_Get
584 (p_count => x_msg_count,
585 p_data => x_msg_data
586 );
587 EXCEPTION
588 WHEN OZF_Utility_PVT.resource_locked THEN
589 ROLLBACK TO Create_Claim_Line_Tbl;
590 x_return_status := FND_API.G_RET_STS_ERROR;
591 OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
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 );
597 WHEN FND_API.G_EXC_ERROR THEN
598 ROLLBACK TO Create_Claim_Line_Tbl;
599 x_return_status := FND_API.G_RET_STS_ERROR;
600 -- Standard call to get message count and if count=1, get the message
601 FND_MSG_PUB.Count_And_Get (
602 p_encoded => FND_API.G_FALSE,
603 p_count => x_msg_count,
604 p_data => x_msg_data
605 );
606 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
607 ROLLBACK TO Create_Claim_Line_Tbl;
608 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
609 -- Standard call to get message count and if count=1, get the message
610 FND_MSG_PUB.Count_And_Get (
611 p_encoded => FND_API.G_FALSE,
612 p_count => x_msg_count,
613 p_data => x_msg_data
614 );
615 WHEN OTHERS THEN
616 ROLLBACK TO Create_Claim_Line_Tbl;
617 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
618 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
619 THEN
620 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
621 END IF;
622 -- Standard call to get message count and if count=1, get the message
623 FND_MSG_PUB.Count_And_Get (
624 p_encoded => FND_API.G_FALSE,
625 p_count => x_msg_count,
626 p_data => x_msg_data
627 );
628 End Create_Claim_Line_Tbl;
629
630 --BEGIN OF UPDATE CLAIM
631 ---------------------------------------------------------------------
632 -- PROCEDURE
633 -- update_claim
634 --
635 -- PURPOSE
636 -- This procedure updates claim record by incrementing object version number
637 --
638 -- PARAMETERS
639 --
640 -- p_claim_line_tbl
641 -- x_object_version_number
642 -- x_return_status
643 -- p_claim_rec
644 -- NOTES
645 ---------------------------------------------------------------------
646 PROCEDURE Update_Claim(
647 p_api_version_number IN NUMBER,
648 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
649 p_commit IN VARCHAR2 := FND_API.G_FALSE,
650 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
651 x_return_status OUT NOCOPY VARCHAR2,
652 x_msg_count OUT NOCOPY NUMBER,
653 x_msg_data OUT NOCOPY VARCHAR2,
654 p_claim_rec IN claim_rec_type,
655 p_claim_line_tbl IN claim_line_tbl_type,
656 x_object_version_number OUT NOCOPY NUMBER
657 )
658 IS
659 L_API_NAME CONSTANT VARCHAR2(30) := 'Update_Claim';
660 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
661 l_pvt_claim_rec OZF_Claim_PVT.claim_rec_type;
662 l_claim_rec OZF_CLAIM_PUB.claim_rec_type := p_claim_rec;
663 l_claim_line_tbl claim_line_tbl_type:=p_claim_line_tbl ;
664 l_claim_line_rec claim_line_rec_type;
665 l_object_version_number NUMBER;
666 --l_pvt_claim_line_rec OZF_CLAIM_LINE_PVT.claim_line_rec_type;
667 --l_pvt_claim_line_tbl OZF_CLAIM_LINE_PVT.claim_line_tbl_type ;
668 x_object_version NUMBER ;
669 x_error_index NUMBER;
670 -- Added for Bug 6727136
671 --Fix for Bug 13346665
672 CURSOR Claim_Source_csr(p_claim_id in number) IS
673 SELECT NVL(source_object_class,'NULL')
674 FROM ozf_claims_all
675 WHERE claim_id = p_claim_id;
676
677 l_source_object_class VARCHAR2(30);
678
679 -- Fix for Bug 11932210
680 CURSOR c_item_uom(p_item_uom IN VARCHAR2,p_inventory_item_id IN NUMBER,p_org_id IN NUMBER)IS
681 SELECT a.uom_code
682 FROM mtl_units_of_measure a,
683 mtl_system_items c
684 WHERE c.primary_unit_of_measure = a.unit_of_measure
685 AND c.organization_id = p_org_id
686 AND c.inventory_item_id = p_inventory_item_id
687 AND uom_code = p_item_uom;
688
689 l_item_uom VARCHAR2(30);
690 l_inv_org_id NUMBER := FND_PROFILE.VALUE('QP_ORGANIZATION_ID');
691
692 BEGIN
693 -- Standard Start of API savepoint
694 SAVEPOINT SAVE_UPDATE_CLAIM_PUB;
695 -- Standard call to check for call compatibility.
696 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
697 p_api_version_number,
698 l_api_name,
699 G_PKG_NAME)
700 THEN
701 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
702 END IF;
703 -- Initialize message list if p_init_msg_list is set to TRUE.
704 IF FND_API.to_Boolean( p_init_msg_list )
705 THEN
706 FND_MSG_PUB.initialize;
707 END IF;
708
709 -- Debug Message
710 IF g_debug THEN
711 OZF_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'start');
712 END IF;
713
714 -- Initialize API return status to SUCCESS
715 x_return_status := FND_API.G_RET_STS_SUCCESS;
716 --
717 -- API body
718 --
719 -- Pass Public API values to Private API
720 l_pvt_claim_rec.claim_id:=l_claim_rec.claim_id;
721 l_pvt_claim_rec.object_version_number :=l_claim_rec.object_version_number;
722 l_pvt_claim_rec.last_update_date:=l_claim_rec.last_update_date;
723 l_pvt_claim_rec.last_updated_by:=l_claim_rec.last_updated_by;
724 l_pvt_claim_rec.creation_date:=l_claim_rec.creation_date;
725 l_pvt_claim_rec.created_by:=l_claim_rec.created_by;
726 l_pvt_claim_rec.last_update_login:=l_claim_rec.last_update_login;
727 l_pvt_claim_rec.request_id:=l_claim_rec.request_id;
728 l_pvt_claim_rec.program_application_id:=l_claim_rec.program_application_id;
729 l_pvt_claim_rec.program_update_date:=l_claim_rec.program_update_date;
730 l_pvt_claim_rec.program_id:=l_claim_rec.program_id;
731 l_pvt_claim_rec.created_from:=l_claim_rec.created_from;
732 l_pvt_claim_rec.batch_id:=l_claim_rec.batch_id;
733 l_pvt_claim_rec.claim_number:=l_claim_rec.claim_number;
734 l_pvt_claim_rec.claim_type_id:=l_claim_rec.claim_type_id;
735 l_pvt_claim_rec.claim_class:=l_claim_rec.claim_class;
736 l_pvt_claim_rec.claim_date:=l_claim_rec.claim_date;
737 l_pvt_claim_rec.due_date:=l_claim_rec.due_date;
738 l_pvt_claim_rec.owner_id:=l_claim_rec.owner_id;
739 l_pvt_claim_rec.history_event:=l_claim_rec.history_event;
740 l_pvt_claim_rec.history_event_date:=l_claim_rec.history_event_date;
741 l_pvt_claim_rec.history_event_description:=l_claim_rec.history_event_description;
742 l_pvt_claim_rec.split_from_claim_id:=l_claim_rec.split_from_claim_id;
743 l_pvt_claim_rec.duplicate_claim_id:=l_claim_rec.duplicate_claim_id;
744 l_pvt_claim_rec.split_date:=l_claim_rec.split_date;
745 l_pvt_claim_rec.root_claim_id:=l_claim_rec.root_claim_id;
746 l_pvt_claim_rec.amount:=l_claim_rec.amount;
747 l_pvt_claim_rec.amount_adjusted:=l_claim_rec.amount_adjusted;
748 l_pvt_claim_rec.amount_remaining:=l_claim_rec.amount_remaining;
749 l_pvt_claim_rec.amount_settled:=l_claim_rec.amount_settled;
750 l_pvt_claim_rec.acctd_amount:=l_claim_rec.acctd_amount;
751 l_pvt_claim_rec.acctd_amount_remaining:=l_claim_rec.acctd_amount_remaining;
752 l_pvt_claim_rec.tax_amount:=l_claim_rec.tax_amount;
753 l_pvt_claim_rec.tax_code:=l_claim_rec.tax_code;
754 l_pvt_claim_rec.tax_calculation_flag:=l_claim_rec.tax_calculation_flag;
755 l_pvt_claim_rec.currency_code:=l_claim_rec.currency_code;
756 l_pvt_claim_rec.exchange_rate_type:=l_claim_rec.exchange_rate_type;
757 l_pvt_claim_rec.exchange_rate_date:=l_claim_rec.exchange_rate_date;
758 l_pvt_claim_rec.exchange_rate:=l_claim_rec.exchange_rate;
759 l_pvt_claim_rec.set_of_books_id:=l_claim_rec.set_of_books_id;
760 l_pvt_claim_rec.original_claim_date:=l_claim_rec.original_claim_date;
761 l_pvt_claim_rec.source_object_id:=l_claim_rec.source_object_id;
762 l_pvt_claim_rec.source_object_class:=l_claim_rec.source_object_class;
763 l_pvt_claim_rec.source_object_type_id:=l_claim_rec.source_object_type_id;
764 l_pvt_claim_rec.source_object_number:=l_claim_rec.source_object_number;
765 l_pvt_claim_rec.cust_account_id:=l_claim_rec.cust_account_id;
766 l_pvt_claim_rec.cust_billto_acct_site_id:=l_claim_rec.cust_billto_acct_site_id;
767 l_pvt_claim_rec.cust_shipto_acct_site_id:=l_claim_rec.cust_shipto_acct_site_id;
768 l_pvt_claim_rec.location_id:=l_claim_rec.location_id;
769 l_pvt_claim_rec.pay_related_account_flag:=l_claim_rec.pay_related_account_flag;
770 l_pvt_claim_rec.related_cust_account_id:=l_claim_rec.related_cust_account_id;
771 l_pvt_claim_rec.related_site_use_id:=l_claim_rec.related_site_use_id;
772 l_pvt_claim_rec.relationship_type:=l_claim_rec.relationship_type;
773 l_pvt_claim_rec.vendor_id:=l_claim_rec.vendor_id;
774 l_pvt_claim_rec.vendor_site_id:=l_claim_rec.vendor_site_id;
775 l_pvt_claim_rec.reason_type:=l_claim_rec.reason_type;
776 l_pvt_claim_rec.reason_code_id:=l_claim_rec.reason_code_id;
777 l_pvt_claim_rec.task_template_group_id:=l_claim_rec.task_template_group_id;
778 l_pvt_claim_rec.status_code:=l_claim_rec.status_code;
779 l_pvt_claim_rec.user_status_id:=l_claim_rec.user_status_id;
780 l_pvt_claim_rec.sales_rep_id:=l_claim_rec.sales_rep_id;
781 l_pvt_claim_rec.collector_id:=l_claim_rec.collector_id;
782 l_pvt_claim_rec.contact_id:=l_claim_rec.contact_id;
783 l_pvt_claim_rec.broker_id:=l_claim_rec.broker_id;
784 l_pvt_claim_rec.territory_id:=l_claim_rec.territory_id;
785 l_pvt_claim_rec.customer_ref_date:=l_claim_rec.customer_ref_date;
786 l_pvt_claim_rec.customer_ref_number:=l_claim_rec.customer_ref_number;
787 l_pvt_claim_rec.assigned_to:=l_claim_rec.assigned_to;
788 l_pvt_claim_rec.receipt_id:=l_claim_rec.receipt_id;
789 l_pvt_claim_rec.receipt_number:=l_claim_rec.receipt_number;
790 l_pvt_claim_rec.doc_sequence_id:=l_claim_rec.doc_sequence_id;
791 l_pvt_claim_rec.doc_sequence_value:=l_claim_rec.doc_sequence_value;
792 l_pvt_claim_rec.gl_date:=l_claim_rec.gl_date;
793 l_pvt_claim_rec.payment_method:=l_claim_rec.payment_method;
794 l_pvt_claim_rec.voucher_id:=l_claim_rec.voucher_id;
795 l_pvt_claim_rec.voucher_number:=l_claim_rec.voucher_number;
796 l_pvt_claim_rec.payment_reference_id:=l_claim_rec.payment_reference_id;
797 l_pvt_claim_rec.payment_reference_number:=l_claim_rec.payment_reference_number;
798 l_pvt_claim_rec.payment_reference_date:=l_claim_rec.payment_reference_date;
799 l_pvt_claim_rec.payment_status:=l_claim_rec.payment_status;
800 l_pvt_claim_rec.approved_flag:=l_claim_rec.approved_flag;
801 l_pvt_claim_rec.approved_date:=l_claim_rec.approved_date;
802 l_pvt_claim_rec.approved_by:=l_claim_rec.approved_by;
803 l_pvt_claim_rec.settled_date:=l_claim_rec.settled_date;
804 l_pvt_claim_rec.settled_by:=l_claim_rec.settled_by;
805 l_pvt_claim_rec.effective_date:=l_claim_rec.effective_date;
806 l_pvt_claim_rec.custom_setup_id:=l_claim_rec.custom_setup_id;
807 l_pvt_claim_rec.task_id:=l_claim_rec.task_id;
808 l_pvt_claim_rec.country_id:=l_claim_rec.country_id;
809 l_pvt_claim_rec.order_type_id:=l_claim_rec.order_type_id;
810 l_pvt_claim_rec.comments:=l_claim_rec.comments;
811 l_pvt_claim_rec.attribute_category:=l_claim_rec.attribute_category;
812 l_pvt_claim_rec.attribute1:=l_claim_rec.attribute1;
813 l_pvt_claim_rec.attribute2:=l_claim_rec.attribute2;
814 l_pvt_claim_rec.attribute3:=l_claim_rec.attribute3;
815 l_pvt_claim_rec.attribute4:=l_claim_rec.attribute4;
816 l_pvt_claim_rec.attribute5:=l_claim_rec.attribute5;
817 l_pvt_claim_rec.attribute6:=l_claim_rec.attribute6;
818 l_pvt_claim_rec.attribute7:=l_claim_rec.attribute7;
819 l_pvt_claim_rec.attribute8:=l_claim_rec.attribute8;
820 l_pvt_claim_rec.attribute9:=l_claim_rec.attribute9;
821 l_pvt_claim_rec.attribute10:=l_claim_rec.attribute10;
822 l_pvt_claim_rec.attribute11:=l_claim_rec.attribute11;
823 l_pvt_claim_rec.attribute12:=l_claim_rec.attribute12;
824 l_pvt_claim_rec.attribute13:=l_claim_rec.attribute13;
825 l_pvt_claim_rec.attribute14:=l_claim_rec.attribute14;
826 l_pvt_claim_rec.attribute15:=l_claim_rec.attribute15;
827 l_pvt_claim_rec.deduction_attribute_category:=l_claim_rec.deduction_attribute_category;
828 l_pvt_claim_rec.deduction_attribute1:=l_claim_rec.deduction_attribute1;
829 l_pvt_claim_rec.deduction_attribute2:=l_claim_rec.deduction_attribute2;
830 l_pvt_claim_rec.deduction_attribute3:=l_claim_rec.deduction_attribute3;
831 l_pvt_claim_rec.deduction_attribute4:=l_claim_rec.deduction_attribute4;
832 l_pvt_claim_rec.deduction_attribute5:=l_claim_rec.deduction_attribute5;
833 l_pvt_claim_rec.deduction_attribute6:=l_claim_rec.deduction_attribute6;
834 l_pvt_claim_rec.deduction_attribute7:=l_claim_rec.deduction_attribute7;
835 l_pvt_claim_rec.deduction_attribute8:=l_claim_rec.deduction_attribute8;
836 l_pvt_claim_rec.deduction_attribute9:=l_claim_rec.deduction_attribute9;
837 l_pvt_claim_rec.deduction_attribute10:=l_claim_rec.deduction_attribute10;
838 l_pvt_claim_rec.deduction_attribute11:=l_claim_rec.deduction_attribute11;
839 l_pvt_claim_rec.deduction_attribute12:=l_claim_rec.deduction_attribute12;
840 l_pvt_claim_rec.deduction_attribute13:=l_claim_rec.deduction_attribute13;
841 l_pvt_claim_rec.deduction_attribute14:=l_claim_rec.deduction_attribute14;
842 l_pvt_claim_rec.deduction_attribute15:=l_claim_rec.deduction_attribute15;
843 l_pvt_claim_rec.org_id:=l_claim_rec.org_id;
844 l_pvt_claim_rec.write_off_flag := l_claim_rec.write_off_flag;
845 l_pvt_claim_rec.write_off_threshold_amount := l_claim_rec.write_off_threshold_amount;
846 l_pvt_claim_rec.under_write_off_threshold := l_claim_rec.under_write_off_threshold;
847 l_pvt_claim_rec.customer_reason := l_claim_rec.customer_reason;
848 l_pvt_claim_rec.ship_to_cust_account_id := l_claim_rec.ship_to_cust_account_id;
849 l_pvt_claim_rec.amount_applied := l_claim_rec.amount_applied;
850 l_pvt_claim_rec.applied_receipt_id := l_claim_rec.applied_receipt_id;
851 l_pvt_claim_rec.applied_receipt_number := l_claim_rec.applied_receipt_number;
852 l_pvt_claim_rec.wo_rec_trx_id := l_claim_rec.wo_rec_trx_id;
853 l_pvt_claim_rec.group_claim_id := l_claim_rec.group_claim_id;
854 l_pvt_claim_rec.appr_wf_item_key := l_claim_rec.appr_wf_item_key;
855 l_pvt_claim_rec.cstl_wf_item_key := l_claim_rec.cstl_wf_item_key;
856 l_pvt_claim_rec.batch_type := l_claim_rec.batch_type;
857
858 --
859 --l_pvt_claim_line_rec.update_from_tbl_flag:= l_claim_line_rec.update_from_tbl_flag;
860 OZF_Claim_PVT.Update_Claim(
861 p_api_version => p_api_version_number,
862 p_init_msg_list => FND_API.G_FALSE,
863 p_commit => FND_API.G_FALSE,
864 P_Validation_Level => p_Validation_Level,
865 x_return_status => x_return_status,
866 x_msg_count => x_msg_count,
867 x_msg_data => x_msg_data,
868 p_claim => l_pvt_claim_rec,
869 p_event => 'UPDATE',
870 p_mode => OZF_claim_Utility_pvt.G_AUTO_MODE,
871 x_object_version_number => x_object_version_number );
872 IF g_debug THEN
873 OZF_UTILITY_PVT.DEBUG_MESSAGE('OBJ VERSION NUMBER =>'||NVL(x_object_version_number,-99));
874 OZF_UTILITY_PVT.DEBUG_MESSAGE('RETURN STATUS FOR UPDATE CLAIM =>'||X_RETURN_STATUS);
875 END IF;
876 -- Check return status from the above procedure call
877 IF x_return_status = FND_API.G_RET_STS_ERROR then
878 RAISE FND_API.G_EXC_ERROR;
879 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
880 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
881 END IF;
882 --
883 --
884 -- In case claim id is not popluated.
885 IF l_claim_line_tbl.count > 0 THEN
886 FOR i IN l_claim_line_tbl.FIRST..l_claim_line_tbl.LAST LOOP
887 l_claim_line_tbl(i).claim_id := l_claim_rec.claim_id;
888 --//BKUNJAN -- Added Validation
889 IF (l_claim_line_tbl(i).item_id <> FND_API.g_miss_num AND l_claim_line_tbl(i).item_id IS NOT NULL) AND (l_claim_line_tbl(i).QUANTITY_UOM <> FND_API.g_miss_char AND l_claim_line_tbl(i).QUANTITY_UOM IS NOT NULL) THEN
890 -- Fix for Bug 11932210
891 OPEN c_item_uom(l_claim_line_tbl(i).QUANTITY_UOM
892 ,l_claim_line_tbl(i).item_id
893 ,l_inv_org_id);
894 FETCH c_item_uom INTO l_item_uom;
895 CLOSE c_item_uom;
896
897 IF(l_item_uom IS NOT NULL) THEN
898 l_claim_line_tbl(i).QUANTITY_UOM := l_item_uom;
899 ELSE
900 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
901 FND_MESSAGE.set_name('OZF', 'OZF_METR_INVALID_UOM');
902 --//Unit of Measurement is Invalid
903 FND_MSG_PUB.add;
904 END IF;
905 x_return_status := fnd_api.G_RET_STS_UNEXP_ERROR;
906 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
907 RETURN;
908 END IF;
909 END IF;
910 --End for Fix of Bug 11932210
911 END LOOP;
912 END IF;
913
914
915 OPEN Claim_Source_csr(l_claim_rec.claim_id);
916 FETCH Claim_Source_csr INTO l_source_object_class;
917 ClOSE Claim_Source_csr;
918
919 IF g_debug THEN
920 OZF_UTILITY_PVT.DEBUG_MESSAGE('In Public API l_source_object_class =>'||l_source_object_class);
921 OZF_UTILITY_PVT.DEBUG_MESSAGE('In Public API l_claim_rec.claim_id =>'||l_claim_rec.claim_id);
922 OZF_UTILITY_PVT.DEBUG_MESSAGE('In Public API l_claim_line_tbl.count =>'||l_claim_line_tbl.count);
923 END IF;
924 --Added for bug 6965694
925 -- Added for bug 7443072
926
927 IF (l_source_object_class NOT IN ('PPVENDOR','PPINCVENDOR')
928 OR ( l_source_object_class IN ('PPVENDOR','PPINCVENDOR') AND l_claim_line_tbl.count >1))
929 THEN
930 OZF_UTILITY_PVT.DEBUG_MESSAGE('Before Calling Update_Claim_Line_Tbl ');
931 Update_Claim_Line_Tbl(
932 p_api_version => p_api_version_number
933 ,p_init_msg_list => FND_API.G_FALSE
934 ,p_commit => FND_API.G_FALSE
935 ,P_Validation_Level => p_Validation_Level
936 ,x_return_status => x_return_status
937 ,x_msg_data => x_msg_data
938 ,x_msg_count => x_msg_count
939 ,p_claim_line_tbl => l_claim_line_tbl
940 ,p_change_object_version => FND_API.g_false -- Added For Fix
941 ,x_error_index => x_error_index);
942
943 OZF_UTILITY_PVT.DEBUG_MESSAGE('After Call Update_Claim_Line_Tbl ');
944 END IF;
945 --OZF_UTILITY_PVT.DEBUG_MESSAGE('OBJ VERSION =>'||NVL(x_object_version,-99));
946 IF g_debug THEN
947 OZF_UTILITY_PVT.DEBUG_MESSAGE('Return Status for Update claim line =>'||x_return_status);
948 END IF;
949 IF x_return_status = FND_API.G_RET_STS_ERROR then
950 RAISE FND_API.G_EXC_ERROR;
951 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
952 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
953 END IF;
954
955 -- Standard check for p_commit
956 IF FND_API.to_Boolean( p_commit )
957 THEN
958 COMMIT WORK;
959 END IF;
960 -- Debug Message
961 IF g_debug THEN
962 OZF_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'end');
963 END IF;
964 -- Standard call to get message count and if count is 1, get message info.
965 FND_MSG_PUB.Count_And_Get
966 (p_count => x_msg_count,
967 p_data => x_msg_data
968 );
969 EXCEPTION
970 WHEN OZF_Utility_PVT.resource_locked THEN
971 ROLLBACK TO SAVE_UPDATE_CLAIM_PUB;
972 x_return_status := FND_API.g_ret_sts_error;
973 OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
974 FND_MSG_PUB.Count_And_Get (
975 p_encoded => FND_API.G_FALSE,
976 p_count => x_msg_count,
977 p_data => x_msg_data
978 );
979 WHEN FND_API.G_EXC_ERROR THEN
980 ROLLBACK TO SAVE_UPDATE_CLAIM_PUB;
981 x_return_status := FND_API.G_RET_STS_ERROR;
982 -- Standard call to get message count and if count=1, get the message
983 FND_MSG_PUB.Count_And_Get (
984 p_encoded => FND_API.G_FALSE,
985 p_count => x_msg_count,
986 p_data => x_msg_data
987 );
988 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
989 ROLLBACK TO SAVE_UPDATE_CLAIM_PUB;
990 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
991 -- Standard call to get message count and if count=1, get the message
992 FND_MSG_PUB.Count_And_Get (
993 p_encoded => FND_API.G_FALSE,
994 p_count => x_msg_count,
995 p_data => x_msg_data
996 );
997 WHEN OTHERS THEN
998 ROLLBACK TO SAVE_UPDATE_CLAIM_PUB;
999 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1000 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1001 THEN
1002 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1003 END IF;
1004 -- Standard call to get message count and if count=1, get the message
1005 FND_MSG_PUB.Count_And_Get (
1006 p_encoded => FND_API.G_FALSE,
1007 p_count => x_msg_count,
1008 p_data => x_msg_data
1009 );
1010 End Update_Claim;
1011
1012 ---------------------------------------------------------------------
1013 -- PROCEDURE
1014 -- Update_Claim_Line_Tbl
1015 --
1016 -- PURPOSE
1017 -- This procedure updates claim lines
1018 --
1019 -- PARAMETERS
1020 -- p_claim_line_tbl
1021 -- p_change_object_version IN VARCHAR2 := FND_API.g_false
1022 -- x_error_index
1023 --
1024 --
1025 -- NOTES
1026 -- 10-Nov-2011 BKUNJAN Fix for Bug 13346665, Added cursor c_get_claim_line,
1027 -- Introduced validations for Item type and item.
1028 ---------------------------------------------------------------------
1029 PROCEDURE Update_Claim_Line_Tbl(
1030 p_api_version IN NUMBER
1031 ,p_init_msg_list IN VARCHAR2 := FND_API.g_false
1032 ,p_commit IN VARCHAR2 := FND_API.g_false
1033 ,p_validation_level IN NUMBER := FND_API.g_valid_level_full
1034 ,x_return_status OUT NOCOPY VARCHAR2
1035 ,x_msg_data OUT NOCOPY VARCHAR2
1036 ,x_msg_count OUT NOCOPY NUMBER
1037 ,p_claim_line_tbl IN claim_line_tbl_type
1038 ,p_change_object_version IN VARCHAR2 := FND_API.g_false
1039 ,x_error_index OUT NOCOPY NUMBER
1040 )
1041 IS
1042 L_API_NAME CONSTANT VARCHAR2(30) := 'Update_Claim_Line';
1043 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
1044 l_pvt_claim_line_rec OZF_CLAIM_LINE_PVT.claim_line_rec_type;
1045 l_claim_line_tbl OZF_CLAIM_PUB.claim_line_tbl_type:=p_claim_line_tbl;
1046 l_pvt_claim_line_tbl OZF_CLAIM_LINE_PVT.claim_line_tbl_type ;
1047 l_error_index NUMBER;
1048 l_temp_line_rec OZF_CLAIM_LINE_PVT.claim_line_rec_type;
1049
1050 CURSOR c_get_claim_line(cv_claim_line_id IN NUMBER) IS
1051 SELECT claim_id
1052 ,line_number
1053 ,split_from_claim_line_id
1054 ,amount
1055 ,claim_currency_amount
1056 ,acctd_amount
1057 ,currency_code
1058 ,exchange_rate_type
1059 ,exchange_rate_date
1060 ,exchange_rate
1061 ,set_of_books_id
1062 ,valid_flag
1063 ,source_object_id
1064 ,source_object_line_id
1065 ,source_object_class
1066 ,source_object_type_id
1067 ,plan_id
1068 ,offer_id
1069 ,utilization_id
1070 ,payment_method
1071 ,payment_reference_id
1072 ,payment_reference_number
1073 ,payment_reference_date
1074 ,voucher_id
1075 ,voucher_number
1076 ,payment_status
1077 ,approved_flag
1078 ,approved_date
1079 ,approved_by
1080 ,settled_date
1081 ,settled_by
1082 ,performance_complete_flag
1083 ,performance_attached_flag
1084 ,select_cust_children_flag
1085 ,item_id
1086 --,item_description
1087 ,quantity
1088 ,quantity_uom
1089 ,rate
1090 ,activity_type
1091 ,activity_id
1092 ,related_cust_account_id
1093 ,buy_group_cust_account_id
1094 ,relationship_type
1095 ,earnings_associated_flag
1096 ,comments
1097 ,tax_code
1098 ,credit_to
1099 ,attribute_category
1100 ,attribute1
1101 ,attribute2
1102 ,attribute3
1103 ,attribute4
1104 ,attribute5
1105 ,attribute6
1106 ,attribute7
1107 ,attribute8
1108 ,attribute9
1109 ,attribute10
1110 ,attribute11
1111 ,attribute12
1112 ,attribute13
1113 ,attribute14
1114 ,attribute15
1115 ,org_id
1116 ,sale_date
1117 ,item_type
1118 ,tax_amount
1119 ,claim_curr_tax_amount
1120 ,activity_line_id
1121 ,offer_type
1122 ,prorate_earnings_flag
1123 ,earnings_end_date
1124 ,buy_group_party_id
1125 ,acctd_tax_amount
1126 ,dpp_cust_account_id
1127 ,batch_line_id
1128 FROM ozf_claim_lines_all
1129 WHERE claim_line_id = cv_claim_line_id;
1130
1131 CURSOR c_inventory_item_id(p_inventory_item_id IN NUMBER,p_org_id IN NUMBER)IS
1132 SELECT inventory_item_id,NVL(description,concatenated_segments)
1133 FROM mtl_system_items_kfv
1134 WHERE inventory_item_id = p_inventory_item_id
1135 AND organization_id = p_org_id;
1136
1137 CURSOR c_category_id(p_category_id IN NUMBER) IS
1138 SELECT category_id,description
1139 FROM mtl_categories_v
1140 WHERE category_id = p_category_id;
1141
1142 CURSOR c_memo_line(p_memo_line_id IN NUMBER)IS
1143 SELECT memo_line_id,description
1144 FROM ar_memo_lines_vl
1145 WHERE memo_line_id = p_memo_line_id;
1146
1147 CURSOR c_media_channel(p_channel_id IN NUMBER)IS
1148 SELECT channel_id,description
1149 FROM ams_media_channels_vl
1150 WHERE channel_id = p_channel_id;
1151
1152 l_inv_org_id NUMBER;
1153 l_lookup_stat VARCHAR2(1); --To validate from lookups
1154 l_item_id NUMBER;
1155 BEGIN
1156 SAVEPOINT Update_Claim_Line_Tbl;
1157 -- Standard call to check for call compatibility.
1158 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1159 p_api_version,
1160 l_api_name,
1161 G_PKG_NAME)
1162 THEN
1163 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1164 END IF;
1165 -- Initialize message list if p_init_msg_list is set to TRUE.
1166 IF FND_API.to_Boolean( p_init_msg_list )
1167 THEN
1168 FND_MSG_PUB.initialize;
1169 END IF;
1170 -- Debug Message
1171 IF g_debug THEN
1172 OZF_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'start');
1173 END IF;
1174
1175 -- Initialize API return status to SUCCESS
1176 x_return_status := FND_API.G_RET_STS_SUCCESS;
1177 l_claim_line_tbl := p_claim_line_tbl;
1178
1179 IF p_claim_line_tbl.COUNT > 0 THEN
1180 FOR i IN p_claim_line_tbl.FIRST..p_claim_line_tbl.LAST LOOP
1181 --
1182 l_pvt_claim_line_tbl(i).claim_line_id := l_claim_line_tbl(i).claim_line_id;
1183
1184 OPEN c_get_claim_line(l_claim_line_tbl(i).claim_line_id);
1185 FETCH c_get_claim_line INTO l_pvt_claim_line_tbl(i).claim_id
1186 ,l_pvt_claim_line_tbl(i).line_number
1187 ,l_pvt_claim_line_tbl(i).split_from_claim_line_id
1188 ,l_pvt_claim_line_tbl(i).amount
1189 ,l_pvt_claim_line_tbl(i).claim_currency_amount
1190 ,l_pvt_claim_line_tbl(i).acctd_amount
1191 ,l_pvt_claim_line_tbl(i).currency_code
1192 ,l_pvt_claim_line_tbl(i).exchange_rate_type
1193 ,l_pvt_claim_line_tbl(i).exchange_rate_date
1194 ,l_pvt_claim_line_tbl(i).exchange_rate
1195 ,l_pvt_claim_line_tbl(i).set_of_books_id
1196 ,l_pvt_claim_line_tbl(i).valid_flag
1197 ,l_pvt_claim_line_tbl(i).source_object_id
1198 ,l_pvt_claim_line_tbl(i).source_object_line_id
1199 ,l_pvt_claim_line_tbl(i).source_object_class
1200 ,l_pvt_claim_line_tbl(i).source_object_type_id
1201 ,l_pvt_claim_line_tbl(i).plan_id
1202 ,l_pvt_claim_line_tbl(i).offer_id
1203 ,l_pvt_claim_line_tbl(i).utilization_id
1204 ,l_pvt_claim_line_tbl(i).payment_method
1205 ,l_pvt_claim_line_tbl(i).payment_reference_id
1206 ,l_pvt_claim_line_tbl(i).payment_reference_number
1207 ,l_pvt_claim_line_tbl(i).payment_reference_date
1208 ,l_pvt_claim_line_tbl(i).voucher_id
1209 ,l_pvt_claim_line_tbl(i).voucher_number
1210 ,l_pvt_claim_line_tbl(i).payment_status
1211 ,l_pvt_claim_line_tbl(i).approved_flag
1212 ,l_pvt_claim_line_tbl(i).approved_date
1213 ,l_pvt_claim_line_tbl(i).approved_by
1214 ,l_pvt_claim_line_tbl(i).settled_date
1215 ,l_pvt_claim_line_tbl(i).settled_by
1216 ,l_pvt_claim_line_tbl(i).performance_complete_flag
1217 ,l_pvt_claim_line_tbl(i).performance_attached_flag
1218 ,l_pvt_claim_line_tbl(i).select_cust_children_flag
1219 ,l_pvt_claim_line_tbl(i).item_id
1220 ,l_pvt_claim_line_tbl(i).quantity
1221 ,l_pvt_claim_line_tbl(i).quantity_uom
1222 ,l_pvt_claim_line_tbl(i).rate
1223 ,l_pvt_claim_line_tbl(i).activity_type
1224 ,l_pvt_claim_line_tbl(i).activity_id
1225 ,l_pvt_claim_line_tbl(i).related_cust_account_id
1226 ,l_pvt_claim_line_tbl(i).buy_group_cust_account_id
1227 ,l_pvt_claim_line_tbl(i).relationship_type
1228 ,l_pvt_claim_line_tbl(i).earnings_associated_flag
1229 ,l_pvt_claim_line_tbl(i).comments
1230 ,l_pvt_claim_line_tbl(i).tax_code
1231 ,l_pvt_claim_line_tbl(i).credit_to
1232 ,l_pvt_claim_line_tbl(i).attribute_category
1233 ,l_pvt_claim_line_tbl(i).attribute1
1234 ,l_pvt_claim_line_tbl(i).attribute2
1235 ,l_pvt_claim_line_tbl(i).attribute3
1236 ,l_pvt_claim_line_tbl(i).attribute4
1237 ,l_pvt_claim_line_tbl(i).attribute5
1238 ,l_pvt_claim_line_tbl(i).attribute6
1239 ,l_pvt_claim_line_tbl(i).attribute7
1240 ,l_pvt_claim_line_tbl(i).attribute8
1241 ,l_pvt_claim_line_tbl(i).attribute9
1242 ,l_pvt_claim_line_tbl(i).attribute10
1243 ,l_pvt_claim_line_tbl(i).attribute11
1244 ,l_pvt_claim_line_tbl(i).attribute12
1245 ,l_pvt_claim_line_tbl(i).attribute13
1246 ,l_pvt_claim_line_tbl(i).attribute14
1247 ,l_pvt_claim_line_tbl(i).attribute15
1248 ,l_pvt_claim_line_tbl(i).org_id
1249 ,l_pvt_claim_line_tbl(i).sale_date
1250 ,l_pvt_claim_line_tbl(i).item_type
1251 ,l_pvt_claim_line_tbl(i).tax_amount
1252 ,l_pvt_claim_line_tbl(i).claim_curr_tax_amount
1253 ,l_pvt_claim_line_tbl(i).activity_line_id
1254 ,l_pvt_claim_line_tbl(i).offer_type
1255 ,l_pvt_claim_line_tbl(i).prorate_earnings_flag
1256 ,l_pvt_claim_line_tbl(i).earnings_end_date
1257 ,l_pvt_claim_line_tbl(i).buy_group_party_id
1258 ,l_pvt_claim_line_tbl(i).acctd_tax_amount
1259 ,l_pvt_claim_line_tbl(i).dpp_cust_account_id
1260 ,l_pvt_claim_line_tbl(i).batch_line_id;
1261 CLOSE c_get_claim_line;
1262
1263
1264 IF l_claim_line_tbl(i).object_version_number is null then
1265 l_pvt_claim_line_tbl(i).object_version_number := FND_API.G_MISS_NUM;
1266 ELSE
1267 l_pvt_claim_line_tbl(i).object_version_number :=l_claim_line_tbl(i).object_version_number;
1268 END IF;
1269
1270 IF l_claim_line_tbl(i).last_update_date is null then
1271 l_pvt_claim_line_tbl(i).last_update_date := FND_API.G_MISS_DATE;
1272 ELSE
1273 l_pvt_claim_line_tbl(i).last_update_date :=l_claim_line_tbl(i).last_update_date;
1274 END IF;
1275
1276 IF l_claim_line_tbl(i).last_updated_by is null then
1277 l_pvt_claim_line_tbl(i).last_updated_by := FND_API.G_MISS_NUM;
1278 ELSE
1279 l_pvt_claim_line_tbl(i).last_updated_by :=l_claim_line_tbl(i).last_updated_by;
1280 END IF;
1281
1282 IF l_claim_line_tbl(i).creation_date is null then
1283 l_pvt_claim_line_tbl(i).creation_date := FND_API.G_MISS_DATE;
1284 ELSE
1285 l_pvt_claim_line_tbl(i).creation_date :=l_claim_line_tbl(i).creation_date;
1286 END IF;
1287
1288 IF l_claim_line_tbl(i).created_by is null then
1289 l_pvt_claim_line_tbl(i).created_by := FND_API.G_MISS_NUM;
1290 ELSE
1291 l_pvt_claim_line_tbl(i).created_by :=l_claim_line_tbl(i).created_by;
1292 END IF;
1293
1294 IF l_claim_line_tbl(i).last_update_login is null then
1295 l_pvt_claim_line_tbl(i).last_update_login := FND_API.G_MISS_NUM;
1296 ELSE
1297 l_pvt_claim_line_tbl(i).last_update_login :=l_claim_line_tbl(i).last_update_login;
1298 END IF;
1299
1300 IF l_claim_line_tbl(i).request_id is null then
1301 l_pvt_claim_line_tbl(i).request_id := FND_API.G_MISS_NUM;
1302 ELSE
1303 l_pvt_claim_line_tbl(i).request_id :=l_claim_line_tbl(i).request_id;
1304 END IF;
1305
1306 IF l_claim_line_tbl(i).program_application_id is null then
1307 l_pvt_claim_line_tbl(i).program_application_id := FND_API.G_MISS_NUM;
1308 ELSE
1309 l_pvt_claim_line_tbl(i).program_application_id :=l_claim_line_tbl(i).program_application_id;
1310 END IF;
1311
1312 IF l_claim_line_tbl(i).program_update_date is null then
1313 l_pvt_claim_line_tbl(i).program_update_date := FND_API.G_MISS_DATE;
1314 ELSE
1315 l_pvt_claim_line_tbl(i).program_update_date :=l_claim_line_tbl(i).program_update_date;
1316 END IF;
1317
1318 IF l_claim_line_tbl(i).program_id is null then
1319 l_pvt_claim_line_tbl(i).program_id := FND_API.G_MISS_NUM;
1320 ELSE
1321 l_pvt_claim_line_tbl(i).program_id :=l_claim_line_tbl(i).program_id;
1322 END IF;
1323
1324 IF l_claim_line_tbl(i).created_from is null then
1325 l_pvt_claim_line_tbl(i).created_from := FND_API.G_MISS_CHAR;
1326 ELSE
1327 l_pvt_claim_line_tbl(i).created_from :=l_claim_line_tbl(i).created_from;
1328 END IF;
1329
1330 IF l_claim_line_tbl(i).claim_id IS NOT NULL THEN
1331 l_pvt_claim_line_tbl(i).claim_id :=l_claim_line_tbl(i).claim_id;
1332 END IF;
1333
1334 IF l_claim_line_tbl(i).line_number IS NOT NULL THEN
1335 l_pvt_claim_line_tbl(i).line_number :=l_claim_line_tbl(i).line_number;
1336 END IF;
1337
1338 IF l_claim_line_tbl(i).split_from_claim_line_id IS NOT NULL THEN
1339 l_pvt_claim_line_tbl(i).split_from_claim_line_id :=l_claim_line_tbl(i).split_from_claim_line_id;
1340 END IF;
1341
1342 IF l_claim_line_tbl(i).amount IS NOT NULL THEN
1343 l_pvt_claim_line_tbl(i).amount :=l_claim_line_tbl(i).amount;
1344 END IF;
1345
1346 IF l_claim_line_tbl(i).claim_currency_amount IS NOT NULL THEN
1347 l_pvt_claim_line_tbl(i).claim_currency_amount :=l_claim_line_tbl(i).claim_currency_amount;
1348 END IF;
1349
1350 IF l_claim_line_tbl(i).acctd_amount IS NOT NULL THEN
1351 l_pvt_claim_line_tbl(i).acctd_amount :=l_claim_line_tbl(i).acctd_amount;
1352 END IF;
1353
1354 IF l_claim_line_tbl(i).currency_code IS NOT NULL THEN
1355 l_pvt_claim_line_tbl(i).currency_code :=l_claim_line_tbl(i).currency_code;
1356 END IF;
1357
1358 IF l_claim_line_tbl(i).exchange_rate_type IS NOT NULL THEN
1359 l_pvt_claim_line_tbl(i).exchange_rate_type :=l_claim_line_tbl(i).exchange_rate_type;
1360 END IF;
1361
1362 IF l_claim_line_tbl(i).exchange_rate_date IS NOT NULL THEN
1363 l_pvt_claim_line_tbl(i).exchange_rate_date :=l_claim_line_tbl(i).exchange_rate_date;
1364 END IF;
1365
1366 IF l_claim_line_tbl(i).exchange_rate IS NOT NULL THEN
1367 l_pvt_claim_line_tbl(i).exchange_rate :=l_claim_line_tbl(i).exchange_rate;
1368 END IF;
1369
1370 IF l_claim_line_tbl(i).set_of_books_id IS NOT NULL THEN
1371 l_pvt_claim_line_tbl(i).set_of_books_id :=l_claim_line_tbl(i).set_of_books_id;
1372 END IF;
1373
1374 IF l_claim_line_tbl(i).valid_flag IS NOT NULL THEN
1375 l_pvt_claim_line_tbl(i).valid_flag :=l_claim_line_tbl(i).valid_flag;
1376 END IF;
1377
1378 IF l_claim_line_tbl(i).source_object_id IS NOT NULL THEN
1379 l_pvt_claim_line_tbl(i).source_object_id :=l_claim_line_tbl(i).source_object_id;
1380 END IF;
1381
1382 IF l_claim_line_tbl(i).source_object_class IS NOT NULL THEN
1383 l_pvt_claim_line_tbl(i).source_object_class :=l_claim_line_tbl(i).source_object_class;
1384 END IF;
1385
1386 IF l_claim_line_tbl(i).source_object_type_id IS NOT NULL THEN
1387 l_pvt_claim_line_tbl(i).source_object_type_id :=l_claim_line_tbl(i).source_object_type_id ;
1388 END IF;
1389
1390 IF l_claim_line_tbl(i).source_object_line_id IS NOT NULL THEN
1391 l_pvt_claim_line_tbl(i).source_object_line_id :=l_claim_line_tbl(i).source_object_line_id;
1392 END IF;
1393
1394 IF l_claim_line_tbl(i).plan_id IS NOT NULL THEN
1395 l_pvt_claim_line_tbl(i).plan_id :=l_claim_line_tbl(i).plan_id;
1396 END IF;
1397
1398 IF l_claim_line_tbl(i).offer_id IS NOT NULL THEN
1399 l_pvt_claim_line_tbl(i).offer_id :=l_claim_line_tbl(i).offer_id;
1400 END IF;
1401
1402 IF l_claim_line_tbl(i).utilization_id IS NOT NULL THEN
1403 l_pvt_claim_line_tbl(i).utilization_id :=l_claim_line_tbl(i).utilization_id;
1404 END IF;
1405
1406 IF l_claim_line_tbl(i).payment_method IS NOT NULL THEN
1407 l_pvt_claim_line_tbl(i).payment_method :=l_claim_line_tbl(i).payment_method;
1408 END IF;
1409
1410 IF l_claim_line_tbl(i).payment_reference_id IS NOT NULL THEN
1411 l_pvt_claim_line_tbl(i).payment_reference_id :=l_claim_line_tbl(i).payment_reference_id;
1412 END IF;
1413
1414 IF l_claim_line_tbl(i).payment_reference_number IS NOT NULL THEN
1415 l_pvt_claim_line_tbl(i).payment_reference_number :=l_claim_line_tbl(i).payment_reference_number;
1416 END IF;
1417
1418 IF l_claim_line_tbl(i).payment_reference_date IS NOT NULL THEN
1419 l_pvt_claim_line_tbl(i).payment_reference_date :=l_claim_line_tbl(i).payment_reference_date;
1420 END IF;
1421
1422 IF l_claim_line_tbl(i).voucher_id IS NOT NULL THEN
1423 l_pvt_claim_line_tbl(i).voucher_id :=l_claim_line_tbl(i).voucher_id;
1424 END IF;
1425
1426 IF l_claim_line_tbl(i).voucher_number IS NOT NULL THEN
1427 l_pvt_claim_line_tbl(i).voucher_number :=l_claim_line_tbl(i).voucher_number;
1428 END IF;
1429
1430 IF l_claim_line_tbl(i).payment_status IS NOT NULL THEN
1431 l_pvt_claim_line_tbl(i).payment_status :=l_claim_line_tbl(i).payment_status;
1432 END IF;
1433
1434 IF l_claim_line_tbl(i).approved_flag IS NOT NULL THEN
1435 l_pvt_claim_line_tbl(i).approved_flag :=l_claim_line_tbl(i).approved_flag;
1436 END IF;
1437
1438 IF l_claim_line_tbl(i).approved_date IS NOT NULL THEN
1439 l_pvt_claim_line_tbl(i).approved_date :=l_claim_line_tbl(i).approved_date;
1440 END IF;
1441
1442 IF l_claim_line_tbl(i).approved_by IS NOT NULL THEN
1443 l_pvt_claim_line_tbl(i).approved_by :=l_claim_line_tbl(i).approved_by;
1444 END IF;
1445
1446 IF l_claim_line_tbl(i).settled_date IS NOT NULL THEN
1447 l_pvt_claim_line_tbl(i).settled_date :=l_claim_line_tbl(i).settled_date;
1448 END IF;
1449
1450 IF l_claim_line_tbl(i).settled_by IS NOT NULL THEN
1451 l_pvt_claim_line_tbl(i).settled_by :=l_claim_line_tbl(i).settled_by ;
1452 END IF;
1453
1454 IF l_claim_line_tbl(i).performance_complete_flag IS NOT NULL THEN
1455 l_pvt_claim_line_tbl(i).performance_complete_flag :=l_claim_line_tbl(i).performance_complete_flag;
1456 END IF;
1457
1458 IF l_claim_line_tbl(i).performance_attached_flag IS NOT NULL THEN
1459 l_pvt_claim_line_tbl(i).performance_attached_flag :=l_claim_line_tbl(i).performance_attached_flag;
1460 END IF;
1461
1462
1463 IF l_claim_line_tbl(i).item_type IS NOT NULL THEN
1464 l_lookup_stat :=OZF_UTILITY_PVT.check_lookup_exists(
1465 p_lookup_table_name =>'OZF_LOOKUPS'
1466 ,p_lookup_type =>'OZF_CLAIM_LINE_ITEM_TYPE'
1467 ,p_lookup_code => l_claim_line_tbl(i).item_type);
1468
1469 IF l_lookup_stat = FND_API.g_false THEN
1470 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1471 FND_MESSAGE.set_name('OZF', 'OZF_INVALID_ITEM_TYPE');
1472 --//Item type provided is invalid, Please provide a valid item type.
1473 FND_MSG_PUB.add;
1474 END IF;
1475 x_return_status := fnd_api.g_ret_sts_error;
1476 RETURN;
1477 END IF;
1478 l_pvt_claim_line_tbl(i).item_type :=l_claim_line_tbl(i).item_type;
1479 END IF;
1480
1481 IF l_claim_line_tbl(i).item_id IS NOT NULL THEN
1482 IF l_pvt_claim_line_tbl(i).item_type = 'PRODUCT' THEN
1483 l_item_id := NULL;
1484 l_inv_org_id := FND_PROFILE.VALUE('QP_ORGANIZATION_ID');
1485 OPEN c_inventory_item_id( l_claim_line_tbl(i).item_id,l_inv_org_id);
1486 FETCH c_inventory_item_id INTO l_item_id,l_pvt_claim_line_tbl(i).item_description;
1487 CLOSE c_inventory_item_id;
1488
1489 IF l_item_id IS NULL THEN
1490 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1491 FND_MESSAGE.set_name('OZF', 'OZF_INVALID_INVENTORY_ITEM_ID');
1492 --//Inventory item identifier provided is Invalid.
1493 FND_MSG_PUB.add;
1494 END IF;
1495 x_return_status := fnd_api.g_ret_sts_error;
1496 RETURN;
1497 END IF;
1498 l_pvt_claim_line_tbl(i).item_id := l_item_id;
1499
1500 ELSIF l_pvt_claim_line_tbl(i).item_type = 'FAMILY' THEN
1501 l_item_id := NULL;
1502 OPEN c_category_id( l_claim_line_tbl(i).item_id);
1503 FETCH c_category_id INTO l_item_id,l_pvt_claim_line_tbl(i).item_description;
1504 CLOSE c_category_id;
1505
1506 --//Fix for bug 13398807
1507 --IF l_pvt_claim_line_tbl(i).item_id IS NULL THEN
1508 IF l_item_id IS NULL THEN
1509 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1510 FND_MESSAGE.set_name('OZF', 'OZF_INVALID_CATEGORY_ID');
1511 --//Item Category identifier provided is Invalid.
1512 FND_MSG_PUB.add;
1513 END IF;
1514 x_return_status := fnd_api.g_ret_sts_error;
1515 RETURN;
1516 END IF;
1517 l_pvt_claim_line_tbl(i).item_id := l_item_id;
1518
1519 ELSIF l_pvt_claim_line_tbl(i).item_type = 'MEDIA' THEN
1520 l_item_id := NULL;
1521 OPEN c_media_channel( l_claim_line_tbl(i).item_id);
1522 FETCH c_media_channel INTO l_item_id,l_pvt_claim_line_tbl(i).item_description;
1523 CLOSE c_media_channel;
1524
1525 IF l_item_id IS NULL THEN
1526 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1527 FND_MESSAGE.set_name('OZF', 'OZF_INVALID_MEDIA_CHANNEL_ID');
1528 --//Media channel identifier provided is Invalid.
1529 FND_MSG_PUB.add;
1530 END IF;
1531 x_return_status := fnd_api.g_ret_sts_error;
1532 RETURN;
1533 END IF;
1534 l_pvt_claim_line_tbl(i).item_id := l_item_id;
1535
1536 ELSIF l_pvt_claim_line_tbl(i).item_type = 'MEMO_LINE' THEN
1537 l_item_id := NULL;
1538 OPEN c_memo_line( l_claim_line_tbl(i).item_id);
1539 FETCH c_memo_line INTO l_item_id,l_pvt_claim_line_tbl(i).item_description;
1540 CLOSE c_memo_line;
1541
1542 IF l_item_id IS NULL THEN
1543 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1544 FND_MESSAGE.set_name('OZF', 'OZF_INVALID_MEMO_LINE_ID');
1545 --//Memo line identifier provided is Invalid.
1546 FND_MSG_PUB.add;
1547 END IF;
1548 x_return_status := fnd_api.g_ret_sts_error;
1549 RETURN;
1550 END IF;
1551 l_pvt_claim_line_tbl(i).item_id := l_item_id;
1552 END IF;
1553 END IF;
1554
1555 IF l_claim_line_tbl(i).quantity IS NOT NULL THEN
1556 l_pvt_claim_line_tbl(i).quantity :=l_claim_line_tbl(i).quantity;
1557 END IF;
1558
1559 IF l_claim_line_tbl(i).quantity_uom IS NOT NULL THEN
1560 l_pvt_claim_line_tbl(i).quantity_uom :=l_claim_line_tbl(i).quantity_uom;
1561 END IF;
1562
1563 IF l_claim_line_tbl(i).rate IS NOT NULL THEN
1564 l_pvt_claim_line_tbl(i).rate :=l_claim_line_tbl(i).rate;
1565 END IF;
1566
1567 IF l_claim_line_tbl(i).activity_type IS NOT NULL THEN
1568 l_pvt_claim_line_tbl(i).activity_type :=l_claim_line_tbl(i).activity_type;
1569 END IF;
1570
1571 IF l_claim_line_tbl(i).activity_id IS NOT NULL THEN
1572 l_pvt_claim_line_tbl(i).activity_id :=l_claim_line_tbl(i).activity_id;
1573 END IF;
1574
1575 IF l_claim_line_tbl(i).related_cust_account_id IS NOT NULL THEN
1576 l_pvt_claim_line_tbl(i).related_cust_account_id :=l_claim_line_tbl(i).related_cust_account_id;
1577 END IF;
1578
1579 IF l_claim_line_tbl(i).relationship_type IS NOT NULL THEN
1580 l_pvt_claim_line_tbl(i).relationship_type :=l_claim_line_tbl(i).relationship_type;
1581 END IF;
1582
1583 IF l_claim_line_tbl(i).earnings_associated_flag IS NOT NULL THEN
1584 l_pvt_claim_line_tbl(i).earnings_associated_flag :=l_claim_line_tbl(i).earnings_associated_flag;
1585 END IF;
1586
1587 IF l_claim_line_tbl(i).comments IS NOT NULL THEN
1588 l_pvt_claim_line_tbl(i).comments :=l_claim_line_tbl(i).comments;
1589 END IF;
1590
1591 IF l_claim_line_tbl(i).tax_code IS NOT NULL THEN
1592 l_pvt_claim_line_tbl(i).tax_code :=l_claim_line_tbl(i).tax_code;
1593 END IF;
1594
1595 IF l_claim_line_tbl(i).attribute_category IS NOT NULL THEN
1596 l_pvt_claim_line_tbl(i).attribute_category :=l_claim_line_tbl(i).attribute_category;
1597 END IF;
1598
1599 IF l_claim_line_tbl(i).attribute1 IS NOT NULL THEN
1600 l_pvt_claim_line_tbl(i).attribute1 :=l_claim_line_tbl(i).attribute1;
1601 END IF;
1602
1603 IF l_claim_line_tbl(i).attribute2 IS NOT NULL THEN
1604 l_pvt_claim_line_tbl(i).attribute2 :=l_claim_line_tbl(i).attribute2;
1605 END IF;
1606
1607 IF l_claim_line_tbl(i).attribute3 IS NOT NULL THEN
1608 l_pvt_claim_line_tbl(i).attribute3 :=l_claim_line_tbl(i).attribute3;
1609 END IF;
1610
1611 IF l_claim_line_tbl(i).attribute4 IS NOT NULL THEN
1612 l_pvt_claim_line_tbl(i).attribute4 :=l_claim_line_tbl(i).attribute4;
1613 END IF;
1614
1615 IF l_claim_line_tbl(i).attribute5 IS NOT NULL THEN
1616 l_pvt_claim_line_tbl(i).attribute5 :=l_claim_line_tbl(i).attribute5;
1617 END IF;
1618
1619 IF l_claim_line_tbl(i).attribute6 IS NOT NULL THEN
1620 l_pvt_claim_line_tbl(i).attribute6 :=l_claim_line_tbl(i).attribute6;
1621 END IF;
1622
1623 IF l_claim_line_tbl(i).attribute7 IS NOT NULL THEN
1624 l_pvt_claim_line_tbl(i).attribute7 :=l_claim_line_tbl(i).attribute7;
1625 END IF;
1626
1627 IF l_claim_line_tbl(i).attribute8 IS NOT NULL THEN
1628 l_pvt_claim_line_tbl(i).attribute8 :=l_claim_line_tbl(i).attribute8;
1629 END IF;
1630
1631 IF l_claim_line_tbl(i).attribute9 IS NOT NULL THEN
1632 l_pvt_claim_line_tbl(i).attribute9 :=l_claim_line_tbl(i).attribute9;
1633 END IF;
1634
1635 IF l_claim_line_tbl(i).attribute10 IS NOT NULL THEN
1636 l_pvt_claim_line_tbl(i).attribute10 :=l_claim_line_tbl(i).attribute10;
1637 END IF;
1638
1639 IF l_claim_line_tbl(i).attribute11 IS NOT NULL THEN
1640 l_pvt_claim_line_tbl(i).attribute11 :=l_claim_line_tbl(i).attribute11;
1641 END IF;
1642
1643 IF l_claim_line_tbl(i).attribute12 IS NOT NULL THEN
1644 l_pvt_claim_line_tbl(i).attribute12 :=l_claim_line_tbl(i).attribute12;
1645 END IF;
1646
1647 IF l_claim_line_tbl(i).attribute13 IS NOT NULL THEN
1648 l_pvt_claim_line_tbl(i).attribute13 :=l_claim_line_tbl(i).attribute13;
1649 END IF;
1650
1651 IF l_claim_line_tbl(i).attribute14 IS NOT NULL THEN
1652 l_pvt_claim_line_tbl(i).attribute14 :=l_claim_line_tbl(i).attribute14;
1653 END IF;
1654
1655 IF l_claim_line_tbl(i).attribute15 IS NOT NULL THEN
1656 l_pvt_claim_line_tbl(i).attribute15 :=l_claim_line_tbl(i).attribute15;
1657 END IF;
1658
1659 IF l_claim_line_tbl(i).org_id IS NOT NULL THEN
1660 l_pvt_claim_line_tbl(i).org_id :=l_claim_line_tbl(i).org_id;
1661 END IF;
1662
1663 IF l_claim_line_tbl(i).update_from_tbl_flag IS NOT NULL THEN
1664 l_pvt_claim_line_tbl(i).update_from_tbl_flag :=l_claim_line_tbl(i).update_from_tbl_flag;
1665 END IF;
1666
1667 IF l_claim_line_tbl(i).tax_action IS NOT NULL THEN
1668 l_pvt_claim_line_tbl(i).tax_action :=l_claim_line_tbl(i).tax_action;
1669 END IF;
1670
1671 IF l_claim_line_tbl(i).sale_date IS NOT NULL THEN
1672 l_pvt_claim_line_tbl(i).sale_date :=l_claim_line_tbl(i).sale_date;
1673 END IF;
1674
1675 IF l_claim_line_tbl(i).tax_amount IS NOT NULL THEN
1676 l_pvt_claim_line_tbl(i).tax_amount :=l_claim_line_tbl(i).tax_amount;
1677 END IF;
1678
1679 IF l_claim_line_tbl(i).claim_curr_tax_amount IS NOT NULL THEN
1680 l_pvt_claim_line_tbl(i).claim_curr_tax_amount :=l_claim_line_tbl(i).claim_curr_tax_amount;
1681 END IF;
1682
1683 IF l_claim_line_tbl(i).activity_line_id IS NOT NULL THEN
1684 l_pvt_claim_line_tbl(i).activity_line_id :=l_claim_line_tbl(i).activity_line_id;
1685 END IF;
1686
1687 IF l_claim_line_tbl(i).offer_type IS NOT NULL THEN
1688 l_pvt_claim_line_tbl(i).offer_type :=l_claim_line_tbl(i).offer_type;
1689 END IF;
1690
1691 IF l_claim_line_tbl(i).prorate_earnings_flag IS NOT NULL THEN
1692 l_pvt_claim_line_tbl(i).prorate_earnings_flag :=l_claim_line_tbl(i).prorate_earnings_flag;
1693 END IF;
1694
1695 IF l_claim_line_tbl(i).earnings_end_date IS NOT NULL THEN
1696 l_pvt_claim_line_tbl(i).earnings_end_date :=l_claim_line_tbl(i).earnings_end_date;
1697 END IF;
1698 --12.1 Enhancement : Price Protection
1699 IF l_claim_line_tbl(i).dpp_cust_account_id IS NOT NULL THEN
1700 l_pvt_claim_line_tbl(i).dpp_cust_account_id :=l_claim_line_tbl(i).dpp_cust_account_id;
1701 END IF;
1702
1703 END LOOP;
1704 END IF;
1705
1706 -- Call to Update claim line tbl.
1707 Ozf_Claim_Line_Pvt.Update_Claim_line_Tbl(
1708 p_api_version => p_api_version
1709 ,p_init_msg_list => FND_API.G_FALSE
1710 ,p_commit => FND_API.G_FALSE
1711 ,P_Validation_Level => p_Validation_Level
1712 ,x_return_status => x_return_status
1713 ,x_msg_data => x_msg_data
1714 ,x_msg_count => x_msg_count
1715 ,p_claim_line_tbl => l_pvt_claim_line_tbl
1716 ,p_change_object_version => FND_API.g_false
1717 ,x_error_index => l_error_index );
1718 IF g_debug THEN
1719 OZF_UTILITY_PVT.DEBUG_MESSAGE('sTATUS FOR Update claim line =>'||x_return_status);
1720 END IF;
1721 IF x_return_status = FND_API.G_RET_STS_ERROR then
1722 RAISE FND_API.G_EXC_ERROR;
1723 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
1724 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1725 END IF;
1726 --Standard check for p_commit
1727 IF FND_API.to_Boolean( p_commit )
1728 THEN
1729 COMMIT WORK;
1730 END IF;
1731 -- Debug Message
1732 IF g_debug THEN
1733 OZF_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'end');
1734 END IF;
1735 -- Standard call to get message count and if count is 1, get message info.
1736 FND_MSG_PUB.Count_And_Get
1737 (p_count => x_msg_count,
1738 p_data => x_msg_data
1739 );
1740 EXCEPTION
1741 WHEN OZF_Utility_PVT.resource_locked THEN
1742 ROLLBACK TO Update_Claim_Line_Tbl;
1743 x_return_status := FND_API.g_ret_sts_error;
1744 FND_MSG_PUB.Count_And_Get (
1745 p_encoded => FND_API.G_FALSE,
1746 p_count => x_msg_count,
1747 p_data => x_msg_data
1748 );
1749 OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
1750 WHEN FND_API.G_EXC_ERROR THEN
1751 ROLLBACK TO Update_Claim_Line_Tbl;
1752 x_return_status := FND_API.G_RET_STS_ERROR;
1753 -- Standard call to get message count and if count=1, get the message
1754 FND_MSG_PUB.Count_And_Get (
1755 p_encoded => FND_API.G_FALSE,
1756 p_count => x_msg_count,
1757 p_data => x_msg_data
1758 );
1759 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1760 ROLLBACK TO Update_Claim_Line_Tbl;
1761 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1762 -- Standard call to get message count and if count=1, get the message
1763 FND_MSG_PUB.Count_And_Get (
1764 p_encoded => FND_API.G_FALSE,
1765 p_count => x_msg_count,
1766 p_data => x_msg_data
1767 );
1768 WHEN OTHERS THEN
1769 ROLLBACK TO Update_Claim_Line_Tbl;
1770 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1771 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1772 THEN
1773 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1774 END IF;
1775 -- Standard call to get message count and if count=1, get the message
1776 FND_MSG_PUB.Count_And_Get (
1777 p_encoded => FND_API.G_FALSE,
1778 p_count => x_msg_count,
1779 p_data => x_msg_data
1780 );
1781 End Update_Claim_Line_tbl;
1782 /*End of Update Claim Line*/
1783 ---------------------------------------------------------------------
1784 -- PROCEDURE
1785 -- delete_claim
1786 --
1787 -- PURPOSE
1788 -- This procedure deletes claim record when Claim_Id and Object Version Number are provided.
1789 --
1790 -- PARAMETERS
1791 --
1792 -- x_msg_count
1793 -- x_object_version_number
1794 -- x_return_status
1795 -- p_claim_id
1796 -- p_object_version_number
1797 -- NOTES
1798 ---------------------------------------------------------------------
1799 PROCEDURE Delete_Claim(
1800 p_api_version_number IN NUMBER,
1801 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1802 p_commit IN VARCHAR2 := FND_API.G_FALSE,
1803 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
1804 x_return_status OUT NOCOPY VARCHAR2,
1805 x_msg_count OUT NOCOPY NUMBER,
1806 x_msg_data OUT NOCOPY VARCHAR2,
1807 p_claim_id IN NUMBER,
1808 p_object_version_number IN NUMBER
1809 )
1810 IS
1811 L_API_NAME CONSTANT VARCHAR2(30) := 'Delete_Claim';
1812 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
1813 l_object_version_NUMBER NUMBER:=p_object_version_number;
1814 l_claim_id NUMBER:=p_claim_id;
1815 BEGIN
1816 -- Standard Start of API savepoint
1817 SAVEPOINT DELETE_Claim_PUB;
1818 -- Standard call to check for call compatibility.
1819 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1820 p_api_version_number,
1821 l_api_name,
1822 G_PKG_NAME)
1823 THEN
1824 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1825 END IF;
1826 -- Initialize message list if p_init_msg_list is set to TRUE.
1827 IF FND_API.to_Boolean( p_init_msg_list )
1828 THEN
1829 FND_MSG_PUB.initialize;
1830 END IF;
1831 -- Debug Message
1832 IF g_debug THEN
1833 OZF_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'start');
1834 END IF;
1835 -- Initialize API return status to SUCCESS
1836 x_return_status := FND_API.G_RET_STS_SUCCESS;
1837 --
1838 -- Calling private API
1839 --
1840 OZF_Claim_PVT.Delete_Claim(
1841 p_api_version_number => p_api_version_number,
1842 p_init_msg_list => FND_API.G_FALSE,
1843 p_commit => FND_API.G_FALSE,
1844 p_object_id => l_claim_id,
1845 p_object_version_number => l_object_version_number,
1846 x_return_status => x_return_status,
1847 x_msg_count => x_msg_count,
1848 x_msg_data => x_msg_data
1849 );
1850 --
1851 IF g_debug THEN
1852 OZF_UTILITY_PVT.DEBUG_MESSAGE('RETURN STATUS FOR DELETE_CLAIM =>'||X_RETURN_STATUS);
1853 END IF;
1854 -- Check return status from the above procedure call
1855 --
1856 -- Standard check for p_commit
1857 IF FND_API.to_Boolean( p_commit )
1858 THEN
1859 COMMIT WORK;
1860 END IF;
1861 -- Debug Message
1862 IF g_debug THEN
1863 OZF_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'end');
1864 END IF;
1865 -- Standard call to get message count and if count is 1, get message info.
1866 FND_MSG_PUB.Count_And_Get
1867 (p_count => x_msg_count,
1868 p_data => x_msg_data
1869 );
1870 EXCEPTION
1871 WHEN OZF_Utility_PVT.resource_locked THEN
1872 ROLLBACK TO DELETE_Claim_PUB;
1873 x_return_status := FND_API.g_ret_sts_error;
1874 FND_MSG_PUB.Count_And_Get (
1875 p_encoded => FND_API.G_FALSE,
1876 p_count => x_msg_count,
1877 p_data => x_msg_data
1878 );
1879 OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
1880 WHEN FND_API.G_EXC_ERROR THEN
1881 ROLLBACK TO DELETE_Claim_PUB;
1882 x_return_status := FND_API.G_RET_STS_ERROR;
1883 -- Standard call to get message count and if count=1, get the message
1884 FND_MSG_PUB.Count_And_Get (
1885 p_encoded => FND_API.G_FALSE,
1886 p_count => x_msg_count,
1887 p_data => x_msg_data
1888 );
1889 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1890 ROLLBACK TO DELETE_Claim_PUB;
1891 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1892 -- Standard call to get message count and if count=1, get the message
1893 FND_MSG_PUB.Count_And_Get (
1894 p_encoded => FND_API.G_FALSE,
1895 p_count => x_msg_count,
1896 p_data => x_msg_data
1897 );
1898 WHEN OTHERS THEN
1899 ROLLBACK TO DELETE_Claim_PUB;
1900 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1901 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1902 THEN
1903 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1904 END IF;
1905 -- Standard call to get message count and if count=1, get the message
1906 FND_MSG_PUB.Count_And_Get (
1907 p_encoded => FND_API.G_FALSE,
1908 p_count => x_msg_count,
1909 p_data => x_msg_data
1910 );
1911 End Delete_Claim;
1912 ---------------------------------------------------------------------
1913 -- PROCEDURE
1914 -- Delete_Claim_Line_Tbl
1915 --
1916 -- PURPOSE
1917 -- This procedure deletes claim line records
1918 --
1919 -- PARAMETERS
1920 --
1921 -- x_msg_count
1922 -- x_object_version_number
1923 -- x_return_status
1924 -- p_claim_line_tbl
1925 -- p_object_version_number
1926 -- x_error_index
1927 -- NOTES
1928 ---------------------------------------------------------------------
1929 PROCEDURE Delete_Claim_Line_Tbl(
1930 p_api_version IN NUMBER
1931 ,p_init_msg_list IN VARCHAR2 := FND_API.g_false
1932 ,p_commit IN VARCHAR2 := FND_API.g_false
1933 ,p_validation_level IN NUMBER := FND_API.g_valid_level_full
1934 ,x_return_status OUT NOCOPY VARCHAR2
1935 ,x_msg_data OUT NOCOPY VARCHAR2
1936 ,x_msg_count OUT NOCOPY NUMBER
1937 ,p_claim_line_tbl IN claim_line_tbl_type
1938 ,p_change_object_version IN VARCHAR2 := FND_API.g_false
1939 ,x_error_index OUT NOCOPY NUMBER)
1940 IS
1941 L_API_NAME CONSTANT VARCHAR2(30) := 'Delete_Claim_Line';
1942 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
1943 l_pvt_claim_line_tbl OZF_CLAIM_LINE_PVT.claim_line_Tbl_type;
1944 l_claim_line_tbl OZF_CLAIM_PUB.claim_line_tbl_type:=p_claim_line_tbl;
1945 l_error_index NUMBER;
1946 BEGIN
1947 -- Standard Start of API savepoint
1948 SAVEPOINT DELETE_Claim_Line_PUB;
1949 -- Standard call to check for call compatibility.
1950 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1951 p_api_version,
1952 l_api_name,
1953 G_PKG_NAME)
1954 THEN
1955 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1956 END IF;
1957 -- Initialize message list if p_init_msg_list is set to TRUE.
1958 IF FND_API.to_Boolean( p_init_msg_list )
1959 THEN
1960 FND_MSG_PUB.initialize;
1961 END IF;
1962 -- Debug Message
1963 IF g_debug THEN
1964 OZF_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'start');
1965 END IF;
1966 -- Initialize API return status to SUCCESS
1967 x_return_status := FND_API.G_RET_STS_SUCCESS;
1968 --
1969 -- API body
1970 --
1971 l_claim_line_tbl := p_claim_line_tbl;
1972 IF p_claim_line_tbl.COUNT > 0 THEN
1973 FOR i IN p_claim_line_tbl.FIRST..p_claim_line_tbl.LAST LOOP
1974 --
1975 l_pvt_claim_line_tbl(i). claim_line_id := l_claim_line_tbl(i). claim_line_id ;
1976 l_pvt_claim_line_tbl(i).object_version_number := l_claim_line_tbl(i).object_version_number;
1977 l_pvt_claim_line_tbl(i).claim_id := l_claim_line_tbl(i).claim_id;
1978 END LOOP;
1979 END IF;
1980 OZF_Claim_Line_PVT.Delete_Claim_Line_Tbl(
1981 p_api_version => p_api_version
1982 ,p_init_msg_list => FND_API.G_FALSE
1983 ,p_commit => FND_API.G_FALSE
1984 ,P_Validation_Level => p_Validation_Level
1985 ,x_return_status => x_return_status
1986 ,x_msg_data => x_msg_data
1987 ,x_msg_count => x_msg_count
1988 ,p_claim_line_tbl => l_pvt_claim_line_tbl
1989 ,p_change_object_version => FND_API.g_false
1990 ,x_error_index => l_error_index);
1991 IF g_debug THEN
1992 OZF_UTILITY_PVT.DEBUG_MESSAGE('RETURN STATUS FOR DELETE_CLAIM_Line_Tbl =>'||X_RETURN_STATUS);
1993 END IF;
1994 -- Check return status from the above procedure call
1995 IF x_return_status = FND_API.G_RET_STS_ERROR then
1996 RAISE FND_API.G_EXC_ERROR;
1997 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
1998 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1999 END IF;
2000 --
2001 -- End of API body
2002 --
2003 -- Standard check for p_commit
2004 IF FND_API.to_Boolean( p_commit )
2005 THEN
2006 COMMIT WORK;
2007 END IF;
2008 -- Debug Message
2009 IF g_debug THEN
2010 OZF_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'end');
2011 END IF;
2012 -- Standard call to get message count and if count is 1, get message info.
2013 FND_MSG_PUB.Count_And_Get
2014 (p_count => x_msg_count,
2015 p_data => x_msg_data
2016 );
2017 EXCEPTION
2018 WHEN OZF_Utility_PVT.resource_locked THEN
2019 ROLLBACK TO DELETE_Claim_Line_PUB;
2020 x_return_status := FND_API.G_RET_STS_ERROR;
2021 -- Standard call to get message count and if count=1, get the message
2022 FND_MSG_PUB.Count_And_Get (
2023 p_encoded => FND_API.G_FALSE,
2024 p_count => x_msg_count,
2025 p_data => x_msg_data
2026 );
2027 OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
2028 WHEN FND_API.G_EXC_ERROR THEN
2029 ROLLBACK TO DELETE_Claim_Line_PUB;
2030 x_return_status := FND_API.G_RET_STS_ERROR;
2031 -- Standard call to get message count and if count=1, get the message
2032 FND_MSG_PUB.Count_And_Get (
2033 p_encoded => FND_API.G_FALSE,
2034 p_count => x_msg_count,
2035 p_data => x_msg_data
2036 );
2037 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2038 ROLLBACK TO DELETE_Claim_Line_PUB;
2039 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2040 -- Standard call to get message count and if count=1, get the message
2041 FND_MSG_PUB.Count_And_Get (
2042 p_encoded => FND_API.G_FALSE,
2043 p_count => x_msg_count,
2044 p_data => x_msg_data
2045 );
2046 WHEN OTHERS THEN
2047 ROLLBACK TO DELETE_Claim_PUB;
2048 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2049 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2050 THEN
2051 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
2052 END IF;
2053 -- Standard call to get message count and if count=1, get the message
2054 FND_MSG_PUB.Count_And_Get (
2055 p_encoded => FND_API.G_FALSE,
2056 p_count => x_msg_count,
2057 p_data => x_msg_data
2058 );
2059 End Delete_Claim_Line_Tbl;
2060 /* End of Delete claim line*/
2061
2062 ---------------------------------------------------------------------
2063 -- PROCEDURE
2064 -- asso_accruals_to_claim
2065 --
2066 -- PURPOSE
2067 -- This procedure associates accruals based on the given fund
2068 -- utilization criteria.
2069 --
2070 -- PARAMETERS
2071 -- p_api_version
2072 -- p_init_msg_list
2073 -- p_commit
2074 -- p_validation_level
2075 -- p_claim_id
2076 -- p_funds_util_flt
2077 -- x_return_status
2078 -- x_msg_count
2079 -- x_msg_data
2080 -- NOTES
2081 ---------------------------------------------------------------------
2082 PROCEDURE Asso_Accruals_To_Claim(
2083 p_api_version IN NUMBER
2084 ,p_init_msg_list IN VARCHAR2 := FND_API.g_false
2085 ,p_commit IN VARCHAR2 := FND_API.g_false
2086 ,p_validation_level IN NUMBER := FND_API.g_valid_level_full
2087 ,x_return_status OUT NOCOPY VARCHAR2
2088 ,x_msg_data OUT NOCOPY VARCHAR2
2089 ,x_msg_count OUT NOCOPY NUMBER
2090 ,p_claim_id IN NUMBER
2091 ,p_funds_util_flt IN funds_util_flt_type
2092 )
2093 IS
2094 l_api_version CONSTANT NUMBER := 1.0;
2095 l_api_name CONSTANT VARCHAR2(30) := 'Asso_Accruals_To_Claim';
2096 l_full_name CONSTANT VARCHAR2(60) := G_PKG_NAME||'.'||l_api_name;
2097 l_return_status VARCHAR2(1);
2098
2099 l_funds_util_flt OZF_Claim_Accrual_PVT.funds_util_flt_type;
2100
2101 BEGIN
2102 -- Standard Start of API savepoint
2103 SAVEPOINT Asso_Accruals_To_Claim;
2104
2105 IF G_DEBUG THEN
2106 OZF_Utility_PVT.debug_message(l_full_name||': start');
2107 END IF;
2108
2109 -- Standard call to check for call compatibility.
2110 IF NOT FND_API.Compatible_API_Call ( l_api_version,
2111 p_api_version,
2112 l_api_name,
2113 G_PKG_NAME ) THEN
2114 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2115 END IF;
2116
2117 -- Initialize message list if p_init_msg_list is set to TRUE.
2118 IF FND_API.to_Boolean( p_init_msg_list ) THEN
2119 FND_MSG_PUB.initialize;
2120 END IF;
2121
2122 -- Initialize API return status to SUCCESS
2123 x_return_status := FND_API.G_RET_STS_SUCCESS;
2124
2125 ------------------------------------------
2126 -- 1. Default and derive column valude --
2127 ------------------------------------------
2128 l_funds_util_flt.fund_id := p_funds_util_flt.fund_id;
2129 l_funds_util_flt.activity_type := p_funds_util_flt.activity_type;
2130 l_funds_util_flt.activity_id := p_funds_util_flt.activity_id;
2131 l_funds_util_flt.activity_product_id := p_funds_util_flt.activity_product_id;
2132 l_funds_util_flt.offer_type := p_funds_util_flt.offer_type;
2133 l_funds_util_flt.document_class := p_funds_util_flt.document_class;
2134 l_funds_util_flt.document_id := p_funds_util_flt.document_id;
2135 l_funds_util_flt.product_level_type := p_funds_util_flt.product_level_type;
2136 l_funds_util_flt.product_id := p_funds_util_flt.product_id;
2137 l_funds_util_flt.reference_type := p_funds_util_flt.reference_type;
2138 l_funds_util_flt.reference_id := p_funds_util_flt.reference_id;
2139 l_funds_util_flt.utilization_type := p_funds_util_flt.utilization_type;
2140 l_funds_util_flt.cust_account_id := p_funds_util_flt.cust_account_id;
2141 l_funds_util_flt.relationship_type := p_funds_util_flt.relationship_type;
2142 l_funds_util_flt.related_cust_account_id := p_funds_util_flt.related_cust_account_id;
2143 l_funds_util_flt.buy_group_cust_account_id := p_funds_util_flt.buy_group_cust_account_id;
2144 l_funds_util_flt.select_cust_children_flag := p_funds_util_flt.select_cust_children_flag;
2145 l_funds_util_flt.pay_to_customer := p_funds_util_flt.pay_to_customer;
2146 l_funds_util_flt.prorate_earnings_flag := p_funds_util_flt.prorate_earnings_flag;
2147 l_funds_util_flt.end_date := p_funds_util_flt.end_date;
2148 l_funds_util_flt.total_amount := p_funds_util_flt.total_amount;
2149 l_funds_util_flt.total_units := p_funds_util_flt.total_units;
2150 l_funds_util_flt.quantity := p_funds_util_flt.quantity;
2151 l_funds_util_flt.uom_code := p_funds_util_flt.uom_code;
2152 -- Added For Bug 8402328
2153 l_funds_util_flt.utilization_id := p_funds_util_flt.utilization_id;
2154 l_funds_util_flt.run_mode := 'API'; --added run mode to fix Bug 12884337 , while system is finding accruals for customer, it is checking for run_mode as not null, so it is passed
2155
2156
2157 ------------------------------------------
2158 -- 2. Call OZF_CLAIM_ACCRUAL_PVT
2159 ------------------------------------------
2160 OZF_Claim_Accrual_PVT.Asso_Accruals_To_Claim(
2161 p_api_version => l_api_version
2162 ,p_init_msg_list => FND_API.g_false
2163 ,p_commit => FND_API.g_false
2164 ,p_validation_level => FND_API.g_valid_level_full
2165
2166 ,x_return_status => l_return_status
2167 ,x_msg_count => x_msg_count
2168 ,x_msg_data => x_msg_data
2169
2170 ,p_claim_id => p_claim_id
2171 ,p_funds_util_flt => l_funds_util_flt
2172 );
2173 IF l_return_status = FND_API.g_ret_sts_error THEN
2174 RAISE FND_API.g_exc_error;
2175 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
2176 RAISE FND_API.g_exc_unexpected_error;
2177 END IF;
2178
2179 -- Standard check for p_commit
2180 IF FND_API.to_Boolean(p_commit) THEN
2181 COMMIT WORK;
2182 END IF;
2183
2184 IF G_DEBUG THEN
2185 OZF_Utility_PVT.debug_message(l_full_name ||': end');
2186 END IF;
2187
2188 -- Standard call to get message count and if count is 1, get message info.
2189 FND_MSG_PUB.Count_And_Get(
2190 p_count => x_msg_count,
2191 p_data => x_msg_data
2192 );
2193
2194 EXCEPTION
2195 WHEN FND_API.G_EXC_ERROR THEN
2196 ROLLBACK TO Asso_Accruals_To_Claim;
2197 x_return_status := FND_API.G_RET_STS_ERROR;
2198 FND_MSG_PUB.Count_And_Get (
2199 p_encoded => FND_API.G_FALSE,
2200 p_count => x_msg_count,
2201 p_data => x_msg_data
2202 );
2203
2204 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2205 ROLLBACK TO Asso_Accruals_To_Claim;
2206 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2207 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2208 FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_CRE_DEDU_ERR');
2209 FND_MSG_PUB.add;
2210 END IF;
2211 FND_MSG_PUB.Count_And_Get (
2212 p_encoded => FND_API.G_FALSE,
2213 p_count => x_msg_count,
2214 p_data => x_msg_data
2215 );
2216
2217 WHEN OTHERS THEN
2218 ROLLBACK TO Asso_Accruals_To_Claim;
2219 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2220 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2221 FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_CRE_DEDU_ERR');
2222 FND_MSG_PUB.add;
2223 END IF;
2224 FND_MSG_PUB.Count_And_Get (
2225 p_encoded => FND_API.G_FALSE,
2226 p_count => x_msg_count,
2227 p_data => x_msg_data
2228 );
2229 END Asso_Accruals_To_Claim;
2230
2231 ---------------------------------------------------------------------
2232 -- PROCEDURE
2233 -- asso_accruals_to_claim_line
2234 --
2235 -- PURPOSE
2236 -- This procedure associates accruals to a claim line.
2237 --
2238 -- PARAMETERS
2239 -- p_api_version
2240 -- p_init_msg_list
2241 -- p_commit
2242 -- p_validation_level
2243 -- p_claim_line_id
2244 -- x_return_status
2245 -- x_msg_count
2246 -- x_msg_data
2247 -- NOTES
2248 ---------------------------------------------------------------------
2249 PROCEDURE Asso_Accruals_To_Claim_Line(
2250 p_api_version IN NUMBER
2251 ,p_init_msg_list IN VARCHAR2 := FND_API.g_false
2252 ,p_commit IN VARCHAR2 := FND_API.g_false
2253 ,p_validation_level IN NUMBER := FND_API.g_valid_level_full
2254 ,x_return_status OUT NOCOPY VARCHAR2
2255 ,x_msg_data OUT NOCOPY VARCHAR2
2256 ,x_msg_count OUT NOCOPY NUMBER
2257 ,p_claim_line_id IN NUMBER
2258 )
2259 IS
2260 l_api_version CONSTANT NUMBER := 1.0;
2261 l_api_name CONSTANT VARCHAR2(30) := 'Asso_Accruals_To_Claim_Line';
2262 l_full_name CONSTANT VARCHAR2(60) := G_PKG_NAME||'.'||l_api_name;
2263 l_return_status VARCHAR2(1);
2264
2265 BEGIN
2266 -- Standard Start of API savepoint
2267 SAVEPOINT Asso_Accruals_To_Claim_Line;
2268
2269 IF G_DEBUG THEN
2270 OZF_Utility_PVT.debug_message(l_full_name||': start');
2271 END IF;
2272
2273 -- Standard call to check for call compatibility.
2274 IF NOT FND_API.Compatible_API_Call ( l_api_version,
2275 p_api_version,
2276 l_api_name,
2277 G_PKG_NAME ) THEN
2278 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2279 END IF;
2280
2281 -- Initialize message list if p_init_msg_list is set to TRUE.
2282 IF FND_API.to_Boolean( p_init_msg_list ) THEN
2283 FND_MSG_PUB.initialize;
2284 END IF;
2285
2286 -- Initialize API return status to SUCCESS
2287 x_return_status := FND_API.G_RET_STS_SUCCESS;
2288
2289 ------------------------------------------
2290 -- 1. Call OZF_CLAIM_ACCRUAL_PVT
2291 ------------------------------------------
2292 OZF_Claim_Accrual_PVT.Asso_Accruals_To_Claim_Line(
2293 p_api_version => l_api_version
2294 ,p_init_msg_list => FND_API.g_false
2295 ,p_commit => FND_API.g_false
2296 ,p_validation_level => FND_API.g_valid_level_full
2297
2298 ,x_return_status => l_return_status
2299 ,x_msg_count => x_msg_count
2300 ,x_msg_data => x_msg_data
2301
2302 ,p_claim_line_id => p_claim_line_id
2303 ,p_run_mode =>'API' --added run mode to fix Bug 13418731 , while system is finding accruals for customer, it is checking for run_mode as not null, so it is passed
2304 );
2305 IF l_return_status = FND_API.g_ret_sts_error THEN
2306 RAISE FND_API.g_exc_error;
2307 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
2308 RAISE FND_API.g_exc_unexpected_error;
2309 END IF;
2310
2311 -- Standard check for p_commit
2312 IF FND_API.to_Boolean(p_commit) THEN
2313 COMMIT WORK;
2314 END IF;
2315
2316 IF G_DEBUG THEN
2317 OZF_Utility_PVT.debug_message(l_full_name ||': end');
2318 END IF;
2319
2320 -- Standard call to get message count and if count is 1, get message info.
2321 FND_MSG_PUB.Count_And_Get(
2322 p_count => x_msg_count,
2323 p_data => x_msg_data
2324 );
2325
2326 EXCEPTION
2327 WHEN FND_API.G_EXC_ERROR THEN
2328 ROLLBACK TO Asso_Accruals_To_Claim_Line;
2329 x_return_status := FND_API.G_RET_STS_ERROR;
2330 FND_MSG_PUB.Count_And_Get (
2331 p_encoded => FND_API.G_FALSE,
2332 p_count => x_msg_count,
2333 p_data => x_msg_data
2334 );
2335
2336 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2337 ROLLBACK TO Asso_Accruals_To_Claim_Line;
2338 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2339 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2340 FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_CRE_DEDU_ERR');
2341 FND_MSG_PUB.add;
2342 END IF;
2343 FND_MSG_PUB.Count_And_Get (
2344 p_encoded => FND_API.G_FALSE,
2345 p_count => x_msg_count,
2346 p_data => x_msg_data
2347 );
2348
2349 WHEN OTHERS THEN
2350 ROLLBACK TO Asso_Accruals_To_Claim_Line;
2351 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2352 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2353 FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_CRE_DEDU_ERR');
2354 FND_MSG_PUB.add;
2355 END IF;
2356 FND_MSG_PUB.Count_And_Get (
2357 p_encoded => FND_API.G_FALSE,
2358 p_count => x_msg_count,
2359 p_data => x_msg_data
2360 );
2361 END Asso_Accruals_To_Claim_Line;
2362
2363 ---------------------------------------------------------------------
2364 -- PROCEDURE
2365 -- create_claim_for_accruals
2366 --
2367 -- PURPOSE
2368 -- This procedure creates a claim for accruals that meet the fund
2369 -- utilization search criteria.
2370 --
2371 -- PARAMETERS
2372 -- p_api_version
2373 -- p_init_msg_list
2374 -- p_commit
2375 -- p_validation_level
2376 -- p_claim_rec
2377 -- p_funds_util_flt
2378 -- x_return_status
2379 -- x_msg_count
2380 -- x_msg_data
2381 -- NOTES
2382 ---------------------------------------------------------------------
2383 PROCEDURE Create_Claim_For_Accruals(
2384 p_api_version IN NUMBER
2385 ,p_init_msg_list IN VARCHAR2 := FND_API.g_false
2386 ,p_commit IN VARCHAR2 := FND_API.g_false
2387 ,p_validation_level IN NUMBER := FND_API.g_valid_level_full
2388 ,x_return_status OUT NOCOPY VARCHAR2
2389 ,x_msg_data OUT NOCOPY VARCHAR2
2390 ,x_msg_count OUT NOCOPY NUMBER
2391 ,p_claim_rec IN claim_rec_type
2392 ,p_funds_util_flt IN funds_util_flt_type
2393 ,x_claim_id OUT NOCOPY NUMBER
2394 )
2395 IS
2396 l_api_version CONSTANT NUMBER := 1.0;
2397 l_api_name CONSTANT VARCHAR2(30) := 'Create_Claim_For_Accruals';
2398 l_full_name CONSTANT VARCHAR2(60) := G_PKG_NAME||'.'||l_api_name;
2399 l_return_status VARCHAR2(1);
2400
2401 l_claim_rec OZF_Claim_PVT.claim_rec_type;
2402 l_funds_util_flt OZF_Claim_Accrual_PVT.funds_util_flt_type;
2403
2404 BEGIN
2405 -- Standard Start of API savepoint
2406 SAVEPOINT Create_Claim_For_Accruals;
2407
2408 IF G_DEBUG THEN
2409 OZF_Utility_PVT.debug_message(l_full_name||': start');
2410 END IF;
2411
2412 -- Standard call to check for call compatibility.
2413 IF NOT FND_API.Compatible_API_Call ( l_api_version,
2414 p_api_version,
2415 l_api_name,
2416 G_PKG_NAME ) THEN
2417 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2418 END IF;
2419
2420 -- Initialize message list if p_init_msg_list is set to TRUE.
2421 IF FND_API.to_Boolean( p_init_msg_list ) THEN
2422 FND_MSG_PUB.initialize;
2423 END IF;
2424
2425 -- Initialize API return status to SUCCESS
2426 x_return_status := FND_API.G_RET_STS_SUCCESS;
2427
2428 ------------------------------------------
2429 -- 1. Default and derive column valude --
2430 ------------------------------------------
2431 l_claim_rec.claim_type_id := p_claim_rec.claim_type_id;
2432 l_claim_rec.claim_date := p_claim_rec.claim_date;
2433 l_claim_rec.due_date := p_claim_rec.due_date;
2434 l_claim_rec.gl_date := p_claim_rec.gl_date;
2435 l_claim_rec.owner_id := p_claim_rec.owner_id;
2436 l_claim_rec.amount := p_claim_rec.amount;
2437 l_claim_rec.currency_code := p_claim_rec.currency_code;
2438 l_claim_rec.exchange_rate_type := p_claim_rec.exchange_rate_type;
2439 l_claim_rec.exchange_rate_date := p_claim_rec.exchange_rate_date;
2440 l_claim_rec.exchange_rate := p_claim_rec.exchange_rate;
2441 l_claim_rec.set_of_books_id := p_claim_rec.set_of_books_id;
2442 l_claim_rec.source_object_id := p_claim_rec.source_object_id;
2443 l_claim_rec.source_object_class := p_claim_rec.source_object_class;
2444 l_claim_rec.source_object_type_id := p_claim_rec.source_object_type_id;
2445 l_claim_rec.source_object_number := p_claim_rec.source_object_number;
2446 l_claim_rec.cust_account_id := p_claim_rec.cust_account_id;
2447 l_claim_rec.cust_billto_acct_site_id := p_claim_rec.cust_billto_acct_site_id;
2448 l_claim_rec.cust_shipto_acct_site_id := p_claim_rec.cust_shipto_acct_site_id;
2449 l_claim_rec.related_cust_account_id := p_claim_rec.related_cust_account_id;
2450 l_claim_rec.reason_code_id := p_claim_rec.reason_code_id;
2451 l_claim_rec.reason_type := p_claim_rec.reason_type;
2452 l_claim_rec.status_code := p_claim_rec.status_code;
2453 l_claim_rec.user_status_id := p_claim_rec.user_status_id;
2454 l_claim_rec.sales_rep_id := p_claim_rec.sales_rep_id;
2455 l_claim_rec.collector_id := p_claim_rec.collector_id;
2456 l_claim_rec.contact_id := p_claim_rec.contact_id;
2457 l_claim_rec.broker_id := p_claim_rec.broker_id;
2458 l_claim_rec.customer_ref_date := p_claim_rec.customer_ref_date;
2459 l_claim_rec.customer_ref_number := p_claim_rec.customer_ref_number;
2460 l_claim_rec.comments := p_claim_rec.comments;
2461 l_claim_rec.attribute_category := p_claim_rec.attribute_category;
2462 l_claim_rec.attribute1 := p_claim_rec.attribute1;
2463 l_claim_rec.attribute2 := p_claim_rec.attribute2;
2464 l_claim_rec.attribute3 := p_claim_rec.attribute3;
2465 l_claim_rec.attribute4 := p_claim_rec.attribute4;
2466 l_claim_rec.attribute5 := p_claim_rec.attribute5;
2467 l_claim_rec.attribute6 := p_claim_rec.attribute6;
2468 l_claim_rec.attribute7 := p_claim_rec.attribute7;
2469 l_claim_rec.attribute8 := p_claim_rec.attribute8;
2470 l_claim_rec.attribute9 := p_claim_rec.attribute9;
2471 l_claim_rec.attribute10 := p_claim_rec.attribute10;
2472 l_claim_rec.attribute11 := p_claim_rec.attribute11;
2473 l_claim_rec.attribute12 := p_claim_rec.attribute12;
2474 l_claim_rec.attribute13 := p_claim_rec.attribute13;
2475 l_claim_rec.attribute14 := p_claim_rec.attribute14;
2476 l_claim_rec.attribute15 := p_claim_rec.attribute15;
2477 l_claim_rec.org_id := p_claim_rec.org_id;
2478 l_claim_rec.write_off_flag := p_claim_rec.write_off_flag;
2479 l_claim_rec.write_off_threshold_amount := p_claim_rec.write_off_threshold_amount;
2480 l_claim_rec.under_write_off_threshold := p_claim_rec.under_write_off_threshold;
2481 l_claim_rec.customer_reason := p_claim_rec.customer_reason;
2482 l_claim_rec.ship_to_cust_account_id := p_claim_rec.ship_to_cust_account_id;
2483 l_claim_rec.amount_applied := p_claim_rec.amount_applied;
2484 l_claim_rec.applied_receipt_id := p_claim_rec.applied_receipt_id;
2485 l_claim_rec.applied_receipt_number := p_claim_rec.applied_receipt_number;
2486 l_claim_rec.wo_rec_trx_id := p_claim_rec.wo_rec_trx_id;
2487 l_claim_rec.group_claim_id := p_claim_rec.group_claim_id;
2488 l_claim_rec.appr_wf_item_key := p_claim_rec.appr_wf_item_key;
2489 l_claim_rec.cstl_wf_item_key := p_claim_rec.cstl_wf_item_key;
2490 l_claim_rec.batch_type := p_claim_rec.batch_type;
2491 -- Fix for Bug 8501176
2492 l_claim_rec.claim_number := p_claim_rec.claim_number;
2493
2494
2495 l_funds_util_flt.fund_id := p_funds_util_flt.fund_id;
2496 l_funds_util_flt.activity_type := p_funds_util_flt.activity_type;
2497 l_funds_util_flt.activity_id := p_funds_util_flt.activity_id;
2498 l_funds_util_flt.activity_product_id := p_funds_util_flt.activity_product_id;
2499 l_funds_util_flt.offer_type := p_funds_util_flt.offer_type;
2500 l_funds_util_flt.document_class := p_funds_util_flt.document_class;
2501 l_funds_util_flt.document_id := p_funds_util_flt.document_id;
2502 l_funds_util_flt.product_level_type := p_funds_util_flt.product_level_type;
2503 l_funds_util_flt.product_id := p_funds_util_flt.product_id;
2504 l_funds_util_flt.reference_type := p_funds_util_flt.reference_type;
2505 l_funds_util_flt.reference_id := p_funds_util_flt.reference_id;
2506 l_funds_util_flt.utilization_type := p_funds_util_flt.utilization_type;
2507 l_funds_util_flt.cust_account_id := p_funds_util_flt.cust_account_id;
2508 l_funds_util_flt.relationship_type := p_funds_util_flt.relationship_type;
2509 l_funds_util_flt.related_cust_account_id := p_funds_util_flt.related_cust_account_id;
2510 l_funds_util_flt.buy_group_cust_account_id := p_funds_util_flt.buy_group_cust_account_id;
2511 l_funds_util_flt.select_cust_children_flag := p_funds_util_flt.select_cust_children_flag;
2512 l_funds_util_flt.pay_to_customer := p_funds_util_flt.pay_to_customer;
2513 l_funds_util_flt.prorate_earnings_flag := p_funds_util_flt.prorate_earnings_flag;
2514 l_funds_util_flt.end_date := p_funds_util_flt.end_date;
2515 l_funds_util_flt.total_amount := p_funds_util_flt.total_amount;
2516 l_funds_util_flt.total_units := p_funds_util_flt.total_units;
2517 l_funds_util_flt.quantity := p_funds_util_flt.quantity;
2518 l_funds_util_flt.uom_code := p_funds_util_flt.uom_code;
2519 -- Added For Bug 8402328
2520 l_funds_util_flt.utilization_id := p_funds_util_flt.utilization_id;
2521
2522 l_funds_util_flt.run_mode := 'API'; --added run mode to fix Bug 13418731 , while system is finding accruals for customer, it is checking for run_mode as not null, so it is passed
2523
2524
2525 ------------------------------------------
2526 -- 2. Call OZF_CLAIM_ACCRUAL_PVT
2527 ------------------------------------------
2528 IF G_DEBUG THEN
2529 OZF_Utility_PVT.debug_message(l_claim_rec.claim_number||': In Public l_claim_rec.claim_number');
2530 END IF;
2531
2532 OZF_Claim_Accrual_PVT.Create_Claim_For_Accruals(
2533 p_api_version => l_api_version
2534 ,p_init_msg_list => FND_API.g_false
2535 ,p_commit => FND_API.g_false
2536 ,p_validation_level => FND_API.g_valid_level_full
2537
2538 ,x_return_status => l_return_status
2539 ,x_msg_count => x_msg_count
2540 ,x_msg_data => x_msg_data
2541
2542 ,p_claim_rec => l_claim_rec
2543 ,p_funds_util_flt => l_funds_util_flt
2544
2545 ,x_claim_id => x_claim_id
2546 );
2547 IF l_return_status = FND_API.g_ret_sts_error THEN
2548 RAISE FND_API.g_exc_error;
2549 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
2550 RAISE FND_API.g_exc_unexpected_error;
2551 END IF;
2552
2553 -- Standard check for p_commit
2554 IF FND_API.to_Boolean(p_commit) THEN
2555 COMMIT WORK;
2556 END IF;
2557
2558 IF G_DEBUG THEN
2559 OZF_Utility_PVT.debug_message(l_full_name ||': end');
2560 END IF;
2561
2562 -- Standard call to get message count and if count is 1, get message info.
2563 FND_MSG_PUB.Count_And_Get(
2564 p_count => x_msg_count,
2565 p_data => x_msg_data
2566 );
2567
2568 EXCEPTION
2569 WHEN FND_API.G_EXC_ERROR THEN
2570 ROLLBACK TO Create_Claim_For_Accruals;
2571 x_return_status := FND_API.G_RET_STS_ERROR;
2572 FND_MSG_PUB.Count_And_Get (
2573 p_encoded => FND_API.G_FALSE,
2574 p_count => x_msg_count,
2575 p_data => x_msg_data
2576 );
2577
2578 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2579 ROLLBACK TO Create_Claim_For_Accruals;
2580 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2581 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2582 FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_CRE_DEDU_ERR');
2583 FND_MSG_PUB.add;
2584 END IF;
2585 FND_MSG_PUB.Count_And_Get (
2586 p_encoded => FND_API.G_FALSE,
2587 p_count => x_msg_count,
2588 p_data => x_msg_data
2589 );
2590
2591 WHEN OTHERS THEN
2592 ROLLBACK TO Create_Claim_For_Accruals;
2593 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2594 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2595 FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_CRE_DEDU_ERR');
2596 FND_MSG_PUB.add;
2597 END IF;
2598 FND_MSG_PUB.Count_And_Get (
2599 p_encoded => FND_API.G_FALSE,
2600 p_count => x_msg_count,
2601 p_data => x_msg_data
2602 );
2603 END Create_Claim_For_Accruals;
2604
2605 ---------------------------------------------------------------------
2606 -- PROCEDURE
2607 -- pay_claim_for_accruals
2608 --
2609 -- PURPOSE
2610 -- This procedure creates a claim for accruals that meet the fund
2611 -- utilization search criteria and initiates settlement of the claim.
2612 --
2613 -- PARAMETERS
2614 -- p_api_version
2615 -- p_init_msg_list
2616 -- p_commit
2617 -- p_validation_level
2618 -- p_claim_rec
2619 -- p_funds_util_flt
2620 -- x_return_status
2621 -- x_msg_count
2622 -- x_msg_data
2623 -- NOTES
2624 ---------------------------------------------------------------------
2625 PROCEDURE Pay_Claim_For_Accruals(
2626 p_api_version IN NUMBER
2627 ,p_init_msg_list IN VARCHAR2 := FND_API.g_false
2628 ,p_commit IN VARCHAR2 := FND_API.g_false
2629 ,p_validation_level IN NUMBER := FND_API.g_valid_level_full
2630 ,x_return_status OUT NOCOPY VARCHAR2
2631 ,x_msg_data OUT NOCOPY VARCHAR2
2632 ,x_msg_count OUT NOCOPY NUMBER
2633 ,p_claim_rec IN claim_rec_type
2634 ,p_funds_util_flt IN funds_util_flt_type
2635 ,x_claim_id OUT NOCOPY NUMBER
2636 )
2637 IS
2638 l_api_version CONSTANT NUMBER := 1.0;
2639 l_api_name CONSTANT VARCHAR2(30) := 'Pay_Claim_For_Accruals';
2640 l_full_name CONSTANT VARCHAR2(60) := G_PKG_NAME||'.'||l_api_name;
2641 l_return_status VARCHAR2(1);
2642
2643 l_claim_rec OZF_Claim_PVT.claim_rec_type;
2644 l_funds_util_flt OZF_Claim_Accrual_PVT.funds_util_flt_type;
2645
2646 BEGIN
2647 -- Standard Start of API savepoint
2648 SAVEPOINT Pay_Claim_For_Accruals;
2649
2650 IF G_DEBUG THEN
2651 OZF_Utility_PVT.debug_message(l_full_name||': start');
2652 END IF;
2653
2654 -- Standard call to check for call compatibility.
2655 IF NOT FND_API.Compatible_API_Call ( l_api_version,
2656 p_api_version,
2657 l_api_name,
2658 G_PKG_NAME ) THEN
2659 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2660 END IF;
2661
2662 -- Initialize message list if p_init_msg_list is set to TRUE.
2663 IF FND_API.to_Boolean( p_init_msg_list ) THEN
2664 FND_MSG_PUB.initialize;
2665 END IF;
2666
2667 -- Initialize API return status to SUCCESS
2668 x_return_status := FND_API.G_RET_STS_SUCCESS;
2669
2670 ------------------------------------------
2671 -- 1. Default and derive column valude --
2672 ------------------------------------------
2673 l_claim_rec.claim_type_id := p_claim_rec.claim_type_id;
2674 l_claim_rec.claim_date := p_claim_rec.claim_date;
2675 l_claim_rec.due_date := p_claim_rec.due_date;
2676 l_claim_rec.gl_date := p_claim_rec.gl_date;
2677 l_claim_rec.owner_id := p_claim_rec.owner_id;
2678 l_claim_rec.amount := p_claim_rec.amount;
2679 l_claim_rec.currency_code := p_claim_rec.currency_code;
2680 l_claim_rec.exchange_rate_type := p_claim_rec.exchange_rate_type;
2681 l_claim_rec.exchange_rate_date := p_claim_rec.exchange_rate_date;
2682 l_claim_rec.exchange_rate := p_claim_rec.exchange_rate;
2683 l_claim_rec.set_of_books_id := p_claim_rec.set_of_books_id;
2684 l_claim_rec.source_object_id := p_claim_rec.source_object_id;
2685 l_claim_rec.source_object_class := p_claim_rec.source_object_class;
2686 l_claim_rec.source_object_type_id := p_claim_rec.source_object_type_id;
2687 l_claim_rec.source_object_number := p_claim_rec.source_object_number;
2688 l_claim_rec.cust_account_id := p_claim_rec.cust_account_id;
2689 l_claim_rec.cust_billto_acct_site_id := p_claim_rec.cust_billto_acct_site_id;
2690 l_claim_rec.cust_shipto_acct_site_id := p_claim_rec.cust_shipto_acct_site_id;
2691 l_claim_rec.related_cust_account_id := p_claim_rec.related_cust_account_id;
2692 l_claim_rec.reason_code_id := p_claim_rec.reason_code_id;
2693 l_claim_rec.reason_type := p_claim_rec.reason_type;
2694 l_claim_rec.status_code := p_claim_rec.status_code;
2695 l_claim_rec.user_status_id := p_claim_rec.user_status_id;
2696 l_claim_rec.sales_rep_id := p_claim_rec.sales_rep_id;
2697 l_claim_rec.collector_id := p_claim_rec.collector_id;
2698 l_claim_rec.contact_id := p_claim_rec.contact_id;
2699 l_claim_rec.broker_id := p_claim_rec.broker_id;
2700 l_claim_rec.customer_ref_date := p_claim_rec.customer_ref_date;
2701 l_claim_rec.customer_ref_number := p_claim_rec.customer_ref_number;
2702 l_claim_rec.comments := p_claim_rec.comments;
2703 l_claim_rec.attribute_category := p_claim_rec.attribute_category;
2704 l_claim_rec.attribute1 := p_claim_rec.attribute1;
2705 l_claim_rec.attribute2 := p_claim_rec.attribute2;
2706 l_claim_rec.attribute3 := p_claim_rec.attribute3;
2707 l_claim_rec.attribute4 := p_claim_rec.attribute4;
2708 l_claim_rec.attribute5 := p_claim_rec.attribute5;
2709 l_claim_rec.attribute6 := p_claim_rec.attribute6;
2710 l_claim_rec.attribute7 := p_claim_rec.attribute7;
2711 l_claim_rec.attribute8 := p_claim_rec.attribute8;
2712 l_claim_rec.attribute9 := p_claim_rec.attribute9;
2713 l_claim_rec.attribute10 := p_claim_rec.attribute10;
2714 l_claim_rec.attribute11 := p_claim_rec.attribute11;
2715 l_claim_rec.attribute12 := p_claim_rec.attribute12;
2716 l_claim_rec.attribute13 := p_claim_rec.attribute13;
2717 l_claim_rec.attribute14 := p_claim_rec.attribute14;
2718 l_claim_rec.attribute15 := p_claim_rec.attribute15;
2719 l_claim_rec.org_id := p_claim_rec.org_id;
2720 l_claim_rec.write_off_flag := p_claim_rec.write_off_flag;
2721 l_claim_rec.write_off_threshold_amount := p_claim_rec.write_off_threshold_amount;
2722 l_claim_rec.under_write_off_threshold := p_claim_rec.under_write_off_threshold;
2723 l_claim_rec.customer_reason := p_claim_rec.customer_reason;
2724 l_claim_rec.ship_to_cust_account_id := p_claim_rec.ship_to_cust_account_id;
2725 l_claim_rec.amount_applied := p_claim_rec.amount_applied;
2726 l_claim_rec.applied_receipt_id := p_claim_rec.applied_receipt_id;
2727 l_claim_rec.applied_receipt_number := p_claim_rec.applied_receipt_number;
2728 l_claim_rec.wo_rec_trx_id := p_claim_rec.wo_rec_trx_id;
2729 l_claim_rec.group_claim_id := p_claim_rec.group_claim_id;
2730 l_claim_rec.appr_wf_item_key := p_claim_rec.appr_wf_item_key;
2731 l_claim_rec.cstl_wf_item_key := p_claim_rec.cstl_wf_item_key;
2732 l_claim_rec.batch_type := p_claim_rec.batch_type;
2733 -- Fix for Bug 8501176
2734 l_claim_rec.claim_number := p_claim_rec.claim_number;
2735
2736
2737 l_funds_util_flt.fund_id := p_funds_util_flt.fund_id;
2738 l_funds_util_flt.activity_type := p_funds_util_flt.activity_type;
2739 l_funds_util_flt.activity_id := p_funds_util_flt.activity_id;
2740 l_funds_util_flt.activity_product_id := p_funds_util_flt.activity_product_id;
2741 l_funds_util_flt.offer_type := p_funds_util_flt.offer_type;
2742 l_funds_util_flt.document_class := p_funds_util_flt.document_class;
2743 l_funds_util_flt.document_id := p_funds_util_flt.document_id;
2744 l_funds_util_flt.product_level_type := p_funds_util_flt.product_level_type;
2745 l_funds_util_flt.product_id := p_funds_util_flt.product_id;
2746 l_funds_util_flt.reference_type := p_funds_util_flt.reference_type;
2747 l_funds_util_flt.reference_id := p_funds_util_flt.reference_id;
2748 l_funds_util_flt.utilization_type := p_funds_util_flt.utilization_type;
2749 l_funds_util_flt.cust_account_id := p_funds_util_flt.cust_account_id;
2750 l_funds_util_flt.relationship_type := p_funds_util_flt.relationship_type;
2751 l_funds_util_flt.related_cust_account_id := p_funds_util_flt.related_cust_account_id;
2752 l_funds_util_flt.buy_group_cust_account_id := p_funds_util_flt.buy_group_cust_account_id;
2753 l_funds_util_flt.select_cust_children_flag := p_funds_util_flt.select_cust_children_flag;
2754 l_funds_util_flt.pay_to_customer := p_funds_util_flt.pay_to_customer;
2755 l_funds_util_flt.prorate_earnings_flag := p_funds_util_flt.prorate_earnings_flag;
2756 l_funds_util_flt.end_date := p_funds_util_flt.end_date;
2757 l_funds_util_flt.total_amount := p_funds_util_flt.total_amount;
2758 l_funds_util_flt.total_units := p_funds_util_flt.total_units;
2759 l_funds_util_flt.quantity := p_funds_util_flt.quantity;
2760 l_funds_util_flt.uom_code := p_funds_util_flt.uom_code;
2761 -- Added For Bug 8402328
2762 l_funds_util_flt.utilization_id := p_funds_util_flt.utilization_id;
2763 l_funds_util_flt.run_mode := 'API'; --added run mode to fix Bug 13418731 , while system is finding accruals for customer, it is checking for run_mode as not null, so it is passed
2764
2765
2766 ------------------------------------------
2767 -- 2. Call OZF_CLAIM_ACCRUAL_PVT
2768 ------------------------------------------
2769 OZF_Claim_Accrual_PVT.Pay_Claim_For_Accruals(
2770 p_api_version => l_api_version
2771 ,p_init_msg_list => FND_API.g_false
2772 ,p_commit => FND_API.g_false
2773 ,p_validation_level => FND_API.g_valid_level_full
2774
2775 ,x_return_status => l_return_status
2776 ,x_msg_count => x_msg_count
2777 ,x_msg_data => x_msg_data
2778
2779 ,p_claim_rec => l_claim_rec
2780 ,p_funds_util_flt => l_funds_util_flt
2781
2782 ,x_claim_id => x_claim_id
2783 );
2784 IF l_return_status = FND_API.g_ret_sts_error THEN
2785 RAISE FND_API.g_exc_error;
2786 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
2787 RAISE FND_API.g_exc_unexpected_error;
2788 END IF;
2789
2790 -- Standard check for p_commit
2791 IF FND_API.to_Boolean(p_commit) THEN
2792 COMMIT WORK;
2793 END IF;
2794
2795 IF G_DEBUG THEN
2796 OZF_Utility_PVT.debug_message(l_full_name ||': end');
2797 END IF;
2798
2799 -- Standard call to get message count and if count is 1, get message info.
2800 FND_MSG_PUB.Count_And_Get(
2801 p_count => x_msg_count,
2802 p_data => x_msg_data
2803 );
2804
2805 EXCEPTION
2806 WHEN FND_API.G_EXC_ERROR THEN
2807 ROLLBACK TO Pay_Claim_For_Accruals;
2808 x_return_status := FND_API.G_RET_STS_ERROR;
2809 FND_MSG_PUB.Count_And_Get (
2810 p_encoded => FND_API.G_FALSE,
2811 p_count => x_msg_count,
2812 p_data => x_msg_data
2813 );
2814
2815 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2816 ROLLBACK TO Pay_Claim_For_Accruals;
2817 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2818 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2819 FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_CRE_DEDU_ERR');
2820 FND_MSG_PUB.add;
2821 END IF;
2822 FND_MSG_PUB.Count_And_Get (
2823 p_encoded => FND_API.G_FALSE,
2824 p_count => x_msg_count,
2825 p_data => x_msg_data
2826 );
2827
2828 WHEN OTHERS THEN
2829 ROLLBACK TO Pay_Claim_For_Accruals;
2830 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2831 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2832 FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_CRE_DEDU_ERR');
2833 FND_MSG_PUB.add;
2834 END IF;
2835 FND_MSG_PUB.Count_And_Get (
2836 p_encoded => FND_API.G_FALSE,
2837 p_count => x_msg_count,
2838 p_data => x_msg_data
2839 );
2840 END Pay_Claim_For_Accruals;
2841
2842 --//TPM Integration ER
2843 ---------------------------------------------------------------------
2844 -- PROCEDURE
2845 -- Create_split_claims
2846 --
2847 -- PURPOSE
2848 -- This procedure Can be used to split claims
2849 --
2850 -- PARAMETERS
2851 -- p_child_claim_tbl
2852 -- x_return_status
2853 --
2854 --
2855 -- HISTORY
2856 -- 09/19/2011 BKUNJAN Created for ER 12985686
2857 --
2858 -- NOTES
2859 ---------------------------------------------------------------------
2860
2861 PROCEDURE Create_split_claims(
2862 p_api_version IN NUMBER
2863 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
2864 , p_commit IN VARCHAR2 := FND_API.G_FALSE
2865 , p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
2866 , x_return_status OUT NOCOPY VARCHAR2
2867 , x_msg_data OUT NOCOPY VARCHAR2
2868 , x_msg_count OUT NOCOPY NUMBER
2869 , p_parent_claim_id IN NUMBER
2870 , px_child_claim_tbl IN OUT NOCOPY split_claim_tbl_type
2871 )
2872 IS
2873
2874 l_api_version NUMBER := 1.0;
2875 l_api_name VARCHAR2(30) := 'Create_split_claims';
2876 l_child_claim_tbl OZF_SPLIT_CLAIM_PVT.child_claim_tbl_type;
2877 l_return_status VARCHAR2(1);
2878 l_msg_data VARCHAR2(2000);
2879 l_msg_count NUMBER;
2880
2881 l_claim_id NUMBER;
2882 l_parent_objver_no NUMBER;
2883 l_claim_reason NUMBER;
2884 l_claim_type NUMBER;
2885
2886 l_claim_line_id NUMBER;
2887 l_amount NUMBER;
2888 l_line_sum_amount NUMBER;
2889 l_line_table VARCHAR2(2000);
2890 l_status_code VARCHAR2(30);
2891 l_amount_remaining NUMBER;
2892 l_sum_split_amt NUMBER;
2893
2894 CURSOR parent_claim_id_csr(cv_parent_claim_id IN NUMBER) IS
2895 SELECT claim_id,object_version_number,status_code,amount_remaining
2896 FROM ozf_claims_all
2897 WHERE claim_id = cv_parent_claim_id;
2898
2899 CURSOR claim_type_id_csr(cv_claim_type_id IN NUMBER) IS
2900 SELECT claim_type_id
2901 FROM ozf_claim_types_vl
2902 WHERE claim_type_id = cv_claim_type_id
2903 AND NVL(end_date,SYSDATE) >= SYSDATE;
2904
2905 CURSOR reason_code_id_csr(cv_reason_code_id IN NUMBER) IS
2906 SELECT reason_code_id
2907 FROM ozf_reason_codes_vl
2908 WHERE reason_code_id = cv_reason_code_id
2909 AND NVL(end_date_active,SYSDATE) >= SYSDATE;
2910
2911 CURSOR claim_lines_cur(cv_parent_claim_id IN NUMBER
2912 ,cv_claim_line_id IN NUMBER)IS
2913 SELECT claim_line_id,amount
2914 FROM ozf_claim_lines_all
2915 WHERE claim_id = cv_parent_claim_id
2916 AND claim_line_id = cv_claim_line_id;
2917 BEGIN
2918 -- Standard Start of API savepoint
2919 SAVEPOINT Create_split_claims;
2920
2921 -- Standard call to check for call compatibility.
2922 IF NOT FND_API.Compatible_API_Call ( l_api_version
2923 , p_api_version
2924 , l_api_name
2925 , G_PKG_NAME
2926 )
2927 THEN
2928 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2929 END IF;
2930
2931 IF G_DEBUG THEN
2932 OZF_UTILITY_PVT.debug_message('Public API: ' || l_api_name || ' start');
2933 END IF;
2934
2935 -- Initialize message list if p_init_msg_list is set to TRUE.
2936
2937 IF FND_API.to_Boolean( p_init_msg_list )
2938 THEN
2939 FND_MSG_PUB.initialize;
2940 END IF;
2941
2942 -- Initialize API return status to SUCCESS
2943 x_return_status := FND_API.G_RET_STS_SUCCESS;
2944
2945 --//API Body
2946 --========================================================================
2947
2948 --//Validations
2949 --//Parent claim Id validation
2950 IF p_parent_claim_id = FND_API.g_miss_num OR p_parent_claim_id IS NULL THEN
2951 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.g_msg_lvl_error) THEN
2952 FND_MESSAGE.Set_Name('OZF','OZF_NO_CLAIM_ID');
2953 FND_MSG_PUB.Add;
2954 END IF;
2955 RAISE FND_API.G_EXC_ERROR;
2956 ELSE
2957 OPEN parent_claim_id_csr(p_parent_claim_id);
2958 FETCH parent_claim_id_csr INTO l_claim_id,l_parent_objver_no,l_status_code,l_amount_remaining;
2959 CLOSE parent_claim_id_csr;
2960
2961 IF l_claim_id IS NULL THEN
2962 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.g_msg_lvl_error) THEN
2963 FND_MESSAGE.Set_Name('OZF','OZF_INVALID_CLAIM_ID');
2964 FND_MSG_PUB.Add;
2965 END IF;
2966 RAISE FND_API.G_EXC_ERROR;
2967 END IF;
2968 END IF;
2969
2970 IF l_status_code <> 'OPEN' THEN
2971 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.g_msg_lvl_error) THEN
2972 FND_MESSAGE.Set_Name('OZF','OZF_CLAIM_WRONG_SPLIT_STATUS');
2973 FND_MSG_PUB.Add;
2974 END IF;
2975 RAISE FND_API.G_EXC_ERROR;
2976 END IF;
2977
2978 --//Parent amount and child amount validations
2979 IF px_child_claim_tbl.COUNT > 0 THEN
2980 FOR i IN px_child_claim_tbl.FIRST..px_child_claim_tbl.LAST LOOP
2981 l_sum_split_amt := NVL(l_sum_split_amt,0) + NVL(px_child_claim_tbl(i).amount,0);
2982 END LOOP;
2983
2984 IF l_sum_split_amt > l_amount_remaining THEN
2985 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.g_msg_lvl_error) THEN
2986 FND_MESSAGE.Set_Name('OZF','OZF_CLAIM_SPLT_NG_NOPM');
2987 --//Failed to split the claim: The amount of deduction or claim should be positive after the split.
2988 FND_MSG_PUB.Add;
2989 END IF;
2990 RAISE FND_API.G_EXC_ERROR;
2991 END IF;
2992 END IF;
2993
2994 --//Child claim table validations.
2995 IF px_child_claim_tbl.COUNT > 0 THEN
2996 FOR i IN px_child_claim_tbl.FIRST..px_child_claim_tbl.LAST
2997 LOOP
2998 IF px_child_claim_tbl(i).amount = FND_API.g_miss_num OR px_child_claim_tbl(i).amount IS NULL THEN
2999 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.g_msg_lvl_error) THEN
3000 FND_MESSAGE.Set_Name('OZF','OZF_NO_SPLIT_CLAIM_AMT');
3001 --//Split amount is mandatory to create a split claim.
3002 FND_MSG_PUB.Add;
3003 END IF;
3004 RAISE FND_API.G_EXC_ERROR;
3005 END IF;
3006
3007
3008 --//Claim type Validation
3009 IF px_child_claim_tbl(i).claim_type_id <> FND_API.g_miss_num AND px_child_claim_tbl(i).claim_type_id IS NOT NULL THEN
3010 OPEN claim_type_id_csr(px_child_claim_tbl(i).claim_type_id);
3011 FETCH claim_type_id_csr INTO l_claim_type;
3012 CLOSE claim_type_id_csr;
3013
3014 IF l_claim_type IS NULL THEN
3015 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.g_msg_lvl_error) THEN
3016 FND_MESSAGE.Set_Name('OZF','OZF_CLAIM_CLAIM_TYPE_NOT_IN_DB');
3017 FND_MSG_PUB.Add;
3018 END IF;
3019 RAISE FND_API.G_EXC_ERROR;
3020 END IF;
3021 END IF;
3022
3023 --//Claim Reason Validation
3024 IF px_child_claim_tbl(i).reason_code_id <> FND_API.g_miss_num AND px_child_claim_tbl(i).reason_code_id IS NOT NULL THEN
3025 OPEN reason_code_id_csr(px_child_claim_tbl(i).reason_code_id);
3026 FETCH reason_code_id_csr INTO l_claim_reason;
3027 CLOSE reason_code_id_csr;
3028
3029 IF l_claim_reason IS NULL THEN
3030 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.g_msg_lvl_error) THEN
3031 FND_MESSAGE.Set_Name('OZF','OZF_CLAIM_REASON_CD_NOT_IN_DB');
3032 FND_MSG_PUB.Add;
3033 END IF;
3034 RAISE FND_API.G_EXC_ERROR;
3035 END IF;
3036 END IF;
3037
3038 --//Claim Lines validation
3039 IF px_child_claim_tbl(i).claim_line_id_tbl.COUNT > 0 THEN
3040 l_line_sum_amount := 0;
3041 l_line_table := NULL;
3042 l_claim_line_id := NULL;
3043 l_amount := 0;
3044
3045 FOR j IN px_child_claim_tbl(i).claim_line_id_tbl.FIRST..px_child_claim_tbl(i).claim_line_id_tbl.LAST
3046 LOOP
3047 OPEN claim_lines_cur(p_parent_claim_id,px_child_claim_tbl(i).claim_line_id_tbl(j).claim_line_id);
3048 FETCH claim_lines_cur INTO l_claim_line_id,l_amount;
3049 CLOSE claim_lines_cur;
3050
3051 IF G_DEBUG THEN
3052 OZF_UTILITY_PVT.debug_message('Claim line ID :'|| px_child_claim_tbl(i).claim_line_id_tbl(j).claim_line_id);
3053 OZF_UTILITY_PVT.debug_message('l_claim_line_id :'||l_claim_line_id);
3054 OZF_UTILITY_PVT.debug_message('l_amount :'|| l_amount);
3055 END IF;
3056
3057 IF l_claim_line_id IS NULL THEN
3058 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.g_msg_lvl_error) THEN
3059 FND_MESSAGE.Set_Name('OZF','OZF_INVALID_CLAIM_LINE_ID');
3060 FND_MESSAGE.set_token('CLAIMLINEID', px_child_claim_tbl(i).claim_line_id_tbl(j).claim_line_id, false);
3061 --//Claim line id (l_claim_line_tbl(j).claim_line_id ) provided is invalid. Please enter a valid claim line id.
3062 FND_MSG_PUB.Add;
3063 END IF;
3064 RAISE FND_API.G_EXC_ERROR;
3065 ELSE
3066 l_line_table := l_line_table ||','|| l_claim_line_id;
3067 l_line_sum_amount := NVL(l_line_sum_amount,0) + l_amount;
3068 END IF;
3069 END LOOP;
3070
3071 END IF;
3072
3073 IF l_line_sum_amount > px_child_claim_tbl(i).amount THEN
3074 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.g_msg_lvl_error) THEN
3075 FND_MESSAGE.Set_Name('OZF','OZF_SPLIT_LINE_AMT');
3076 FND_MESSAGE.set_token('AMOUNT', px_child_claim_tbl(i).amount, false);
3077 FND_MESSAGE.set_token('LINEAMOUNT', l_line_sum_amount, false);
3078 FND_MSG_PUB.Add;
3079 END IF;
3080 RAISE FND_API.G_EXC_ERROR;
3081 END IF;
3082
3083 l_line_table := TRIM(BOTH ',' FROM l_line_table);
3084
3085 l_child_claim_tbl(i).parent_claim_id := p_parent_claim_id;
3086 l_child_claim_tbl(i).parent_object_ver_num := l_parent_objver_no;
3087 l_child_claim_tbl(i).claim_type_id := px_child_claim_tbl(i).claim_type_id;
3088 l_child_claim_tbl(i).reason_code_id := px_child_claim_tbl(i).reason_code_id;
3089 l_child_claim_tbl(i).amount := px_child_claim_tbl(i).amount;
3090 l_child_claim_tbl(i).line_table := l_line_table;
3091 END LOOP;
3092
3093 OZF_SPLIT_CLAIM_PVT.create_child_claim_tbl
3094 ( p_api_version => l_api_version
3095 , p_init_msg_list => p_init_msg_list
3096 , p_commit => p_commit
3097 , p_validation_level => p_validation_level
3098 , x_return_status => l_return_status
3099 , x_msg_data => l_msg_data
3100 , x_msg_count => l_msg_count
3101 , px_child_claim_tbl => l_child_claim_tbl
3102 , p_mode => 'AUTO'
3103 );
3104
3105 -- Check return status from the above procedure call
3106 IF x_return_status = FND_API.G_RET_STS_ERROR then
3107 RAISE FND_API.G_EXC_ERROR;
3108 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
3109 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3110 END IF;
3111
3112 FOR k IN px_child_claim_tbl.FIRST..px_child_claim_tbl.LAST LOOP
3113 px_child_claim_tbl(k).split_claim_id := l_child_claim_tbl(k).child_claim_id;
3114 END LOOP;
3115 ELSE
3116 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.g_msg_lvl_error) THEN
3117 FND_MESSAGE.Set_Name('OZF','OZF_NO_SPLIT_CLAIM_AMT');
3118 --//Split amount is mandatory to create a split claim.
3119 FND_MSG_PUB.Add;
3120 END IF;
3121 RAISE FND_API.G_EXC_ERROR;
3122 END IF;
3123
3124 --========================================================================
3125 --// Commit the process
3126 IF G_DEBUG THEN
3127 OZF_UTILITY_PVT.debug_message('Public API: '|| l_api_name||' End');
3128 END IF;
3129
3130 IF FND_API.to_Boolean( p_commit ) THEN
3131 COMMIT WORK;
3132 END IF;
3133
3134 -- Standard call to get message count and if count is 1, get message info.
3135 FND_MSG_PUB.Count_And_Get ( p_encoded => FND_API.G_FALSE
3136 , p_count => x_msg_count
3137 , p_data => x_msg_data
3138 );
3139
3140 EXCEPTION
3141 WHEN FND_API.G_EXC_ERROR THEN
3142 ROLLBACK TO Create_split_claims;
3143 x_return_status := FND_API.G_RET_STS_ERROR;
3144 -- Standard call to get message count and if count=1, get the message
3145 FND_MSG_PUB.Count_And_Get ( p_encoded => FND_API.G_FALSE
3146 , p_count => x_msg_count
3147 , p_data => x_msg_data
3148 );
3149 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3150 ROLLBACK TO Create_split_claims;
3151 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3152 -- Standard call to get message count and if count=1, get the message
3153 FND_MSG_PUB.Count_And_Get ( p_encoded => FND_API.G_FALSE
3154 , p_count => x_msg_count
3155 , p_data => x_msg_data
3156 );
3157 WHEN OTHERS THEN
3158 ROLLBACK TO Create_split_claims;
3159 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3160 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3161 THEN
3162 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
3163 END IF;
3164 -- Standard call to get message count and if count=1, get the message
3165 FND_MSG_PUB.Count_And_Get ( p_encoded => FND_API.G_FALSE
3166 , p_count => x_msg_count
3167 , p_data => x_msg_data
3168 );
3169 End Create_split_claims;
3170
3171 ---------------------------------------------------------------------
3172 -- PROCEDURE
3173 -- Create_event
3174 --
3175 -- PURPOSE
3176 -- Public API to Create Claim SLA Event
3177 --
3178 -- PARAMETERS
3179 -- p_claim_id : claim_id for which the event is raised.
3180 -- p_event_type_code : event_type_code for the claim.
3181 -- p_reversal_flag : Reversal flag will be used for account
3182 -- reversal.
3183 --
3184 -- NOTES
3185 --
3186 -- HISTORY
3187 -- 09/19/2011 BKUNJAN Created for ER 12985686
3188 ---------------------------------------------------------------------
3189 PROCEDURE Create_event(
3190 p_api_version_number IN NUMBER,
3191 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
3192 p_commit IN VARCHAR2 := FND_API.G_FALSE,
3193 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
3194 x_return_status OUT NOCOPY VARCHAR2,
3195 x_msg_count OUT NOCOPY NUMBER,
3196 x_msg_data OUT NOCOPY VARCHAR2,
3197 p_claim_id IN NUMBER,
3198 p_event_type_code IN VARCHAR2,
3199 p_reversal_flag IN VARCHAR2 DEFAULT NULL,
3200 x_event_id OUT NOCOPY NUMBER
3201 )
3202 IS
3203 l_api_name CONSTANT VARCHAR2(30) := 'Create_event';
3204 l_api_version_number CONSTANT NUMBER := 1.0;
3205 l_event_type_code VARCHAR2(30);
3206 l_taxfor VARCHAR2(2);
3207 l_settle_method_match BOOLEAN := TRUE;
3208 l_settlement_method VARCHAR2(30);
3209 l_claim_id NUMBER;
3210 l_status_code VARCHAR2(30);
3211 l_promo_count NUMBER;
3212 l_rev_event_class VARCHAR2(60);
3213 l_exists NUMBER;
3214 l_post_to_gl VARCHAR2(1);
3215 l_gl_rec OZF_GL_INTERFACE_PVT.gl_interface_rec_type;
3216
3217
3218 TYPE claim_event_rec_type IS RECORD (
3219 event_count NUMBER ,
3220 reversal_flag VARCHAR2(1));
3221
3222 TYPE claim_event_tbl_type is TABLE OF claim_event_rec_type;
3223
3224 l_claim_event_tbl claim_event_tbl_type;
3225
3226 CURSOR csr_event_type_chk(cv_event_type_code IN VARCHAR2)IS
3227 SELECT event_type_code
3228 FROM xla_event_types_vl
3229 WHERE application_id = 682
3230 AND accounting_flag ='Y'
3231 AND enabled_flag ='Y'
3232 AND event_type_code = cv_event_type_code;
3233
3234 CURSOR csr_claim_info(cv_claim_id IN NUMBER)IS
3235 SELECT claim_id
3236 ,status_code
3237 ,payment_method
3238 FROM ozf_claims_all
3239 WHERE claim_id = cv_claim_id;
3240
3241 CURSOR csr_is_promo_claim(cv_claim_id IN NUMBER)IS
3242 SELECT COUNT(clu.claim_line_util_id)
3243 FROM ozf_claim_lines_util_all clu,
3244 ozf_claim_lines_all cli
3245 WHERE clu.claim_line_id = cli.claim_line_id
3246 AND cli.claim_id = cv_claim_id;
3247
3248 CURSOR csr_claim_dup_chk(cv_claim_id IN NUMBER)IS
3249 SELECT count(event_id),
3250 NVL(reversal_flag,'N')
3251 FROM ozf_xla_claim_headers
3252 WHERE claim_id = cv_claim_id
3253 GROUP BY reversal_flag;
3254
3255 CURSOR taxfor_csr (p_claim_id IN NUMBER)IS
3256 SELECT tax_for
3257 FROM ozf_claim_sttlmnt_methods_all csm,ozf_claims_all c
3258 WHERE csm.settlement_method = c.payment_method
3259 AND c.claim_id =p_claim_id
3260 AND csm.org_id = c.org_id;
3261
3262 CURSOR csr_rev_event_class(cv_event_type_code IN VARCHAR2) IS
3263 SELECT evl.event_class_code
3264 FROM xla_event_types_vl evl
3265 WHERE evl.application_id = 682
3266 AND evl.event_type_code = cv_event_type_code;
3267
3268 CURSOR csr_chk_event_exists(cv_claim_id IN NUMBER
3269 ,cv_event_class_code IN VARCHAR2) IS
3270 SELECT 1
3271 FROM xla_event_types_vl evl,
3272 ozf_xla_claim_headers clh
3273 WHERE evl.application_id = 682
3274 AND evl.event_type_code = clh.event_type_code
3275 AND clh.claim_id = cv_claim_id
3276 AND evl.event_class_code = cv_event_class_code;
3277
3278 CURSOR claim_gl_posting_csr(p_id in number) IS
3279 SELECT NVL(osp.post_to_gl, 'F')
3280 FROM ozf_sys_parameters_all osp
3281 , ozf_claims_all oc
3282 WHERE osp.org_id = oc.org_id
3283 AND oc.claim_id = p_id;
3284
3285 BEGIN
3286 -- Standard Start of API savepoint
3287 SAVEPOINT Create_event;
3288 -- Standard call to check for call compatibility.
3289 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
3290 p_api_version_number,
3291 l_api_name,
3292 G_PKG_NAME)
3293 THEN
3294 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3295 END IF;
3296
3297 -- Initialize message list if p_init_msg_list is set to TRUE.
3298 IF FND_API.to_Boolean( p_init_msg_list ) THEN
3299 FND_MSG_PUB.initialize;
3300 END IF;
3301
3302 -- Debug Message
3303 IF G_DEBUG THEN
3304 OZF_UTILITY_PVT.debug_message('Public API: ' || l_api_name || ' start');
3305 END IF;
3306
3307 -- Initialize API return status to SUCCESS
3308 x_return_status := FND_API.G_RET_STS_SUCCESS;
3309
3310 --//API Body
3311 --========================================================================
3312 IF G_DEBUG THEN
3313 OZF_UTILITY_PVT.debug_message('--------- Create_Event ----------');
3314 OZF_UTILITY_PVT.debug_message('event_type_code : '||p_event_type_code);
3315 OZF_UTILITY_PVT.debug_message('Claim ID : '||p_claim_id);
3316 OZF_UTILITY_PVT.debug_message('Reversal Flag : '||p_reversal_flag);
3317 END IF;
3318
3319 --//Validations
3320 --//Validate event_type_code passed
3321 OPEN csr_claim_info(p_claim_id);
3322 FETCH csr_claim_info INTO l_claim_id,l_status_code,l_settlement_method;
3323 CLOSE csr_claim_info;
3324
3325 IF G_DEBUG THEN
3326 OZF_UTILITY_PVT.debug_message('l_claim_id : '||l_claim_id);
3327 OZF_UTILITY_PVT.debug_message('l_status_code : '||l_status_code);
3328 OZF_UTILITY_PVT.debug_message('l_settlement_method : '||l_settlement_method);
3329 END IF;
3330
3331 IF l_claim_id IS NULL THEN
3332 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3333 FND_MESSAGE.set_name('OZF', 'OZF_INVALID_CLAIM_ID');
3334 --//Invalid Claim Id. Please provide a valid Claim ID
3335 FND_MSG_PUB.add;
3336 END IF;
3337 x_return_status := fnd_api.g_ret_sts_error;
3338 RETURN;
3339 END IF;
3340
3341 IF l_status_code NOT IN ('PENDING_CLOSE','CLOSED') THEN
3342 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3343 FND_MESSAGE.set_name('OZF', 'OZF_INVALID_STATUS_CODE');
3344 --//Claim status should be Pending Close or Closed to create SLA event
3345 FND_MSG_PUB.add;
3346 END IF;
3347 x_return_status := fnd_api.g_ret_sts_error;
3348 RETURN;
3349 END IF;
3350
3351 --//Validate event type code with claim payment method.
3352 IF p_event_type_code = 'SETTLE_BY_CREDIT_MEMO' AND l_settlement_method <> 'CREDIT_MEMO' THEN
3353 l_settle_method_match := FALSE;
3354 ELSIF p_event_type_code = 'SETTLE_BY_DEBIT_MEMO' AND l_settlement_method <> 'DEBIT_MEMO' THEN
3355 l_settle_method_match := FALSE;
3356 ELSIF p_event_type_code = 'SETTLE_BY_AP_INVOICE' AND l_settlement_method NOT IN ('CHECK', 'WIRE', 'EFT','AP_DEFAULT') THEN
3357 l_settle_method_match := FALSE;
3358 ELSIF p_event_type_code = 'SETTLE_BY_AP_DEBIT' AND l_settlement_method <> 'AP_DEBIT' THEN
3359 l_settle_method_match := FALSE;
3360 ELSIF p_event_type_code = 'SETTLE_INTERNAL_SHIP_DEBIT' AND l_settlement_method <> 'ACCOUNTING_ONLY' THEN
3361 l_settle_method_match := FALSE;
3362 ELSIF p_event_type_code = 'SETTLE_BY_AR_AP_NETTING' AND l_settlement_method <> 'CONTRA_CHARGE' THEN
3363 l_settle_method_match := FALSE;
3364 END IF;
3365
3366 IF NOT l_settle_method_match THEN
3367 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3368 FND_MESSAGE.set_name('OZF', 'OZF_INCORRECT_EVENT_TYPE');
3369 --// Please use correct event type code for this settlement method.
3370 FND_MSG_PUB.add;
3371 END IF;
3372 x_return_status := fnd_api.g_ret_sts_error;
3373 RETURN;
3374 IF G_DEBUG THEN
3375 OZF_UTILITY_PVT.debug_message('l_settle_method_match FALSE');
3376 END IF;
3377 END IF;
3378
3379 l_settle_method_match := TRUE;
3380 --if claim has custom settlement method
3381 IF l_settlement_method NOT IN ('CREDIT_MEMO', 'DEBIT_MEMO', 'CHECK', 'WIRE', 'EFT','AP_DEFAULT', 'AP_DEBIT', 'ACCOUNTING_ONLY', 'CONTRA_CHARGE' ) THEN
3382
3383 OPEN taxfor_csr(p_claim_id);
3384 FETCH taxfor_csr INTO l_taxfor;
3385 CLOSE taxfor_csr;
3386
3387 --//Fix for bug 13481137 - Added CLAIM_SETTLEMENT_REVERSAL
3388 IF p_event_type_code NOT IN ('SETTLE_BY_AR_CUSTOM' , 'SETTLE_BY_AP_CUSTOM','CLAIM_SETTLEMENT_REVERSAL') THEN
3389 l_settle_method_match := FALSE;
3390 ELSIF p_event_type_code = 'SETTLE_BY_AR_CUSTOM' AND l_taxfor <> 'AR' THEN
3391 l_settle_method_match := FALSE;
3392 ELSIF p_event_type_code = 'SETTLE_BY_AP_CUSTOM' AND l_taxfor <> 'AP' THEN
3393 l_settle_method_match := FALSE;
3394 END IF;
3395 END IF;
3396
3397 IF NOT l_settle_method_match THEN
3398 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3399 FND_MESSAGE.set_name('OZF', 'OZF_INCORRECT_EVENT_TYPE');
3400 --// Please use correct event type code for this settlement method.
3401 FND_MSG_PUB.add;
3402 END IF;
3403 x_return_status := fnd_api.g_ret_sts_error;
3404 RETURN;
3405 END IF;
3406
3407 --//Event type code validations
3408 OPEN csr_event_type_chk(p_event_type_code);
3409 FETCH csr_event_type_chk INTO l_event_type_code;
3410 CLOSE csr_event_type_chk;
3411
3412 IF l_event_type_code IS NULL THEN
3413 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3414 FND_MESSAGE.set_name('OZF', 'OZF_INVALID_EVENT_TYPE_CODE');
3415 --//Event type code provided is invalid.Please provide a valid event type code.
3416 FND_MSG_PUB.add;
3417 END IF;
3418 x_return_status := fnd_api.g_ret_sts_error;
3419 RETURN;
3420 END IF;
3421
3422 OPEN claim_gl_posting_csr(p_claim_id);
3423 FETCH claim_gl_posting_csr INTO l_post_to_gl;
3424 CLOSE claim_gl_posting_csr;
3425
3426 IF l_post_to_gl = 'T' THEN
3427 IF G_DEBUG THEN
3428 OZF_UTILITY_PVT.debug_message('Post to GL is enabled');
3429 END IF;
3430 ELSE
3431 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3432 FND_MESSAGE.set_name('OZF', 'OZF_BAD_POST_TO_GL');
3433 --//Invalid Post to GL flag.
3434 FND_MSG_PUB.add;
3435 END IF;
3436 x_return_status := fnd_api.g_ret_sts_error;
3437 RETURN;
3438 END IF;
3439
3440
3441 --//Promotional Claim Check
3442 OPEN csr_is_promo_claim(p_claim_id);
3443 FETCH csr_is_promo_claim INTO l_promo_count;
3444 CLOSE csr_is_promo_claim;
3445
3446 IF l_promo_count = 0 THEN
3447 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3448 FND_MESSAGE.set_name('OZF', 'OZF_PROMO_CLAIM_REQD');
3449 --//Only promotional claims are eligible to create SLA event.
3450 FND_MSG_PUB.add;
3451 END IF;
3452 x_return_status := fnd_api.g_ret_sts_error;
3453 RETURN;
3454 END IF;
3455
3456 IF NVL(p_reversal_flag,'N') NOT IN ('Y','N') THEN
3457 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3458 FND_MESSAGE.set_name('OZF', 'OZF_INVALID_REVERSAL_FLAG');
3459 --//Value of Reversal flag provided is invalid.Please provide a valid value.
3460 FND_MSG_PUB.add;
3461 END IF;
3462 x_return_status := fnd_api.g_ret_sts_error;
3463 RETURN;
3464 END IF;
3465
3466 IF p_event_type_code = 'CLAIM_SETTLEMENT_REVERSAL' AND NVL(p_reversal_flag,'N') <> 'Y' THEN
3467 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3468 FND_MESSAGE.set_name('OZF', 'OZF_INVALID_RV_FLAG_FOR_EVT');
3469 --// Reversal flag should be Y for event type code CLAIM_SETTLEMENT_REVERSAL.
3470 FND_MSG_PUB.add;
3471 END IF;
3472 x_return_status := fnd_api.g_ret_sts_error;
3473 RETURN;
3474 END IF;
3475
3476
3477 IF p_reversal_flag = 'Y' THEN
3478 IF p_event_type_code IN('SETTLE_BY_CREDIT_MEMO'
3479 ,'SETTLE_BY_DEBIT_MEMO'
3480 ,'SETTLE_BY_AP_INVOICE'
3481 ,'SETTLE_BY_AP_DEBIT'
3482 ,'SETTLE_INTERNAL_SHIP_DEBIT'
3483 ,'SETTLE_BY_AR_AP_NETTING'
3484 ,'SETTLE_BY_AR_CUSTOM'
3485 ,'SETTLE_BY_AP_CUSTOM') THEN
3486 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3487 FND_MESSAGE.set_name('OZF', 'OZF_INCORRECT_REV_EVENT_TYPE');
3488 --// Please use correct event type code for reversal event.
3489 FND_MSG_PUB.add;
3490 END IF;
3491 x_return_status := fnd_api.g_ret_sts_error;
3492 RETURN;
3493 END IF;
3494
3495 --//If reversal_flag is Y, check if the Reversal Event Class is same as Event Class for parent claim event.
3496 --//Get the reversal event class code
3497 OPEN csr_rev_event_class(p_event_type_code);
3498 FETCH csr_rev_event_class INTO l_rev_event_class;
3499 CLOSE csr_rev_event_class;
3500
3501 --//check if the Reversal Event Class is same asEvent Class for parent claim event.
3502 OPEN csr_chk_event_exists(p_claim_id,l_rev_event_class);
3503 FETCH csr_chk_event_exists INTO l_exists;
3504 CLOSE csr_chk_event_exists;
3505
3506 IF l_exists <> 1 THEN
3507 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3508 FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_EVENT_MISMATCH');
3509 --// Reversal Event should be passed for the same Event Class as parent event.
3510 FND_MSG_PUB.add;
3511 END IF;
3512 x_return_status := fnd_api.g_ret_sts_error;
3513 RETURN;
3514 END IF;
3515 END IF;
3516
3517 --//Duplicate events check
3518 /* ===============================================================
3519 Event can be created when
3520 1. One entry in ozf_xla_claim_headers table and reversal flag is Y
3521 2.Even number of entries in ozf_xla_claim_headers for the same claim_idand reversal flag is equel to Y
3522
3523 =================================================================*/
3524 OPEN csr_claim_dup_chk(p_claim_id);
3525 FETCH csr_claim_dup_chk BULK COLLECT INTO l_claim_event_tbl;
3526 CLOSE csr_claim_dup_chk;
3527
3528 IF l_claim_event_tbl.COUNT <> 0 THEN
3529 IF G_DEBUG THEN
3530 OZF_UTILITY_PVT.debug_message('l_claim_event_tbl.COUNT :'|| l_claim_event_tbl.COUNT);
3531 END IF;
3532
3533 IF l_claim_event_tbl.COUNT = 1 AND NVL(p_reversal_flag,'N') <> 'Y' THEN
3534
3535 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3536 FND_MESSAGE.set_name('OZF', 'OZF_SLA_DUPLICATE_EVENT');
3537 --//SLA event is already created for this Claim.
3538 FND_MSG_PUB.add;
3539 END IF;
3540 x_return_status := fnd_api.g_ret_sts_error;
3541 RETURN;
3542 END IF;
3543
3544 IF l_claim_event_tbl.COUNT = 2 THEN
3545 IF l_claim_event_tbl(2).event_count = l_claim_event_tbl(1).event_count AND NVL(p_reversal_flag,'N') <> 'N' THEN
3546 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3547 FND_MESSAGE.set_name('OZF', 'OZF_SLA_DUPLICATE_EVENT');
3548 --//SLA event is already created for this Claim.
3549 FND_MSG_PUB.add;
3550 END IF;
3551 x_return_status := fnd_api.g_ret_sts_error;
3552 RETURN;
3553
3554 ELSIF l_claim_event_tbl(2).event_count <> l_claim_event_tbl(1).event_count AND NVL(p_reversal_flag,'N') <> 'Y' THEN
3555 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3556 FND_MESSAGE.set_name('OZF', 'OZF_SLA_DUPLICATE_EVENT');
3557 --//SLA event is already created for this Claim.
3558 FND_MSG_PUB.add;
3559 END IF;
3560 x_return_status := fnd_api.g_ret_sts_error;
3561 RETURN;
3562 END IF;
3563 END IF;
3564 ELSE
3565 IF NVL(p_reversal_flag,'N') <> 'N' THEN
3566 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3567 FND_MESSAGE.set_name('OZF', 'OZF_INVALID_REVERSAL_EVENT');
3568 --//You cannot create first event of a claim as Reversal event.
3569 FND_MSG_PUB.add;
3570 END IF;
3571 x_return_status := fnd_api.g_ret_sts_error;
3572 RETURN;
3573 END IF;
3574 END IF;
3575
3576 --//Invoke API to create Claim SLA Event
3577 OZF_GL_INTERFACE_PVT.Create_SLA_Claim_Extract(
3578 p_api_version => 1.0
3579 ,p_init_msg_list => FND_API.G_FALSE
3580 ,p_commit => FND_API.G_FALSE
3581 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
3582 ,x_return_status => x_return_status
3583 ,x_msg_data => x_msg_data
3584 ,x_msg_count => x_msg_count
3585 ,p_claim_id => p_claim_id
3586 ,p_event_type_code => p_event_type_code
3587 ,p_gl_rec => l_gl_rec --ER 14297905
3588 ,x_xla_event_id => x_event_id
3589 );
3590
3591 IF x_return_status = FND_API.g_ret_sts_error THEN
3592 RAISE FND_API.g_exc_error;
3593 ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
3594 RAISE FND_API.g_exc_unexpected_error;
3595 END IF;
3596
3597
3598 --========================================================================
3599 --// Commit the process
3600 IF G_DEBUG THEN
3601
3602 OZF_UTILITY_PVT.debug_message('Public API: '|| l_api_name||' End');
3603 END IF;
3604 IF FND_API.to_Boolean( p_commit )
3605 THEN
3606 COMMIT WORK;
3607 END IF;
3608
3609 FND_MSG_PUB.Count_And_Get (
3610 p_encoded => FND_API.G_FALSE,
3611 p_count => x_msg_count,
3612 p_data => x_msg_data
3613 );
3614
3615 EXCEPTION
3616 WHEN FND_API.G_EXC_ERROR THEN
3617 ROLLBACK TO Create_event;
3618 x_return_status := FND_API.G_RET_STS_ERROR;
3619 -- Standard call to get message count and if count=1, get the message
3620 FND_MSG_PUB.Count_And_Get (
3621 p_encoded => FND_API.G_FALSE,
3622 p_count => x_msg_count,
3623 p_data => x_msg_data
3624 );
3625 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3626 ROLLBACK TO Create_event;
3627 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3628 -- Standard call to get message count and if count=1, get the message
3629 FND_MSG_PUB.Count_And_Get (
3630 p_encoded => FND_API.G_FALSE,
3631 p_count => x_msg_count,
3632 p_data => x_msg_data
3633 );
3634 WHEN OTHERS THEN
3635 ROLLBACK TO Create_event;
3636 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3637 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
3638 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
3639 END IF;
3640 -- Standard call to get message count and if count=1, get the message
3641 FND_MSG_PUB.Count_And_Get (
3642 p_encoded => FND_API.G_FALSE,
3643 p_count => x_msg_count,
3644 p_data => x_msg_data
3645 );
3646 End Create_event;
3647
3648 END OZF_CLAIM_PUB;