[Home] [Help]
PACKAGE BODY: APPS.CN_CALC_CLASSIFY_PVT
Source
1 PACKAGE BODY cn_calc_classify_pvt AS
2 -- $Header: cnvcclsb.pls 120.5.12010000.2 2008/09/22 13:39:57 rajukum ship $
3
4 G_PKG_NAME CONSTANT VARCHAR2(30) := 'CN_CALC_CLASSIFY_PVT';
5 G_FILE_NAME CONSTANT VARCHAR2(12) := 'cnvcclsb.pls';
6 G_LAST_UPDATE_DATE DATE := sysdate;
7 G_LAST_UPDATED_BY NUMBER := fnd_global.user_id;
8 G_LAST_UPDATE_LOGIN NUMBER := fnd_global.login_id;
9
10 g_org_id NUMBER;
11 g_org_append VARCHAR2(100);
12
13 g_intel_calc_flag VARCHAR2(1);
14
15
16 -- API name : classify_batch
17 -- Type : Private.
18 -- Pre-reqs :
19 -- Usage :
20 --+
21 -- Desc :
22 --
23 -- Parameters :
24 -- IN : p_api_version NUMBER Require
25 -- p_init_msg_list VARCHAR2 Optional (FND_API.G_FALSE)
26 -- p_commit VARCHAR2 Optional (FND_API.G_FALSE)
27 -- p_validation_level NUMBER Optional (FND_API.G_VALID_LEVEL_FULL)
28 -- OUT : x_return_status VARCHAR2(1)
29 -- x_msg_count NUMBER
30 -- x_msg_data VARCHAR2(2000)
31 -- IN : p_physical_batch_id NUMBER(15) Require
32 --
33 --
34 -- +
35 --+
36 -- Version : Current version 1.0
37 -- Initial version 1.0
38 --+
39 -- Notes :
40 --+
41 -- End of comments
42
43 PROCEDURE classify_batch
44 ( p_api_version IN NUMBER,
45 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
46 p_commit IN VARCHAR2 := FND_API.G_FALSE,
47 p_validation_level IN VARCHAR2 := FND_API.G_VALID_LEVEL_FULL,
48
49 x_return_status OUT NOCOPY VARCHAR2,
50 x_msg_count OUT NOCOPY NUMBER,
51 x_msg_data OUT NOCOPY VARCHAR2,
52
53 p_physical_batch_id IN NUMBER,
54 p_mode IN VARCHAR2 := 'NORMAL'
55
56 ) IS
57
58 l_api_name CONSTANT VARCHAR2(30) := 'Classify_batch';
59 l_api_version CONSTANT NUMBER :=1.0;
60
61 l_min_start_date DATE;
62 l_max_end_date DATE;
63 l_revenue_class_id NUMBER;
64 l_stmt VARCHAR2(1000);
65
66 l_calc_type VARCHAR2(30);
67 l_dummy NUMBER;
68
69 -- assuming l_min_start-date/l_max_end_date are not null
70 CURSOR ruleset_cr IS
71 SELECT ruleset_id,
72 Greatest(start_date, l_min_start_date) start_date,
73 Least(Nvl(end_date,l_max_end_date), Nvl(l_max_end_date, end_date)) end_date
74 FROM cn_rulesets_all
75 WHERE ((start_date < l_min_start_date AND (end_date IS NULL OR end_date >= l_min_start_date )) OR
76 start_date BETWEEN l_min_start_date AND l_max_end_date)
77 AND module_type = 'REVCLS'
78 AND org_id = g_org_id
79 ORDER BY start_date;
80
81 l_ruleset ruleset_cr%ROWTYPE;
82 BEGIN
83 -- Standard Start of API savepoint
84 SAVEPOINT classify_batch;
85 -- Standard call to check for call compatibility.
86 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
87 p_api_version ,
88 l_api_name ,
89 G_PKG_NAME )
90 THEN
91 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
92 END IF;
93
94 -- Initialize message list if p_init_msg_list is set to TRUE.
95 IF FND_API.to_Boolean( p_init_msg_list ) THEN
96 FND_MSG_PUB.initialize;
97 END IF;
98
99 -- Initialize API return status to success
100 x_return_status := FND_API.G_RET_STS_SUCCESS;
101
102 -- Codes start here
103 IF (p_mode = 'NEW') THEN
104 l_calc_type := 'COMMISSION';
105 g_intel_calc_flag := 'N';
106 ELSE
107 l_calc_type := cn_calc_sub_batches_pkg.get_calc_type(p_physical_batch_id);
108 g_intel_calc_flag := cn_calc_sub_batches_pkg.get_intel_calc_flag(p_physical_batch_id);
109 END IF;
110
111 SELECT MIN(start_date), MAX(end_date)
112 INTO l_min_start_date, l_max_end_date
113 FROM cn_process_batches_all
114 WHERE physical_batch_id = p_physical_batch_id;
115
116 -- cache org_id and org_append
117
118 select org_id
119 into g_org_id
120 from cn_process_batches_all
121 where physical_batch_id = p_physical_batch_id
122 and rownum = 1;
123
124 g_org_append := '_' || g_org_id;
125
126 FOR l_ruleset IN ruleset_cr LOOP
127
128 l_stmt := 'BEGIN ' ||
129 ':rev_class_id := ' ||'cn_clsfn_' || To_char(Abs(l_ruleset.ruleset_id))
130 || g_org_append || '.classify_' || To_char(Abs(l_ruleset.ruleset_id)) ||
131 '( :commission_header_id);' || 'END;';
132
133
134 if (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
135 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT,
136 'cn.plsql.cn_calc_classify_pvt.classify_batch.statement',
137 'Calling: '||l_stmt);
138 end if;
139
140 DECLARE
141 CURSOR l_trxs_csr IS
142 SELECT ch.commission_header_id,
143 ch.pre_processed_code,
144 ch.revenue_class_id
145 FROM cn_commission_headers_all ch
146 WHERE ch.direct_salesrep_id IN (SELECT salesrep_id
147 FROM cn_process_batches_all pb
148 WHERE pb.physical_batch_id = p_physical_batch_id)
149 AND ch.processed_date BETWEEN l_ruleset.start_date AND l_ruleset.end_date
150 AND ch.org_id = g_org_id
151 AND (( l_calc_type = 'COMMISSION'
152 AND ch.trx_type NOT IN ('FORECAST', 'GRP', 'BONUS') )
153 OR (l_calc_type = 'FORECAST' AND ch.trx_type = 'FORECAST' ) )
154 AND ch.status IN ('COL') ;
155
156 CURSOR l_trx_cls_cr IS
157 SELECT ch.commission_header_id,
158 ch.pre_processed_code,
159 ch.revenue_class_id
160 FROM cn_commission_headers_all ch
161 WHERE ch.direct_salesrep_id
162 IN ( SELECT salesrep_id
163 FROM cn_process_batches_all pb
164 WHERE pb.physical_batch_id = p_physical_batch_id)
165 AND ch.processed_date BETWEEN l_ruleset.start_date AND l_ruleset.end_date
166 AND ch.org_id = g_org_id
167 AND exists (SELECT 1
168 FROM cn_notify_log_all notify
169 WHERE notify.period_id = ch.processed_period_id
170 AND notify.status = 'INCOMPLETE'
171 AND revert_state = 'COL'
172 AND org_id = g_org_id
173 AND salesrep_id = -1000)
174 AND (( l_calc_type = 'COMMISSION'
175 AND ch.trx_type NOT IN ('FORECAST', 'GRP', 'BONUS') )
176 OR (l_calc_type = 'FORECAST' AND ch.trx_type = 'FORECAST' ) )
177 AND ch.status IN ('CLS', 'XCLS')
178 AND substrb(ch.pre_processed_code,1,1) = 'C';
179
180 CURSOR l_trx_roll_cr IS
181 SELECT ch.commission_header_id,
182 ch.pre_processed_code,
183 ch.revenue_class_id
184 FROM cn_commission_headers_all ch
185 WHERE ch.direct_salesrep_id IN (SELECT salesrep_id
186 FROM cn_process_batches_all pb
187 WHERE pb.physical_batch_id = p_physical_batch_id)
188 AND ch.processed_date BETWEEN l_ruleset.start_date AND l_ruleset.end_date
189 AND ch.org_id = g_org_id
190 AND exists (SELECT 1
191 FROM cn_notify_log_all notify
192 WHERE notify.period_id = ch.processed_period_id
193 AND notify.status = 'INCOMPLETE'
194 AND revert_state = 'COL'
195 AND org_id = g_org_id
196 AND salesrep_id = -1000)
197 AND (( l_calc_type = 'COMMISSION'
198 AND ch.trx_type NOT IN ('FORECAST', 'GRP', 'BONUS') )
199 OR (l_calc_type = 'FORECAST' AND ch.trx_type = 'FORECAST' ) )
200 AND ch.status IN ('ROLL')
201 AND (ch.parent_header_id IS NULL OR ch.parent_header_id <> -1)
202 AND substrb(ch.pre_processed_code,1,1) = 'C';
203 BEGIN
204 IF ( p_mode = 'NORMAL') AND (g_intel_calc_flag = 'Y') THEN
205 FOR eachtrx IN l_trx_cls_cr LOOP
206
207 execute immediate l_stmt using OUT l_revenue_class_id, eachtrx.commission_header_id;
208
209 IF (l_revenue_class_id IS NOT NULL) THEN
210 -- Find one revenue class for this transaction
211 UPDATE cn_commission_headers_all
212 SET status = 'CLS',
213 revenue_class_id = l_revenue_class_id,
214 last_update_date = sysdate,
215 last_updated_by = G_LAST_UPDATED_BY,
216 last_update_login = G_LAST_UPDATE_LOGIN
217 WHERE commission_header_id = eachtrx.commission_header_id;
218
219 IF (l_revenue_class_id <> eachtrx.revenue_class_id) THEN
220 -- new revenue_class_id, need to re-populate
221 cn_formula_common_pkg.revert_header_lines
222 (p_commission_header_id => eachtrx.commission_header_id,
223 p_revert_state => 'XCLS');
224 END IF;
225 ELSE
226 -- Couldn't find revenue class for this transaction
227 UPDATE cn_commission_headers_all
228 SET status = 'XCLS',
229 revenue_class_id = NULL,
230 last_update_date = sysdate,
231 last_updated_by = G_LAST_UPDATED_BY,
232 last_update_login = G_LAST_UPDATE_LOGIN
233 WHERE commission_header_id = eachtrx.commission_header_id;
234
235 cn_formula_common_pkg.revert_header_lines
236 (p_commission_header_id => eachtrx.commission_header_id,
237 p_revert_state => 'XCLS');
238
239 END IF;
240
241 END LOOP;
242
243 FOR eachtrx IN l_trx_roll_cr LOOP
244
245 execute immediate l_stmt using OUT l_revenue_class_id,
246 eachtrx.commission_header_id;
247
248 IF (l_revenue_class_id IS NOT NULL) THEN
249 IF (l_revenue_class_id <> eachtrx.revenue_class_id) THEN
250
251 -- Find one revenue class for this transaction
252 UPDATE cn_commission_headers_all
253 SET status = 'ROLL',
254 revenue_class_id = l_revenue_class_id,
255 last_update_date = sysdate,
256 last_updated_by = G_LAST_UPDATED_BY,
257 last_update_login = G_LAST_UPDATE_LOGIN
258 WHERE commission_header_id = eachtrx.commission_header_id;
259
260 UPDATE cn_commission_lines_all
261 SET revenue_class_id = l_revenue_class_id
262 WHERE commission_header_id = eachtrx.commission_header_id;
263
264 -- new revenue_class_id, need to re-populate
265 cn_formula_common_pkg.revert_header_lines
266 (p_commission_header_id => eachtrx.commission_header_id,
267 p_revert_state => 'ROLL');
268
269 END IF;
270 ELSE
271 -- Couldn't find revenue class for this transaction
272 UPDATE cn_commission_headers_all
273 SET status = 'XCLS',
274 revenue_class_id = NULL,
275 last_update_date = sysdate,
276 last_updated_by = G_LAST_UPDATED_BY,
277 last_update_login = G_LAST_UPDATE_LOGIN
278 WHERE commission_header_id = eachtrx.commission_header_id;
279
280 cn_formula_common_pkg.revert_header_lines
281 (p_commission_header_id => eachtrx.commission_header_id,
282 p_revert_state => 'XCLS');
283
284 END IF; -- End of l_revenue_class_id
285
286 END LOOP; -- End of l_trx_roll_cr
287
288 END IF; -- End of p_mode
289
290 FOR l_transaction IN l_trxs_csr LOOP
291 IF (substrb(l_transaction.pre_processed_code,1,1) = 'N') THEN
292 -- revenue_class_id is known, skip classification
293 l_revenue_class_id := l_transaction.revenue_class_id;
294 ELSE
295 -- this transaction need to be classified
296 execute immediate l_stmt using OUT l_revenue_class_id, l_transaction.commission_header_id;
297 END IF;
298
299 IF (l_revenue_class_id IS NOT NULL) THEN
300
301 -- Find one revenue class for this transaction
302 UPDATE cn_commission_headers_all
303 SET status = 'CLS',
304 revenue_class_id = l_revenue_class_id,
305 last_update_date = sysdate,
306 last_updated_by = G_LAST_UPDATED_BY,
307 last_update_login = G_LAST_UPDATE_LOGIN
308 WHERE commission_header_id = l_transaction.commission_header_id;
309
310 ELSE
311 -- Couldn't find revenue class for this transaction
312 UPDATE cn_commission_headers_all
313 SET status = 'XCLS',
314 revenue_class_id = NULL,
315 last_update_date = sysdate,
316 last_updated_by = G_LAST_UPDATED_BY,
317 last_update_login = G_LAST_UPDATE_LOGIN
318 WHERE commission_header_id = l_transaction.commission_header_id;
319
320 END IF;
321
322 END LOOP; -- end of transaction loop
323 END; -- end of one ruleset
324 END LOOP;
325
326 -- Standard check of p_commit.
327 IF FND_API.To_Boolean( p_commit ) THEN
328 COMMIT WORK;
329 END IF;
330
331 -- Standard call to get message count and if count is 1, get message info.
332 FND_MSG_PUB.Count_And_Get
333 ( p_count => x_msg_count ,
334 p_data => x_msg_data ,
335 p_encoded => FND_API.G_FALSE
336 );
337
338 EXCEPTION
339 WHEN FND_API.G_EXC_ERROR THEN
340 ROLLBACK TO classify_batch;
341 x_return_status := FND_API.G_RET_STS_ERROR ;
342 FND_MSG_PUB.Count_And_Get
343 (p_count => x_msg_count ,
344 p_data => x_msg_data ,
345 p_encoded => FND_API.G_FALSE
346 );
347
348 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
349 ROLLBACK TO classify_batch;
350 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
351 FND_MSG_PUB.Count_And_Get
352 (p_count => x_msg_count ,
353 p_data => x_msg_data ,
354 p_encoded => FND_API.G_FALSE
355 );
356
357 WHEN OTHERS THEN
358 ROLLBACK TO classify_batch;
359
360 if (FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) then
361 FND_LOG.STRING(FND_LOG.LEVEL_UNEXPECTED,
362 'cn.plsql.cn_calc_classify_pvt.classify_batch.exception',
363 sqlerrm);
364 end if;
365
366 fnd_file.put_line(fnd_file.Log, sqlerrm);
367 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
368 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
369 THEN
370 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,l_api_name );
371 END IF;
372 FND_MSG_PUB.Count_And_Get
373 (p_count => x_msg_count ,
374 p_data => x_msg_data ,
375 p_encoded => FND_API.G_FALSE
376 );
377
378 END classify_batch;
379
380
381 -- API name : classify
382 -- Type : Private.
383 -- Pre-reqs :
384 -- Usage :
385 --+
386 -- Desc :
387 --
388 --
389 --+
390 -- Parameters :
391 -- IN : p_api_version NUMBER Require
392 -- p_init_msg_list VARCHAR2 Optional (FND_API.G_FALSE)
393 -- p_commit VARCHAR2 Optional (FND_API.G_FALSE)
394 -- p_validation_level NUMBER Optional (FND_API.G_VALID_LEVEL_FULL)
395 -- p_transaction_rec cn_commission_headers%rowtype
396 -- OUT : x_return_status VARCHAR2(1)
397 -- x_msg_count NUMBER
398 -- x_msg_data VARCHAR2(2000)
399 -- x_revenue_class_id NUMBER
400 --
401 --
402 -- +
403 --+
404 -- Version : Current version 1.0
405 -- Initial version 1.0
406 --+
407 -- Notes :
408 --+
409 -- End of comments
410
411 procedure classify(p_api_version IN NUMBER,
412 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
413 p_commit IN VARCHAR2 := FND_API.G_FALSE,
417 x_return_status OUT NOCOPY VARCHAR2,
414 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
415 p_transaction_rec IN cn_commission_headers%rowtype,
416 x_revenue_class_id OUT NOCOPY NUMBER,
418 x_msg_count OUT NOCOPY NUMBER,
419 x_msg_data OUT NOCOPY VARCHAR2)
420 IS
421
422 l_ruleset_id number;
423 l_ruleset_status varchar2(20);
424 l_begin varchar2(20) := 'begin :l_id := ';
425 l_package varchar2(50);
426 l_stmt varchar2(1000) :=
427 'classify(:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13,:14,:15,'||
428 ':16,:17,:18,:19,:20,:21,:22,:23,:24,:25,:26,:27,:28,:29,:30,:31,:32,:33,:34,:35,:36,:37,:38,:39,'||
429 ':40,:41,:42,:43,:44,:45,:46,:47,:48,:49,:50,:51,:52,:53,:54,:55,:56,:57,:58,:59,:60,:61,:62,:63,:64,:65,'||
430 ':66,:67,:68,:69,:70,:71,:72,:73,:74,:75,:76,:77,:78,:79,:80,:81,:82,:83,:84,:85,:86,:87,:88,:89,:90,'||
431 ':91,:92,:93,:94,:95,:96,:97,:98,:99,:100,:101,:102,:103,:104,:105,:106,:107,:108,:109,:110,:111,:112,'||
432 ':113,:114,:115,:116,:117,:118,:119,:120,:121,:122,:123,:124,:125,:126,:127,:128,:129,:130,:131,:132,'||
433 ':133,:134,:135,:136,:137,:138,:139,:140,:141,:142,:143,:144,:145,:146,:147,:148,:149,:150,:151,:152,:153,'||
434 ':154,:155,:156,:157,:158,:159,:160,:161,:162,:163,:164,:165,:166,:167,:168,:169,:170,:171,:172,:173); end;';
435
436 cursor get_ruleset(l_org_id number, l_proc_date date) is
437 select ruleset_id, ruleset_status
438 from cn_rulesets_all
439 where org_id = l_org_id
440 and module_type = 'REVCLS'
441 and l_proc_date between start_date and nvl(end_date,l_proc_date);
442
443 begin
444
445 --check fo null values of Processed date and Org_id
446 IF p_transaction_rec.processed_date = FND_API.G_MISS_DATE THEN
447 RAISE FND_API.G_EXC_ERROR;
448 ELSE IF p_transaction_rec.org_id = FND_API.G_MISS_NUM THEN
449 RAISE FND_API.G_EXC_ERROR;
450 END IF;
451 END IF;
452
453 open get_ruleset(p_transaction_rec.org_id,p_transaction_rec.processed_date);
454 fetch get_ruleset into l_ruleset_id, l_ruleset_status;
455
456 --Check if there is any Ruleset for the given processed date
457 if(get_ruleset%notfound) then
458 close get_ruleset;
459 raise FND_API.G_EXC_ERROR;
460 end if;
461
462 close get_ruleset;
463 --Check if the Classification package has been generated for the selected Ruleset
464 if l_ruleset_status <> 'GENERATED' then
465 raise FND_API.G_EXC_ERROR;
466 end if;
467
468 l_package := 'cn_clsfn_' || abs(l_ruleset_id) || '_1_' || p_transaction_rec.org_id || '.';
469
470 l_stmt := l_begin || l_package || l_stmt;
471
472
473 execute immediate l_stmt using out x_revenue_class_id,
474 p_transaction_rec.source_doc_type,
475 p_transaction_rec.attribute50,
476 p_transaction_rec.invoice_number,
477 p_transaction_rec.attribute73,
478 p_transaction_rec.attribute87,
479 p_transaction_rec.forecast_id,
480 p_transaction_rec.upside_quantity,
481 p_transaction_rec.upside_amount,
482 p_transaction_rec.uom_code,
483 p_transaction_rec.source_trx_id,
484 p_transaction_rec.source_trx_line_id,
485 p_transaction_rec.source_trx_sales_line_id,
486 p_transaction_rec.negated_flag,
487 p_transaction_rec.customer_id,
488 p_transaction_rec.inventory_item_id,
489 p_transaction_rec.order_number,
490 p_transaction_rec.booked_date,
491 p_transaction_rec.invoice_date,
492 p_transaction_rec.bill_to_address_id,
493 p_transaction_rec.ship_to_address_id,
494 p_transaction_rec.bill_to_contact_id,
495 p_transaction_rec.ship_to_contact_id,
496 p_transaction_rec.adj_comm_lines_api_id,
497 p_transaction_rec.adjust_date,
498 p_transaction_rec.adjusted_by,
499 p_transaction_rec.revenue_type,
500 p_transaction_rec.adjust_rollup_flag,
501 p_transaction_rec.adjust_comments,
502 p_transaction_rec.adjust_status,
503 p_transaction_rec.line_number,
504 p_transaction_rec.request_id,
505 p_transaction_rec.program_id,
506 p_transaction_rec.program_application_id,
507 p_transaction_rec.program_update_date,
508 p_transaction_rec.type,
509 p_transaction_rec.sales_channel,
510 p_transaction_rec.object_version_number,
511 p_transaction_rec.split_pct,
512 p_transaction_rec.split_status,
513 p_transaction_rec.security_group_id,
514 p_transaction_rec.parent_header_id,
515 p_transaction_rec.trx_type,
516 p_transaction_rec.status,
517 p_transaction_rec.pre_processed_code,
518 p_transaction_rec.comm_lines_api_id,
519 p_transaction_rec.source_trx_number,
520 p_transaction_rec.quota_id,
521 p_transaction_rec.srp_plan_assign_id,
522 p_transaction_rec.revenue_class_id,
523 p_transaction_rec.role_id,
524 p_transaction_rec.comp_group_id,
525 p_transaction_rec.commission_amount,
526 p_transaction_rec.trx_batch_id,
527 p_transaction_rec.reversal_flag,
528 p_transaction_rec.reversal_header_id,
529 p_transaction_rec.reason_code,
530 p_transaction_rec.comments,
531 p_transaction_rec.attribute_category,
532 p_transaction_rec.attribute1,
533 p_transaction_rec.attribute2,
534 p_transaction_rec.attribute3,
535 p_transaction_rec.attribute4,
536 p_transaction_rec.attribute5,
537 p_transaction_rec.attribute6,
538 p_transaction_rec.attribute7,
539 p_transaction_rec.attribute8,
540 p_transaction_rec.attribute9,
541 p_transaction_rec.attribute10,
545 p_transaction_rec.attribute14,
542 p_transaction_rec.attribute11,
543 p_transaction_rec.attribute12,
544 p_transaction_rec.attribute13,
546 p_transaction_rec.attribute15,
547 p_transaction_rec.attribute16,
548 p_transaction_rec.attribute17,
549 p_transaction_rec.attribute18,
550 p_transaction_rec.attribute19,
551 p_transaction_rec.attribute20,
552 p_transaction_rec.attribute21,
553 p_transaction_rec.attribute22,
554 p_transaction_rec.attribute23,
555 p_transaction_rec.attribute24,
556 p_transaction_rec.attribute25,
557 p_transaction_rec.attribute26,
558 p_transaction_rec.attribute27,
559 p_transaction_rec.attribute28,
560 p_transaction_rec.attribute29,
561 p_transaction_rec.attribute30,
562 p_transaction_rec.attribute31,
563 p_transaction_rec.attribute32,
564 p_transaction_rec.attribute33,
565 p_transaction_rec.attribute34,
566 p_transaction_rec.attribute35,
567 p_transaction_rec.attribute36,
568 p_transaction_rec.attribute37,
569 p_transaction_rec.attribute38,
570 p_transaction_rec.attribute39,
571 p_transaction_rec.attribute40,
572 p_transaction_rec.attribute41,
573 p_transaction_rec.attribute42,
574 p_transaction_rec.attribute43,
575 p_transaction_rec.attribute44,
576 p_transaction_rec.attribute45,
577 p_transaction_rec.attribute46,
578 p_transaction_rec.attribute47,
579 p_transaction_rec.attribute48,
580 p_transaction_rec.attribute49,
581 p_transaction_rec.attribute51,
582 p_transaction_rec.attribute52,
583 p_transaction_rec.attribute53,
584 p_transaction_rec.attribute54,
585 p_transaction_rec.attribute55,
586 p_transaction_rec.attribute56,
587 p_transaction_rec.attribute57,
588 p_transaction_rec.attribute58,
589 p_transaction_rec.attribute59,
590 p_transaction_rec.attribute60,
591 p_transaction_rec.attribute61,
592 p_transaction_rec.attribute62,
593 p_transaction_rec.attribute63,
594 p_transaction_rec.attribute64,
595 p_transaction_rec.attribute65,
596 p_transaction_rec.attribute66,
597 p_transaction_rec.attribute67,
598 p_transaction_rec.attribute68,
599 p_transaction_rec.attribute69,
600 p_transaction_rec.attribute70,
601 p_transaction_rec.attribute71,
602 p_transaction_rec.attribute72,
603 p_transaction_rec.attribute74,
604 p_transaction_rec.attribute75,
605 p_transaction_rec.attribute76,
606 p_transaction_rec.attribute77,
607 p_transaction_rec.attribute78,
608 p_transaction_rec.attribute79,
609 p_transaction_rec.attribute80,
610 p_transaction_rec.attribute81,
611 p_transaction_rec.attribute82,
612 p_transaction_rec.attribute83,
613 p_transaction_rec.attribute84,
614 p_transaction_rec.attribute85,
615 p_transaction_rec.attribute86,
616 p_transaction_rec.attribute88,
617 p_transaction_rec.attribute89,
618 p_transaction_rec.attribute90,
619 p_transaction_rec.attribute91,
620 p_transaction_rec.attribute92,
621 p_transaction_rec.attribute93,
622 p_transaction_rec.attribute94,
623 p_transaction_rec.attribute95,
624 p_transaction_rec.attribute96,
625 p_transaction_rec.attribute97,
626 p_transaction_rec.attribute98,
627 p_transaction_rec.attribute99,
628 p_transaction_rec.attribute100,
629 p_transaction_rec.last_update_date,
630 p_transaction_rec.last_updated_by,
631 p_transaction_rec.last_update_login,
632 p_transaction_rec.creation_date,
633 p_transaction_rec.created_by,
634 p_transaction_rec.org_id,
635 p_transaction_rec.exchange_rate,
636 p_transaction_rec.commission_header_id,
637 p_transaction_rec.direct_salesrep_id,
638 p_transaction_rec.processed_date,
639 p_transaction_rec.processed_period_id,
640 p_transaction_rec.rollup_date,
641 p_transaction_rec.transaction_amount,
642 p_transaction_rec.quantity,
643 p_transaction_rec.discount_percentage,
644 p_transaction_rec.margin_percentage,
645 p_transaction_rec.orig_currency_code,
646 p_transaction_rec.transaction_amount_orig;
647
648 -- Error handling. etc.
649 EXCEPTION
650 WHEN FND_API.G_EXC_ERROR THEN
651 x_return_status := FND_API.G_RET_STS_ERROR;
652 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
653 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
654 WHEN OTHERS THEN
655 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
656
657 end classify;
658
659
660
661 END cn_calc_classify_pvt;