DBA Data[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;