DBA Data[Home] [Help]

PACKAGE BODY: APPS.HZ_ORG_INFO_PUB

Source


1 package body HZ_ORG_INFO_PUB as
2 /* $Header: ARHORISB.pls 120.11 2005/12/07 19:32:52 acng ship $ */
3 
4 G_PKG_NAME CONSTANT VARCHAR2(30) :=  'HZ_ORG_INFO_PUB';
5 
6 -- Bug 2197181: added for mix-n-match project.
7 
8 g_fin_mixnmatch_enabled                VARCHAR2(1);
9 g_fin_selected_datasources             VARCHAR2(255);
10 g_fin_is_datasource_selected           VARCHAR2(1) := 'N';
11 g_fin_entity_attr_id                   NUMBER;
12 
13 /*===========================================================================+
14  | PROCEDURE
15  |              do_create_stock_markets
16  |
17  | DESCRIPTION
18  |              Creates stock markets.
19  |
20  | SCOPE - PRIVATE
21  |
22  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
23  |
24  | ARGUMENTS  : IN:
25  |              OUT:
26  |                    x_stock_exchange_id
27  |          IN/ OUT:
28  |                    p_stock_markets_rec
29  |                    x_return_status
30  |
31  | RETURNS    : NONE
32  |
33  | NOTES
34  |
35  | MODIFICATION HISTORY
36  |    Jianying Huang 06-OCT-00  Bug 1428526: make *_rec parameters as
37  |                      'IN OUT' in order to pass the changed record
38  |                      to caller.
39  |
40  |     16-MAR-01  Suresh P   Bug No :1478910 Added the status column in
41  |                 HZ_CERTIFICATIONS_PKG.INSERT_ROW(),HZ_CERTIFICATION_PKG.UPDATE_ROW(),
42  |                 HZ_FINANCIAL_REPORTS_PKG.INSERT_ROW(),HZ_FINANCIAL_REPORTS_PKG.UPDATE_ROW(),
43  |                 HZ_FINANCIAL_NUMBER_PKG.INSERT_ROW(),HZ_FINANCIAL_NUMBER_PKG.UPDATE_ROW(),
44  |                 HZ_INDUSTRIAL_REFERENCE_PKG.INSERT_ROW(),HZ_INDUSTRIAL_REFERENCE_PKG.UPDATE_ROW,
45  |                 HZ_SECURITY_ISSUED_PKG.INSERT_ROW(),HZ_SECURITY_ISSUED_PKG.UPDATE_ROW.
46  +===========================================================================*/
47 
48 procedure do_create_stock_markets(
49         p_stock_markets_rec      IN OUT  NOCOPY stock_markets_rec_type,
50         x_stock_exchange_id      OUT     NOCOPY NUMBER,
51         x_return_status          IN OUT  NOCOPY VARCHAR2
52 ) IS
53         l_stock_exchange_id      NUMBER := p_stock_markets_rec.stock_exchange_id;
54         l_rowid                  ROWID := NULL;
55         l_count                  NUMBER;
56 BEGIN
57    -- if l_stock_exchange_id is NULL, then generate PK.
58    IF l_stock_exchange_id is NULL  OR
59       l_stock_exchange_id = FND_API.G_MISS_NUM  THEN
60      l_count := 1;
61 
62      WHILE l_count >0 LOOP
63        SELECT hz_stock_markets_s.nextval
64        INTO l_stock_exchange_id from dual;
65 
66        SELECT count(*)
67        INTO l_count
68        FROM HZ_STOCK_MARKETS
69        WHERE stock_exchange_id  = l_stock_exchange_id;
70      END LOOP;
71 
72    ELSE
73      l_count := 0;
74 
75      SELECT count(*)
76      INTO l_count
77      FROM HZ_STOCK_MARKETS
78      WHERE stock_exchange_id = l_stock_exchange_id;
79 
80      if  l_count > 0 THEN
81        FND_MESSAGE.SET_NAME('AR', 'HZ_API_DUPLICATE_COLUMN');
82        FND_MESSAGE.SET_TOKEN('COLUMN', 'stock_exchange_id');
83        FND_MSG_PUB.ADD;
84        RAISE FND_API.G_EXC_ERROR;
85       end if;
86 
87     END IF;
88 
89     x_stock_exchange_id := l_stock_exchange_id;
90 
91     -- validate stock market record
92     HZ_ORG_INFO_VALIDATE.validate_stock_markets(p_stock_markets_rec,'C',
93                                                 x_return_status);
94 
95     IF x_return_status = FND_API.G_RET_STS_ERROR THEN
96                 RAISE FND_API.G_EXC_ERROR;
97     END IF;
98 
99 -- Bug 1428526: Should pass updated stock market info. to caller.
100 -- Make sure to use values in p_stock_markets_rec.* when calling insert table
101 -- handler. Need to update p_stock_markets_rec first.
102     p_stock_markets_rec.stock_exchange_id := l_stock_exchange_id;
103 
104     -- call table handler to insert a row
105     HZ_STOCK_MARKETS_PKG.INSERT_ROW(
106       X_Rowid => l_rowid,
107       X_STOCK_EXCHANGE_ID => p_stock_markets_rec.stock_exchange_id,
108       X_COUNTRY_OF_RESIDENCE => p_stock_markets_rec.COUNTRY_OF_RESIDENCE,
109       X_STOCK_EXCHANGE_CODE => p_stock_markets_rec.STOCK_EXCHANGE_CODE,
110       X_STOCK_EXCHANGE_NAME => p_stock_markets_rec.STOCK_EXCHANGE_NAME,
111       X_CREATED_BY => hz_utility_pub.CREATED_BY,
112       X_CREATION_DATE => hz_utility_pub.CREATION_DATE,
113       X_LAST_UPDATE_LOGIN => hz_utility_pub.LAST_UPDATE_LOGIN,
114       X_LAST_UPDATE_DATE => hz_utility_pub.LAST_UPDATE_DATE,
115       X_LAST_UPDATED_BY => hz_utility_pub.LAST_UPDATED_BY,
116       X_REQUEST_ID => hz_utility_pub.REQUEST_ID,
117       X_PROGRAM_APPLICATION_ID => hz_utility_pub.PROGRAM_APPLICATION_ID,
118       X_PROGRAM_ID => hz_utility_pub.PROGRAM_ID,
119       X_PROGRAM_UPDATE_DATE => hz_utility_pub.PROGRAM_UPDATE_DATE,
120       X_WH_UPDATE_DATE => p_stock_markets_rec.WH_UPDATE_DATE
121      );
122 
123 END do_create_stock_markets;
124 
125 /*===========================================================================+
126  | PROCEDURE
127  |              do_update_stock_markets
128  |
129  | DESCRIPTION
130  |              Updates stock markets.
131  |
132  | SCOPE - PRIVATE
133  |
134  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
135  |
136  | ARGUMENTS  : IN:
137  |              OUT:
138  |          IN/ OUT:
139  |                    p_stock_markets_rec
140  |                    p_last_update_date
141  |                    x_return_status
142  |
143  | RETURNS    : NONE
144  |
145  | NOTES
146  |
147  | MODIFICATION HISTORY
148  |    Jianying Huang 06-OCT-00  Bug 1428526: make *_rec parameters as
149  |                      'IN OUT' in order to pass the changed record
150  |                      to caller.
151  |
152  +===========================================================================*/
153 
154 procedure do_update_stock_markets(
155         p_stock_markets_rec       IN OUT  NOCOPY stock_markets_rec_type,
156         p_last_update_date        IN OUT  NOCOPY DATE,
157         x_return_status           IN OUT  NOCOPY VARCHAR2
158 ) IS
159         l_count                   NUMBER;
160         l_rowid                   ROWID := NULL;
161         l_last_update_date        DATE;
162 BEGIN
163      -- check primary key
164      IF p_stock_markets_rec.stock_exchange_id is NULL  OR
165         p_stock_markets_rec.stock_exchange_id = FND_API.G_MISS_NUM  THEN
166           FND_MESSAGE.SET_NAME('AR', 'HZ_API_MISSING_COLUMN');
167           FND_MESSAGE.SET_TOKEN('COLUMN', 'stock_exchange_id');
168           FND_MSG_PUB.ADD;
169           RAISE FND_API.G_EXC_ERROR;
170      END IF;
171 
172      -- check last_update_date
173      IF p_last_update_date is NULL  OR
174         p_last_update_date = FND_API.G_MISS_DATE  THEN
175           FND_MESSAGE.SET_NAME('AR', 'HZ_API_MISSING_COLUMN');
176           FND_MESSAGE.SET_TOKEN('COLUMN', 'last_update_date');
177           FND_MSG_PUB.ADD;
178           RAISE FND_API.G_EXC_ERROR;
179      END IF;
180 
181      -- select rowid , last_update_date for lock a row
182 
183 begin
184      SELECT rowid, last_update_date
185      INTO l_rowid, l_last_update_date
186      FROM HZ_STOCK_MARKETS
187      WHERE stock_exchange_id = p_stock_markets_rec.stock_exchange_id
188      AND to_char(last_update_date, 'DD-MON-YYYY HH:MI:SS') =
189      to_char(p_last_update_date, 'DD-MON-YYYY HH:MI:SS')
190      FOR UPDATE NOWAIT;
191 
192      EXCEPTION WHEN NO_DATA_FOUND THEN
193      FND_MESSAGE.SET_NAME('AR', 'HZ_API_RECORD_CHANGED');
194      FND_MESSAGE.SET_TOKEN('TABLE', 'HZ_STOCK_MARKETS');
195      FND_MSG_PUB.ADD;
196      RAISE FND_API.G_EXC_ERROR;
197 end;
198 
199         -- validate stock market record
200         HZ_ORG_INFO_VALIDATE.validate_stock_markets(p_stock_markets_rec,'U',
201                                                     x_return_status);
202 
203         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
204                 RAISE FND_API.G_EXC_ERROR;
205         END IF;
206 
207         -- pass back last update date
208         p_last_update_date := hz_utility_pub.LAST_UPDATE_DATE;
209 
210 -- Bug 1428526: Should pass updated stock market info. to caller.
211 -- Make sure to use values in p_stock_markets_rec.* when calling update table
212 -- handler. Need to update p_stock_markets_rec first.
213       NULL;
214 
215       -- call table handler to update a row
216       HZ_STOCK_MARKETS_PKG.UPDATE_ROW(
217         X_Rowid => l_rowid,
218         X_STOCK_EXCHANGE_ID => p_stock_markets_rec.STOCK_EXCHANGE_ID,
219         X_COUNTRY_OF_RESIDENCE => p_stock_markets_rec.COUNTRY_OF_RESIDENCE,
220         X_STOCK_EXCHANGE_CODE => p_stock_markets_rec.STOCK_EXCHANGE_CODE,
221         X_STOCK_EXCHANGE_NAME => p_stock_markets_rec.STOCK_EXCHANGE_NAME,
222         X_CREATED_BY => FND_API.G_MISS_NUM,
223         X_CREATION_DATE => FND_API.G_MISS_DATE,
224         X_LAST_UPDATE_LOGIN => hz_utility_pub.LAST_UPDATE_LOGIN,
225         X_LAST_UPDATE_DATE => p_last_update_date,
226         X_LAST_UPDATED_BY => hz_utility_pub.LAST_UPDATED_BY,
227         X_REQUEST_ID => hz_utility_pub.REQUEST_ID,
228         X_PROGRAM_APPLICATION_ID => hz_utility_pub.PROGRAM_APPLICATION_ID,
229         X_PROGRAM_ID => hz_utility_pub.PROGRAM_ID,
230         X_PROGRAM_UPDATE_DATE => hz_utility_pub.PROGRAM_UPDATE_DATE,
231         X_WH_UPDATE_DATE => p_stock_markets_rec.WH_UPDATE_DATE
232        );
233 
234 END do_update_stock_markets;
235 
236 /*===========================================================================+
237  | PROCEDURE
238  |              do_create_security_issued
239  |
240  | DESCRIPTION
241  |              Creates security issued.
242  |
243  | SCOPE - PRIVATE
244  |
245  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
246  |
247  | ARGUMENTS  : IN:
248  |              OUT:
249  |                    x_security_issued_id
250  |          IN/ OUT:
251  |                    p_security_issued_rec
252  |                    x_return_status
253  |
254  | RETURNS    : NONE
255  |
256  | NOTES
257  |
258  | MODIFICATION HISTORY
259  |    Jianying Huang 06-OCT-00  Bug 1428526: make *_rec parameters as
260  |                      'IN OUT' in order to pass the changed record
261  |                      to caller.
262  |
263  +===========================================================================*/
264 
265 procedure do_create_security_issued(
266         p_security_issued_rec      IN OUT  NOCOPY security_issued_rec_type,
267         x_security_issued_id       OUT     NOCOPY NUMBER,
268         x_return_status            IN OUT  NOCOPY VARCHAR2
269 ) IS
270         l_security_issued_id       NUMBER := p_security_issued_rec.security_issued_id;
271         l_count                    NUMBER ;
272         l_rowid                    ROWID  := NULL;
273 BEGIN
274    -- if l_security_issued_id NULL, generate primary key.
275    IF l_security_issued_id is NULL  OR
276       l_security_issued_id = FND_API.G_MISS_NUM  THEN
277         l_count := 1;
278 
279         WHILE l_count > 0 LOOP
280           SELECT hz_security_issued_s.nextval
281           INTO l_security_issued_id  from DUAL;
282 
283           SELECT count(*)
284           INTO l_count
285           FROM HZ_SECURITY_ISSUED
286           WHERE security_issued_id = l_security_issued_id;
287        END LOOP;
288 
289     ELSE
290       l_count := 0;
291 
292       SELECT count(*)
293       INTO  l_count
294       FROM HZ_SECURITY_ISSUED
295       WHERE security_issued_id = l_security_issued_id;
296 
297        if  l_count > 0 THEN
298        FND_MESSAGE.SET_NAME('AR', 'HZ_API_DUPLICATE_COLUMN');
299        FND_MESSAGE.SET_TOKEN('COLUMN', 'security_issued_id');
300        FND_MSG_PUB.ADD;
301        RAISE FND_API.G_EXC_ERROR;
302       end if;
303 
304     END IF;
305 
306     x_security_issued_id := l_security_issued_id;
307 
308      -- validate security issued record
309     HZ_ORG_INFO_VALIDATE.validate_security_issued(p_security_issued_rec,'C',
310                                                   x_return_status );
311     IF x_return_status = FND_API.G_RET_STS_ERROR THEN
312                 RAISE FND_API.G_EXC_ERROR;
313     END IF;
314 
315 -- Bug 1428526: Should pass updated security issued info. to caller.
316 -- Make sure to use values in p_security_issued_rec.* when calling insert table
317 -- handler. Need to update p_security_issued_rec first.
318     p_security_issued_rec.security_issued_id := l_security_issued_id;
319     -- call table handler to insert a row
320     HZ_SECURITY_ISSUED_PKG.INSERT_ROW(
321       X_Rowid => l_rowid,
322       X_SECURITY_ISSUED_ID => p_security_issued_rec.security_issued_id,
323       X_ESTIMATED_TOTAL_AMOUNT => p_security_issued_rec.ESTIMATED_TOTAL_AMOUNT,
324       X_PARTY_ID => p_security_issued_rec.PARTY_ID,
325       X_STOCK_EXCHANGE_ID => p_security_issued_rec.STOCK_EXCHANGE_ID,
326       X_SECURITY_ISSUED_CLASS => p_security_issued_rec.SECURITY_ISSUED_CLASS,
327       X_SECURITY_ISSUED_NAME => p_security_issued_rec.SECURITY_ISSUED_NAME,
328       X_TOTAL_AMOUNT_IN_A_CURRENCY => p_security_issued_rec.TOTAL_AMOUNT_IN_A_CURRENCY,
329       X_STOCK_TICKER_SYMBOL => p_security_issued_rec.STOCK_TICKER_SYMBOL,
330       X_SECURITY_CURRENCY_CODE => p_security_issued_rec.SECURITY_CURRENCY_CODE,
331       X_BEGIN_DATE => p_security_issued_rec.BEGIN_DATE,
332       X_END_DATE => p_security_issued_rec.END_DATE,
333       X_CREATED_BY => hz_utility_pub.CREATED_BY,
334       X_CREATION_DATE => hz_utility_pub.CREATION_DATE,
335       X_LAST_UPDATE_LOGIN => hz_utility_pub.LAST_UPDATE_LOGIN,
336       X_LAST_UPDATE_DATE => hz_utility_pub.LAST_UPDATE_DATE,
337       X_LAST_UPDATED_BY => hz_utility_pub.LAST_UPDATED_BY,
338       X_REQUEST_ID => hz_utility_pub.REQUEST_ID,
339       X_PROGRAM_APPLICATION_ID => hz_utility_pub.PROGRAM_APPLICATION_ID,
340       X_PROGRAM_ID => hz_utility_pub.PROGRAM_ID,
341       X_PROGRAM_UPDATE_DATE => hz_utility_pub.PROGRAM_UPDATE_DATE,
342       X_WH_UPDATE_DATE => p_security_issued_rec.WH_UPDATE_DATE,
343       X_STATUS        =>p_security_issued_rec.STATUS
344      );
345 
346 END do_create_security_issued;
347 
348 /*===========================================================================+
349  | PROCEDURE
350  |              do_update_security_issued
351  |
352  | DESCRIPTION
353  |              Updates security issued.
354  |
355  | SCOPE - PRIVATE
356  |
357  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
358  |
359  | ARGUMENTS  : IN:
360  |              OUT:
361  |          IN/ OUT:
362  |                    p_security_issued_rec
363  |                    p_last_update_date
364  |                    x_return_status
365  |
366  | RETURNS    : NONE
367  |
368  | NOTES
369  |
370  | MODIFICATION HISTORY
371  |    Jianying Huang 06-OCT-00  Bug 1428526: make *_rec parameters as
372  |                      'IN OUT' in order to pass the changed record
373  |                      to caller.
374  |
375  +===========================================================================*/
376 
377 procedure do_update_security_issued(
378         p_security_issued_rec   IN OUT  NOCOPY security_issued_rec_type,
379         p_last_update_date      IN OUT  NOCOPY DATE,
380         x_return_status         IN OUT  NOCOPY VARCHAR2
381 ) IS
382         l_last_update_date      DATE;
383         l_count                 NUMBER;
384         l_rowid                 ROWID := NULL;
385 BEGIN
386 
387    -- check required field:
388    IF p_security_issued_rec.security_issued_id is NULL  OR
389       p_security_issued_rec.security_issued_id = FND_API.G_MISS_NUM  THEN
390 
391         FND_MESSAGE.SET_NAME('AR', 'HZ_API_MISSING_COLUMN');
392         FND_MESSAGE.SET_TOKEN('COLUMN', 'security_issued_id');
393         FND_MSG_PUB.ADD;
394         RAISE FND_API.G_EXC_ERROR;
395 
396    END IF;
397 
398         IF p_last_update_date IS NULL OR
399            p_last_update_date = FND_API.G_MISS_DATE
400         THEN
401                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_MISSING_COLUMN');
402                 FND_MESSAGE.SET_TOKEN('COLUMN', 'p_last_update_date');
403                 FND_MSG_PUB.ADD;
404                 RAISE FND_API.G_EXC_ERROR;
405         END IF;
406 begin
407         -- check last update date.
408         SELECT rowid, last_update_date
409         INTO l_rowid, l_last_update_date
410         FROM HZ_SECURITY_ISSUED
411         where security_issued_id
412               = p_security_issued_rec.security_issued_id
413         AND to_char(last_update_date, 'DD-MON-YYYY HH:MI:SS') =
414             to_char(p_last_update_date, 'DD-MON-YYYY HH:MI:SS')
415         FOR UPDATE NOWAIT;
416 
417         EXCEPTION WHEN NO_DATA_FOUND THEN
418         FND_MESSAGE.SET_NAME('AR', 'HZ_API_RECORD_CHANGED');
419         FND_MESSAGE.SET_TOKEN('TABLE', 'HZ_SECURITY_ISSUED');
420         FND_MSG_PUB.ADD;
421         RAISE FND_API.G_EXC_ERROR;
422 end;
423 
424         -- validate security issued record
425         HZ_ORG_INFO_VALIDATE.validate_security_issued(p_security_issued_rec,'U',
426                                                       x_return_status);
427 
428         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
429                 RAISE FND_API.G_EXC_ERROR;
430         END IF;
431 
432         -- pass back last_update_date
433         p_last_update_date := hz_utility_pub.LAST_UPDATE_DATE;
434 
435 -- Bug 1428526: Should pass updated security issued info. to caller.
436 -- Make sure to use values in p_security_issued_rec.* when calling update table
437 -- handler. Need to update p_security_issued_rec first.
438       NULL;
439 
440       -- call table handler to update a row
441       HZ_SECURITY_ISSUED_PKG.UPDATE_ROW(
442         X_Rowid => l_rowid,
443         X_SECURITY_ISSUED_ID => p_security_issued_rec.SECURITY_ISSUED_ID,
444         X_ESTIMATED_TOTAL_AMOUNT => p_security_issued_rec.ESTIMATED_TOTAL_AMOUNT,
445         X_PARTY_ID => p_security_issued_rec.PARTY_ID,
446         X_STOCK_EXCHANGE_ID => p_security_issued_rec.STOCK_EXCHANGE_ID,
447         X_SECURITY_ISSUED_CLASS => p_security_issued_rec.SECURITY_ISSUED_CLASS,
448         X_SECURITY_ISSUED_NAME => p_security_issued_rec.SECURITY_ISSUED_NAME,
449         X_TOTAL_AMOUNT_IN_A_CURRENCY => p_security_issued_rec.TOTAL_AMOUNT_IN_A_CURRENCY,
450         X_STOCK_TICKER_SYMBOL => p_security_issued_rec.STOCK_TICKER_SYMBOL,
451         X_SECURITY_CURRENCY_CODE => p_security_issued_rec.SECURITY_CURRENCY_CODE,
452         X_BEGIN_DATE => p_security_issued_rec.BEGIN_DATE,
453         X_END_DATE => p_security_issued_rec.END_DATE,
454         X_CREATED_BY => FND_API.G_MISS_NUM,
455         X_CREATION_DATE => FND_API.G_MISS_DATE,
456         X_LAST_UPDATE_LOGIN => hz_utility_pub.LAST_UPDATE_LOGIN,
457         X_LAST_UPDATE_DATE => p_last_update_date,
458         X_LAST_UPDATED_BY => hz_utility_pub.LAST_UPDATED_BY,
459         X_REQUEST_ID => hz_utility_pub.REQUEST_ID,
460         X_PROGRAM_APPLICATION_ID => hz_utility_pub.PROGRAM_APPLICATION_ID,
461         X_PROGRAM_ID => hz_utility_pub.PROGRAM_ID,
462         X_PROGRAM_UPDATE_DATE => hz_utility_pub.PROGRAM_UPDATE_DATE,
463         X_WH_UPDATE_DATE => p_security_issued_rec.WH_UPDATE_DATE,
464         X_STATUS        => p_security_issued_rec.STATUS
465        );
466 
467 END do_update_security_issued;
468 
469 /*===========================================================================+
470  | PROCEDURE
471  |              do_create_financial_reports
472  |
473  | DESCRIPTION
474  |              Creates financial reports.
475  |
476  | SCOPE - PRIVATE
477  |
478  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
479  |
480  | ARGUMENTS  : IN:
481  |              OUT:
482  |                    x_financial_report_id
483  |          IN/ OUT:
484  |                    p_financial_reports_rec
485  |                    x_return_status
486  |
487  | RETURNS    : NONE
488  |
489  | NOTES
490  |
491  | MODIFICATION HISTORY
492  |    Jianying Huang 06-OCT-00  Bug 1428526: make *_rec parameters as
493  |                      'IN OUT' in order to pass the changed record
494  |                      to caller.
495  |    01-03-2005  Rajib Ranjan Borah   o SSM SST Integration and Extension.
496  |                                       For non-profile entities, the concept of
497  |                                       select/de-select data-sources is obsoleted.
498  +===========================================================================*/
499 
500 procedure do_create_financial_reports(
501     p_financial_reports_rec         IN OUT NOCOPY financial_reports_rec_type,
502     x_financial_report_id           OUT    NOCOPY NUMBER,
503     x_return_status                 IN OUT NOCOPY VARCHAR2
504 ) IS
505 
506     l_financial_report_id           NUMBER := p_financial_reports_rec.financial_report_id;
507     l_rowid                         ROWID := NULL;
508     l_count                         NUMBER;
509     x_msg_count                     NUMBER;
510     x_msg_data                      VARCHAR2(2000);
511 
512 BEGIN
513 
514 /*
515     --Call to User-Hook pre Processing Procedure
516     --Bug 1363124: validation#3 of content_source_type
517 
518     IF  fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' AND
519         -- Bug 2197181: Modifed the condition
520         g_fin_is_datasource_selected = 'Y'
521     THEN
522       hz_org_info_crmhk.create_financial_reports_pre(
523         p_financial_reports_rec,
524         x_return_status,
525         x_msg_count,
526         x_msg_data);
527 
528       IF x_return_status = FND_API.G_RET_STS_ERROR THEN
529         RAISE FND_API.G_EXC_ERROR;
530       ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
531         FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
532         FND_MESSAGE.SET_TOKEN('PROCEDURE',
533                               'HZ_ORG_INFO_CRMHK.CREATE_FINANCIAL_REPORTS_PRE');
534         FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
535         FND_MSG_PUB.ADD;
536         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
537       END IF;
538     END IF;
539 */
540 
541     -- if l_financial_report_id is NULL, then generate PK.
542     IF l_financial_report_id is NULL  OR
543        l_financial_report_id = FND_API.G_MISS_NUM
544     THEN
545       l_count := 1;
546 
547       WHILE l_count >0 LOOP
548         SELECT hz_financial_reports_s.nextval
549         INTO l_financial_report_id from dual;
550 
551         SELECT count(*)
552         INTO l_count
553         FROM HZ_FINANCIAL_REPORTS
554         WHERE financial_report_id = l_financial_report_id;
555       END LOOP;
556     ELSE
557       l_count := 0;
558 
559       SELECT count(*)
560       INTO l_count
561       FROM HZ_FINANCIAL_REPORTS
562       WHERE financial_report_id = l_financial_report_id;
563 
564       IF  l_count > 0 THEN
565        FND_MESSAGE.SET_NAME('AR', 'HZ_API_DUPLICATE_COLUMN');
566        FND_MESSAGE.SET_TOKEN('COLUMN', 'financial_report_id');
567        FND_MSG_PUB.ADD;
568        RAISE FND_API.G_EXC_ERROR;
569       END IF;
570     END IF;
571 
572     x_financial_report_id := l_financial_report_id;
573 
574     -- validate financial report record
575     HZ_ORG_INFO_VALIDATE.validate_financial_reports(
576       p_financial_reports_rec, 'C', x_return_status);
577 
578     IF x_return_status = FND_API.G_RET_STS_ERROR THEN
579       RAISE FND_API.G_EXC_ERROR;
580     END IF;
581 
582     -- Bug 1428526: Should pass updated financial reports info. to caller.
583     -- Make sure to use values in p_financial_reports_rec.* when calling insert table
584     -- handler. Need to update p_financial_reports_rec first.
585     p_financial_reports_rec.financial_report_id := l_financial_report_id;
586 /*
587     -- call table handler to insert a row
588     HZ_FINANCIAL_REPORTS_PKG.INSERT_ROW(
589       x_rowid                           => l_rowid,
590       x_financial_report_id             => p_financial_reports_rec.financial_report_id,
591       x_date_report_issued              => p_financial_reports_rec.date_report_issued,
592       x_party_id                        => p_financial_reports_rec.party_id,
593       x_document_reference              => p_financial_reports_rec.document_reference,
594       x_issued_period                   => p_financial_reports_rec.issued_period,
595       x_requiring_authority             => p_financial_reports_rec.requiring_authority,
596       x_type_of_financial_report        => p_financial_reports_rec.type_of_financial_report,
597       x_created_by                      => hz_utility_pub.created_by,
598       x_creation_date                   => hz_utility_pub.creation_date,
599       x_last_update_login               => hz_utility_pub.last_update_login,
600       x_last_update_date                => hz_utility_pub.last_update_date,
601       x_last_updated_by                 => hz_utility_pub.last_updated_by,
602       x_request_id                      => hz_utility_pub.request_id,
603       x_program_application_id          => hz_utility_pub.program_application_id,
604       x_program_id                      => hz_utility_pub.program_id,
605       x_program_update_date             => hz_utility_pub.program_update_date,
606       x_wh_udpate_id                    => p_financial_reports_rec.wh_udpate_id,
607       x_report_start_date               => p_financial_reports_rec.report_start_date,
608       x_report_end_date                 => p_financial_reports_rec.report_end_date,
609       x_audit_ind                       => p_financial_reports_rec.audit_ind,
610       x_consolidated_ind                => p_financial_reports_rec.consolidated_ind,
611       x_estimated_ind                   => p_financial_reports_rec.estimated_ind,
612       x_fiscal_ind                      => p_financial_reports_rec.fiscal_ind,
613       x_final_ind                       => p_financial_reports_rec.final_ind,
614       x_forecast_ind                    => p_financial_reports_rec.forecast_ind,
615       x_opening_ind                     => p_financial_reports_rec.opening_ind,
616       x_proforma_ind                    => p_financial_reports_rec.proforma_ind,
617       x_qualified_ind                   => p_financial_reports_rec.qualified_ind,
618       x_restated_ind                    => p_financial_reports_rec.restated_ind,
619       x_signed_by_principals_ind        => p_financial_reports_rec.signed_by_principals_ind,
620       x_trial_balance_ind               => p_financial_reports_rec.trial_balance_ind,
621       x_unbalanced_ind                  => p_financial_reports_rec.unbalanced_ind,
622       x_content_source_type             => p_financial_reports_rec.content_source_type ,
623       x_status                          => p_financial_reports_rec.status,
624       x_actual_content_source           => p_financial_reports_rec.actual_content_source
625      );
626 */
627 /*
628     --Call to User-Hook pre Processing Procedure
629     --Bug 1363124: validation#3 of content_source_type
630 
631     IF  fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' AND
632         -- Bug 2197181: Modifed the condition
633         g_fin_is_datasource_selected = 'Y'
634     THEN
635       hz_org_info_crmhk.create_financial_reports_post(
636         p_financial_reports_rec,
637         x_return_status,
638         x_msg_count,
639         x_msg_data);
640 
641       IF x_return_status = FND_API.G_RET_STS_ERROR THEN
642         RAISE FND_API.G_EXC_ERROR;
643       ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
644         FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
645         FND_MESSAGE.SET_TOKEN('PROCEDURE',
646                               'HZ_ORG_INFO_CRMHK.CREATE_FINANCIAL_REPORTS_POST');
647         FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
648         FND_MSG_PUB.ADD;
649         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
650       END IF;
651     END IF;
652 */
653 
654 END do_create_financial_reports;
655 
656 /*===========================================================================+
657  | PROCEDURE
658  |              do_update_financial_reports
659  |
660  | DESCRIPTION
661  |              Updates financial reports.
662  |
663  | SCOPE - PRIVATE
664  |
665  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
666  |
667  | ARGUMENTS  : IN:
668  |              OUT:
669  |          IN/ OUT:
670  |                    p_financial_reports_rec
671  |                    p_last_update_date
672  |                    x_return_status
673  |
674  | RETURNS    : NONE
675  |
676  | NOTES
677  |
678  | MODIFICATION HISTORY
679  |    Jianying Huang 06-OCT-00  Bug 1428526: make *_rec parameters as
680  |                      'IN OUT' in order to pass the changed record
681  |                      to caller.
682  |    01-03-2005  Rajib Ranjan Borah   o SSM SST Integration and Extension.
683  |                                       For non-profile entities, the concept of
684  |                                       select/de-select data-sources is obsoleted.
685  +===========================================================================*/
686 
687 procedure do_update_financial_reports(
688     p_financial_reports_rec         IN OUT NOCOPY financial_reports_rec_type,
689     p_last_update_date              IN OUT NOCOPY DATE,
690     x_return_status                 IN OUT NOCOPY VARCHAR2
691 ) IS
692 
693     l_rowid                         ROWID := NULL;
694     l_last_update_date              DATE;
695     x_msg_count                     NUMBER;
696     x_msg_data                      VARCHAR2(2000);
697 
698 BEGIN
699 
700     -- check required fields:
701     IF p_financial_reports_rec.financial_report_id is NULL OR
702        p_financial_reports_rec.financial_report_id = FND_API.G_MISS_NUM
703     THEN
704      FND_MESSAGE.SET_NAME('AR', 'HZ_API_MISSING_COLUMN');
705      FND_MESSAGE.SET_TOKEN('COLUMN', 'financial_report_id');
706      FND_MSG_PUB.ADD;
707      RAISE FND_API.G_EXC_ERROR;
708     END IF;
709 
710     IF p_last_update_date IS NULL OR
711        p_last_update_date = FND_API.G_MISS_DATE
712     THEN
713       FND_MESSAGE.SET_NAME('AR', 'HZ_API_MISSING_COLUMN');
714       FND_MESSAGE.SET_TOKEN('COLUMN', 'p_last_update_date');
715       FND_MSG_PUB.ADD;
716       RAISE FND_API.G_EXC_ERROR;
717     END IF;
718 
719     BEGIN
720       -- check last update date.
721       SELECT rowid, last_update_date
722       INTO l_rowid, l_last_update_date
723       FROM hz_financial_reports
724       where financial_report_id = p_financial_reports_rec.financial_report_id
725       AND to_char(last_update_date, 'DD-MON-YYYY HH:MI:SS') =
726           to_char(p_last_update_date, 'DD-MON-YYYY HH:MI:SS')
727       FOR UPDATE NOWAIT;
728 
729     EXCEPTION
730       WHEN NO_DATA_FOUND THEN
731         FND_MESSAGE.SET_NAME('AR', 'HZ_API_RECORD_CHANGED');
732         FND_MESSAGE.SET_TOKEN('TABLE', 'HZ_FINANCIAL_REPORTS');
733         FND_MSG_PUB.ADD;
734         RAISE FND_API.G_EXC_ERROR;
735     END;
736 
737 /*
738     --Call to User-Hook pre Processing Procedure
739     --Bug 1363124: validation#3 of content_source_type
740 
741     IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' AND
742        -- Bug 2197181: Modifed the condition
743        g_fin_is_datasource_selected = 'Y'
744     THEN
745       hz_org_info_crmhk.update_financial_reports_pre(
746         p_financial_reports_rec,
747         x_return_status,
748         x_msg_count,
749         x_msg_data);
750 
751       IF x_return_status = FND_API.G_RET_STS_ERROR THEN
752         RAISE FND_API.G_EXC_ERROR;
753       ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
754         FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
755         FND_MESSAGE.SET_TOKEN('PROCEDURE',
756                               'HZ_ORG_INFO_CRMHK.UPDATE_FINANCIAL_REPORTS_PRE');
757         FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
758         FND_MSG_PUB.ADD;
759         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
760       END IF;
761     END IF;
762 */
763 
764     -- validate financial report record
765     HZ_ORG_INFO_VALIDATE.validate_financial_reports(
766       p_financial_reports_rec, 'U', x_return_status);
767 
768     IF x_return_status = FND_API.G_RET_STS_ERROR THEN
769       RAISE FND_API.G_EXC_ERROR;
770     END IF;
771 
772     -- pass back last update date
773     p_last_update_date := hz_utility_pub.LAST_UPDATE_DATE;
774 
775     -- Bug 1428526: Should pass updated financial reports info. to caller.
776     -- Make sure to use values in p_financial_reports_rec.* when calling update table
777     -- handler. Need to update p_financial_reports_rec first.
778     NULL;
779 /*
780     -- call table handler to update a row
781     HZ_FINANCIAL_REPORTS_PKG.UPDATE_ROW(
782       x_rowid                           => l_rowid,
783       x_financial_report_id             => p_financial_reports_rec.financial_report_id,
784       x_date_report_issued              => p_financial_reports_rec.date_report_issued,
785       x_party_id                        => p_financial_reports_rec.party_id,
786       x_document_reference              => p_financial_reports_rec.document_reference,
787       x_issued_period                   => p_financial_reports_rec.issued_period,
788       x_requiring_authority             => p_financial_reports_rec.requiring_authority,
789       x_type_of_financial_report        => p_financial_reports_rec.type_of_financial_report,
790       x_created_by                      => fnd_api.g_miss_num,
791       x_creation_date                   => fnd_api.g_miss_date,
792       x_last_update_login               => hz_utility_pub.last_update_login,
793       x_last_update_date                => p_last_update_date,
794       x_last_updated_by                 => hz_utility_pub.last_updated_by,
795       x_request_id                      => hz_utility_pub.request_id,
796       x_program_application_id          => hz_utility_pub.program_application_id,
797       x_program_id                      => hz_utility_pub.program_id,
798       x_program_update_date             => hz_utility_pub.program_update_date,
799       x_wh_udpate_id                    => p_financial_reports_rec.wh_udpate_id,
800       x_report_start_date               => p_financial_reports_rec.report_start_date,
801       x_report_end_date                 => p_financial_reports_rec.report_end_date,
802       x_audit_ind                       => p_financial_reports_rec.audit_ind,
803       x_consolidated_ind                => p_financial_reports_rec.consolidated_ind,
804       x_estimated_ind                   => p_financial_reports_rec.estimated_ind,
805       x_fiscal_ind                      => p_financial_reports_rec.fiscal_ind,
806       x_final_ind                       => p_financial_reports_rec.final_ind,
807       x_forecast_ind                    => p_financial_reports_rec.forecast_ind,
808       x_opening_ind                     => p_financial_reports_rec.opening_ind,
809       x_proforma_ind                    => p_financial_reports_rec.proforma_ind,
810       x_qualified_ind                   => p_financial_reports_rec.qualified_ind,
811       x_restated_ind                    => p_financial_reports_rec.restated_ind,
812       x_signed_by_principals_ind        => p_financial_reports_rec.signed_by_principals_ind,
813       x_trial_balance_ind               => p_financial_reports_rec.trial_balance_ind,
814       x_unbalanced_ind                  => p_financial_reports_rec.unbalanced_ind,
815       -- bug 2197181 : content_source_type is obsolete and it is non-updateable.
816       x_content_source_type             => fnd_api.g_miss_char,
817       x_status                          =>p_financial_reports_rec.status,
818       x_actual_content_source           => p_financial_reports_rec.actual_content_source
819      );
820 */
821 /*
822     --Call to User-Hook post Processing Procedure
823     IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y'  AND
824        -- Bug 2197181: Modifed the condition
825        g_fin_is_datasource_selected = 'Y'
826     THEN
827       hz_org_info_crmhk.update_financial_reports_post(
828         p_financial_reports_rec,
829         x_return_status,
830         x_msg_count,
831         x_msg_data);
832 
833       IF x_return_status = FND_API.G_RET_STS_ERROR THEN
834         RAISE FND_API.G_EXC_ERROR;
835       ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
836         FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
837         FND_MESSAGE.SET_TOKEN('PROCEDURE',
838                               'HZ_ORG_INFO_CRMHK.UPDATE_FINANCIAL_REPORTS_POST');
839         FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
840         FND_MSG_PUB.ADD;
841         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
842       END IF;
843     END IF;
844 */
845 
846 END do_update_financial_reports;
847 
848 /*===========================================================================+
849  | PROCEDURE
850  |              do_create_financial_numbers
851  |
852  | DESCRIPTION
853  |              Creates financial numbers.
854  |
855  | SCOPE - PRIVATE
856  |
857  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
858  |
859  | ARGUMENTS  : IN:
860  |              OUT:
861  |                    x_financial_number_id
862  |          IN/ OUT:
863  |                    p_financial_numbers_rec
864  |                    x_return_status
865  |
866  | RETURNS    : NONE
867  |
868  | NOTES
869  |
870  | MODIFICATION HISTORY
871  |    Jianying Huang 06-OCT-00  Bug 1428526: make *_rec parameters as
872  |                      'IN OUT' in order to pass the changed record
873  |                      to caller.
874  |    01-03-2005  Rajib Ranjan Borah   o SSM SST Integration and Extension.
875  |                                       For non-profile entities, the concept of
876  |                                       select/de-select data-sources is obsoleted.
877  +===========================================================================*/
878 
879 procedure do_create_financial_numbers(
880     p_financial_numbers_rec         IN OUT NOCOPY financial_numbers_rec_type,
881     x_financial_number_id           OUT    NOCOPY NUMBER,
882     x_return_status                 IN OUT NOCOPY VARCHAR2
883 ) IS
884 
885     l_financial_number_id           NUMBER := p_financial_numbers_rec.financial_number_id;
886     l_rep_content_source_type       hz_financial_reports.content_source_type%TYPE;
887     l_rep_actual_content_source     hz_financial_reports.actual_content_source%TYPE;
888     l_rowid                         ROWID  := NULL;
889     l_count                         NUMBER;
890     x_msg_count                     NUMBER;
891     x_msg_data                      VARCHAR2(2000);
892 
893 BEGIN
894 
895     -- if l_financial_number_id is NULL, then generate PK.
896     IF l_financial_number_id is NULL  OR
897        l_financial_number_id = FND_API.G_MISS_NUM
898     THEN
899       l_count := 1;
900 
901       WHILE l_count >0 LOOP
902         SELECT hz_financial_numbers_s.nextval
903         INTO l_financial_number_id from dual;
904 
905         SELECT count(*)
906         INTO l_count
907         FROM HZ_FINANCIAL_NUMBERS
908         WHERE financial_number_id = l_financial_number_id;
909       END LOOP;
910     ELSE
911       l_count := 0;
912 
913       SELECT count(*)
914       INTO l_count
915       FROM HZ_FINANCIAL_NUMBERS
916       WHERE financial_number_id = l_financial_number_id;
917 
918       IF  l_count > 0 THEN
919        FND_MESSAGE.SET_NAME('AR', 'HZ_API_DUPLICATE_COLUMN');
920        FND_MESSAGE.SET_TOKEN('COLUMN', 'financial_number_id');
921        FND_MSG_PUB.ADD;
922        RAISE FND_API.G_EXC_ERROR;
923       END IF;
924     END IF;
925 
926     x_financial_number_id := l_financial_number_id;
927 
928     -- validate financial number record
929     HZ_ORG_INFO_VALIDATE.validate_financial_numbers(
930       p_financial_numbers_rec, 'C', x_return_status,
931       l_rep_content_source_type, l_rep_actual_content_source);
932 
933     IF x_return_status = FND_API.G_RET_STS_ERROR THEN
934       RAISE FND_API.G_EXC_ERROR;
935     END IF;
936 
937     -- Bug 2197181: added for mix-n-match project. first check if user
938     -- has privilege to create user-entered data if mix-n-match is enabled.
939 
940     -- SSM SST Integration and Extension
941     -- For non-profile entities, the concept of select/de-select data-sources is obsoleted.
942     -- There is no need to check if the data-source is selected.
943 
944     IF /*NVL(g_fin_mixnmatch_enabled, 'N') = 'Y' AND*/
945        l_rep_actual_content_source = G_MISS_CONTENT_SOURCE_TYPE
946     THEN
947       HZ_MIXNM_UTILITY.CheckUserCreationPrivilege (
948         p_entity_name                  => 'HZ_FINANCIAL_REPORTS',
949         p_entity_attr_id               => g_fin_entity_attr_id,
950         p_mixnmatch_enabled            => g_fin_mixnmatch_enabled,
951         p_actual_content_source        => l_rep_actual_content_source,
952         x_return_status                => x_return_status );
953     END IF;
954 
955     IF x_return_status = FND_API.G_RET_STS_ERROR THEN
956       RAISE FND_API.G_EXC_ERROR;
957     END IF;
958 
959     -- Bug 2197181: added for mix-n-match project.
960     -- check if the data source is seleted.
961 
962   /* SSM SST Integration and Extension
963    * For non-profile entities, the concept of select/de-select data-sources is obsoleted.
964    * There is no need to check if the data-source is selected.
965 
966       g_fin_is_datasource_selected :=
967       HZ_MIXNM_UTILITY.isDataSourceSelected (
968         p_selected_datasources           => g_fin_selected_datasources,
969         p_actual_content_source          => l_rep_actual_content_source );
970   */
971 /*
972     --Call to User-Hook pre Processing Procedure
973     --Bug 1363124: validation#3 of content_source_type
974 
975     IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' AND
976        -- Bug 2197181: Added below condition for Mix-n-Match
977        g_fin_is_datasource_selected = 'Y'
978     THEN
979       hz_org_info_crmhk.create_financial_numbers_pre(
980         p_financial_numbers_rec,
981         x_return_status,
982         x_msg_count,
983         x_msg_data);
984 
985       IF x_return_status = FND_API.G_RET_STS_ERROR THEN
986         RAISE FND_API.G_EXC_ERROR;
987       ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
988         FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
989         FND_MESSAGE.SET_TOKEN('PROCEDURE',
990                               'HZ_ORG_INFO_CRMHK.CREATE_FINANCIAL_NUMBERS_PRE');
991         FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
992         FND_MSG_PUB.ADD;
993         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
994       END IF;
995     END IF;
996 */
997 
998     -- Bug 1428526: Should pass updated financial numbers info. to caller.
999     -- Make sure to use values in p_financial_numbers_rec.* when calling insert table
1000     -- handler. Need to update p_financial_numbers_rec first.
1001     p_financial_numbers_rec.financial_number_id := l_financial_number_id;
1002 /*
1003     -- call table handler to insert a row
1004     HZ_FINANCIAL_NUMBERS_PKG.INSERT_ROW(
1005       x_rowid                           => l_rowid,
1006       x_financial_number_id             => p_financial_numbers_rec.financial_number_id,
1007       x_financial_report_id             => p_financial_numbers_rec.financial_report_id,
1008       x_financial_number                => p_financial_numbers_rec.financial_number,
1009       x_financial_number_name           => p_financial_numbers_rec.financial_number_name,
1010       x_financial_units_applied         => p_financial_numbers_rec.financial_units_applied,
1011       x_financial_number_currency       => p_financial_numbers_rec.financial_number_currency,
1012       x_projected_actual_flag           => p_financial_numbers_rec.projected_actual_flag,
1013       x_created_by                      => hz_utility_pub.created_by,
1014       x_creation_date                   => hz_utility_pub.creation_date,
1015       x_last_update_login               => hz_utility_pub.last_update_login,
1016       x_last_update_date                => hz_utility_pub.last_update_date,
1017       x_last_updated_by                 => hz_utility_pub.last_updated_by,
1018       x_request_id                      => hz_utility_pub.request_id,
1019       x_program_application_id          => hz_utility_pub.program_application_id,
1020       x_program_id                      => hz_utility_pub.program_id,
1021       x_program_update_date             => hz_utility_pub.program_update_date,
1022       x_wh_update_date                  => p_financial_numbers_rec.wh_update_date,
1023       x_content_source_type             => l_rep_content_source_type,
1024       x_status                          => p_financial_numbers_rec.status,
1025       x_actual_content_source           => l_rep_actual_content_source
1026     );
1027 */
1028 /*
1029     --Call to User-Hook post Processing Procedure
1030     IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' AND
1031        -- Bug 2197181: Added below condition for Mix-n-Match
1032        g_fin_is_datasource_selected = 'Y'
1033     THEN
1034       hz_org_info_crmhk.create_financial_numbers_post(
1035         p_financial_numbers_rec,
1036         x_return_status,
1037         x_msg_count,
1038         x_msg_data);
1039 
1040       IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1041         RAISE FND_API.G_EXC_ERROR;
1042       ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1043         FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
1044         FND_MESSAGE.SET_TOKEN('PROCEDURE',
1045                               'HZ_ORG_INFO_CRMHK.CREATE_FINANCIAL_NUMBERS_POST');
1046         FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1047         FND_MSG_PUB.ADD;
1048         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1049       END IF;
1050     END IF;
1051 */
1052 
1053 END do_create_financial_numbers;
1054 
1055 /*===========================================================================+
1056  | PROCEDURE
1057  |              do_update_financial_numbers
1058  |
1059  | DESCRIPTION
1060  |              Updates financial numbers.
1061  |
1062  | SCOPE - PRIVATE
1063  |
1064  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
1065  |
1066  | ARGUMENTS  : IN:
1067  |              OUT:
1068  |          IN/ OUT:
1069  |                    p_financial_numbers_rec
1070  |                    p_last_update_date
1071  |                    x_return_status
1072  |
1073  | RETURNS    : NONE
1074  |
1075  | NOTES
1076  |
1077  | MODIFICATION HISTORY
1078  |    Jianying Huang 06-OCT-00  Bug 1428526: make *_rec parameters as
1079  |                      'IN OUT' in order to pass the changed record
1080  |                      to caller.
1081  |    01-03-2005  Rajib Ranjan Borah   o SSM SST Integration and Extension.
1082  |                                       For non-profile entities, the concept of
1083  |                                       select/de-select data-sources is obsoleted.
1084  |                                     o Updateability will be checked according to the
1085  |                                       rules setup for the same instead of program controlled
1086  |                                       profile values.
1087  +===========================================================================*/
1088 
1089 procedure do_update_financial_numbers(
1090     p_financial_numbers_rec         IN OUT NOCOPY financial_numbers_rec_type,
1091     p_last_update_date              IN OUT NOCOPY DATE,
1092     x_return_status                 IN OUT NOCOPY VARCHAR2
1093 ) IS
1094 
1095     l_last_update_date              DATE;
1096     db_actual_content_source        hz_financial_numbers.actual_content_source%TYPE;
1097     l_rep_content_source_type       hz_financial_reports.content_source_type%TYPE;
1098     l_rep_actual_content_source     hz_financial_reports.actual_content_source%TYPE;
1099     l_rowid                         ROWID := NULL;
1100     x_msg_count                     NUMBER;
1101     x_msg_data                      VARCHAR2(2000);
1102 
1103 BEGIN
1104 
1105     -- check required fields:
1106     IF p_financial_numbers_rec.financial_number_id is NULL OR
1107        p_financial_numbers_rec.financial_number_id = FND_API.G_MISS_NUM
1108     THEN
1109       FND_MESSAGE.SET_NAME('AR', 'HZ_API_MISSING_COLUMN');
1110       FND_MESSAGE.SET_TOKEN('COLUMN', 'financial_number_id');
1111       FND_MSG_PUB.ADD;
1112       RAISE FND_API.G_EXC_ERROR;
1113     END IF;
1114 
1115     IF p_last_update_date IS NULL OR
1116        p_last_update_date = FND_API.G_MISS_DATE
1117     THEN
1118        FND_MESSAGE.SET_NAME('AR', 'HZ_API_MISSING_COLUMN');
1119        FND_MESSAGE.SET_TOKEN('COLUMN', 'p_last_update_date');
1120        FND_MSG_PUB.ADD;
1121        RAISE FND_API.G_EXC_ERROR;
1122     END IF;
1123 
1124     BEGIN
1125       -- check last update date.
1126       SELECT rowid, last_update_date, actual_content_source
1127       INTO l_rowid, l_last_update_date, db_actual_content_source
1128       FROM HZ_FINANCIAL_NUMBERS
1129       WHERE financial_number_id  = p_financial_numbers_rec.financial_number_id
1130       AND to_char(last_update_date, 'DD-MON-YYYY HH:MI:SS') =
1131           to_char(p_last_update_date, 'DD-MON-YYYY HH:MI:SS')
1132       FOR UPDATE NOWAIT;
1133 
1134     EXCEPTION
1135       WHEN NO_DATA_FOUND THEN
1136         FND_MESSAGE.SET_NAME('AR', 'HZ_API_RECORD_CHANGED');
1137         FND_MESSAGE.SET_TOKEN('TABLE', 'HZ_FINANCIAL_NUMBERS');
1138         FND_MSG_PUB.ADD;
1139         RAISE FND_API.G_EXC_ERROR;
1140     END;
1141 
1142     -- Bug 2197181: added for mix-n-match project. first check if user has
1143     -- privilege to update this entity.
1144 
1145     -- SSM SST Integration and Extension
1146     -- Pass new parameters p_entity_name and p_new_actual_content_source
1147     IF db_actual_content_source <> G_MISS_CONTENT_SOURCE_TYPE
1148     THEN
1149       HZ_MIXNM_UTILITY.CheckUserUpdatePrivilege (
1150         p_actual_content_source        => db_actual_content_source,
1151 	p_new_actual_content_source    => G_MISS_CONTENT_SOURCE_TYPE,
1152 	p_entity_name                  => 'HZ_FINANCIAL_REPORTS',
1153         x_return_status                => x_return_status );
1154     END IF;
1155 
1156     IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1157       RAISE FND_API.G_EXC_ERROR;
1158     END IF;
1159 
1160     -- Bug 2197181: added for mix-n-match project.
1161     -- check if the data source is seleted.
1162 
1163 /* SSM SST Integration and Extension
1164  * For non-profile entities, the concept of select/de-select data-sources is obsoleted.
1165  * There is no need to check if the data-source is selected.
1166 
1167     g_fin_is_datasource_selected :=
1168       HZ_MIXNM_UTILITY.isDataSourceSelected (
1169         p_selected_datasources           => g_fin_selected_datasources,
1170         p_actual_content_source          => db_actual_content_source );
1171 */
1172 
1173 /*
1174     --Call to User-Hook pre Processing Procedure
1175     --Bug 1363124: validation#3 of content_source_type
1176     IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' AND
1177        -- Bug 2197181: Added below condition for Mix-n-Match
1178        g_fin_is_datasource_selected = 'Y'
1179     THEN
1180       hz_org_info_crmhk.update_financial_numbers_pre(
1181         p_financial_numbers_rec,
1182         x_return_status,
1183         x_msg_count,
1184         x_msg_data);
1185 
1186       IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1187         RAISE FND_API.G_EXC_ERROR;
1188       ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1189         FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
1190         FND_MESSAGE.SET_TOKEN('PROCEDURE',
1191                               'HZ_ORG_INFO_CRMHK.UPDATE_FINANCIAL_NUMBERS_PRE');
1192         FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1193         FND_MSG_PUB.ADD;
1194         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1195       END IF;
1196     END IF;
1197 */
1198 
1199     -- validate financial number record
1200     HZ_ORG_INFO_VALIDATE.validate_financial_numbers(
1201       p_financial_numbers_rec, 'U', x_return_status,
1202       l_rep_content_source_type, l_rep_actual_content_source);
1203 
1204     IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1205       RAISE FND_API.G_EXC_ERROR;
1206     END IF;
1207 
1208     -- pass back the last update_date
1209     p_last_update_date := hz_utility_pub.LAST_UPDATE_DATE;
1210 
1211     -- Bug 1428526: Should pass updated financial numbers info. to caller.
1212     -- Make sure to use values in p_financial_numbers_rec.* when calling update table
1213     -- handler. Need to update p_financial_numbers_rec first.
1214     NULL;
1215 /*
1216     -- call table handler to update a row
1217     HZ_FINANCIAL_NUMBERS_PKG.UPDATE_ROW(
1218       x_rowid                           => l_rowid,
1219       x_financial_number_id             => p_financial_numbers_rec.financial_number_id,
1220       x_financial_report_id             => p_financial_numbers_rec.financial_report_id,
1221       x_financial_number                => p_financial_numbers_rec.financial_number,
1222       x_financial_number_name           => p_financial_numbers_rec.financial_number_name,
1223       x_financial_units_applied         => p_financial_numbers_rec.financial_units_applied,
1224       x_financial_number_currency       => p_financial_numbers_rec.financial_number_currency,
1225       x_projected_actual_flag           => p_financial_numbers_rec.projected_actual_flag,
1226       x_created_by                      => fnd_api.g_miss_num,
1227       x_creation_date                   => fnd_api.g_miss_date,
1228       x_last_update_login               => hz_utility_pub.last_update_login,
1229       x_last_update_date                => p_last_update_date,
1230       x_last_updated_by                 => hz_utility_pub.last_updated_by,
1231       x_request_id                      => hz_utility_pub.request_id,
1232       x_program_application_id          => hz_utility_pub.program_application_id,
1233       x_program_id                      => hz_utility_pub.program_id,
1234       x_program_update_date             => hz_utility_pub.program_update_date,
1235       x_wh_update_date                  => p_financial_numbers_rec.wh_update_date,
1236       -- bug 2197181 : content_source_type is obsolete and it is non-updateable.
1237       x_content_source_type             => fnd_api.g_miss_char,
1238       x_status                          => p_financial_numbers_rec.status,
1239       -- bug 2197181 : actual_content_source is non-updateable.
1240       x_actual_content_source           => fnd_api.g_miss_char
1241     );
1242 */
1243 /*
1244     --Call to User-Hook post Processing Procedure
1245     IF  fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' AND
1246         -- Bug 2197181: Added below condition for Mix-n-Match
1247         g_fin_is_datasource_selected = 'Y'
1248     THEN
1249       hz_org_info_crmhk.update_financial_numbers_post(
1250         p_financial_numbers_rec,
1251         x_return_status,
1252         x_msg_count,
1253         x_msg_data);
1254 
1255       IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1256         RAISE FND_API.G_EXC_ERROR;
1257       ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1258         FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
1259         FND_MESSAGE.SET_TOKEN('PROCEDURE',
1260                               'HZ_ORG_INFO_CRMHK.UPDATE_FINANCIAL_NUMBERS_POST');
1261         FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1262         FND_MSG_PUB.ADD;
1263         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1264       END IF;
1265     END IF;
1266 */
1267 
1268 END do_update_financial_numbers;
1269 
1270 /*===========================================================================+
1271  | PROCEDURE
1272  |              do_create_certifications
1273  |
1274  | DESCRIPTION
1275  |              Creates certifications.
1276  |
1277  | SCOPE - PRIVATE
1278  |
1279  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
1280  |
1281  | ARGUMENTS  : IN:
1282  |              OUT:
1283  |                    x_certification_id
1284  |          IN/ OUT:
1285  |                    p_certifications_rec
1286  |                    x_return_status
1287  |
1288  | RETURNS    : NONE
1289  |
1290  | NOTES
1291  |
1292  | MODIFICATION HISTORY
1293  |    Jianying Huang 06-OCT-00  Bug 1428526: make *_rec parameters as
1294  |                      'IN OUT' in order to pass the changed record
1295  |                      to caller.
1296  |
1297  +===========================================================================*/
1298 
1299 procedure do_create_certifications(
1300         p_certifications_rec    IN OUT  NOCOPY certifications_rec_type,
1301         x_certification_id      OUT     NOCOPY NUMBER,
1302         x_return_status         IN OUT  NOCOPY VARCHAR2
1303 ) IS
1304         l_certification_id    NUMBER := p_certifications_rec.certification_id;
1305         l_rowid               ROWID  := NULL;
1306         l_count               NUMBER;
1307 BEGIN
1308    -- if l_certification_id is NULL, then generate PK.
1309    IF l_certification_id is NULL  OR
1310       l_certification_id = FND_API.G_MISS_NUM  THEN
1311      l_count := 1;
1312 
1313      WHILE l_count >0 LOOP
1314        SELECT hz_certifications_s.nextval
1315        INTO l_certification_id from dual;
1316 
1317        SELECT count(*)
1318        INTO l_count
1319        FROM HZ_CERTIFICATIONS
1320        WHERE certification_id = l_certification_id;
1321      END LOOP;
1322 
1323    ELSE
1324      l_count := 0;
1325 
1326      SELECT count(*)
1327      INTO l_count
1328      FROM HZ_CERTIFICATIONS
1329      WHERE certification_id = l_certification_id;
1330 
1331      if  l_count > 0 THEN
1332        FND_MESSAGE.SET_NAME('AR', 'HZ_API_DUPLICATE_COLUMN');
1333        FND_MESSAGE.SET_TOKEN('COLUMN', 'certification_id');
1334        FND_MSG_PUB.ADD;
1335        RAISE FND_API.G_EXC_ERROR;
1336       end if;
1337 
1338     END IF;
1339 
1340     x_certification_id := l_certification_id;
1341 
1342     -- validate certification record
1343     HZ_ORG_INFO_VALIDATE.validate_certifications(p_certifications_rec,'C',
1344                                                  x_return_status);
1345 
1346      IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1347                 RAISE FND_API.G_EXC_ERROR;
1348      END IF;
1349 
1350 -- Bug 1428526: Should pass updated certifications info. to caller.
1351 -- Make sure to use values in p_certifications_rec.* when calling insert table
1352 -- handler. Need to update p_certifications_rec first.
1353     p_certifications_rec.certification_id := l_certification_id;
1354     -- call table handler to insert a row
1355     HZ_CERTIFICATIONS_PKG.INSERT_ROW(
1356       X_Rowid => l_rowid,
1357       X_CERTIFICATION_ID => p_certifications_rec.certification_id,
1358       X_CERTIFICATION_NAME => p_certifications_rec.CERTIFICATION_NAME,
1359       X_CURRENT_STATUS => p_certifications_rec.CURRENT_STATUS,
1360       X_PARTY_ID => p_certifications_rec.PARTY_ID,
1361       X_EXPIRES_ON_DATE => p_certifications_rec.EXPIRES_ON_DATE,
1362       X_GRADE => p_certifications_rec.GRADE,
1363       X_ISSUED_BY_AUTHORITY => p_certifications_rec.ISSUED_BY_AUTHORITY,
1364       X_ISSUED_ON_DATE => p_certifications_rec.ISSUED_ON_DATE,
1365       X_CREATED_BY => hz_utility_pub.CREATED_BY,
1366       X_CREATION_DATE => hz_utility_pub.CREATION_DATE,
1367       X_LAST_UPDATE_LOGIN => hz_utility_pub.LAST_UPDATE_LOGIN,
1368       X_LAST_UPDATE_DATE => hz_utility_pub.LAST_UPDATE_DATE,
1369       X_LAST_UPDATED_BY => hz_utility_pub.LAST_UPDATED_BY,
1370       X_REQUEST_ID => hz_utility_pub.REQUEST_ID,
1371       X_PROGRAM_APPLICATION_ID => hz_utility_pub.PROGRAM_APPLICATION_ID,
1372       X_PROGRAM_ID => hz_utility_pub.PROGRAM_ID,
1373       X_PROGRAM_UPDATE_DATE => hz_utility_pub.PROGRAM_UPDATE_DATE,
1374       X_WH_UPDATE_DATE => p_certifications_rec.WH_UPDATE_DATE,
1375       X_STATUS     => p_certifications_rec.STATUS
1376      );
1377 
1378 END do_create_certifications;
1379 
1380 /*===========================================================================+
1381  | PROCEDURE
1382  |              do_update_certifications
1383  |
1384  | DESCRIPTION
1385  |              Updates certifications.
1386  |
1387  | SCOPE - PRIVATE
1388  |
1389  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
1390  |
1391  | ARGUMENTS  : IN:
1392  |              OUT:
1393  |          IN/ OUT:
1394  |                    p_certifications_rec
1395  |                    p_last_update_date
1396  |                    x_return_status
1397  |
1398  | RETURNS    : NONE
1399  |
1400  | NOTES
1401  |
1402  | MODIFICATION HISTORY
1403  |    Jianying Huang 06-OCT-00  Bug 1428526: make *_rec parameters as
1404  |                      'IN OUT' in order to pass the changed record
1405  |                      to caller.
1406  |
1407  +===========================================================================*/
1408 
1409 procedure do_update_certifications(
1410         p_certifications_rec   IN OUT  NOCOPY certifications_rec_type,
1411         p_last_update_date     IN OUT  NOCOPY DATE,
1412         x_return_status        IN OUT  NOCOPY VARCHAR2
1413 ) IS
1414         l_rowid                ROWID := NULL;
1415         l_last_update_date     DATE;
1416 BEGIN
1417    -- check required fields:
1418    IF p_certifications_rec.certification_id is NULL OR
1419       p_certifications_rec.certification_id = FND_API.G_MISS_NUM  THEN
1420 
1421      FND_MESSAGE.SET_NAME('AR', 'HZ_API_MISSING_COLUMN');
1422      FND_MESSAGE.SET_TOKEN('COLUMN', 'certification_id');
1423      FND_MSG_PUB.ADD;
1424      RAISE FND_API.G_EXC_ERROR;
1425 
1426    END IF;
1427 
1428         IF p_last_update_date IS NULL OR
1429            p_last_update_date = FND_API.G_MISS_DATE
1430         THEN
1431                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_MISSING_COLUMN');
1432                 FND_MESSAGE.SET_TOKEN('COLUMN', 'p_last_update_date');
1433                 FND_MSG_PUB.ADD;
1434                 RAISE FND_API.G_EXC_ERROR;
1435         END IF;
1436 begin
1437         -- check last update date.
1438         SELECT rowid, last_update_date
1439         INTO l_rowid, l_last_update_date
1440         FROM HZ_CERTIFICATIONS
1441         where certification_id
1442               = p_certifications_rec.certification_id
1443         AND to_char(last_update_date, 'DD-MON-YYYY HH:MI:SS') =
1444             to_char(p_last_update_date, 'DD-MON-YYYY HH:MI:SS')
1445         FOR UPDATE NOWAIT;
1446 
1447         EXCEPTION WHEN NO_DATA_FOUND THEN
1448         FND_MESSAGE.SET_NAME('AR', 'HZ_API_RECORD_CHANGED');
1449         FND_MESSAGE.SET_TOKEN('TABLE', 'HZ_CERTIFICATIONS');
1450         FND_MSG_PUB.ADD;
1451         RAISE FND_API.G_EXC_ERROR;
1452 end;
1453 
1454         -- validate certification record
1455         HZ_ORG_INFO_VALIDATE.validate_certifications(p_certifications_rec,'U',
1456                                                      x_return_status);
1457 
1458         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1459                 RAISE FND_API.G_EXC_ERROR;
1460         END IF;
1461 
1462         -- pass back the last update date
1463         p_last_update_date :=  hz_utility_pub.LAST_UPDATE_DATE;
1464 
1465 -- Bug 1428526: Should pass updated certifications info. to caller.
1466 -- Make sure to use values in p_certifications_rec.* when calling update table
1467 -- handler. Need to update p_certifications_rec first.
1468         NULL;
1469 
1470         -- call table handler to update a row
1471         HZ_CERTIFICATIONS_PKG.UPDATE_ROW(
1472           X_Rowid => l_rowid,
1473           X_CERTIFICATION_ID => p_certifications_rec.CERTIFICATION_ID,
1474           X_CERTIFICATION_NAME => p_certifications_rec.CERTIFICATION_NAME,
1475           X_CURRENT_STATUS => p_certifications_rec.CURRENT_STATUS,
1476           X_PARTY_ID => p_certifications_rec.PARTY_ID,
1477           X_EXPIRES_ON_DATE => p_certifications_rec.EXPIRES_ON_DATE,
1478           X_GRADE => p_certifications_rec.GRADE,
1479           X_ISSUED_BY_AUTHORITY => p_certifications_rec.ISSUED_BY_AUTHORITY,
1480           X_ISSUED_ON_DATE => p_certifications_rec.ISSUED_ON_DATE,
1481           X_CREATED_BY => FND_API.G_MISS_NUM,
1482           X_CREATION_DATE => FND_API.G_MISS_DATE,
1483           X_LAST_UPDATE_LOGIN => hz_utility_pub.LAST_UPDATE_LOGIN,
1484           X_LAST_UPDATE_DATE => p_last_update_date,
1485           X_LAST_UPDATED_BY => hz_utility_pub.LAST_UPDATED_BY,
1486           X_REQUEST_ID => hz_utility_pub.REQUEST_ID,
1487           X_PROGRAM_APPLICATION_ID => hz_utility_pub.PROGRAM_APPLICATION_ID,
1488           X_PROGRAM_ID => hz_utility_pub.PROGRAM_ID,
1489           X_PROGRAM_UPDATE_DATE => hz_utility_pub.PROGRAM_UPDATE_DATE,
1490           X_WH_UPDATE_DATE => p_certifications_rec.WH_UPDATE_DATE,
1491       X_STATUS     => p_certifications_rec.STATUS
1492         );
1493 
1494 END do_update_certifications;
1495 
1496 /*===========================================================================+
1497  | PROCEDURE
1498  |              do_create_industrial_reference
1499  |
1500  | DESCRIPTION
1501  |              Creates industrial reference.
1502  |
1503  | SCOPE - PRIVATE
1504  |
1505  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
1506  |
1507  | ARGUMENTS  : IN:
1508  |              OUT:
1509  |                    x_industrial_reference_id
1510  |          IN/ OUT:
1511  |                    p_industrial_reference_rec
1512  |                    x_return_status
1513  |
1514  | RETURNS    : NONE
1515  |
1516  | NOTES
1517  |
1518  | MODIFICATION HISTORY
1519  |    Jianying Huang 06-OCT-00  Bug 1428526: make *_rec parameters as
1520  |                      'IN OUT' in order to pass the changed record
1521  |                      to caller.
1522  |
1523  +===========================================================================*/
1524 
1525 procedure do_create_industrial_reference(
1526         p_industrial_reference_rec  IN OUT  NOCOPY industrial_reference_rec_type,
1527         x_industry_reference_id     OUT     NOCOPY NUMBER,
1528         x_return_status             IN OUT  NOCOPY VARCHAR2
1529 ) IS
1530         l_industry_reference_id     NUMBER:= p_industrial_reference_rec.industry_reference_id;
1531         l_rowid                     ROWID := NULL;
1532         l_count                     NUMBER;
1533 BEGIN
1534    -- if l_industry_reference_id is NULL, then generate PK.
1535    IF l_industry_reference_id is NULL  OR
1536       l_industry_reference_id = FND_API.G_MISS_NUM  THEN
1537         l_count := 1;
1538 
1539         WHILE l_count >0 LOOP
1540           SELECT hz_industrial_reference_s.nextval
1541           INTO l_industry_reference_id from dual;
1542 
1543           SELECT count(*)
1544           INTO l_count
1545           FROM HZ_INDUSTRIAL_REFERENCE
1546           WHERE industry_reference_id = l_industry_reference_id;
1547         END LOOP;
1548 
1549    ELSE
1550      l_count := 0;
1551 
1552      SELECT count(*)
1553      INTO l_count
1554      FROM HZ_INDUSTRIAL_REFERENCE
1555      WHERE industry_reference_id = l_industry_reference_id;
1556 
1557      if  l_count > 0 THEN
1558        FND_MESSAGE.SET_NAME('AR', 'HZ_API_DUPLICATE_COLUMN');
1559        FND_MESSAGE.SET_TOKEN('COLUMN', 'industry_reference_id');
1560        FND_MSG_PUB.ADD;
1561        RAISE FND_API.G_EXC_ERROR;
1562       end if;
1563 
1564     END IF;
1565 
1566     x_industry_reference_id := l_industry_reference_id;
1567 
1568     -- validate industrial reference record
1569     HZ_ORG_INFO_VALIDATE.validate_industrial_reference(p_industrial_reference_rec,'C',
1570                                                        x_return_status);
1571 
1572      IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1573                 RAISE FND_API.G_EXC_ERROR;
1574      END IF;
1575 
1576 -- Bug 1428526: Should pass updated industrial reference info. to caller.
1577 -- Make sure to use values in p_industrial_reference_rec.* when calling insert table
1578 -- handler. Need to update p_industrial_reference_rec first.
1579     p_industrial_reference_rec.industry_reference_id := l_industry_reference_id;
1580 
1581     -- call table handler to insert a row
1582     HZ_INDUSTRIAL_REFERENCE_PKG.INSERT_ROW(
1583       X_Rowid => l_rowid,
1584       X_INDUSTRY_REFERENCE_ID => p_industrial_reference_rec.industry_reference_id,
1585       X_INDUSTRY_REFERENCE => p_industrial_reference_rec.INDUSTRY_REFERENCE,
1586       X_ISSUED_BY_AUTHORITY => p_industrial_reference_rec.ISSUED_BY_AUTHORITY,
1587       X_NAME_OF_REFERENCE => p_industrial_reference_rec.NAME_OF_REFERENCE,
1588       X_RECOGNIZED_AS_OF_DATE => p_industrial_reference_rec.RECOGNIZED_AS_OF_DATE,
1589       X_CREATED_BY => hz_utility_pub.CREATED_BY,
1590       X_CREATION_DATE => hz_utility_pub.CREATION_DATE,
1591       X_LAST_UPDATE_LOGIN => hz_utility_pub.LAST_UPDATE_LOGIN,
1592       X_LAST_UPDATE_DATE => hz_utility_pub.LAST_UPDATE_DATE,
1593       X_LAST_UPDATED_BY => hz_utility_pub.LAST_UPDATED_BY,
1594       X_REQUEST_ID => hz_utility_pub.REQUEST_ID,
1595       X_PROGRAM_APPLICATION_ID => hz_utility_pub.PROGRAM_APPLICATION_ID,
1596       X_PROGRAM_ID => hz_utility_pub.PROGRAM_ID,
1597       X_PROGRAM_UPDATE_DATE => hz_utility_pub.PROGRAM_UPDATE_DATE,
1598       X_WH_UPDATE_DATE => p_industrial_reference_rec.WH_UPDATE_DATE,
1599       X_PARTY_ID => p_industrial_reference_rec.PARTY_ID,
1600       X_STATUS   =>p_industrial_reference_rec.STATUS
1601     );
1602 
1603 end do_create_industrial_reference;
1604 
1605 /*===========================================================================+
1606  | PROCEDURE
1607  |              do_update_industrial_reference
1608  |
1609  | DESCRIPTION
1610  |              Updates industrial reference.
1611  |
1612  | SCOPE - PRIVATE
1613  |
1614  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
1615  |
1616  | ARGUMENTS  : IN:
1617  |              OUT:
1618  |          IN/ OUT:
1619  |                    p_industrial_reference_rec
1620  |                    p_last_update_date
1621  |                    x_return_status
1622  |
1623  | RETURNS    : NONE
1624  |
1625  | NOTES
1626  |
1627  | MODIFICATION HISTORY
1628  |    Jianying Huang 06-OCT-00  Bug 1428526: make *_rec parameters as
1629  |                      'IN OUT' in order to pass the changed record
1630  |                      to caller.
1631  |
1632  +===========================================================================*/
1633 
1634 procedure do_update_industrial_reference(
1635         p_industrial_reference_rec   IN OUT  NOCOPY industrial_reference_rec_type,
1636         p_last_update_date           IN OUT  NOCOPY DATE,
1637         x_return_status              IN OUT  NOCOPY VARCHAR2
1638 ) IS
1639         l_rowid                      ROWID := NULL;
1640         l_last_update_date           DATE;
1641 BEGIN
1642    -- check required fields:
1643    IF p_industrial_reference_rec.industry_reference_id is NULL OR
1644       p_industrial_reference_rec.industry_reference_id = FND_API.G_MISS_NUM  THEN
1645 
1646      FND_MESSAGE.SET_NAME('AR', 'HZ_API_MISSING_COLUMN');
1647      FND_MESSAGE.SET_TOKEN('COLUMN', 'industry_reference_id');
1648      FND_MSG_PUB.ADD;
1649      RAISE FND_API.G_EXC_ERROR;
1650 
1651    END IF;
1652 
1653         IF p_last_update_date IS NULL OR
1654            p_last_update_date = FND_API.G_MISS_DATE
1655         THEN
1656                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_MISSING_COLUMN');
1657                 FND_MESSAGE.SET_TOKEN('COLUMN', 'p_last_update_date');
1658                 FND_MSG_PUB.ADD;
1659                 RAISE FND_API.G_EXC_ERROR;
1660         END IF;
1661 begin
1662         -- check last update date.
1663         SELECT rowid, last_update_date
1664         INTO l_rowid, l_last_update_date
1665         FROM HZ_INDUSTRIAL_REFERENCE
1666         where industry_reference_id
1667               = p_industrial_reference_rec.industry_reference_id
1668         AND to_char(last_update_date, 'DD-MON-YYYY HH:MI:SS') =
1669             to_char(p_last_update_date, 'DD-MON-YYYY HH:MI:SS')
1670         FOR UPDATE NOWAIT;
1671 
1672         EXCEPTION WHEN NO_DATA_FOUND THEN
1673         FND_MESSAGE.SET_NAME('AR', 'HZ_API_RECORD_CHANGED');
1674         FND_MESSAGE.SET_TOKEN('TABLE', 'HZ_INDUSTRIAL_REFERENCE');
1675         FND_MSG_PUB.ADD;
1676         RAISE FND_API.G_EXC_ERROR;
1677 end;
1678 
1679         -- validate industry reference record
1680         HZ_ORG_INFO_VALIDATE.validate_industrial_reference(p_industrial_reference_rec,'U',
1681                                                            x_return_status);
1682 
1683         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1684                 RAISE FND_API.G_EXC_ERROR;
1685         END IF;
1686 
1687         -- pass back the last update date
1688         p_last_update_date := hz_utility_pub.LAST_UPDATE_DATE;
1689 
1690 -- Bug 1428526: Should pass updated industrial reference info. to caller.
1691 -- Make sure to use values in p_industrial_reference_rec.* when calling update table
1692 -- handler. Need to update p_industrial_reference_rec first.
1693         NULL;
1694 
1695         -- call table handler to update a row
1696         HZ_INDUSTRIAL_REFERENCE_PKG.UPDATE_ROW(
1697           X_Rowid => l_rowid,
1698           X_INDUSTRY_REFERENCE_ID => p_industrial_reference_rec.INDUSTRY_REFERENCE_ID,
1699           X_INDUSTRY_REFERENCE => p_industrial_reference_rec.INDUSTRY_REFERENCE,
1700           X_ISSUED_BY_AUTHORITY => p_industrial_reference_rec.ISSUED_BY_AUTHORITY,
1701           X_NAME_OF_REFERENCE => p_industrial_reference_rec.NAME_OF_REFERENCE,
1702           X_RECOGNIZED_AS_OF_DATE => p_industrial_reference_rec.RECOGNIZED_AS_OF_DATE,
1703           X_CREATED_BY => FND_API.G_MISS_NUM,
1704           X_CREATION_DATE => FND_API.G_MISS_DATE,
1705           X_LAST_UPDATE_LOGIN => hz_utility_pub.LAST_UPDATE_LOGIN,
1706           X_LAST_UPDATE_DATE => p_last_update_date,
1707           X_LAST_UPDATED_BY => hz_utility_pub.LAST_UPDATED_BY,
1708           X_REQUEST_ID => hz_utility_pub.REQUEST_ID,
1709           X_PROGRAM_APPLICATION_ID => hz_utility_pub.PROGRAM_APPLICATION_ID,
1710           X_PROGRAM_ID => hz_utility_pub.PROGRAM_ID,
1711           X_PROGRAM_UPDATE_DATE => hz_utility_pub.PROGRAM_UPDATE_DATE,
1712           X_WH_UPDATE_DATE => p_industrial_reference_rec.WH_UPDATE_DATE,
1713           X_PARTY_ID => p_industrial_reference_rec.PARTY_ID,
1714           X_STATUS   =>p_industrial_reference_rec.STATUS
1715          );
1716 
1717 END do_update_industrial_reference;
1718 
1719 /*===========================================================================+
1720  | PROCEDURE
1721  |              do_create_industrial_classes
1722  |
1723  | DESCRIPTION
1724  |              Creates industrial classes.
1725  |
1726  | SCOPE - PRIVATE
1727  |
1728  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
1729  |
1730  | ARGUMENTS  : IN:
1731  |              OUT:
1732  |                    x_industrial_class_id
1733  |          IN/ OUT:
1734  |                    p_industrial_classes_rec
1735  |                    x_return_status
1736  |
1737  | RETURNS    : NONE
1738  |
1739  | NOTES
1740  |
1741  | MODIFICATION HISTORY
1742  |    Jianying Huang 06-OCT-00  Bug 1428526: make *_rec parameters as
1743  |                      'IN OUT' in order to pass the changed record
1744  |                      to caller.
1745  |
1746  +===========================================================================*/
1747 
1748 procedure do_create_industrial_classes(
1749         p_industrial_classes_rec  IN OUT  NOCOPY industrial_classes_rec_type,
1750         x_industrial_class_id     OUT     NOCOPY NUMBER,
1751         x_return_status           IN OUT  NOCOPY VARCHAR2
1752 ) IS
1753         l_industrial_class_id     NUMBER := p_industrial_classes_rec.industrial_class_id;
1754         l_rowid                   ROWID  := NULL;
1755         l_count                   NUMBER;
1756 BEGIN
1757    -- if l_industrial_class_id is NULL, then generate PK.
1758    IF l_industrial_class_id is NULL  OR
1759       l_industrial_class_id = FND_API.G_MISS_NUM  THEN
1760      l_count := 1;
1761 
1762      WHILE l_count >0 LOOP
1763        SELECT hz_industrial_classes_s.nextval
1764        INTO l_industrial_class_id from dual;
1765 
1766        SELECT count(*)
1767        INTO l_count
1768        FROM HZ_INDUSTRIAL_CLASSES
1769        WHERE industrial_class_id = l_industrial_class_id;
1770      END LOOP;
1771 
1772    ELSE
1773      l_count := 0;
1774 
1775      SELECT count(*)
1776      INTO l_count
1777      FROM HZ_INDUSTRIAL_CLASSES
1778      WHERE industrial_class_id = l_industrial_class_id;
1779 
1780      if  l_count > 0 THEN
1781        FND_MESSAGE.SET_NAME('AR', 'HZ_API_DUPLICATE_COLUMN');
1782        FND_MESSAGE.SET_TOKEN('COLUMN', 'industrial_class_id');
1783        FND_MSG_PUB.ADD;
1784        RAISE FND_API.G_EXC_ERROR;
1785       end if;
1786 
1787     END IF;
1788 
1789     x_industrial_class_id := l_industrial_class_id;
1790 
1791     -- validate industrial classes  record
1792     HZ_ORG_INFO_VALIDATE.validate_industrial_classes(p_industrial_classes_rec,'C',
1793                                                      x_return_status);
1794 
1795     IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1796                 RAISE FND_API.G_EXC_ERROR;
1797     END IF;
1798 
1799 -- Bug 1428526: Should pass updated industrial classes info. to caller.
1800 -- Make sure to use values in p_industrial_classes_rec.* when calling insert table
1801 -- handler. Need to update p_industrial_classes_rec first.
1802     p_industrial_classes_rec.industrial_class_id := l_industrial_class_id;
1803 
1804     -- call table handler to insert a row
1805     HZ_INDUSTRIAL_CLASSES_PKG.INSERT_ROW(
1806       X_Rowid => l_rowid,
1807       X_INDUSTRIAL_CLASS_ID => p_industrial_classes_rec.industrial_class_id,
1808       X_INDUSTRIAL_CODE_NAME => p_industrial_classes_rec.INDUSTRIAL_CODE_NAME,
1809       X_CODE_PRIMARY_SEGMENT => p_industrial_classes_rec.CODE_PRIMARY_SEGMENT,
1810       X_INDUSTRIAL_CLASS_SOURCE => p_industrial_classes_rec.INDUSTRIAL_CLASS_SOURCE,
1811       X_CODE_DESCRIPTION => p_industrial_classes_rec.CODE_DESCRIPTION,
1812       X_CREATED_BY => hz_utility_pub.CREATED_BY,
1813       X_CREATION_DATE => hz_utility_pub.CREATION_DATE,
1814       X_LAST_UPDATE_LOGIN => hz_utility_pub.LAST_UPDATE_LOGIN,
1815       X_LAST_UPDATE_DATE => hz_utility_pub.LAST_UPDATE_DATE,
1816       X_LAST_UPDATED_BY => hz_utility_pub.LAST_UPDATED_BY,
1817       X_REQUEST_ID => hz_utility_pub.REQUEST_ID,
1818       X_PROGRAM_APPLICATION_ID => hz_utility_pub.PROGRAM_APPLICATION_ID,
1819       X_PROGRAM_ID => hz_utility_pub.PROGRAM_ID,
1820       X_PROGRAM_UPDATE_DATE => hz_utility_pub.PROGRAM_UPDATE_DATE,
1821       X_WH_UPDATE_DATE => p_industrial_classes_rec.WH_UPDATE_DATE
1822      );
1823 
1824 END do_create_industrial_classes;
1825 
1826 /*===========================================================================+
1827  | PROCEDURE
1828  |              do_update_industrial_classes
1829  |
1830  | DESCRIPTION
1831  |              Updates industrial classes.
1832  |
1833  | SCOPE - PRIVATE
1834  |
1835  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
1836  |
1837  | ARGUMENTS  : IN:
1838  |              OUT:
1839  |          IN/ OUT:
1840  |                    p_industrial_classes_rec
1841  |                    p_last_update_date
1842  |                    x_return_status
1843  |
1844  | RETURNS    : NONE
1845  |
1846  | NOTES
1847  |
1848  | MODIFICATION HISTORY
1849  |    Jianying Huang 06-OCT-00  Bug 1428526: make *_rec parameters as
1850  |                      'IN OUT' in order to pass the changed record
1851  |                      to caller.
1852  |
1853  +===========================================================================*/
1854 
1855 procedure do_update_industrial_classes(
1856         p_industrial_classes_rec   IN OUT  NOCOPY industrial_classes_rec_type,
1857         p_last_update_date         IN OUT  NOCOPY DATE,
1858         x_return_status            IN OUT  NOCOPY VARCHAR2
1859 ) IS
1860         l_count                    NUMBER;
1861         l_rowid                    ROWID := NULL;
1862         l_last_update_date         DATE;
1863 BEGIN
1864    -- check required field:
1865    IF p_industrial_classes_rec.industrial_class_id is NULL OR
1866      p_industrial_classes_rec.industrial_class_id  = FND_API.G_MISS_NUM  THEN
1867 
1868      FND_MESSAGE.SET_NAME('AR', 'HZ_API_MISSING_COLUMN');
1869      FND_MESSAGE.SET_TOKEN('COLUMN', 'industrial_class_id');
1870      FND_MSG_PUB.ADD;
1871      RAISE FND_API.G_EXC_ERROR;
1872 
1873    END IF;
1874 
1875         IF p_last_update_date IS NULL OR
1876            p_last_update_date = FND_API.G_MISS_DATE
1877         THEN
1878                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_MISSING_COLUMN');
1879                 FND_MESSAGE.SET_TOKEN('COLUMN', 'p_last_update_date');
1880                 FND_MSG_PUB.ADD;
1881                 RAISE FND_API.G_EXC_ERROR;
1882         END IF;
1883 begin
1884         -- check last update date.
1885         SELECT rowid, last_update_date
1886         INTO l_rowid, l_last_update_date
1887         FROM HZ_INDUSTRIAL_CLASSES
1888         where industrial_class_id
1889               = p_industrial_classes_rec.industrial_class_id
1890         AND to_char(last_update_date, 'DD-MON-YYYY HH:MI:SS') =
1891             to_char(p_last_update_date, 'DD-MON-YYYY HH:MI:SS')
1892         FOR UPDATE NOWAIT;
1893 
1894         EXCEPTION WHEN NO_DATA_FOUND THEN
1895         FND_MESSAGE.SET_NAME('AR', 'HZ_API_RECORD_CHANGED');
1896         FND_MESSAGE.SET_TOKEN('TABLE', 'HZ_INDUSTRIAL_CLASSES');
1897         FND_MSG_PUB.ADD;
1898         RAISE FND_API.G_EXC_ERROR;
1899 end;
1900 
1901        -- validate  industrial classes record
1902         HZ_ORG_INFO_VALIDATE.validate_industrial_classes(p_industrial_classes_rec,'U',
1903                                                          x_return_status);
1904 
1905         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1906                 RAISE FND_API.G_EXC_ERROR;
1907         END IF;
1908 
1909         -- pass back the last update date
1910         p_last_update_date := hz_utility_pub.LAST_UPDATE_DATE;
1911 
1912 -- Bug 1428526: Should pass updated industrial classes info. to caller.
1913 -- Make sure to use values in p_industrial_classes_rec.* when calling update table
1914 -- handler. Need to update p_industrial_classes_rec first.
1915         NULL;
1916 
1917         -- call table handler to update a row
1918         HZ_INDUSTRIAL_CLASSES_PKG.UPDATE_ROW(
1919           X_Rowid => l_rowid,
1920           X_INDUSTRIAL_CLASS_ID => p_industrial_classes_rec.INDUSTRIAL_CLASS_ID,
1921           X_INDUSTRIAL_CODE_NAME => p_industrial_classes_rec.INDUSTRIAL_CODE_NAME,
1922           X_CODE_PRIMARY_SEGMENT => p_industrial_classes_rec.CODE_PRIMARY_SEGMENT,
1923           X_INDUSTRIAL_CLASS_SOURCE => p_industrial_classes_rec.INDUSTRIAL_CLASS_SOURCE,
1924           X_CODE_DESCRIPTION => p_industrial_classes_rec.CODE_DESCRIPTION,
1925           X_CREATED_BY => FND_API.G_MISS_NUM,
1926           X_CREATION_DATE => FND_API.G_MISS_DATE,
1927           X_LAST_UPDATE_LOGIN => hz_utility_pub.LAST_UPDATE_LOGIN,
1928           X_LAST_UPDATE_DATE => p_last_update_date,
1929           X_LAST_UPDATED_BY => hz_utility_pub.LAST_UPDATED_BY,
1930           X_REQUEST_ID => hz_utility_pub.REQUEST_ID,
1931           X_PROGRAM_APPLICATION_ID => hz_utility_pub.PROGRAM_APPLICATION_ID,
1932           X_PROGRAM_ID => hz_utility_pub.PROGRAM_ID,
1933           X_PROGRAM_UPDATE_DATE => hz_utility_pub.PROGRAM_UPDATE_DATE,
1934           X_WH_UPDATE_DATE => p_industrial_classes_rec.WH_UPDATE_DATE
1935         );
1936 
1937 END do_update_industrial_classes;
1938 
1939 
1940 /*  Private procedure get
1941     get_current_financial_report
1942     get_current_financial_number
1943     are public procedures */
1944 
1945    PROCEDURE get_current_industrial_classes(
1946      p_api_version               IN   NUMBER,
1947      p_init_msg_list             IN   VARCHAR2:= FND_API.G_FALSE,
1948      p_industrial_class_id       IN   NUMBER,
1949      x_industrial_classes_rec    OUT  NOCOPY industrial_classes_rec_type,
1950      x_return_status             OUT  NOCOPY VARCHAR2,
1951      x_msg_count                 OUT  NOCOPY NUMBER,
1952      x_msg_data                  OUT  NOCOPY VARCHAR2);
1953 
1954    PROCEDURE  get_current_stock_markets
1955    ( p_api_version           IN      NUMBER,
1956      p_init_msg_list         IN      VARCHAR2:= FND_API.G_FALSE,
1957      p_stock_exchange_id     IN     NUMBER,
1958      x_stock_markets_rec     OUT    NOCOPY stock_markets_rec_type,
1959      x_return_status         OUT    NOCOPY VARCHAR2,
1960      x_msg_count             OUT    NOCOPY NUMBER,
1961      x_msg_data              OUT    NOCOPY VARCHAR2);
1962 
1963    PROCEDURE  get_current_security_issued
1964    ( p_api_version           IN      NUMBER,
1965      p_init_msg_list         IN      VARCHAR2:= FND_API.G_FALSE,
1966      p_security_issued_id    IN     NUMBER,
1967      x_security_issued_rec   OUT    NOCOPY security_issued_rec_type,
1968      x_return_status         OUT    NOCOPY VARCHAR2,
1969      x_msg_count             OUT    NOCOPY NUMBER,
1970      x_msg_data              OUT    NOCOPY VARCHAR2);
1971 
1972    PROCEDURE  get_current_certifications
1973    ( p_api_version           IN      NUMBER,
1974      p_init_msg_list         IN      VARCHAR2:= FND_API.G_FALSE,
1975      p_certification_id      IN     NUMBER,
1976      x_certifications_rec    OUT    NOCOPY certifications_rec_type,
1977      x_return_status         OUT    NOCOPY VARCHAR2,
1978      x_msg_count             OUT    NOCOPY NUMBER,
1979      x_msg_data              OUT    NOCOPY VARCHAR2);
1980 
1981 
1982 /*===========================================================================+
1983  | PROCEDURE
1984  |              get_current_industrial_classes
1985  |
1986  | DESCRIPTION
1987  |              Gets industrial_classes of current record.
1988  |
1989  | SCOPE - PRIVATE
1990  |
1991  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
1992  |
1993  | ARGUMENTS  : IN:
1994  |                    p_industrial_class_id
1995  |                    p_init_msg_list
1996  |                    p_api_version
1997  |              OUT:
1998  |                    x_industrial_classes_rec
1999  |                    x_status
2000  |                    x_msg_count
2001  |                    x_msg_data
2002  |          IN/ OUT:
2003  |
2004  | RETURNS    : NONE
2005  |
2006  | NOTES
2007  |
2008  | MODIFICATION HISTORY
2009  |
2010  +===========================================================================*/
2011 
2012    PROCEDURE get_current_industrial_classes(
2013      p_api_version               IN   NUMBER,
2014      p_init_msg_list             IN   VARCHAR2:= FND_API.G_FALSE,
2015      p_industrial_class_id       IN   NUMBER,
2016      x_industrial_classes_rec    OUT  NOCOPY industrial_classes_rec_type,
2017      x_return_status             OUT  NOCOPY VARCHAR2,
2018      x_msg_count                 OUT  NOCOPY NUMBER,
2019      x_msg_data                  OUT  NOCOPY VARCHAR2)
2020    IS
2021       CURSOR c1 IS
2022       SELECT
2023           industrial_class_id,
2024           industrial_code_name,
2025           code_primary_segment,
2026           industrial_class_source,
2027           code_description,
2028           wh_update_date
2029         FROM HZ_INDUSTRIAL_CLASSES
2030        WHERE industrial_class_id = p_industrial_class_id;
2031 
2032       lrec                    c1%ROWTYPE;
2033       l_api_name              CONSTANT VARCHAR2(30) := 'get_current_industrial_classes';
2034       l_api_version           CONSTANT  NUMBER       := 1.0;
2035 
2036    BEGIN
2037      -- Initialize API return status to success.
2038      x_return_status := FND_API.G_RET_STS_SUCCESS;
2039 
2040      IF NOT FND_API.Compatible_API_Call(
2041                                         l_api_version,
2042                                         p_api_version,
2043                                         l_api_name,
2044                                         G_PKG_NAME)
2045      THEN
2046             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2047      END IF;
2048 
2049      -- Check whether primary key has been passed in.
2050      IF p_industrial_class_id IS NULL OR
2051         p_industrial_class_id = FND_API.G_MISS_NUM THEN
2052          FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_MISSING_COLUMN' );
2053          FND_MESSAGE.SET_TOKEN( 'COLUMN', 'industrial_class_id' );
2054          FND_MSG_PUB.ADD;
2055          RAISE FND_API.G_EXC_ERROR;
2056      END IF;
2057 
2058      OPEN c1;
2059      FETCH c1 INTO lrec;
2060      IF c1%NOTFOUND THEN
2061 
2062         FND_MESSAGE.SET_NAME('AR', 'HZ_API_NO_RECORD');
2063         FND_MESSAGE.SET_TOKEN('RECORD', 'industrial_class');
2064         FND_MESSAGE.SET_TOKEN('VALUE', to_char(p_industrial_class_id));
2065         FND_MSG_PUB.ADD;
2066         RAISE FND_API.G_EXC_ERROR;
2067 
2068      ELSE
2069        x_industrial_classes_rec.industrial_class_id     := lrec.industrial_class_id;
2070        x_industrial_classes_rec.industrial_code_name    := lrec.industrial_code_name;
2071        x_industrial_classes_rec.code_primary_segment    := lrec.code_primary_segment;
2072        x_industrial_classes_rec.industrial_class_source := lrec.industrial_class_source;
2073        x_industrial_classes_rec.code_description  := lrec.code_description;
2074        x_industrial_classes_rec.wh_update_date    := lrec.wh_update_date;
2075      END IF;
2076       CLOSE c1;
2077    EXCEPTION
2078     WHEN FND_API.G_EXC_ERROR THEN
2079         x_return_status := FND_API.G_RET_STS_ERROR;
2080 
2081         FND_MSG_PUB.Count_And_Get(
2082             p_encoded => FND_API.G_FALSE,
2083             p_count => x_msg_count,
2084             p_data  => x_msg_data );
2085 
2086     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2087         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2088         FND_MSG_PUB.Count_And_Get(
2089             p_encoded => FND_API.G_FALSE,
2090             p_count => x_msg_count,
2091             p_data  => x_msg_data);
2092 
2093     WHEN OTHERS THEN
2094         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2095 
2096         FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_OTHERS_EXCEP' );
2097         FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
2098         FND_MSG_PUB.ADD;
2099 
2100         FND_MSG_PUB.Count_And_Get(
2101             p_encoded => FND_API.G_FALSE,
2102             p_count => x_msg_count,
2103             p_data  => x_msg_data );
2104    END;
2105 
2106 /*===========================================================================+
2107  | PROCEDURE
2108  |              get_current_stock_markets
2109  | DESCRIPTION
2110  |              Gets stock markets of current record.
2111  | SCOPE - PRIVATE
2112  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
2113  | ARGUMENTS  : IN:
2114  |                    p_stock_exchange_id
2115  |                    p_init_msg_list
2116  |                    p_api_version
2117  |              OUT:
2118  |                    x_stock_markets_rec
2119  |                    x_status
2120  |                    x_msg_count
2121  |                    x_msg_data
2122  |          IN/ OUT:
2123  | RETURNS    : NONE
2124  | NOTES
2125  | MODIFICATION HISTORY: Herve Yu 14-MAY-2002
2126  +===========================================================================*/
2127    PROCEDURE  get_current_stock_markets
2128    ( p_api_version           IN      NUMBER,
2129      p_init_msg_list         IN      VARCHAR2:= FND_API.G_FALSE,
2130      p_stock_exchange_id     IN     NUMBER,
2131      x_stock_markets_rec     OUT    NOCOPY stock_markets_rec_type,
2132      x_return_status         OUT    NOCOPY VARCHAR2,
2133      x_msg_count             OUT    NOCOPY NUMBER,
2134      x_msg_data              OUT    NOCOPY VARCHAR2)
2135    IS
2136      CURSOR c1 IS
2137       SELECT stock_exchange_id,
2138              country_of_residence,
2139              stock_exchange_code,
2140              stock_exchange_name,
2141              wh_update_date
2142         FROM hz_stock_markets
2143        WHERE stock_exchange_id = p_stock_exchange_id;
2144      lrec                    c1%ROWTYPE;
2145      l_api_name              CONSTANT VARCHAR2(30) := 'get_current_stock_markets';
2146      l_api_version           CONSTANT  NUMBER       := 1.0;
2147 
2148    BEGIN
2149      -- Initialize API return status to success.
2150      x_return_status := FND_API.G_RET_STS_SUCCESS;
2151 
2152      IF NOT FND_API.Compatible_API_Call(
2153                                         l_api_version,
2154                                         p_api_version,
2155                                         l_api_name,
2156                                         G_PKG_NAME)
2157      THEN
2158           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2159      END IF;
2160 
2161      -- Check whether primary key has been passed in.
2162      IF p_stock_exchange_id IS NULL OR
2163         p_stock_exchange_id = FND_API.G_MISS_NUM THEN
2164          FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_MISSING_COLUMN' );
2165          FND_MESSAGE.SET_TOKEN( 'COLUMN', 'stock_exchange_id' );
2166          FND_MSG_PUB.ADD;
2167          RAISE FND_API.G_EXC_ERROR;
2168      END IF;
2169 
2170      OPEN c1;
2171      FETCH c1 INTO lrec;
2172      IF c1%NOTFOUND THEN
2173          FND_MESSAGE.SET_NAME('AR', 'HZ_API_NO_RECORD');
2174          FND_MESSAGE.SET_TOKEN('RECORD', 'stock_markets');
2175          FND_MESSAGE.SET_TOKEN('VALUE', to_char(p_stock_exchange_id));
2176          FND_MSG_PUB.ADD;
2177          RAISE FND_API.G_EXC_ERROR;
2178      ELSE
2179         x_stock_markets_rec.stock_exchange_id := lrec.stock_exchange_id;
2180         x_stock_markets_rec.country_of_residence := lrec.country_of_residence;
2181         x_stock_markets_rec.stock_exchange_code := lrec.stock_exchange_code;
2182         x_stock_markets_rec.stock_exchange_name := lrec.stock_exchange_name;
2183         x_stock_markets_rec.wh_update_date := lrec.wh_update_date;
2184      END IF;
2185      CLOSE c1;
2186    EXCEPTION
2187     WHEN FND_API.G_EXC_ERROR THEN
2188         x_return_status := FND_API.G_RET_STS_ERROR;
2189         FND_MSG_PUB.Count_And_Get(
2190             p_encoded => FND_API.G_FALSE,
2191             p_count => x_msg_count,
2192             p_data  => x_msg_data );
2193 
2194     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2195         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2196         FND_MSG_PUB.Count_And_Get(
2197             p_encoded => FND_API.G_FALSE,
2198             p_count => x_msg_count,
2199             p_data  => x_msg_data);
2200 
2201     WHEN OTHERS THEN
2202         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2203         FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_OTHERS_EXCEP' );
2204         FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
2205         FND_MSG_PUB.ADD;
2206 
2207         FND_MSG_PUB.Count_And_Get(
2208             p_encoded => FND_API.G_FALSE,
2209             p_count => x_msg_count,
2210             p_data  => x_msg_data );
2211    END;
2212 
2213 /*===========================================================================+
2214  | PROCEDURE
2215  |              get_current_security_issued
2216  | DESCRIPTION
2217  |              Gets sec issued of current record.
2218  | SCOPE - PRIVATE
2219  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
2220  | ARGUMENTS  : IN:
2221  |                    p_security_issued_id
2222  |                    p_init_msg_list
2223  |                    p_api_version
2224  |              OUT:
2225  |                    x_security_issued_rec
2226  |                    x_status
2227  |                    x_msg_count
2228  |                    x_msg_data
2229  |          IN/ OUT:
2230  | RETURNS    : NONE
2231  | NOTES
2232  | MODIFICATION HISTORY: Herve Yu 14-MAY-2002
2233  +===========================================================================*/
2234    PROCEDURE  get_current_security_issued
2235    ( p_api_version           IN      NUMBER,
2236      p_init_msg_list         IN      VARCHAR2:= FND_API.G_FALSE,
2237      p_security_issued_id    IN     NUMBER,
2238      x_security_issued_rec   OUT    NOCOPY security_issued_rec_type,
2239      x_return_status         OUT    NOCOPY VARCHAR2,
2240      x_msg_count             OUT    NOCOPY NUMBER,
2241      x_msg_data              OUT    NOCOPY VARCHAR2)
2242    IS
2243      CURSOR c1 IS
2244      SELECT security_issued_id        ,
2245             estimated_total_amount    ,
2246             stock_exchange_id         ,
2247             security_issued_class     ,
2248             security_issued_name      ,
2249             total_amount_in_a_currency,
2250             stock_ticker_symbol       ,
2251             security_currency_code    ,
2252             begin_date      ,
2253             party_id        ,
2254             end_date        ,
2255             wh_update_date  ,
2256             status
2257       FROM hz_security_issued
2258      WHERE security_issued_id = p_security_issued_id;
2259     lrec                    c1%ROWTYPE;
2260     l_api_name              CONSTANT VARCHAR2(30) := 'get_current_security_issued';
2261     l_api_version           CONSTANT  NUMBER       := 1.0;
2262 
2263    BEGIN
2264 
2265      -- Initialize API return status to success.
2266      x_return_status := FND_API.G_RET_STS_SUCCESS;
2267 
2268      IF NOT FND_API.Compatible_API_Call(
2269                                         l_api_version,
2270                                         p_api_version,
2271                                         l_api_name,
2272                                         G_PKG_NAME)
2273      THEN
2274          RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2275      END IF;
2276 
2277 
2278      -- Check whether primary key has been passed in.
2279      IF p_security_issued_id IS NULL OR
2280         p_security_issued_id = FND_API.G_MISS_NUM THEN
2281          FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_MISSING_COLUMN' );
2282          FND_MESSAGE.SET_TOKEN( 'COLUMN', 'security_issued_id' );
2283          FND_MSG_PUB.ADD;
2284          RAISE FND_API.G_EXC_ERROR;
2285      END IF;
2286 
2287      OPEN c1;
2288      FETCH c1 INTO lrec;
2289      IF c1%NOTFOUND THEN
2290         FND_MESSAGE.SET_NAME('AR', 'HZ_API_NO_RECORD');
2291         FND_MESSAGE.SET_TOKEN('RECORD', 'security_issued');
2292         FND_MESSAGE.SET_TOKEN('VALUE', to_char(p_security_issued_id));
2293         FND_MSG_PUB.ADD;
2294         RAISE FND_API.G_EXC_ERROR;
2295      ELSE
2296         x_security_issued_rec.security_issued_id := lrec.security_issued_id;
2297         x_security_issued_rec.estimated_total_amount := lrec.estimated_total_amount;
2298         x_security_issued_rec.stock_exchange_id := lrec.stock_exchange_id;
2299         x_security_issued_rec.security_issued_class := lrec.security_issued_class;
2300         x_security_issued_rec.security_issued_name := lrec.security_issued_name;
2301         x_security_issued_rec.total_amount_in_a_currency := lrec.total_amount_in_a_currency;
2302         x_security_issued_rec.stock_ticker_symbol := lrec.stock_ticker_symbol;
2303         x_security_issued_rec.security_currency_code := lrec.security_currency_code;
2304         x_security_issued_rec.begin_date := lrec.begin_date;
2305         x_security_issued_rec.end_date := lrec.end_date;
2306         x_security_issued_rec.wh_update_date := lrec.wh_update_date;
2307         x_security_issued_rec.status := lrec.status;
2308      END IF;
2309      CLOSE c1;
2310    EXCEPTION
2311     WHEN FND_API.G_EXC_ERROR THEN
2312         x_return_status := FND_API.G_RET_STS_ERROR;
2313 
2314         FND_MSG_PUB.Count_And_Get(
2315             p_encoded => FND_API.G_FALSE,
2316             p_count => x_msg_count,
2317             p_data  => x_msg_data );
2318 
2319     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2320         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2321         FND_MSG_PUB.Count_And_Get(
2322             p_encoded => FND_API.G_FALSE,
2323             p_count => x_msg_count,
2324             p_data  => x_msg_data);
2325 
2326     WHEN OTHERS THEN
2327         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2328 
2329         FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_OTHERS_EXCEP' );
2330         FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
2331         FND_MSG_PUB.ADD;
2332 
2333         FND_MSG_PUB.Count_And_Get(
2334             p_encoded => FND_API.G_FALSE,
2335             p_count => x_msg_count,
2336             p_data  => x_msg_data );
2337   END;
2338 
2339 /*===========================================================================+
2340  | PROCEDURE
2341  |              get_current_certifications
2342  | DESCRIPTION
2343  |              Gets certifications current record.
2344  | SCOPE - PRIVATE
2345  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
2346  | ARGUMENTS  : IN:
2347  |                    p_certification_id
2348  |                    p_init_msg_list
2349  |                    p_api_version
2350  |              OUT:
2351  |                    x_certifications_rec
2352  |                    x_status
2353  |                    x_msg_count
2354  |                    x_msg_data
2355  |          IN/ OUT:
2356  | RETURNS    : NONE
2357  | NOTES
2358  | MODIFICATION HISTORY: Herve Yu 14-MAY-2002
2359  +===========================================================================*/
2360    PROCEDURE  get_current_certifications
2361    ( p_api_version           IN      NUMBER,
2362      p_init_msg_list         IN      VARCHAR2:= FND_API.G_FALSE,
2363      p_certification_id      IN     NUMBER,
2364      x_certifications_rec    OUT    NOCOPY certifications_rec_type,
2365      x_return_status         OUT    NOCOPY VARCHAR2,
2366      x_msg_count             OUT    NOCOPY NUMBER,
2367      x_msg_data              OUT    NOCOPY VARCHAR2
2368    )
2369    IS
2370      CURSOR c1 IS
2371      SELECT certification_id      ,
2372             certification_name    ,
2373             party_id              ,
2374             current_status        ,
2375             expires_on_date       ,
2376             grade                 ,
2377             issued_by_authority   ,
2378             issued_on_date        ,
2379             wh_update_date        ,
2380             status
2381        FROM hz_certifications
2382       WHERE certification_id = p_certification_id;
2383      lrec                    c1%ROWTYPE;
2384      l_api_name              CONSTANT VARCHAR2(30) := 'get_current_certifications';
2385      l_api_version           CONSTANT  NUMBER       := 1.0;
2386 
2387    BEGIN
2388 
2389      -- Initialize API return status to success.
2390      x_return_status := FND_API.G_RET_STS_SUCCESS;
2391 
2392      IF NOT FND_API.Compatible_API_Call(
2393                                         l_api_version,
2394                                         p_api_version,
2395                                         l_api_name,
2396                                         G_PKG_NAME)
2397      THEN
2398          RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2399      END IF;
2400 
2401      -- Check whether primary key has been passed in.
2402      IF p_certification_id IS NULL OR
2403         p_certification_id = FND_API.G_MISS_NUM THEN
2404          FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_MISSING_COLUMN' );
2405          FND_MESSAGE.SET_TOKEN( 'COLUMN', 'certification_id' );
2406          FND_MSG_PUB.ADD;
2407          RAISE FND_API.G_EXC_ERROR;
2408      END IF;
2409 
2410      OPEN c1;
2411      FETCH c1 INTO lrec;
2412      IF c1%NOTFOUND THEN
2413 
2414         FND_MESSAGE.SET_NAME('AR', 'HZ_API_NO_RECORD');
2415         FND_MESSAGE.SET_TOKEN('RECORD', 'certifications');
2416         FND_MESSAGE.SET_TOKEN('VALUE', to_char(p_certification_id));
2417         FND_MSG_PUB.ADD;
2418         RAISE FND_API.G_EXC_ERROR;
2419 
2420      ELSE
2421 
2422         x_certifications_rec.certification_id := lrec.certification_id;
2423         x_certifications_rec.certification_name := lrec.certification_name;
2424         x_certifications_rec.party_id := lrec.party_id;
2425         x_certifications_rec.current_status := lrec.current_status;
2426         x_certifications_rec.expires_on_date := lrec.expires_on_date;
2427         x_certifications_rec.grade := lrec.grade;
2428         x_certifications_rec.issued_by_authority := lrec.issued_by_authority;
2429         x_certifications_rec.issued_on_date := lrec.issued_on_date;
2430         x_certifications_rec.wh_update_date := lrec.wh_update_date;
2431         x_certifications_rec.status := lrec.status;
2432 
2433       END IF;
2434       CLOSE c1;
2435    EXCEPTION
2436     WHEN FND_API.G_EXC_ERROR THEN
2437         x_return_status := FND_API.G_RET_STS_ERROR;
2438 
2439         FND_MSG_PUB.Count_And_Get(
2440             p_encoded => FND_API.G_FALSE,
2441             p_count => x_msg_count,
2442             p_data  => x_msg_data );
2443 
2444     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2445         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2446         FND_MSG_PUB.Count_And_Get(
2447             p_encoded => FND_API.G_FALSE,
2448             p_count => x_msg_count,
2449             p_data  => x_msg_data);
2450 
2451     WHEN OTHERS THEN
2452         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2453 
2454         FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_OTHERS_EXCEP' );
2455         FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
2456         FND_MSG_PUB.ADD;
2457 
2458         FND_MSG_PUB.Count_And_Get(
2459             p_encoded => FND_API.G_FALSE,
2460             p_count => x_msg_count,
2461             p_data  => x_msg_data );
2462    END;
2463 
2464 
2465 /*===========================================================================+
2466  | PROCEDURE
2467  |              do_create_industrial_class_app
2468  |
2469  | DESCRIPTION
2470  |              Creates industrial class app.
2471  |
2472  | SCOPE - PRIVATE
2473  |
2474  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
2475  |
2476  | ARGUMENTS  : IN:
2477  |              OUT:
2478  |                    x_code_applied_id
2479  |          IN/ OUT:
2480  |                    p_industrial_class_app_rec
2481  |                    x_return_status
2482  |
2483  | RETURNS    : NONE
2484  |
2485  | NOTES
2486  |
2487  | MODIFICATION HISTORY
2488  |    Jianying Huang 06-OCT-00  Bug 1428526: make *_rec parameters as
2489  |                      'IN OUT' in order to pass the changed record
2490  |                      to caller.
2491  |
2492  +===========================================================================*/
2493 
2494 procedure do_create_industrial_class_app(
2495         p_industrial_class_app_rec   IN OUT  NOCOPY industrial_class_app_rec_type,
2496         x_code_applied_id            OUT     NOCOPY NUMBER,
2497         x_return_status              IN OUT  NOCOPY VARCHAR2
2498 ) IS
2499         l_code_applied_id            NUMBER := p_industrial_class_app_rec.code_applied_id;
2500         l_rowid                      ROWID  := NULL;
2501         l_count                      NUMBER;
2502 BEGIN
2503    -- if l_code_applied_id is NULL, then generate PK.
2504    IF l_code_applied_id is NULL  OR
2505       l_code_applied_id = FND_API.G_MISS_NUM  THEN
2506         l_count := 1;
2507 
2508         WHILE l_count >0 LOOP
2509           SELECT hz_industrial_class_app_s.nextval
2510           INTO l_code_applied_id from dual;
2511 
2512           SELECT count(*)
2513           INTO l_count
2514           FROM HZ_INDUSTRIAL_CLASS_APP
2515           WHERE code_applied_id = l_code_applied_id;
2516         END LOOP;
2517 
2518    ELSE
2519      l_count := 0;
2520 
2521      SELECT count(*)
2522      INTO l_count
2523      FROM HZ_INDUSTRIAL_CLASS_APP
2524      WHERE code_applied_id = l_code_applied_id;
2525 
2526      if  l_count > 0 THEN
2527        FND_MESSAGE.SET_NAME('AR', 'HZ_API_DUPLICATE_COLUMN');
2528        FND_MESSAGE.SET_TOKEN('COLUMN', 'code_applied_id');
2529        FND_MSG_PUB.ADD;
2530        RAISE FND_API.G_EXC_ERROR;
2531       end if;
2532 
2533     END IF;
2534 
2535     x_code_applied_id := l_code_applied_id;
2536 
2537     -- validate industrial classes  record
2538     HZ_ORG_INFO_VALIDATE.validate_industrial_class_app(p_industrial_class_app_rec,'C',
2539                                                        x_return_status);
2540 
2541     IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2542                 RAISE FND_API.G_EXC_ERROR;
2543     END IF;
2544 
2545 -- Bug 1428526: Should pass updated industrial class app info. to caller.
2546 -- Make sure to use values in p_industrial_class_app_rec.* when calling insert table
2547 -- handler. Need to update p_industrial_class_app_rec first.
2548     p_industrial_class_app_rec.code_applied_id := l_code_applied_id;
2549 
2550     -- call table handler to insert a row
2551     HZ_INDUSTRIAL_CLASS_APP_PKG.INSERT_ROW(
2552       X_Rowid => l_rowid,
2553       X_CODE_APPLIED_ID => p_industrial_class_app_rec.code_applied_id,
2554       X_BEGIN_DATE => p_industrial_class_app_rec.BEGIN_DATE,
2555       X_PARTY_ID => p_industrial_class_app_rec.PARTY_ID,
2556       X_END_DATE => p_industrial_class_app_rec.END_DATE,
2557       X_INDUSTRIAL_CLASS_ID => p_industrial_class_app_rec.INDUSTRIAL_CLASS_ID,
2558       X_CREATED_BY => hz_utility_pub.CREATED_BY,
2559       X_CREATION_DATE => hz_utility_pub.CREATION_DATE,
2560       X_LAST_UPDATE_LOGIN => hz_utility_pub.LAST_UPDATE_LOGIN,
2561       X_LAST_UPDATE_DATE => hz_utility_pub.LAST_UPDATE_DATE,
2562       X_LAST_UPDATED_BY => hz_utility_pub.LAST_UPDATED_BY,
2563       X_REQUEST_ID => hz_utility_pub.REQUEST_ID,
2564       X_PROGRAM_APPLICATION_ID => hz_utility_pub.PROGRAM_APPLICATION_ID,
2565       X_PROGRAM_ID => hz_utility_pub.PROGRAM_ID,
2566       X_PROGRAM_UPDATE_DATE => hz_utility_pub.PROGRAM_UPDATE_DATE,
2567       X_WH_UPDATE_DATE => p_industrial_class_app_rec.WH_UPDATE_DATE,
2568       X_CONTENT_SOURCE_TYPE => p_industrial_class_app_rec.CONTENT_SOURCE_TYPE,
2569       X_IMPORTANCE_RANKING  => p_industrial_class_app_rec.IMPORTANCE_RANKING
2570    );
2571 
2572 END do_create_industrial_class_app;
2573 
2574  /*===========================================================================+
2575  | PROCEDURE
2576  |              do_update_industrial_class_app
2577  |
2578  | DESCRIPTION
2579  |              Updates industrial class app.
2580  |
2581  | SCOPE - PRIVATE
2582  |
2583  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
2584  |
2585  | ARGUMENTS  : IN:
2586  |              OUT:
2587  |          IN/ OUT:
2588  |                    p_industrial_class_app_rec
2589  |                    p_last_update_date
2590  |                    x_return_status
2591  |
2592  | RETURNS    : NONE
2593  |
2594  | NOTES
2595  |
2596  | MODIFICATION HISTORY
2597  |    Jianying Huang 06-OCT-00  Bug 1428526: make *_rec parameters as
2598  |                      'IN OUT' in order to pass the changed record
2599  |                      to caller.
2600  |
2601  +===========================================================================*/
2602 
2603 procedure do_update_industrial_class_app(
2604         p_industrial_class_app_rec    IN OUT  NOCOPY industrial_class_app_rec_type,
2605         p_last_update_date            IN OUT  NOCOPY DATE,
2606         x_return_status               IN OUT  NOCOPY VARCHAR2
2607 ) IS
2608         l_count                       NUMBER;
2609         l_rowid                       ROWID := NULL;
2610         l_last_update_date            DATE;
2611 BEGIN
2612   -- check required field:
2613   IF p_industrial_class_app_rec.code_applied_id is NULL OR
2614      p_industrial_class_app_rec.code_applied_id  = FND_API.G_MISS_NUM  THEN
2615 
2616      FND_MESSAGE.SET_NAME('AR', 'HZ_API_MISSING_COLUMN');
2617      FND_MESSAGE.SET_TOKEN('COLUMN', 'code_applied_id');
2618      FND_MSG_PUB.ADD;
2619      RAISE FND_API.G_EXC_ERROR;
2620 
2621    END IF;
2622 
2623         IF p_last_update_date IS NULL OR
2624            p_last_update_date = FND_API.G_MISS_DATE
2625         THEN
2626                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_MISSING_COLUMN');
2627                 FND_MESSAGE.SET_TOKEN('COLUMN', 'p_last_update_date');
2628                 FND_MSG_PUB.ADD;
2629                 RAISE FND_API.G_EXC_ERROR;
2630         END IF;
2631 begin
2632         -- check last update date.
2633         SELECT rowid, last_update_date
2634         INTO l_rowid, l_last_update_date
2635         FROM HZ_INDUSTRIAL_CLASS_APP
2636         where code_applied_id
2637               = p_industrial_class_app_rec.code_applied_id
2638         AND to_char(last_update_date, 'DD-MON-YYYY HH:MI:SS') =
2639             to_char(p_last_update_date, 'DD-MON-YYYY HH:MI:SS')
2640         FOR UPDATE NOWAIT;
2641 
2642         EXCEPTION WHEN NO_DATA_FOUND THEN
2643         FND_MESSAGE.SET_NAME('AR', 'HZ_API_RECORD_CHANGED');
2644         FND_MESSAGE.SET_TOKEN('TABLE', 'HZ_INDUSTRIAL_CLASS_APP');
2645         FND_MSG_PUB.ADD;
2646         RAISE FND_API.G_EXC_ERROR;
2647 end;
2648 
2649        -- validate  industrial class app record
2650         HZ_ORG_INFO_VALIDATE.validate_industrial_class_app(p_industrial_class_app_rec,'U',
2651                                                            x_return_status);
2652 
2653         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2654                 RAISE FND_API.G_EXC_ERROR;
2655         END IF;
2656 
2657         -- pass back teh last update date
2658         p_last_update_date := hz_utility_pub.LAST_UPDATE_DATE;
2659 
2660 -- Bug 1428526: Should pass updated industrial class app info. to caller.
2661 -- Make sure to use values in p_industrial_class_app_rec.* when calling update table
2662 -- handler. Need to update p_industrial_class_app_rec first.
2663         NULL;
2664 
2665         -- call table handler to update a row
2666         HZ_INDUSTRIAL_CLASS_APP_PKG.UPDATE_ROW(
2667           X_Rowid => l_rowid,
2668           X_CODE_APPLIED_ID => p_industrial_class_app_rec.CODE_APPLIED_ID,
2669           X_BEGIN_DATE => p_industrial_class_app_rec.BEGIN_DATE,
2670           X_PARTY_ID => p_industrial_class_app_rec.PARTY_ID,
2671           X_END_DATE => p_industrial_class_app_rec.END_DATE,
2672           X_INDUSTRIAL_CLASS_ID => p_industrial_class_app_rec.INDUSTRIAL_CLASS_ID,
2673           X_CREATED_BY => FND_API.G_MISS_NUM,
2674           X_CREATION_DATE => FND_API.G_MISS_DATE,
2675           X_LAST_UPDATE_LOGIN => hz_utility_pub.LAST_UPDATE_LOGIN,
2676           X_LAST_UPDATE_DATE => p_last_update_date,
2677           X_LAST_UPDATED_BY => hz_utility_pub.LAST_UPDATED_BY,
2678           X_REQUEST_ID => hz_utility_pub.REQUEST_ID,
2679           X_PROGRAM_APPLICATION_ID => hz_utility_pub.PROGRAM_APPLICATION_ID,
2680           X_PROGRAM_ID => hz_utility_pub.PROGRAM_ID,
2681           X_PROGRAM_UPDATE_DATE => hz_utility_pub.PROGRAM_UPDATE_DATE,
2682           X_WH_UPDATE_DATE => p_industrial_class_app_rec.WH_UPDATE_DATE,
2683           X_CONTENT_SOURCE_TYPE => p_industrial_class_app_rec.CONTENT_SOURCE_TYPE,
2684           X_IMPORTANCE_RANKING => p_industrial_class_app_rec.IMPORTANCE_RANKING
2685         );
2686 
2687 END do_update_industrial_class_app;
2688 
2689 /*===========================================================================+
2690  | PROCEDURE
2691  |              create_stock_markets
2692  |
2693  | DESCRIPTION
2694  |              Creates stock markets.
2695  |
2696  | SCOPE - PUBLIC
2697  |
2698  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
2699  |
2700  | ARGUMENTS  : IN:
2701  |                    p_api_version
2702  |                    p_init_msg_list
2703  |                    p_commit
2704  |                    p_stock_markets_rec
2705  |                    p_validation_level
2706  |              OUT:
2707  |                    x_return_status
2708  |                    x_msg_count
2709  |                    x_msg_data
2710  |                    x_stock_exchange_id
2711  |          IN/ OUT:
2712  |
2713  | RETURNS    : NONE
2714  |
2715  | NOTES
2716  |
2717  | MODIFICATION HISTORY
2718  |
2719  +===========================================================================*/
2720 
2721 procedure create_stock_markets(
2722         p_api_version           IN      NUMBER,
2723         p_init_msg_list         IN      VARCHAR2:= FND_API.G_FALSE,
2724         p_commit                IN      VARCHAR2:= FND_API.G_FALSE,
2725         p_stock_markets_rec     IN      STOCK_MARKETS_REC_TYPE,
2726         x_return_status         OUT     NOCOPY VARCHAR2,
2727         x_msg_count             OUT     NOCOPY NUMBER,
2728         x_msg_data              OUT     NOCOPY VARCHAR2,
2729         x_stock_exchange_id     OUT     NOCOPY NUMBER,
2730         p_validation_level      IN      NUMBER :=FND_API.G_VALID_LEVEL_FULL
2731 ) IS
2732         l_api_name              CONSTANT VARCHAR2(30) := 'create stock markets';
2733         l_api_version           CONSTANT  NUMBER       := 1.0;
2734         l_stock_markets_rec     STOCK_MARKETS_REC_TYPE := p_stock_markets_rec;
2735 
2736 BEGIN
2737 --Standard start of API savepoint
2738         SAVEPOINT create_stock_markets_pub;
2739 --Standard call to check for call compatibility.
2740         IF NOT FND_API.Compatible_API_Call(
2741                                         l_api_version,
2742                                         p_api_version,
2743                                         l_api_name,
2744                                         G_PKG_NAME)
2745         THEN
2746                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2747         END IF;
2748 
2749 --Initialize message list if p_init_msg_list is set to TRUE.
2750         IF FND_API.to_Boolean(p_init_msg_list) THEN
2751                 FND_MSG_PUB.initialize;
2752         END IF;
2753 
2754 --Initialize API return status to success.
2755         x_return_status := FND_API.G_RET_STS_SUCCESS;
2756 
2757 /*
2758 --Call to User-Hook pre Processing Procedure
2759       IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' THEN
2760         hz_org_info_crmhk.create_stock_markets_pre(
2761                         l_stock_markets_rec,
2762                         x_return_status,
2763                         x_msg_count,
2764                         x_msg_data);
2765 
2766         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2767                 RAISE FND_API.G_EXC_ERROR;
2768         ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2769                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
2770                 FND_MESSAGE.SET_TOKEN('PROCEDURE',
2771                                 'HZ_ORG_INFO_CRMHK.CREATE_STOCK_MARKETS_PRE');
2772                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2773                 FND_MSG_PUB.ADD;
2774                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2775         END IF;
2776 
2777        END IF;
2778 */
2779 
2780 -- Call to business logic.
2781 -- Call PL/SQL wrapper over table handler
2782         do_create_stock_markets( l_stock_markets_rec,
2783                                  x_stock_exchange_id,
2784                                  x_return_status);
2785 
2786 /*
2787 --Call to User-Hook post Processing Procedure
2788       IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' THEN
2789         hz_org_info_crmhk.create_stock_markets_post(
2790                         l_stock_markets_rec,
2791                         x_return_status,
2792                         x_msg_count,
2793                         x_msg_data);
2794 
2795         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2796                 RAISE FND_API.G_EXC_ERROR;
2797         ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2798                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
2799                 FND_MESSAGE.SET_TOKEN('PROCEDURE',
2800                                 'HZ_ORG_INFO_CRMHK.CREATE_STOCK_MARKETS_POST');
2801                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2802                 FND_MSG_PUB.ADD;
2803                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2804         END IF;
2805 
2806        END IF;
2807 */
2808 
2809      --Bug 4743141.
2810    IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
2811      IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('Y', 'EVENTS_ENABLED')) THEN
2812        hz_business_event_v2pvt.create_stock_markets_event(l_stock_markets_rec);
2813      END IF;
2814    END IF;
2815 
2816 --Standard check of p_commit.
2817         IF FND_API.to_Boolean(p_commit) THEN
2818                 Commit;
2819         END IF;
2820 
2821 --Standard call to get message count and if count is 1, get message info.
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 EXCEPTION
2827         WHEN FND_API.G_EXC_ERROR THEN
2828                 ROLLBACK TO create_stock_markets_pub;
2829                 x_return_status := FND_API.G_RET_STS_ERROR;
2830                 FND_MSG_PUB.Count_And_Get(
2831                                 p_encoded => FND_API.G_FALSE,
2832                                 p_count => x_msg_count,
2833                                 p_data  => x_msg_data);
2834 
2835         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2836                 ROLLBACK TO create_stock_markets_pub;
2837                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2838                 FND_MSG_PUB.Count_And_Get(
2839                                 p_encoded => FND_API.G_FALSE,
2840                                 p_count => x_msg_count,
2841                                 p_data  => x_msg_data);
2842 
2843         WHEN OTHERS THEN
2844                 ROLLBACK TO create_stock_markets_pub;
2845                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2846 
2847                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
2848                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2849                 FND_MSG_PUB.ADD;
2850 
2851                 FND_MSG_PUB.Count_And_Get(
2852                                 p_encoded => FND_API.G_FALSE,
2853                                 p_count => x_msg_count,
2854                                 p_data  => x_msg_data);
2855 
2856 END create_stock_markets;
2857 
2858 /*===========================================================================+
2859  | PROCEDURE
2860  |              update_stock_markets
2861  |
2862  | DESCRIPTION
2863  |              Updates stock markets.
2864  |
2865  | SCOPE - PUBLIC
2866  |
2867  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
2868  |
2869  | ARGUMENTS  : IN:
2870  |                    p_api_version
2871  |                    p_init_msg_list
2872  |                    p_commit
2873  |                    p_stock_markets_rec
2874  |                    p_validation_level
2875  |              OUT:
2876  |                    x_return_status
2877  |                    x_msg_count
2878  |                    x_msg_data
2879  |          IN/ OUT:
2880  |                    p_last_update_date
2881  |
2882  | RETURNS    : NONE
2883  |
2884  | NOTES
2885  |
2886  | MODIFICATION HISTORY
2887  |
2888  +===========================================================================*/
2889 
2890 procedure update_stock_markets(
2891         p_api_version           IN      NUMBER,
2892         p_init_msg_list         IN      VARCHAR2:= FND_API.G_FALSE,
2893         p_commit                IN      VARCHAR2:= FND_API.G_FALSE,
2894         p_stock_markets_rec     IN      STOCK_MARKETS_REC_TYPE,
2895         p_last_update_date      IN OUT  NOCOPY DATE,
2896         x_return_status         OUT     NOCOPY VARCHAR2,
2897         x_msg_count             OUT     NOCOPY NUMBER,
2898         x_msg_data              OUT     NOCOPY VARCHAR2,
2899         p_validation_level      IN      NUMBER :=FND_API.G_VALID_LEVEL_FULL
2900 ) IS
2901 
2902         l_api_name              CONSTANT VARCHAR2(30) := 'update stock markets';
2903         l_api_version           CONSTANT  NUMBER       := 1.0;
2904         l_stock_markets_rec     STOCK_MARKETS_REC_TYPE := p_stock_markets_rec;
2905         l_old_stock_markets_rec STOCK_MARKETS_REC_TYPE;
2906 BEGIN
2907 --Standard start of API savepoint
2908         SAVEPOINT update_stock_markets_pub;
2909 --Standard call to check for call compatibility.
2910         IF NOT FND_API.Compatible_API_Call(
2911                                         l_api_version,
2912                                         p_api_version,
2913                                         l_api_name,
2914                                         G_PKG_NAME)
2915         THEN
2916                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2917         END IF;
2918 
2919 --Initialize message list if p_init_msg_list is set to TRUE.
2920         IF FND_API.to_Boolean(p_init_msg_list) THEN
2921                 FND_MSG_PUB.initialize;
2922         END IF;
2923 
2924 --Initialize API return status to success.
2925         x_return_status := FND_API.G_RET_STS_SUCCESS;
2926 
2927 /*
2928 --Call to User-Hook pre Processing Procedure
2929       IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' THEN
2930         hz_org_info_crmhk.update_stock_markets_pre(
2931                         l_stock_markets_rec,
2932                         x_return_status,
2933                         x_msg_count,
2934                         x_msg_data);
2935 
2936         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2937                 RAISE FND_API.G_EXC_ERROR;
2938         ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2939                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
2940                 FND_MESSAGE.SET_TOKEN('PROCEDURE',
2941                                 'HZ_ORG_INFO_CRMHK.UPDATE_STOCK_MARKETS_PRE');
2942                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2943                 FND_MSG_PUB.ADD;
2944                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2945         END IF;
2946 
2947        END IF;
2948 
2949 -- Get Old stock_markets_rec
2950     get_current_stock_markets(1,
2951                               FND_API.G_FALSE,
2952                               l_stock_markets_rec.stock_exchange_id,
2953                               l_old_stock_markets_rec,
2954                               x_return_status,
2955                               x_msg_count,
2956                               x_msg_data);
2957 
2958     IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2959         RAISE FND_API.G_EXC_ERROR;
2960     ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2961         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2962     END IF;
2963 */
2964 
2965 -- Call to business logic.
2966 -- Call PL/SQL wrapper over table handler
2967         do_update_stock_markets( l_stock_markets_rec,
2968                                  p_last_update_date,
2969                                  x_return_status);
2970 
2971 /*
2972 --Call to User-Hook post Processing Procedure
2973       IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' THEN
2974         hz_org_info_crmhk.update_stock_markets_post(
2975                         l_stock_markets_rec,
2976                         x_return_status,
2977                         x_msg_count,
2978                         x_msg_data);
2979 
2980         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2981                 RAISE FND_API.G_EXC_ERROR;
2982         ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2983                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
2984                 FND_MESSAGE.SET_TOKEN('PROCEDURE',
2985                                 'HZ_ORG_INFO_CRMHK.UPDATE_STOCK_MARKETS_POST');
2986                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2987                 FND_MSG_PUB.ADD;
2988                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2989         END IF;
2990 
2991        END IF;
2992 */
2993 
2994      --Bug 4743141.
2995    IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
2996      IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('Y', 'EVENTS_ENABLED')) THEN
2997       hz_business_event_v2pvt.update_stock_markets_event(l_stock_markets_rec);
2998      END IF;
2999    END IF;
3000 
3001 --Standard check of p_commit.
3002         IF FND_API.to_Boolean(p_commit) THEN
3003                 Commit;
3004         END IF;
3005 
3006 --Standard call to get message count and if count is 1, get message info.
3007         FND_MSG_PUB.Count_And_Get(
3008                 p_encoded => FND_API.G_FALSE,
3009                 p_count => x_msg_count,
3010                 p_data  => x_msg_data);
3011 EXCEPTION
3012         WHEN FND_API.G_EXC_ERROR THEN
3013                 ROLLBACK TO update_stock_markets_pub;
3014                 x_return_status := FND_API.G_RET_STS_ERROR;
3015                 FND_MSG_PUB.Count_And_Get(
3016                                 p_encoded => FND_API.G_FALSE,
3017                                 p_count => x_msg_count,
3018                                 p_data  => x_msg_data);
3019 
3020         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3021                 ROLLBACK TO update_stock_markets_pub;
3022                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3023                 FND_MSG_PUB.Count_And_Get(
3024                                 p_encoded => FND_API.G_FALSE,
3025                                 p_count => x_msg_count,
3026                                 p_data  => x_msg_data);
3027 
3028         WHEN OTHERS THEN
3029                 ROLLBACK TO update_stock_markets_pub;
3030                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3031 
3032                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
3033                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3034                 FND_MSG_PUB.ADD;
3035 
3036                 FND_MSG_PUB.Count_And_Get(
3037                                 p_encoded => FND_API.G_FALSE,
3038                                 p_count => x_msg_count,
3039                                 p_data  => x_msg_data);
3040 
3041 END update_stock_markets;
3042 
3043 /*===========================================================================+
3044  | PROCEDURE
3045  |              create_security_issued
3046  |
3047  | DESCRIPTION
3048  |              Creates security issued.
3049  |
3050  | SCOPE - PUBLIC
3051  |
3052  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
3053  |
3054  | ARGUMENTS  : IN:
3055  |                    p_api_version
3056  |                    p_init_msg_list
3057  |                    p_commit
3058  |                    p_security_issued_rec
3059  |                    p_validation_level
3060  |              OUT:
3061  |                    x_return_status
3062  |                    x_msg_count
3063  |                    x_msg_data
3064  |                    x_security_issued_id
3065  |          IN/ OUT:
3066  |
3067  | RETURNS    : NONE
3068  |
3069  | NOTES
3070  |
3071  | MODIFICATION HISTORY
3072  |
3073  +===========================================================================*/
3074 
3075 procedure create_security_issued(
3076         p_api_version           IN      NUMBER,
3077         p_init_msg_list         IN      VARCHAR2:= FND_API.G_FALSE,
3078         p_commit                IN      VARCHAR2:= FND_API.G_FALSE,
3079         p_security_issued_rec   IN      SECURITY_ISSUED_REC_TYPE,
3080         x_return_status         OUT     NOCOPY VARCHAR2,
3081         x_msg_count             OUT     NOCOPY NUMBER,
3082         x_msg_data              OUT     NOCOPY VARCHAR2,
3083         x_security_issued_id    OUT     NOCOPY NUMBER,
3084         p_validation_level      IN      NUMBER :=FND_API.G_VALID_LEVEL_FULL
3085 ) IS
3086         l_api_name              CONSTANT VARCHAR2(30) := 'create security issued';
3087         l_api_version           CONSTANT  NUMBER       := 1.0;
3088         l_security_issued_rec   SECURITY_ISSUED_REC_TYPE := p_security_issued_rec;
3089 
3090 BEGIN
3091 --Standard start of API savepoint
3092         SAVEPOINT create_security_issued_pub;
3093 --Standard call to check for call compatibility.
3094         IF NOT FND_API.Compatible_API_Call(
3095                                         l_api_version,
3096                                         p_api_version,
3097                                         l_api_name,
3098                                         G_PKG_NAME)
3099         THEN
3100                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3101         END IF;
3102 
3103 --Initialize message list if p_init_msg_list is set to TRUE.
3104         IF FND_API.to_Boolean(p_init_msg_list) THEN
3105                 FND_MSG_PUB.initialize;
3106         END IF;
3107 
3108 --Initialize API return status to success.
3109         x_return_status := FND_API.G_RET_STS_SUCCESS;
3110 
3111 /*
3112 --Call to User-Hook pre Processing Procedure
3113       IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' THEN
3114         hz_org_info_crmhk.create_security_issued_pre(
3115                         l_security_issued_rec,
3116                         x_return_status,
3117                         x_msg_count,
3118                         x_msg_data);
3119 
3120         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3121                 RAISE FND_API.G_EXC_ERROR;
3122         ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3123                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
3124                 FND_MESSAGE.SET_TOKEN('PROCEDURE',
3125                                 'HZ_ORG_INFO_CRMHK.CREATE_SECURITY_ISSUED_PRE');
3126                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3127                 FND_MSG_PUB.ADD;
3128                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3129         END IF;
3130 
3131        END IF;
3132 */
3133 
3134 -- Call to business logic.
3135 -- Call PL/SQL wrapper over table handler
3136         do_create_security_issued(l_security_issued_rec,
3137                                   x_security_issued_id,
3138                                   x_return_status);
3139 
3140 /*
3141 --Call to User-Hook post Processing Procedure
3142       IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' THEN
3143         hz_org_info_crmhk.create_security_issued_post(
3144                         l_security_issued_rec,
3145                         x_return_status,
3146                         x_msg_count,
3147                         x_msg_data);
3148 
3149         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3150                 RAISE FND_API.G_EXC_ERROR;
3151         ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3152                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
3153                 FND_MESSAGE.SET_TOKEN('PROCEDURE',
3154                                 'HZ_ORG_INFO_CRMHK.CREATE_SECURITY_ISSUED_POST');
3155                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3156                 FND_MSG_PUB.ADD;
3157                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3158         END IF;
3159 
3160        END IF;
3161 */
3162 
3163      --Bug 4743141.
3164    IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
3165      IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('Y', 'EVENTS_ENABLED')) THEN
3166        hz_business_event_v2pvt.create_sec_issued_event(l_security_issued_rec);
3167      END IF;
3168    END IF;
3169 
3170 --Standard check of p_commit.
3171         IF FND_API.to_Boolean(p_commit) THEN
3172                 Commit;
3173         END IF;
3174 
3175 --Standard call to get message count and if count is 1, get message info.
3176         FND_MSG_PUB.Count_And_Get(
3177                 p_encoded => FND_API.G_FALSE,
3178                 p_count => x_msg_count,
3179                 p_data  => x_msg_data);
3180 EXCEPTION
3181         WHEN FND_API.G_EXC_ERROR THEN
3182                 ROLLBACK TO create_security_issued_pub;
3183                 x_return_status := FND_API.G_RET_STS_ERROR;
3184                 FND_MSG_PUB.Count_And_Get(
3185                                 p_encoded => FND_API.G_FALSE,
3186                                 p_count => x_msg_count,
3187                                 p_data  => x_msg_data);
3188 
3189         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3190                 ROLLBACK TO create_security_issued_pub;
3191                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3192                 FND_MSG_PUB.Count_And_Get(
3193                                 p_encoded => FND_API.G_FALSE,
3194                                 p_count => x_msg_count,
3195                                 p_data  => x_msg_data);
3196 
3197         WHEN OTHERS THEN
3198                 ROLLBACK TO create_security_issued_pub;
3199                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3200 
3201                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
3202                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3203                 FND_MSG_PUB.ADD;
3204 
3205                 FND_MSG_PUB.Count_And_Get(
3206                                 p_encoded => FND_API.G_FALSE,
3207                                 p_count => x_msg_count,
3208                                 p_data  => x_msg_data);
3209 
3210 END create_security_issued;
3211 
3212 /*===========================================================================+
3213  | PROCEDURE
3214  |              update_security_issued
3215  |
3216  | DESCRIPTION
3217  |              Updates security issued.
3218  |
3219  | SCOPE - PUBLIC
3220  |
3221  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
3222  |
3223  | ARGUMENTS  : IN:
3224  |                    p_api_version
3225  |                    p_init_msg_list
3226  |                    p_commit
3227  |                    p_security_issued_rec
3228  |                    p_validation_level
3229  |              OUT:
3230  |                    x_return_status
3231  |                    x_msg_count
3232  |                    x_msg_data
3233  |          IN/ OUT:
3234  |                    p_last_update_date
3235  |
3236  | RETURNS    : NONE
3237  |
3238  | NOTES
3239  |
3240  | MODIFICATION HISTORY
3241  |
3242  +===========================================================================*/
3243 
3244 procedure update_security_issued(
3245         p_api_version           IN      NUMBER,
3246         p_init_msg_list         IN      VARCHAR2:= FND_API.G_FALSE,
3247         p_commit                IN      VARCHAR2:= FND_API.G_FALSE,
3248         p_security_issued_rec   IN      SECURITY_ISSUED_REC_TYPE,
3249         p_last_update_date      IN OUT  NOCOPY DATE,
3250         x_return_status         OUT     NOCOPY VARCHAR2,
3251         x_msg_count             OUT     NOCOPY NUMBER,
3252         x_msg_data              OUT     NOCOPY VARCHAR2,
3253         p_validation_level      IN      NUMBER :=FND_API.G_VALID_LEVEL_FULL
3254 ) IS
3255 
3256         l_api_name              CONSTANT VARCHAR2(30) := 'update security issued';
3257         l_api_version           CONSTANT  NUMBER       := 1.0;
3258         l_security_issued_rec   SECURITY_ISSUED_REC_TYPE := p_security_issued_rec;
3259         l_old_security_issued_rec   SECURITY_ISSUED_REC_TYPE;
3260 BEGIN
3261 --Standard start of API savepoint
3262         SAVEPOINT update_security_issued_pub;
3263 --Standard call to check for call compatibility.
3264         IF NOT FND_API.Compatible_API_Call(
3265                                         l_api_version,
3266                                         p_api_version,
3267                                         l_api_name,
3268                                         G_PKG_NAME)
3269         THEN
3270                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3271         END IF;
3272 
3273 --Initialize message list if p_init_msg_list is set to TRUE.
3274         IF FND_API.to_Boolean(p_init_msg_list) THEN
3275                 FND_MSG_PUB.initialize;
3276         END IF;
3277 
3278 --Initialize API return status to success.
3279         x_return_status := FND_API.G_RET_STS_SUCCESS;
3280 
3281 
3282 /*
3283      get_current_security_issued(1,
3284                                  FND_API.G_FALSE,
3285                                  l_security_issued_rec.security_issued_id,
3286                                  l_old_security_issued_rec,
3287                                  x_return_status,
3288                                  x_msg_count,
3289                                  x_msg_data);
3290 
3291     IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3292         RAISE FND_API.G_EXC_ERROR;
3293     ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3294         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3295     END IF;
3296 
3297 --Call to User-Hook pre Processing Procedure
3298       IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' THEN
3299         hz_org_info_crmhk.update_security_issued_pre(
3300                         l_security_issued_rec,
3301                         x_return_status,
3302                         x_msg_count,
3303                         x_msg_data);
3304 
3305         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3306                 RAISE FND_API.G_EXC_ERROR;
3307         ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3308                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
3309                 FND_MESSAGE.SET_TOKEN('PROCEDURE',
3310                                 'HZ_ORG_INFO_CRMHK.UPDATE_SECURITY_ISSUED_PRE');
3311                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3312                 FND_MSG_PUB.ADD;
3313                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3314         END IF;
3315 
3316        END IF;
3317 */
3318 
3319 -- Call to business logic.
3320 -- Call PL/SQL wrapper over table handler
3321         do_update_security_issued(l_security_issued_rec,
3322                                   p_last_update_date,
3323                                   x_return_status);
3324 
3325 /*
3326 --Call to User-Hook post Processing Procedure
3327       IF  fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' THEN
3328         hz_org_info_crmhk.update_security_issued_post(
3329                         l_security_issued_rec,
3330                         x_return_status,
3331                         x_msg_count,
3332                         x_msg_data);
3333 
3334         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3335                 RAISE FND_API.G_EXC_ERROR;
3336         ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3337                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
3338                 FND_MESSAGE.SET_TOKEN('PROCEDURE',
3339                                 'HZ_ORG_INFO_CRMHK.UPDATE_SECURITY_ISSUED_POST');
3340                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3341                 FND_MSG_PUB.ADD;
3342                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3343         END IF;
3344 
3345        END IF;
3346 */
3347 
3348      --Bug 4743141.
3349    IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
3350      IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('Y', 'EVENTS_ENABLED')) THEN
3351        hz_business_event_v2pvt.update_sec_issued_event(l_security_issued_rec);
3352      END IF;
3353    END IF;
3354 
3355 --Standard check of p_commit.
3356         IF FND_API.to_Boolean(p_commit) THEN
3357                 Commit;
3358         END IF;
3359 
3360 --Standard call to get message count and if count is 1, get message info.
3361         FND_MSG_PUB.Count_And_Get(
3362                 p_encoded => FND_API.G_FALSE,
3363                 p_count => x_msg_count,
3364                 p_data  => x_msg_data);
3365 EXCEPTION
3366         WHEN FND_API.G_EXC_ERROR THEN
3367                 ROLLBACK TO update_security_issued_pub;
3368                 x_return_status := FND_API.G_RET_STS_ERROR;
3369                 FND_MSG_PUB.Count_And_Get(
3370                                 p_encoded => FND_API.G_FALSE,
3371                                 p_count => x_msg_count,
3372                                 p_data  => x_msg_data);
3373 
3374         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3375                 ROLLBACK TO update_security_issued_pub;
3376                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3377                 FND_MSG_PUB.Count_And_Get(
3378                                 p_encoded => FND_API.G_FALSE,
3379                                 p_count => x_msg_count,
3380                                 p_data  => x_msg_data);
3381 
3382         WHEN OTHERS THEN
3383                 ROLLBACK TO update_security_issued_pub;
3384                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3385 
3386                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
3387                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3388                 FND_MSG_PUB.ADD;
3389 
3390                 FND_MSG_PUB.Count_And_Get(
3391                                 p_encoded => FND_API.G_FALSE,
3392                                 p_count => x_msg_count,
3393                                 p_data  => x_msg_data);
3394 
3395 END update_security_issued;
3396 
3397 /*===========================================================================+
3398  | PROCEDURE
3399  |              create_financial_reports
3400  |
3401  | DESCRIPTION
3402  |              Creates financial reports.
3403  |
3404  | SCOPE - PUBLIC
3405  |
3406  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
3407  |
3408  | ARGUMENTS  : IN:
3409  |                    p_api_version
3410  |                    p_init_msg_list
3411  |                    p_commit
3412  |                    p_financial_reports_rec
3413  |                    p_validation_level
3414  |              OUT:
3415  |                    x_return_status
3416  |                    x_msg_count
3417  |                    x_msg_data
3418  |                    x_financial_report_id
3419  |          IN/ OUT:
3420  |
3421  | RETURNS    : NONE
3422  |
3423  | NOTES
3424  |
3425  | MODIFICATION HISTORY
3426  |
3427  |    01-03-2005  Rajib Ranjan Borah   o SSM SST Integration and Extension.
3428  |                                       For non-profile entities, the concept of
3429  |                                       select/de-select data-sources is obsoleted.
3430  +===========================================================================
3431 
3432 procedure create_financial_reports(
3433     p_api_version                   IN     NUMBER,
3434     p_init_msg_list                 IN     VARCHAR2:= FND_API.G_FALSE,
3435     p_commit                        IN     VARCHAR2:= FND_API.G_FALSE,
3436     p_financial_reports_rec         IN     FINANCIAL_REPORTS_REC_TYPE,
3437     x_return_status                 OUT    NOCOPY VARCHAR2,
3438     x_msg_count                     OUT    NOCOPY NUMBER,
3439     x_msg_data                      OUT    NOCOPY VARCHAR2,
3440     x_financial_report_id           OUT    NOCOPY NUMBER,
3441     p_validation_level              IN     NUMBER :=FND_API.G_VALID_LEVEL_FULL
3442 ) IS
3443 
3444     l_api_name                      CONSTANT VARCHAR2(30) := 'create financial reports';
3445     l_api_version                   CONSTANT NUMBER := 1.0;
3446     l_financial_reports_rec         FINANCIAL_REPORTS_REC_TYPE := p_financial_reports_rec;
3447 
3448 BEGIN
3449 
3450     --Standard start of API savepoint
3451     SAVEPOINT create_financial_reports_pub;
3452 
3453     --Standard call to check for call compatibility.
3454     IF NOT FND_API.Compatible_API_Call(
3455              l_api_version,
3456              p_api_version,
3457              l_api_name,
3458              G_PKG_NAME)
3459     THEN
3460       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3461     END IF;
3462 
3463     --Initialize message list if p_init_msg_list is set to TRUE.
3464     IF FND_API.to_Boolean(p_init_msg_list) THEN
3465       FND_MSG_PUB.initialize;
3466     END IF;
3467 
3468     --Initialize API return status to success.
3469     x_return_status := FND_API.G_RET_STS_SUCCESS;
3470 
3471     -- Bug 2197181: added for mix-n-match project. first load data
3472     -- sources for this entity. Then assign the actual_content_source
3473     -- to the real data source. The value of content_source_type is
3474     -- depended on if data source is seleted. If it is selected, we reset
3475     -- content_source_type to user-entered. We also check if user
3476     -- has the privilege to create user-entered data if mix-n-match
3477     -- is enabled.
3478 
3479     -- Bug 2444678: Removed caching.
3480 
3481     -- IF g_fin_mixnmatch_enabled IS NULL THEN
3482 * SSM SST Integration and Extension
3483  * For non-profile entities, the concept of select/de-select data-sources is obsoleted.
3484  * There is no need to check if the data-source is selected.
3485 
3486     HZ_MIXNM_UTILITY.LoadDataSources(
3487       p_entity_name                    => 'HZ_FINANCIAL_REPORTS',
3488       p_entity_attr_id                 => g_fin_entity_attr_id,
3489       p_mixnmatch_enabled              => g_fin_mixnmatch_enabled,
3490       p_selected_datasources           => g_fin_selected_datasources );
3491 *
3492     -- END IF;
3493 
3494     HZ_MIXNM_UTILITY.AssignDataSourceDuringCreation (
3495       p_entity_name                    => 'HZ_FINANCIAL_REPORTS',
3496       p_entity_attr_id                 => g_fin_entity_attr_id,
3497       p_mixnmatch_enabled              => g_fin_mixnmatch_enabled,
3498       p_selected_datasources           => g_fin_selected_datasources,
3499       p_content_source_type            => l_financial_reports_rec.content_source_type,
3500       p_actual_content_source          => l_financial_reports_rec.actual_content_source,
3501       x_is_datasource_selected         => g_fin_is_datasource_selected,
3502       x_return_status                  => x_return_status,
3503       p_api_version                    => 'V1');
3504 
3505     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3506       RAISE FND_API.G_EXC_ERROR;
3507     END IF;
3508 
3509 ********************this code is replaced to go via V2 API.
3510     -- Call to business logic.
3511     do_create_financial_reports(
3512       l_financial_reports_rec,
3513       x_financial_report_id,
3514       x_return_status);
3515 ************************
3516 
3517     -- call to perform everything through V2 API
3518     HZ_ORGANIZATION_INFO_V2PVT.v2_create_financial_report (
3519      p_financial_report_rec =>  l_financial_reports_rec,
3520      x_return_status        =>  x_return_status,
3521      x_financial_report_id  =>  x_financial_report_id
3522     );
3523 
3524 *
3525     -- Invoke business event system.
3526     IF x_return_status = FND_API.G_RET_STS_SUCCESS AND
3527        -- Bug 2197181: Added below condition for Mix-n-Match
3528        g_fin_is_datasource_selected = 'Y'
3529     THEN
3530        HZ_BUSINESS_EVENT_V2PVT.create_fin_reports_event(l_financial_reports_rec);
3531     END IF;
3532 *
3533     --Standard check of p_commit.
3534     IF FND_API.to_Boolean(p_commit) THEN
3535       Commit;
3536     END IF;
3537 
3538     --Standard call to get message count and if count is 1, get message info.
3539     FND_MSG_PUB.Count_And_Get(
3540       p_encoded => FND_API.G_FALSE,
3541       p_count => x_msg_count,
3542       p_data  => x_msg_data);
3543 
3544 EXCEPTION
3545     WHEN FND_API.G_EXC_ERROR THEN
3546       ROLLBACK TO create_financial_reports_pub;
3547       x_return_status := FND_API.G_RET_STS_ERROR;
3548 
3549       FND_MSG_PUB.Count_And_Get(
3550         p_encoded => FND_API.G_FALSE,
3551         p_count => x_msg_count,
3552         p_data  => x_msg_data);
3553 
3554     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3555       ROLLBACK TO create_financial_reports_pub;
3556       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3557 
3558       FND_MSG_PUB.Count_And_Get(
3559         p_encoded => FND_API.G_FALSE,
3560         p_count => x_msg_count,
3561         p_data  => x_msg_data);
3562 
3563     WHEN OTHERS THEN
3564       ROLLBACK TO create_financial_reports_pub;
3565       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3566 
3567       FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
3568       FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3569       FND_MSG_PUB.ADD;
3570 
3571       FND_MSG_PUB.Count_And_Get(
3572         p_encoded => FND_API.G_FALSE,
3573         p_count => x_msg_count,
3574         p_data  => x_msg_data);
3575 
3576 END create_financial_reports;
3577 END V1 API Obsolete
3578 */
3579 
3580 /*===========================================================================+
3581  | PROCEDURE
3582  |              update_financial_reports
3583  |
3584  | DESCRIPTION
3585  |              Updates financial reports.
3586  |
3587  | SCOPE - PUBLIC
3588  |
3589  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
3590  |
3591  | ARGUMENTS  : IN:
3592  |                    p_api_version
3593  |                    p_init_msg_list
3594  |                    p_commit
3595  |                    p_financial_reports_rec
3596  |                    p_validation_level
3597  |              OUT:
3598  |                    x_return_status
3599  |                    x_msg_count
3600  |                    x_msg_data
3601  |          IN/ OUT:
3602  |                    p_last_update_date
3603  |
3604  | RETURNS    : NONE
3605  |
3606  | NOTES
3607  |
3608  | MODIFICATION HISTORY
3609  |
3610  |   01-03-2005  Rajib Ranjan Borah   o SSM SST Integration and Extension.
3611  |                                      For non-profile entities, the concept of
3612  |                                      select/de-select data-sources is obsoleted.
3613  +===========================================================================
3614 
3615 procedure update_financial_reports(
3616     p_api_version                   IN     NUMBER,
3617     p_init_msg_list                 IN     VARCHAR2:= FND_API.G_FALSE,
3618     p_commit                        IN     VARCHAR2:= FND_API.G_FALSE,
3619     p_financial_reports_rec         IN     FINANCIAL_REPORTS_REC_TYPE,
3620     p_last_update_date              IN OUT NOCOPY DATE,
3621     x_return_status                 OUT    NOCOPY VARCHAR2,
3622     x_msg_count                     OUT    NOCOPY NUMBER,
3623     x_msg_data                      OUT    NOCOPY VARCHAR2,
3624     p_validation_level              IN     NUMBER :=FND_API.G_VALID_LEVEL_FULL
3625 ) IS
3626 
3627     l_api_name                      CONSTANT VARCHAR2(30) := 'update financial reports';
3628     l_api_version                   CONSTANT NUMBER := 1.0;
3629     l_financial_reports_rec         FINANCIAL_REPORTS_REC_TYPE := p_financial_reports_rec;
3630     l_old_financial_reports_rec     FINANCIAL_REPORTS_REC_TYPE;
3631 
3632 BEGIN
3633 
3634     --Standard start of API savepoint
3635     SAVEPOINT update_financial_reports_pub;
3636 
3637     --Standard call to check for call compatibility.
3638     IF NOT FND_API.Compatible_API_Call(
3639              l_api_version,
3640              p_api_version,
3641              l_api_name,
3642              G_PKG_NAME)
3643     THEN
3644       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3645     END IF;
3646 
3647     --Initialize message list if p_init_msg_list is set to TRUE.
3648     IF FND_API.to_Boolean(p_init_msg_list) THEN
3649       FND_MSG_PUB.initialize;
3650     END IF;
3651 
3652     --Initialize API return status to success.
3653     x_return_status := FND_API.G_RET_STS_SUCCESS;
3654 
3655     get_current_financial_report(
3656       1, FND_API.G_FALSE,
3657       l_financial_reports_rec.financial_report_id,
3658       l_old_financial_reports_rec,
3659       x_return_status,
3660       x_msg_count,
3661       x_msg_data);
3662 
3663     IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3664       RAISE FND_API.G_EXC_ERROR;
3665     ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3666       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3667     END IF;
3668 
3669     -- Bug 2197181: added for mix-n-match project. first load data
3670     -- sources for this entity.
3671 
3672     -- Bug 2444678: Removed caching.
3673 
3674     -- IF g_fin_mixnmatch_enabled IS NULL THEN
3675 
3676  * SSM SST Integration and Extension
3677  * For non-profile entities, the concept of select/de-select data-sources is obsoleted.
3678  * There is no need to check if the data-source is selected.
3679 
3680     HZ_MIXNM_UTILITY.LoadDataSources(
3681       p_entity_name                    => 'HZ_FINANCIAL_REPORTS',
3682       p_entity_attr_id                 => g_fin_entity_attr_id,
3683       p_mixnmatch_enabled              => g_fin_mixnmatch_enabled,
3684       p_selected_datasources           => g_fin_selected_datasources );
3685 
3686     -- END IF;
3687 
3688     -- Bug 2197181: added for mix-n-match project.
3689     -- check if the data source is seleted.
3690  * SSM SST Integration and Extension
3691  * For non-profile entities, the concept of select/de-select data-sources is obsoleted.
3692  * There is no need to check if the data-source is selected.
3693 
3694     g_fin_is_datasource_selected :=
3695       HZ_MIXNM_UTILITY.isDataSourceSelected (
3696         p_selected_datasources           => g_fin_selected_datasources,
3697         p_actual_content_source          => l_old_financial_reports_rec.actual_content_source );
3698 *
3699 ********************this code is replaced to go via V2 API.
3700     -- Call to business logic.
3701     do_update_financial_reports(
3702       l_financial_reports_rec,
3703       p_last_update_date,
3704       x_return_status);
3705 ************************
3706 
3707     -- call to perform everything through V2 API
3708     HZ_ORGANIZATION_INFO_V2PVT.v2_update_financial_report (
3709       l_financial_reports_rec,
3710       p_last_update_date,
3711       x_return_status
3712     );
3713 
3714     *
3715     -- Invoke business event system.
3716     IF x_return_status = FND_API.G_RET_STS_SUCCESS AND
3717        -- Bug 2197181: Added below condition for Mix-n-Match
3718        g_fin_is_datasource_selected = 'Y'
3719     THEN
3720       HZ_BUSINESS_EVENT_V2PVT.update_fin_reports_event(l_financial_reports_rec);
3721     END IF;
3722     *
3723     --Standard check of p_commit.
3724     IF FND_API.to_Boolean(p_commit) THEN
3725       Commit;
3726     END IF;
3727 
3728     --Standard call to get message count and if count is 1, get message info.
3729     FND_MSG_PUB.Count_And_Get(
3730       p_encoded => FND_API.G_FALSE,
3731       p_count => x_msg_count,
3732       p_data  => x_msg_data);
3733 
3734 EXCEPTION
3735     WHEN FND_API.G_EXC_ERROR THEN
3736       ROLLBACK TO update_financial_reports_pub;
3737       x_return_status := FND_API.G_RET_STS_ERROR;
3738 
3739       FND_MSG_PUB.Count_And_Get(
3740         p_encoded => FND_API.G_FALSE,
3741         p_count => x_msg_count,
3742         p_data  => x_msg_data);
3743 
3744     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3745       ROLLBACK TO update_financial_reports_pub;
3746       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3747 
3748       FND_MSG_PUB.Count_And_Get(
3749         p_encoded => FND_API.G_FALSE,
3750         p_count => x_msg_count,
3751         p_data  => x_msg_data);
3752 
3753     WHEN OTHERS THEN
3754       ROLLBACK TO update_financial_reports_pub;
3755       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3756 
3757       FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
3758       FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3759       FND_MSG_PUB.ADD;
3760 
3761       FND_MSG_PUB.Count_And_Get(
3762         p_encoded => FND_API.G_FALSE,
3763         p_count => x_msg_count,
3764         p_data  => x_msg_data);
3765 
3766 END update_financial_reports;
3767 END Obsolete v1 api
3768 */
3769 
3770 /*===========================================================================+
3771  | PROCEDURE
3772  |              create_financial_numbers
3773  |
3774  | DESCRIPTION
3775  |              Creates financial numbers.
3776  |
3777  | SCOPE - PUBLIC
3778  |
3779  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
3780  |
3781  | ARGUMENTS  : IN:
3782  |                    p_api_version
3783  |                    p_init_msg_list
3784  |                    p_commit
3785  |                    p_financial_numbers_rec
3786  |                    p_validation_level
3787  |              OUT:
3788  |                    x_return_status
3789  |                    x_msg_count
3790  |                    x_msg_data
3791  |                    x_financial_number_id
3792  |          IN/ OUT:
3793  |
3794  | RETURNS    : NONE
3795  |
3796  | NOTES
3797  |
3798  | MODIFICATION HISTORY
3799  |
3800  |   01-03-2005  Rajib Ranjan Borah   o SSM SST Integration and Extension.
3801  |                                      For non-profile entities, the concept of
3802  |                                      select/de-select data-sources is obsoleted.
3803  +===========================================================================
3804 
3805 procedure create_financial_numbers(
3806     p_api_version                   IN     NUMBER,
3807     p_init_msg_list                 IN     VARCHAR2:= FND_API.G_FALSE,
3808     p_commit                        IN     VARCHAR2:= FND_API.G_FALSE,
3809     p_financial_numbers_rec         IN     FINANCIAL_NUMBERS_REC_TYPE,
3810     x_return_status                 OUT    NOCOPY VARCHAR2,
3811     x_msg_count                     OUT    NOCOPY NUMBER,
3812     x_msg_data                      OUT    NOCOPY VARCHAR2,
3813     x_financial_number_id           OUT    NOCOPY NUMBER,
3814     p_validation_level              IN     NUMBER :=FND_API.G_VALID_LEVEL_FULL
3815 ) IS
3816 
3817     l_api_name                      CONSTANT VARCHAR2(30) := 'create financial numbers';
3818     l_api_version                   CONSTANT NUMBER := 1.0;
3819     l_financial_numbers_rec         FINANCIAL_NUMBERS_REC_TYPE := p_financial_numbers_rec;
3820 
3821 BEGIN
3822 
3823     --Standard start of API savepoint
3824     SAVEPOINT create_financial_numbers_pub;
3825 
3826     --Standard call to check for call compatibility.
3827     IF NOT FND_API.Compatible_API_Call(
3828              l_api_version,
3829              p_api_version,
3830              l_api_name,
3831              G_PKG_NAME)
3832     THEN
3833       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3834     END IF;
3835 
3836     --Initialize message list if p_init_msg_list is set to TRUE.
3837     IF FND_API.to_Boolean(p_init_msg_list) THEN
3838       FND_MSG_PUB.initialize;
3839     END IF;
3840 
3841     --Initialize API return status to success.
3842     x_return_status := FND_API.G_RET_STS_SUCCESS;
3843 
3844     -- Bug 2197181: added for mix-n-match project. first load data
3845     -- sources for this entity.
3846 
3847     -- Bug 2444678: Removed caching.
3848 
3849     -- IF g_fin_mixnmatch_enabled IS NULL THEN
3850  * SSM SST Integration and Extension
3851  * For non-profile entities, the concept of select/de-select data-sources is obsoleted.
3852  * There is no need to check if the data-source is selected.
3853 
3854     HZ_MIXNM_UTILITY.LoadDataSources(
3855       p_entity_name                    => 'HZ_FINANCIAL_REPORTS',
3856       p_entity_attr_id                 => g_fin_entity_attr_id,
3857       p_mixnmatch_enabled              => g_fin_mixnmatch_enabled,
3858       p_selected_datasources           => g_fin_selected_datasources );
3859 *
3860     -- END IF;
3861 
3862 ********************this code is replaced to go via V2 API.
3863     -- Call to business logic.
3864     do_create_financial_numbers(
3865       l_financial_numbers_rec,
3866       x_financial_number_id,
3867       x_return_status);
3868 ************************
3869 
3870     -- call to perform everything through V2 API
3871     HZ_ORGANIZATION_INFO_V2PVT.v2_create_financial_number (
3872       p_financial_number_rec    => l_financial_numbers_rec,
3873       x_financial_number_id      => x_financial_number_id,
3874       x_return_status            => x_return_status);
3875 
3876 *
3877     -- Invoke business event system.
3878     IF x_return_status = FND_API.G_RET_STS_SUCCESS AND
3879        -- Bug 2197181: Added below condition for Mix-n-Match
3880        g_fin_is_datasource_selected = 'Y'
3881     THEN
3882       HZ_BUSINESS_EVENT_V2PVT.create_fin_numbers_event(l_financial_numbers_rec);
3883     END IF;
3884 *
3885 
3886     --Standard check of p_commit.
3887     IF FND_API.to_Boolean(p_commit) THEN
3888       Commit;
3889     END IF;
3890 
3891     --Standard call to get message count and if count is 1, get message info.
3892     FND_MSG_PUB.Count_And_Get(
3893       p_encoded => FND_API.G_FALSE,
3894       p_count => x_msg_count,
3895       p_data  => x_msg_data);
3896 
3897 EXCEPTION
3898     WHEN FND_API.G_EXC_ERROR THEN
3899       ROLLBACK TO create_financial_numbers_pub;
3900       x_return_status := FND_API.G_RET_STS_ERROR;
3901 
3902       FND_MSG_PUB.Count_And_Get(
3903         p_encoded => FND_API.G_FALSE,
3904         p_count => x_msg_count,
3905         p_data  => x_msg_data);
3906 
3907     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3908       ROLLBACK TO create_financial_numbers_pub;
3909       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3910 
3911       FND_MSG_PUB.Count_And_Get(
3912         p_encoded => FND_API.G_FALSE,
3913         p_count => x_msg_count,
3914         p_data  => x_msg_data);
3915 
3916     WHEN OTHERS THEN
3917       ROLLBACK TO create_financial_numbers_pub;
3918       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3919 
3920       FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
3921       FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3922       FND_MSG_PUB.ADD;
3923 
3924       FND_MSG_PUB.Count_And_Get(
3925         p_encoded => FND_API.G_FALSE,
3926         p_count => x_msg_count,
3927         p_data  => x_msg_data);
3928 
3929 END create_financial_numbers;
3930 END Obsolete vi api
3931 
3932 */
3933 /*===========================================================================+
3934  | PROCEDURE
3935  |              update_financial_numbers
3936  |
3937  | DESCRIPTION
3938  |              Updates financial numbers.
3939  |
3940  | SCOPE - PUBLIC
3941  |
3942  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
3943  |
3944  | ARGUMENTS  : IN:
3945  |                    p_api_version
3946  |                    p_init_msg_list
3947  |                    p_commit
3948  |                    p_financial_numbers_rec
3949  |                    p_validation_level
3950  |              OUT:
3951  |                    x_return_status
3952  |                    x_msg_count
3953  |                    x_msg_data
3954  |          IN/ OUT:
3955  |                    p_last_update_date
3956  |
3957  | RETURNS    : NONE
3958  |
3959  | NOTES
3960  |
3961  | MODIFICATION HISTORY
3962  |
3963  |   01-03-2005  Rajib Ranjan Borah   o SSM SST Integration and Extension.
3964  |                                      For non-profile entities, the concept of
3965  |                                      select/de-select data-sources is obsoleted.
3966  +===========================================================================
3967 
3968 procedure update_financial_numbers(
3969     p_api_version                   IN     NUMBER,
3970     p_init_msg_list                 IN     VARCHAR2:= FND_API.G_FALSE,
3971     p_commit                        IN     VARCHAR2:= FND_API.G_FALSE,
3972     p_financial_numbers_rec         IN     FINANCIAL_NUMBERS_REC_TYPE,
3973     p_last_update_date              IN OUT NOCOPY DATE,
3974     x_return_status                 OUT    NOCOPY VARCHAR2,
3975     x_msg_count                     OUT    NOCOPY NUMBER,
3976     x_msg_data                      OUT    NOCOPY VARCHAR2,
3977     p_validation_level              IN     NUMBER :=FND_API.G_VALID_LEVEL_FULL
3978 ) IS
3979 
3980     l_api_name                      CONSTANT VARCHAR2(30) := 'update financial numbers';
3981     l_api_version                   CONSTANT NUMBER := 1.0;
3982     l_financial_numbers_rec         FINANCIAL_NUMBERS_REC_TYPE := p_financial_numbers_rec;
3983     l_old_financial_numbers_rec     FINANCIAL_NUMBERS_REC_TYPE;
3984 
3985 BEGIN
3986 
3987     --Standard start of API savepoint
3988     SAVEPOINT update_financial_numbers_pub;
3989 
3990     --Standard call to check for call compatibility.
3991     IF NOT FND_API.Compatible_API_Call(
3992              l_api_version,
3993              p_api_version,
3994              l_api_name,
3995              G_PKG_NAME)
3996     THEN
3997       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3998     END IF;
3999 
4000     --Initialize message list if p_init_msg_list is set to TRUE.
4001     IF FND_API.to_Boolean(p_init_msg_list) THEN
4002       FND_MSG_PUB.initialize;
4003     END IF;
4004 
4005     --Initialize API return status to success.
4006     x_return_status := FND_API.G_RET_STS_SUCCESS;
4007 
4008     get_current_financial_number(
4009       1, FND_API.G_FALSE,
4010       l_financial_numbers_rec.financial_number_id,
4011       l_old_financial_numbers_rec,
4012       x_return_status,
4013       x_msg_count,
4014       x_msg_data);
4015 
4016     IF x_return_status = FND_API.G_RET_STS_ERROR THEN
4017       RAISE FND_API.G_EXC_ERROR;
4018     ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4019       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4020     END IF;
4021 
4022     -- Bug 2197181: added for mix-n-match project. first load data
4023     -- sources for this entity.
4024 
4025     -- Bug 2444678: Removed caching.
4026 
4027     -- IF g_fin_mixnmatch_enabled IS NULL THEN
4028  * SSM SST Integration and Extension
4029  * For non-profile entities, the concept of select/de-select data-sources is obsoleted.
4030  * There is no need to check if the data-source is selected.
4031 
4032     HZ_MIXNM_UTILITY.LoadDataSources(
4033       p_entity_name                    => 'HZ_FINANCIAL_REPORTS',
4034       p_entity_attr_id                 => g_fin_entity_attr_id,
4035       p_mixnmatch_enabled              => g_fin_mixnmatch_enabled,
4036       p_selected_datasources           => g_fin_selected_datasources );
4037  *
4038     -- END IF;
4039 
4040 ********************this code is replaced to go via V2 API.
4041     -- Call to business logic.
4042     do_update_financial_numbers(
4043       l_financial_numbers_rec,
4044       p_last_update_date,
4045       x_return_status);
4046 ************************
4047 
4048     -- call to perform everything through V2 API
4049     HZ_ORGANIZATION_INFO_V2PVT.v2_update_financial_number (
4050       l_financial_numbers_rec,
4051       p_last_update_date,
4052       x_return_status
4053     );
4054 
4055 *
4056     -- Invoke business event system.
4057     IF x_return_status = FND_API.G_RET_STS_SUCCESS AND
4058        -- Bug 2197181: Added below condition for Mix-n-Match
4059        g_fin_is_datasource_selected = 'Y'
4060     THEN
4061       HZ_BUSINESS_EVENT_V2PVT.update_fin_numbers_event(l_financial_numbers_rec);
4062     END IF;
4063 *
4064 
4065     --Standard check of p_commit.
4066     IF FND_API.to_Boolean(p_commit) THEN
4067       Commit;
4068     END IF;
4069 
4070     --Standard call to get message count and if count is 1, get message info.
4071     FND_MSG_PUB.Count_And_Get(
4072       p_encoded => FND_API.G_FALSE,
4073       p_count => x_msg_count,
4074       p_data  => x_msg_data);
4075 
4076 EXCEPTION
4077     WHEN FND_API.G_EXC_ERROR THEN
4078       ROLLBACK TO update_financial_numbers_pub;
4079       x_return_status := FND_API.G_RET_STS_ERROR;
4080 
4081       FND_MSG_PUB.Count_And_Get(
4082         p_encoded => FND_API.G_FALSE,
4083         p_count => x_msg_count,
4084         p_data  => x_msg_data);
4085 
4086     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4087       ROLLBACK TO update_financial_numbers_pub;
4088       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4089 
4090       FND_MSG_PUB.Count_And_Get(
4091         p_encoded => FND_API.G_FALSE,
4092         p_count => x_msg_count,
4093         p_data  => x_msg_data);
4094 
4095     WHEN OTHERS THEN
4096       ROLLBACK TO update_financial_numbers_pub;
4097       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4098 
4099       FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
4100       FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4101       FND_MSG_PUB.ADD;
4102 
4103       FND_MSG_PUB.Count_And_Get(
4104         p_encoded => FND_API.G_FALSE,
4105         p_count => x_msg_count,
4106         p_data  => x_msg_data);
4107 
4108 END update_financial_numbers;
4109 END Obsolete V1 API
4110 */
4111 /*===========================================================================+
4112  | PROCEDURE
4113  |              create_certifications
4114  |
4115  | DESCRIPTION
4116  |              Creates certifications.
4117  |
4118  | SCOPE - PUBLIC
4119  |
4120  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
4121  |
4122  | ARGUMENTS  : IN:
4123  |                    p_api_version
4124  |                    p_init_msg_list
4125  |                    p_commit
4126  |                    p_certifications_rec
4127  |                    p_validation_level
4128  |              OUT:
4129  |                    x_return_status
4130  |                    x_msg_count
4131  |                    x_msg_data
4132  |                    x_certification_id
4133  |          IN/ OUT:
4134  |
4135  | RETURNS    : NONE
4136  |
4137  | NOTES
4138  |
4139  | MODIFICATION HISTORY
4140  |
4141  +===========================================================================*/
4142 
4143 procedure create_certifications(
4144         p_api_version           IN      NUMBER,
4145         p_init_msg_list         IN      VARCHAR2:= FND_API.G_FALSE,
4146         p_commit                IN      VARCHAR2:= FND_API.G_FALSE,
4147         p_certifications_rec    IN      CERTIFICATIONS_REC_TYPE,
4148         x_return_status         OUT     NOCOPY VARCHAR2,
4149         x_msg_count             OUT     NOCOPY NUMBER,
4150         x_msg_data              OUT     NOCOPY VARCHAR2,
4151         x_certification_id      OUT     NOCOPY NUMBER,
4152         p_validation_level      IN      NUMBER :=FND_API.G_VALID_LEVEL_FULL
4153 ) IS
4154         l_api_name              CONSTANT VARCHAR2(30)   := 'create certifications';
4155         l_api_version           CONSTANT  NUMBER        := 1.0;
4156         l_certifications_rec    CERTIFICATIONS_REC_TYPE := p_certifications_rec;
4157 
4158 BEGIN
4159 --Standard start of API savepoint
4160         SAVEPOINT create_certifications_pub;
4161 --Standard call to check for call compatibility.
4162         IF NOT FND_API.Compatible_API_Call(
4163                                         l_api_version,
4164                                         p_api_version,
4165                                         l_api_name,
4166                                         G_PKG_NAME)
4167         THEN
4168                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4169         END IF;
4170 
4171 --Initialize message list if p_init_msg_list is set to TRUE.
4172         IF FND_API.to_Boolean(p_init_msg_list) THEN
4173                 FND_MSG_PUB.initialize;
4174         END IF;
4175 
4176 --Initialize API return status to success.
4177         x_return_status := FND_API.G_RET_STS_SUCCESS;
4178 
4179 /*
4180 --Call to User-Hook pre Processing Procedure
4181       IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' THEN
4182         hz_org_info_crmhk.create_certifications_pre(
4183                         l_certifications_rec,
4184                         x_return_status,
4185                         x_msg_count,
4186                         x_msg_data);
4187 
4188         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
4189                 RAISE FND_API.G_EXC_ERROR;
4190         ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4191                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
4192                 FND_MESSAGE.SET_TOKEN('PROCEDURE',
4193                                 'HZ_ORG_INFO_CRMHK.CREATE_CERTIFICATIONS_PRE');
4194                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4195                 FND_MSG_PUB.ADD;
4196                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4197         END IF;
4198 
4199        END IF;
4200 */
4201 
4202 -- Call to business logic.
4203 -- Call PL/SQL wrapper over table handler
4204         do_create_certifications( l_certifications_rec,
4205                                   x_certification_id,
4206                                   x_return_status);
4207 
4208 /*
4209 --Call to User-Hook post Processing Procedure
4210       IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' THEN
4211         hz_org_info_crmhk.create_certifications_post(
4212                         l_certifications_rec,
4213                         x_return_status,
4214                         x_msg_count,
4215                         x_msg_data);
4216 
4217         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
4218                 RAISE FND_API.G_EXC_ERROR;
4219         ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4220                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
4221                 FND_MESSAGE.SET_TOKEN('PROCEDURE',
4222                                 'HZ_ORG_INFO_CRMHK.CREATE_CERTIFICATIONS_POST');
4223                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4224                 FND_MSG_PUB.ADD;
4225                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4226         END IF;
4227 
4228        END IF;
4229 */
4230 
4231    IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
4232      IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('Y', 'EVENTS_ENABLED')) THEN
4233        hz_business_event_v2pvt.create_certifications_event(l_certifications_rec);
4234      END IF;
4235 
4236      IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('EVENTS_ENABLED', 'BO_EVENTS_ENABLED')) THEN
4237        -- populate function for integration service
4238        HZ_POPULATE_BOT_PKG.pop_hz_certifications(
4239          p_operation        => 'I',
4240          p_certification_id => x_certification_id);
4241      END IF;
4242    END IF;
4243 
4244 --Standard check of p_commit.
4245         IF FND_API.to_Boolean(p_commit) THEN
4246                 Commit;
4247         END IF;
4248 
4249 --Standard call to get message count and if count is 1, get message info.
4250         FND_MSG_PUB.Count_And_Get(
4251                 p_encoded => FND_API.G_FALSE,
4252                 p_count => x_msg_count,
4253                 p_data  => x_msg_data);
4254 EXCEPTION
4255         WHEN FND_API.G_EXC_ERROR THEN
4256                 ROLLBACK TO create_certifications_pub;
4257                 x_return_status := FND_API.G_RET_STS_ERROR;
4258                 FND_MSG_PUB.Count_And_Get(
4259                                 p_encoded => FND_API.G_FALSE,
4260                                 p_count => x_msg_count,
4261                                 p_data  => x_msg_data);
4262 
4263         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4264                 ROLLBACK TO create_certifications_pub;
4265                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4266                 FND_MSG_PUB.Count_And_Get(
4267                                 p_encoded => FND_API.G_FALSE,
4268                                 p_count => x_msg_count,
4269                                 p_data  => x_msg_data);
4270         WHEN OTHERS THEN
4271                 ROLLBACK TO create_certifications_pub;
4272                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4273 
4274                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
4275                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4276                 FND_MSG_PUB.ADD;
4277 
4278                 FND_MSG_PUB.Count_And_Get(
4279                                 p_encoded => FND_API.G_FALSE,
4280                                 p_count => x_msg_count,
4281                                 p_data  => x_msg_data);
4282 END create_certifications;
4283 
4284 /*===========================================================================+
4285  | PROCEDURE
4286  |              update_certifications
4287  |
4288  | DESCRIPTION
4289  |              Updates certifications.
4290  |
4291  | SCOPE - PUBLIC
4292  |
4293  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
4294  |
4295  | ARGUMENTS  : IN:
4296  |                    p_api_version
4297  |                    p_init_msg_list
4298  |                    p_commit
4299  |                    p_certifications_rec
4300  |                    p_validation_level
4301  |              OUT:
4302  |                    x_return_status
4303  |                    x_msg_count
4304  |                    x_msg_data
4305  |          IN/ OUT:
4306  |                    p_last_update_date
4307  |
4308  | RETURNS    : NONE
4309  |
4310  | NOTES
4311  |
4312  | MODIFICATION HISTORY
4313  |
4314  +===========================================================================*/
4315 
4316 procedure update_certifications(
4317         p_api_version           IN      NUMBER,
4318         p_init_msg_list         IN      VARCHAR2:= FND_API.G_FALSE,
4319         p_commit                IN      VARCHAR2:= FND_API.G_FALSE,
4320         p_certifications_rec    IN      CERTIFICATIONS_REC_TYPE,
4321         p_last_update_date      IN OUT  NOCOPY DATE,
4322         x_return_status         OUT     NOCOPY VARCHAR2,
4323         x_msg_count             OUT     NOCOPY NUMBER,
4324         x_msg_data              OUT     NOCOPY VARCHAR2,
4325         p_validation_level      IN      NUMBER :=FND_API.G_VALID_LEVEL_FULL
4326 ) IS
4327         l_api_name              CONSTANT VARCHAR2(30) := 'update certifications';
4328         l_api_version           CONSTANT  NUMBER       := 1.0;
4329         l_certifications_rec    CERTIFICATIONS_REC_TYPE := p_certifications_rec;
4330         l_old_certifications_rec    CERTIFICATIONS_REC_TYPE ;
4331 
4332 BEGIN
4333 --Standard start of API savepoint
4334         SAVEPOINT update_certifications_pub;
4335 --Standard call to check for call compatibility.
4336         IF NOT FND_API.Compatible_API_Call(
4337                                         l_api_version,
4338                                         p_api_version,
4339                                         l_api_name,
4340                                         G_PKG_NAME)
4341         THEN
4342                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4343         END IF;
4344 
4345 --Initialize message list if p_init_msg_list is set to TRUE.
4346         IF FND_API.to_Boolean(p_init_msg_list) THEN
4347                 FND_MSG_PUB.initialize;
4348         END IF;
4349 
4350 --Initialize API return status to success.
4351         x_return_status := FND_API.G_RET_STS_SUCCESS;
4352 
4353 /*
4354     get_current_certifications(1,
4355                                FND_API.G_FALSE,
4356                                l_certifications_rec.certification_id,
4357                                l_old_certifications_rec,
4358                                x_return_status,
4359                                x_msg_count,
4360                                x_msg_data);
4361 
4362     IF x_return_status = FND_API.G_RET_STS_ERROR THEN
4363         RAISE FND_API.G_EXC_ERROR;
4364     ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4365         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4366     END IF;
4367 */
4368 
4369 /*
4370 --Call to User-Hook pre Processing Procedure
4371       IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y'  THEN
4372         hz_org_info_crmhk.update_certifications_pre(
4373                         l_certifications_rec,
4374                         x_return_status,
4375                         x_msg_count,
4376                         x_msg_data);
4377 
4378         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
4379                 RAISE FND_API.G_EXC_ERROR;
4380         ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4381                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
4382                 FND_MESSAGE.SET_TOKEN('PROCEDURE',
4383                                 'HZ_ORG_INFO_CRMHK.UPDATE_CERTIFICATIONS_PRE');
4384                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4385                 FND_MSG_PUB.ADD;
4386                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4387         END IF;
4388 
4389        END IF;
4390 */
4391 
4392 -- Call to business logic.
4393 -- Call PL/SQL wrapper over table handler
4394         do_update_certifications( l_certifications_rec,
4395                                   p_last_update_date,
4396                                   x_return_status);
4397 
4398 /*
4399 --Call to User-Hook post Processing Procedure
4400       IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' THEN
4401         hz_org_info_crmhk.update_certifications_post(
4402                         l_certifications_rec,
4403                         x_return_status,
4404                         x_msg_count,
4405                         x_msg_data);
4406 
4407         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
4408                 RAISE FND_API.G_EXC_ERROR;
4409         ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4410                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
4411                 FND_MESSAGE.SET_TOKEN('PROCEDURE',
4412                                 'HZ_ORG_INFO_CRMHK.UPDATE_CERTIFICATIONS_POST');
4413                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4414                 FND_MSG_PUB.ADD;
4415                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4416         END IF;
4417 
4418        END IF;
4419 */
4420 
4421    IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
4422      IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('Y', 'EVENTS_ENABLED')) THEN
4423        hz_business_event_v2pvt.update_certifications_event(l_certifications_rec);
4424      END IF;
4425 
4426      IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('EVENTS_ENABLED', 'BO_EVENTS_ENABLED')) THEN
4427        -- populate function for integration service
4428        HZ_POPULATE_BOT_PKG.pop_hz_certifications(
4429          p_operation        => 'U',
4430          p_certification_id => l_certifications_rec.certification_id);
4431      END IF;
4432    END IF;
4433 
4434 --Standard check of p_commit.
4435         IF FND_API.to_Boolean(p_commit) THEN
4436                 Commit;
4437         END IF;
4438 
4439 --Standard call to get message count and if count is 1, get message info.
4440         FND_MSG_PUB.Count_And_Get(
4441                 p_encoded => FND_API.G_FALSE,
4442                 p_count => x_msg_count,
4443                 p_data  => x_msg_data);
4444 EXCEPTION
4445         WHEN FND_API.G_EXC_ERROR THEN
4446                 ROLLBACK TO update_certifications_pub;
4447                 x_return_status := FND_API.G_RET_STS_ERROR;
4448                 FND_MSG_PUB.Count_And_Get(
4449                                 p_encoded => FND_API.G_FALSE,
4450                                 p_count => x_msg_count,
4451                                 p_data  => x_msg_data);
4452 
4453         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4454                 ROLLBACK TO update_certifications_pub;
4455                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4456                 FND_MSG_PUB.Count_And_Get(
4457                                 p_encoded => FND_API.G_FALSE,
4458                                 p_count => x_msg_count,
4459                                 p_data  => x_msg_data);
4460 
4461         WHEN OTHERS THEN
4462                 ROLLBACK TO update_certifications_pub;
4463                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4464 
4465                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
4466                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4467                 FND_MSG_PUB.ADD;
4468 
4469                 FND_MSG_PUB.Count_And_Get(
4470                                 p_encoded => FND_API.G_FALSE,
4471                                 p_count => x_msg_count,
4472                                 p_data  => x_msg_data);
4473 
4474 END update_certifications;
4475 
4476 /*===========================================================================+
4477  | PROCEDURE
4478  |              create_industrial_reference
4479  |
4480  | DESCRIPTION
4481  |              Creates industrial reference.
4482  |
4483  | SCOPE - PUBLIC
4484  |
4485  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
4486  |
4487  | ARGUMENTS  : IN:
4488  |                    p_api_version
4489  |                    p_init_msg_list
4490  |                    p_commit
4491  |                    p_industrial_reference_rec
4492  |                    p_validation_level
4493  |              OUT:
4494  |                    x_return_status
4495  |                    x_msg_count
4496  |                    x_msg_data
4497  |                    x_industrial_reference_id
4498  |          IN/ OUT:
4499  |
4500  | RETURNS    : NONE
4501  |
4502  | NOTES
4503  |
4504  | MODIFICATION HISTORY
4505  |
4506  +===========================================================================*/
4507 
4508 procedure create_industrial_reference(
4509         p_api_version               IN      NUMBER,
4510         p_init_msg_list             IN      VARCHAR2:= FND_API.G_FALSE,
4511         p_commit                    IN      VARCHAR2:= FND_API.G_FALSE,
4512         p_industrial_reference_rec  IN      INDUSTRIAL_REFERENCE_REC_TYPE,
4513         x_return_status             OUT     NOCOPY VARCHAR2,
4514         x_msg_count                 OUT     NOCOPY NUMBER,
4515         x_msg_data                  OUT     NOCOPY VARCHAR2,
4516         x_industry_reference_id     OUT     NOCOPY NUMBER,
4517         p_validation_level          IN      NUMBER :=FND_API.G_VALID_LEVEL_FULL
4518 ) IS
4519         l_api_name                  CONSTANT VARCHAR2(30) := 'create industrial reference';
4520         l_api_version               CONSTANT  NUMBER       := 1.0;
4521         l_industrial_reference_rec  INDUSTRIAL_REFERENCE_REC_TYPE := p_industrial_reference_rec;
4522 
4523 BEGIN
4524 --Standard start of API savepoint
4525         SAVEPOINT create_industrial_ref_pub;
4526 --Standard call to check for call compatibility.
4527         IF NOT FND_API.Compatible_API_Call(
4528                                         l_api_version,
4529                                         p_api_version,
4530                                         l_api_name,
4531                                         G_PKG_NAME)
4532         THEN
4533                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4534         END IF;
4535 
4536 --Initialize message list if p_init_msg_list is set to TRUE.
4537         IF FND_API.to_Boolean(p_init_msg_list) THEN
4538                 FND_MSG_PUB.initialize;
4539         END IF;
4540 
4541 --Initialize API return status to success.
4542         x_return_status := FND_API.G_RET_STS_SUCCESS;
4543 
4544 /*
4545 --Call to User-Hook pre Processing Procedure
4546       IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' THEN
4547         hz_org_info_crmhk.create_industrial_ref_pre(
4548                         l_industrial_reference_rec,
4549                         x_return_status,
4550                         x_msg_count,
4551                         x_msg_data);
4552 
4553         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
4554                 RAISE FND_API.G_EXC_ERROR;
4555         ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4556                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
4557                 FND_MESSAGE.SET_TOKEN('PROCEDURE',
4558                                 'HZ_ORG_INFO_CRMHK.CREATE_INDUSTRIAL_REF_PRE');
4559                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4560                 FND_MSG_PUB.ADD;
4561                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4562         END IF;
4563 
4564        END IF;
4565 */
4566 
4567 -- Call to business logic.
4568 -- Call PL/SQL wrapper over table handler
4569         do_create_industrial_reference( l_industrial_reference_rec,
4570                                         x_industry_reference_id,
4571                                         x_return_status);
4572 
4573 /*
4574 --Call to User-Hook post Processing Procedure
4575       IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' THEN
4576         hz_org_info_crmhk.create_industrial_ref_post(
4577                         l_industrial_reference_rec,
4578                         x_return_status,
4579                         x_msg_count,
4580                         x_msg_data);
4581 
4582         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
4583                 RAISE FND_API.G_EXC_ERROR;
4584         ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4585                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
4586                 FND_MESSAGE.SET_TOKEN('PROCEDURE',
4587                                 'HZ_ORG_INFO_CRMHK.CREATE_INDUSTRIAL_REF_POST');
4588                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4589                 FND_MSG_PUB.ADD;
4590                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4591         END IF;
4592 
4593        END IF;
4594 */
4595 
4596 
4597 --Standard check of p_commit.
4598         IF FND_API.to_Boolean(p_commit) THEN
4599                 Commit;
4600         END IF;
4601 
4602 --Standard call to get message count and if count is 1, get message info.
4603         FND_MSG_PUB.Count_And_Get(
4604                 p_encoded => FND_API.G_FALSE,
4605                 p_count => x_msg_count,
4606                 p_data  => x_msg_data);
4607 EXCEPTION
4608         WHEN FND_API.G_EXC_ERROR THEN
4609                 ROLLBACK TO create_industrial_ref_pub;
4610                 x_return_status := FND_API.G_RET_STS_ERROR;
4611                 FND_MSG_PUB.Count_And_Get(
4612                                 p_encoded => FND_API.G_FALSE,
4613                                 p_count => x_msg_count,
4614                                 p_data  => x_msg_data);
4615 
4616         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4617                 ROLLBACK TO create_industrial_ref_pub;
4618                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4619                 FND_MSG_PUB.Count_And_Get(
4620                                 p_encoded => FND_API.G_FALSE,
4621                                 p_count => x_msg_count,
4622                                 p_data  => x_msg_data);
4623 
4624         WHEN OTHERS THEN
4625                 ROLLBACK TO create_industrial_ref_pub;
4626                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4627 
4628                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
4629                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4630                 FND_MSG_PUB.ADD;
4631 
4632                 FND_MSG_PUB.Count_And_Get(
4633                                 p_encoded => FND_API.G_FALSE,
4634                                 p_count => x_msg_count,
4635                                 p_data  => x_msg_data);
4636 
4637 end create_industrial_reference;
4638 
4639 /*===========================================================================+
4640  | PROCEDURE
4641  |              update_industrial_reference
4642  |
4643  | DESCRIPTION
4644  |              Updates industrial_reference.
4645  |
4646  | SCOPE - PUBLIC
4647  |
4648  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
4649  |
4650  | ARGUMENTS  : IN:
4651  |                    p_api_version
4652  |                    p_init_msg_list
4653  |                    p_commit
4654  |                    p_industrial_reference_rec
4655  |                    p_validation_level
4656  |              OUT:
4657  |                    x_return_status
4658  |                    x_msg_count
4659  |                    x_msg_data
4660  |          IN/ OUT:
4661  |                    p_last_update_date
4662  |
4663  | RETURNS    : NONE
4664  |
4665  | NOTES
4666  |
4667  | MODIFICATION HISTORY
4668  |
4669  +===========================================================================*/
4670 
4671 procedure update_industrial_reference(
4672         p_api_version               IN      NUMBER,
4673         p_init_msg_list             IN      VARCHAR2:= FND_API.G_FALSE,
4674         p_commit                    IN      VARCHAR2:= FND_API.G_FALSE,
4675         p_industrial_reference_rec  IN      INDUSTRIAL_REFERENCE_REC_TYPE,
4676         p_last_update_date          IN OUT  NOCOPY DATE,
4677         x_return_status             OUT     NOCOPY VARCHAR2,
4678         x_msg_count                 OUT     NOCOPY NUMBER,
4679         x_msg_data                  OUT     NOCOPY VARCHAR2,
4680         p_validation_level          IN      NUMBER :=FND_API.G_VALID_LEVEL_FULL
4681 ) IS
4682         l_api_name                  CONSTANT VARCHAR2(30) := 'update industrial reference';
4683         l_api_version               CONSTANT  NUMBER       := 1.0;
4684         l_industrial_reference_rec  INDUSTRIAL_REFERENCE_REC_TYPE := p_industrial_reference_rec;
4685 BEGIN
4686 --Standard start of API savepoint
4687         SAVEPOINT update_industrial_ref_pub;
4688 --Standard call to check for call compatibility.
4689         IF NOT FND_API.Compatible_API_Call(
4690                                         l_api_version,
4691                                         p_api_version,
4692                                         l_api_name,
4693                                         G_PKG_NAME)
4694         THEN
4695                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4696         END IF;
4697 
4698 --Initialize message list if p_init_msg_list is set to TRUE.
4699         IF FND_API.to_Boolean(p_init_msg_list) THEN
4700                 FND_MSG_PUB.initialize;
4701         END IF;
4702 
4703 --Initialize API return status to success.
4704         x_return_status := FND_API.G_RET_STS_SUCCESS;
4705 
4706 /*
4707 --Call to User-Hook pre Processing Procedure
4708       IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' THEN
4709         hz_org_info_crmhk.update_industrial_ref_pre(
4710                         l_industrial_reference_rec,
4711                         x_return_status,
4712                         x_msg_count,
4713                         x_msg_data);
4714 
4715         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
4716                 RAISE FND_API.G_EXC_ERROR;
4717         ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4718                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
4719                 FND_MESSAGE.SET_TOKEN('PROCEDURE',
4720                                 'HZ_ORG_INFO_CRMHK.UPDATE_INDUSTRIAL_REF_PRE');
4721                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4722                 FND_MSG_PUB.ADD;
4723                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4724         END IF;
4725 
4726        END IF;
4727 */
4728 -- Call to business logic.
4729 -- Call PL/SQL wrapper over table handler
4730         do_update_industrial_reference( l_industrial_reference_rec,
4731                                         p_last_update_date,
4732                                         x_return_status);
4733 
4734 /*
4735 --Call to User-Hook post Processing Procedure
4736       IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' THEN
4737         hz_org_info_crmhk.update_industrial_ref_post(
4738                         l_industrial_reference_rec,
4739                         x_return_status,
4740                         x_msg_count,
4741                         x_msg_data);
4742 
4743         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
4744                 RAISE FND_API.G_EXC_ERROR;
4745         ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4746                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
4747                 FND_MESSAGE.SET_TOKEN('PROCEDURE',
4748                                 'HZ_ORG_INFO_CRMHK.UPDATE_INDUSTRIAL_REF_POST');
4749                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4750                 FND_MSG_PUB.ADD;
4751                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4752         END IF;
4753 
4754        END IF;
4755 */
4756 
4757 --Standard check of p_commit.
4758         IF FND_API.to_Boolean(p_commit) THEN
4759                 Commit;
4760         END IF;
4761 
4762 --Standard call to get message count and if count is 1, get message info.
4763         FND_MSG_PUB.Count_And_Get(
4764                 p_encoded => FND_API.G_FALSE,
4765                 p_count => x_msg_count,
4766                 p_data  => x_msg_data);
4767 EXCEPTION
4768         WHEN FND_API.G_EXC_ERROR THEN
4769                 ROLLBACK TO update_industrial_ref_pub;
4770                 x_return_status := FND_API.G_RET_STS_ERROR;
4771                 FND_MSG_PUB.Count_And_Get(
4772                                 p_encoded => FND_API.G_FALSE,
4773                                 p_count => x_msg_count,
4774                                 p_data  => x_msg_data);
4775 
4776         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4777                 ROLLBACK TO update_industrial_ref_pub;
4778                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4779                 FND_MSG_PUB.Count_And_Get(
4780                                 p_encoded => FND_API.G_FALSE,
4781                                 p_count => x_msg_count,
4782                                 p_data  => x_msg_data);
4783 
4784         WHEN OTHERS THEN
4785                 ROLLBACK TO update_industrial_ref_pub;
4786                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4787 
4788                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
4789                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4790                 FND_MSG_PUB.ADD;
4791 
4792                 FND_MSG_PUB.Count_And_Get(
4793                                 p_encoded => FND_API.G_FALSE,
4794                                 p_count => x_msg_count,
4795                                 p_data  => x_msg_data);
4796 
4797 END update_industrial_reference;
4798 
4799 /*===========================================================================+
4800  | PROCEDURE
4801  |              create_industrial_classes
4802  |
4803  | DESCRIPTION
4804  |              Creates industrial classes.
4805  |
4806  | SCOPE - PUBLIC
4807  |
4808  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
4809  |
4810  | ARGUMENTS  : IN:
4811  |                    p_api_version
4812  |                    p_init_msg_list
4813  |                    p_commit
4814  |                    p_industrial_classes_rec
4815  |                    p_validation_level
4816  |              OUT:
4817  |                    x_return_status
4818  |                    x_msg_count
4819  |                    x_msg_data
4820  |                    x_industrial_class_id
4821  |          IN/ OUT:
4822  |
4823  | RETURNS    : NONE
4824  |
4825  | NOTES
4826  |
4827  | MODIFICATION HISTORY
4828  |
4829  +===========================================================================*/
4830 
4831 procedure create_industrial_classes(
4832         p_api_version             IN      NUMBER,
4833         p_init_msg_list           IN      VARCHAR2:= FND_API.G_FALSE,
4834         p_commit                  IN      VARCHAR2:= FND_API.G_FALSE,
4835         p_industrial_classes_rec  IN      INDUSTRIAL_CLASSES_REC_TYPE,
4836         x_return_status           OUT     NOCOPY VARCHAR2,
4837         x_msg_count               OUT     NOCOPY NUMBER,
4838         x_msg_data                OUT     NOCOPY VARCHAR2,
4839         x_industrial_class_id     OUT     NOCOPY NUMBER,
4840         p_validation_level        IN      NUMBER :=FND_API.G_VALID_LEVEL_FULL
4841 ) IS
4842         l_api_name                CONSTANT VARCHAR2(30) := 'create industrial classes';
4843         l_api_version             CONSTANT  NUMBER       := 1.0;
4844         l_industrial_classes_rec  INDUSTRIAL_CLASSES_REC_TYPE := p_industrial_classes_rec;
4845 BEGIN
4846 --Standard start of API savepoint
4847         SAVEPOINT create_industrial_classes_pub;
4848 --Standard call to check for call compatibility.
4849         IF NOT FND_API.Compatible_API_Call(
4850                                         l_api_version,
4851                                         p_api_version,
4852                                         l_api_name,
4853                                         G_PKG_NAME)
4854         THEN
4855                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4856         END IF;
4857 
4858 --Initialize message list if p_init_msg_list is set to TRUE.
4859         IF FND_API.to_Boolean(p_init_msg_list) THEN
4860                 FND_MSG_PUB.initialize;
4861         END IF;
4862 
4863 --Initialize API return status to success.
4864         x_return_status := FND_API.G_RET_STS_SUCCESS;
4865 
4866 /*
4867 --Call to User-Hook pre Processing Procedure
4868       IF  fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' THEN
4869         hz_org_info_crmhk.create_industrial_classes_pre(
4870                         l_industrial_classes_rec,
4871                         x_return_status,
4872                         x_msg_count,
4873                         x_msg_data);
4874 
4875         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
4876                 RAISE FND_API.G_EXC_ERROR;
4877         ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4878                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
4879                 FND_MESSAGE.SET_TOKEN('PROCEDURE',
4880                                 'HZ_ORG_INFO_CRMHK.CREATE_INDUSTRIAL_CLASSES_PRE');
4881                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4882                 FND_MSG_PUB.ADD;
4883                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4884         END IF;
4885 
4886        END IF;
4887 */
4888 -- Call to business logic.
4889 -- Call PL/SQL wrapper over table handler
4890         do_create_industrial_classes( l_industrial_classes_rec,
4891                                       x_industrial_class_id,
4892                                       x_return_status);
4893 
4894 /*
4895 --Call to User-Hook post Processing Procedure
4896       IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' THEN
4897         hz_org_info_crmhk.create_industrial_classes_post(
4898                         l_industrial_classes_rec,
4899                         x_return_status,
4900                         x_msg_count,
4901                         x_msg_data);
4902 
4903         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
4904                 RAISE FND_API.G_EXC_ERROR;
4905         ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4906                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
4907                 FND_MESSAGE.SET_TOKEN('PROCEDURE',
4908                                 'HZ_ORG_INFO_CRMHK.CREATE_INDUSTRIAL_CLASSES_POST');
4909                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4910                 FND_MSG_PUB.ADD;
4911                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4912         END IF;
4913 
4914        END IF;
4915 */
4916 
4917 --Standard check of p_commit.
4918         IF FND_API.to_Boolean(p_commit) THEN
4919                 Commit;
4920         END IF;
4921 
4922 --Standard call to get message count and if count is 1, get message info.
4923         FND_MSG_PUB.Count_And_Get(
4924                 p_encoded => FND_API.G_FALSE,
4925                 p_count => x_msg_count,
4926                 p_data  => x_msg_data);
4927 EXCEPTION
4928         WHEN FND_API.G_EXC_ERROR THEN
4929                 ROLLBACK TO create_industrial_classes_pub;
4930                 x_return_status := FND_API.G_RET_STS_ERROR;
4931                 FND_MSG_PUB.Count_And_Get(
4932                                 p_encoded => FND_API.G_FALSE,
4933                                 p_count => x_msg_count,
4934                                 p_data  => x_msg_data);
4935 
4936         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4937                 ROLLBACK TO create_industrial_classes_pub;
4938                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4939                 FND_MSG_PUB.Count_And_Get(
4940                                 p_encoded => FND_API.G_FALSE,
4941                                 p_count => x_msg_count,
4942                                 p_data  => x_msg_data);
4943 
4944         WHEN OTHERS THEN
4945                 ROLLBACK TO create_industrial_classes_pub;
4946                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4947 
4948                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
4949                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4950                 FND_MSG_PUB.ADD;
4951 
4952                 FND_MSG_PUB.Count_And_Get(
4953                                 p_encoded => FND_API.G_FALSE,
4954                                 p_count => x_msg_count,
4955                                 p_data  => x_msg_data);
4956 
4957 END create_industrial_classes;
4958 
4959 /*===========================================================================+
4960  | PROCEDURE
4961  |              update_industrial_classes
4962  |
4963  | DESCRIPTION
4964  |              Updates industrial classes.
4965  |
4966  | SCOPE - PUBLIC
4967  |
4968  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
4969  |
4970  | ARGUMENTS  : IN:
4971  |                    p_api_version
4972  |                    p_init_msg_list
4973  |                    p_commit
4974  |                    p_industrial_classes_rec
4975  |                    p_validation_level
4976  |              OUT:
4977  |                    x_return_status
4978  |                    x_msg_count
4979  |                    x_msg_data
4980  |          IN/ OUT:
4981  |                    p_last_update_date
4982  |
4983  | RETURNS    : NONE
4984  |
4985  | NOTES
4986  |
4987  | MODIFICATION HISTORY
4988  |
4989  +===========================================================================*/
4990 
4991 procedure update_industrial_classes(
4992         p_api_version                IN      NUMBER,
4993         p_init_msg_list              IN      VARCHAR2:= FND_API.G_FALSE,
4994         p_commit                     IN      VARCHAR2:= FND_API.G_FALSE,
4995         p_industrial_classes_rec     IN      INDUSTRIAL_CLASSES_REC_TYPE,
4996         p_last_update_date           IN OUT  NOCOPY DATE,
4997         x_return_status              OUT     NOCOPY VARCHAR2,
4998         x_msg_count                  OUT     NOCOPY NUMBER,
4999         x_msg_data                   OUT     NOCOPY VARCHAR2,
5000         p_validation_level           IN      NUMBER :=FND_API.G_VALID_LEVEL_FULL
5001 ) IS
5002 
5003         l_api_name                   CONSTANT VARCHAR2(30) := 'update industrial classes';
5004         l_api_version                CONSTANT  NUMBER       := 1.0;
5005         l_industrial_classes_rec     INDUSTRIAL_CLASSES_REC_TYPE := p_industrial_classes_rec;
5006         l_old_industrial_classes_rec INDUSTRIAL_CLASSES_REC_TYPE;
5007 BEGIN
5008 --Standard start of API savepoint
5009         SAVEPOINT update_industrial_classes_pub;
5010 --Standard call to check for call compatibility.
5011         IF NOT FND_API.Compatible_API_Call(
5012                                         l_api_version,
5013                                         p_api_version,
5014                                         l_api_name,
5015                                         G_PKG_NAME)
5016         THEN
5017                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5018         END IF;
5019 
5020 --Initialize message list if p_init_msg_list is set to TRUE.
5021         IF FND_API.to_Boolean(p_init_msg_list) THEN
5022                 FND_MSG_PUB.initialize;
5023         END IF;
5024 
5025 --Initialize API return status to success.
5026         x_return_status := FND_API.G_RET_STS_SUCCESS;
5027 
5028 --Get the old record.
5029         get_current_industrial_classes(
5030                 1,
5031                 FND_API.G_FALSE,
5032                 l_industrial_classes_rec.industrial_class_id,
5033                 l_old_industrial_classes_rec,
5034                 x_return_status,
5035                 x_msg_count,
5036                 x_msg_data);
5037 
5038 /*
5039 --Call to User-Hook pre Processing Procedure
5040       IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' THEN
5041         hz_org_info_crmhk.update_industrial_classes_pre(
5042                         l_industrial_classes_rec,
5043                         l_old_industrial_classes_rec,
5044                         x_return_status,
5045                         x_msg_count,
5046                         x_msg_data);
5047 
5048         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5049                 RAISE FND_API.G_EXC_ERROR;
5050         ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5051                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
5052                 FND_MESSAGE.SET_TOKEN('PROCEDURE',
5053                                 'HZ_ORG_INFO_CRMHK.UPDATE_INDUSTRIAL_CLASSES_PRE');
5054                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
5055                 FND_MSG_PUB.ADD;
5056                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5057         END IF;
5058 
5059        END IF;
5060 */
5061 
5062 -- Call to business logic.
5063 -- Call PL/SQL wrapper over table handler
5064         do_update_industrial_classes( l_industrial_classes_rec,
5065                                       p_last_update_date,
5066                                       x_return_status);
5067 
5068 /*
5069 --Call to User-Hook post Processing Procedure
5070       IF  fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' THEN
5071         hz_org_info_crmhk.update_industrial_classes_post(
5072                         l_industrial_classes_rec,
5073                         x_return_status,
5074                         x_msg_count,
5075                         x_msg_data);
5076 
5077         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5078                 RAISE FND_API.G_EXC_ERROR;
5079         ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5080                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
5081                 FND_MESSAGE.SET_TOKEN('PROCEDURE',
5082                                 'HZ_ORG_INFO_CRMHK.UPDATE_INDUSTRIAL_CLASSES_POST');
5083                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
5084                 FND_MSG_PUB.ADD;
5085                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5086         END IF;
5087 
5088        END IF;
5089 */
5090 
5091 --Standard check of p_commit.
5092         IF FND_API.to_Boolean(p_commit) THEN
5093                 Commit;
5094         END IF;
5095 
5096 --Standard call to get message count and if count is 1, get message info.
5097         FND_MSG_PUB.Count_And_Get(
5098                 p_encoded => FND_API.G_FALSE,
5099                 p_count => x_msg_count,
5100                 p_data  => x_msg_data);
5101 EXCEPTION
5102         WHEN FND_API.G_EXC_ERROR THEN
5103                 ROLLBACK TO update_industrial_classes_pub;
5104                 x_return_status := FND_API.G_RET_STS_ERROR;
5105                 FND_MSG_PUB.Count_And_Get(
5106                                 p_encoded => FND_API.G_FALSE,
5107                                 p_count => x_msg_count,
5108                                 p_data  => x_msg_data);
5109 
5110         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5111                 ROLLBACK TO update_industrial_classes_pub;
5112                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5113                 FND_MSG_PUB.Count_And_Get(
5114                                 p_encoded => FND_API.G_FALSE,
5115                                 p_count => x_msg_count,
5116                                 p_data  => x_msg_data);
5117 
5118         WHEN OTHERS THEN
5119                 ROLLBACK TO update_industrial_classes_pub;
5120                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5121 
5122                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
5123                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
5124                 FND_MSG_PUB.ADD;
5125 
5126                 FND_MSG_PUB.Count_And_Get(
5127                                 p_encoded => FND_API.G_FALSE,
5128                                 p_count => x_msg_count,
5129                                 p_data  => x_msg_data);
5130 
5131 END update_industrial_classes;
5132 
5133 /*===========================================================================+
5134  | PROCEDURE
5135  |              create_industrial_class_app
5136  |
5137  | DESCRIPTION
5138  |              Creates industrial class app.
5139  |
5140  | SCOPE - PUBLIC
5141  |
5142  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
5143  |
5144  | ARGUMENTS  : IN:
5145  |                    p_api_version
5146  |                    p_init_msg_list
5147  |                    p_commit
5148  |                    p_industrial_class_app_rec
5149  |                    p_validation_level
5150  |              OUT:
5151  |                    x_return_status
5152  |                    x_msg_count
5153  |                    x_msg_data
5154  |                    x_code_applied_id
5155  |          IN/ OUT:
5156  |
5157  | RETURNS    : NONE
5158  |
5159  | NOTES
5160  |
5161  | MODIFICATION HISTORY
5162  |
5163  +===========================================================================*/
5164 
5165 procedure create_industrial_class_app(
5166         p_api_version               IN      NUMBER,
5167         p_init_msg_list             IN      VARCHAR2:= FND_API.G_FALSE,
5168         p_commit                    IN      VARCHAR2:= FND_API.G_FALSE,
5169         p_industrial_class_app_rec  IN      INDUSTRIAL_CLASS_APP_REC_TYPE,
5170         x_return_status             OUT     NOCOPY VARCHAR2,
5171         x_msg_count                 OUT     NOCOPY NUMBER,
5172         x_msg_data                  OUT     NOCOPY VARCHAR2,
5173         x_code_applied_id           OUT     NOCOPY NUMBER,
5174         p_validation_level          IN      NUMBER :=FND_API.G_VALID_LEVEL_FULL
5175 ) IS
5176         l_api_name                  CONSTANT VARCHAR2(30)   := 'create industrial class app';
5177         l_api_version               CONSTANT  NUMBER        := 1.0;
5178         l_industrial_class_app_rec  INDUSTRIAL_CLASS_APP_REC_TYPE := p_industrial_class_app_rec;
5179 BEGIN
5180 --Standard start of API savepoint
5181         SAVEPOINT create_indus_class_app_pub;
5182 --Standard call to check for call compatibility.
5183         IF NOT FND_API.Compatible_API_Call(
5184                                         l_api_version,
5185                                         p_api_version,
5186                                         l_api_name,
5187                                         G_PKG_NAME)
5188         THEN
5189                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5190         END IF;
5191 
5192 --Initialize message list if p_init_msg_list is set to TRUE.
5193         IF FND_API.to_Boolean(p_init_msg_list) THEN
5194                 FND_MSG_PUB.initialize;
5195         END IF;
5196 
5197 --Initialize API return status to success.
5198         x_return_status := FND_API.G_RET_STS_SUCCESS;
5199 
5200 /*
5201 --Call to User-Hook pre Processing Procedure
5202       IF  fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' THEN
5203         hz_org_info_crmhk.create_indus_class_app_pre(
5204                         l_industrial_class_app_rec,
5205                         x_return_status,
5206                         x_msg_count,
5207                         x_msg_data);
5208 
5209         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5210                 RAISE FND_API.G_EXC_ERROR;
5211         ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5212                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
5213                 FND_MESSAGE.SET_TOKEN('PROCEDURE',
5214                                 'HZ_ORG_INFO_CRMHK.CREATE_INDUS_CLASS_APP_PRE');
5215                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
5216                 FND_MSG_PUB.ADD;
5217                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5218         END IF;
5219 
5220        END IF;
5221 */
5222 
5223 -- Call to business logic.
5224 -- Call PL/SQL wrapper over table handler
5225         do_create_industrial_class_app( l_industrial_class_app_rec,
5226                                         x_code_applied_id,
5227                                         x_return_status);
5228 
5229 /*
5230 --Call to User-Hook post Processing Procedure
5231       IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' THEN
5232         hz_org_info_crmhk.create_indus_class_app_post(
5233                         l_industrial_class_app_rec,
5234                         x_return_status,
5235                         x_msg_count,
5236                         x_msg_data);
5237 
5238         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5239                 RAISE FND_API.G_EXC_ERROR;
5240         ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5241                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
5242                 FND_MESSAGE.SET_TOKEN('PROCEDURE',
5243                                 'HZ_ORG_INFO_CRMHK.CREATE_INDUS_CLASS_APP_POST');
5244                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
5245                 FND_MSG_PUB.ADD;
5246                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5247         END IF;
5248 
5249        END IF;
5250 */
5251 
5252 --Standard check of p_commit.
5253         IF FND_API.to_Boolean(p_commit) THEN
5254                 Commit;
5255         END IF;
5256 
5257 --Standard call to get message count and if count is 1, get message info.
5258         FND_MSG_PUB.Count_And_Get(
5259                 p_encoded => FND_API.G_FALSE,
5260                 p_count => x_msg_count,
5261                 p_data  => x_msg_data);
5262 EXCEPTION
5263         WHEN FND_API.G_EXC_ERROR THEN
5264                 ROLLBACK TO create_indus_class_app_pub;
5265                 x_return_status := FND_API.G_RET_STS_ERROR;
5266                 FND_MSG_PUB.Count_And_Get(
5267                                 p_encoded => FND_API.G_FALSE,
5268                                 p_count => x_msg_count,
5269                                 p_data  => x_msg_data);
5270 
5271         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5272                 ROLLBACK TO create_indus_class_app_pub;
5273                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5274                 FND_MSG_PUB.Count_And_Get(
5275                                 p_encoded => FND_API.G_FALSE,
5276                                 p_count => x_msg_count,
5277                                 p_data  => x_msg_data);
5278 
5279         WHEN OTHERS THEN
5280                 ROLLBACK TO create_indus_class_app_pub;
5281                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5282 
5283                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
5284                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
5285                 FND_MSG_PUB.ADD;
5286 
5287                 FND_MSG_PUB.Count_And_Get(
5288                                 p_encoded => FND_API.G_FALSE,
5289                                 p_count => x_msg_count,
5290                                 p_data  => x_msg_data);
5291 
5292 END create_industrial_class_app;
5293 
5294 /*===========================================================================+
5295  | PROCEDURE
5296  |              update_industrial_class_app
5297  |
5298  | DESCRIPTION
5299  |              Updates industrial class app.
5300  |
5301  | SCOPE - PUBLIC
5302  |
5303  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
5304  |
5305  | ARGUMENTS  : IN:
5306  |                    p_api_version
5307  |                    p_init_msg_list
5308  |                    p_commit
5309  |                    p_industrial_class_app_rec
5310  |                    p_validation_level
5311  |              OUT:
5312  |                    x_return_status
5313  |                    x_msg_count
5314  |                    x_msg_data
5315  |          IN/ OUT:
5316  |                    p_last_update_date
5317  |
5318  | RETURNS    : NONE
5319  |
5320  | NOTES
5321  |
5322  | MODIFICATION HISTORY
5323  |
5324  +===========================================================================*/
5325 
5326 procedure update_industrial_class_app(
5327         p_api_version               IN      NUMBER,
5328         p_init_msg_list             IN      VARCHAR2:= FND_API.G_FALSE,
5329         p_commit                    IN      VARCHAR2:= FND_API.G_FALSE,
5330         p_industrial_class_app_rec  IN      INDUSTRIAL_CLASS_APP_REC_TYPE,
5331         p_last_update_date          IN OUT  NOCOPY DATE,
5332         x_return_status             OUT     NOCOPY VARCHAR2,
5333         x_msg_count                 OUT     NOCOPY NUMBER,
5334         x_msg_data                  OUT     NOCOPY VARCHAR2,
5335         p_validation_level          IN      NUMBER :=FND_API.G_VALID_LEVEL_FULL
5336 ) IS
5337         l_api_name                  CONSTANT VARCHAR2(30) := 'update industrial class app';
5338         l_api_version               CONSTANT  NUMBER       := 1.0;
5339         l_industrial_class_app_rec  INDUSTRIAL_CLASS_APP_REC_TYPE := p_industrial_class_app_rec;
5340 BEGIN
5341 --Standard start of API savepoint
5342         SAVEPOINT update_indus_class_app_pub;
5343 --Standard call to check for call compatibility.
5344         IF NOT FND_API.Compatible_API_Call(
5345                                         l_api_version,
5346                                         p_api_version,
5347                                         l_api_name,
5348                                         G_PKG_NAME)
5349         THEN
5350                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5351         END IF;
5352 
5353 --Initialize message list if p_init_msg_list is set to TRUE.
5354         IF FND_API.to_Boolean(p_init_msg_list) THEN
5355                 FND_MSG_PUB.initialize;
5356         END IF;
5357 
5358 --Initialize API return status to success.
5359         x_return_status := FND_API.G_RET_STS_SUCCESS;
5360 
5361 /*
5362 --Call to User-Hook pre Processing Procedure
5363       IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' THEN
5364         hz_org_info_crmhk.update_indus_class_app_pre(
5365                         l_industrial_class_app_rec,
5366                         x_return_status,
5367                         x_msg_count,
5368                         x_msg_data);
5369 
5370         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5371                 RAISE FND_API.G_EXC_ERROR;
5372         ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5373                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
5374                 FND_MESSAGE.SET_TOKEN('PROCEDURE',
5375                                 'HZ_ORG_INFO_CRMHK.CREATE_INDUS_CLASS_APP_PRE');
5376                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
5377                 FND_MSG_PUB.ADD;
5378                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5379         END IF;
5380 
5381        END IF;
5382 */
5383 
5384 -- Call to business logic.
5385 -- Call PL/SQL wrapper over table handler
5386         do_update_industrial_class_app( l_industrial_class_app_rec,
5387                                         p_last_update_date,
5388                                         x_return_status);
5389 
5390 /*
5391 --Call to User-Hook post Processing Procedure
5392       IF fnd_profile.value('HZ_EXECUTE_API_CALLOUTS') = 'Y' THEN
5393         hz_org_info_crmhk.update_indus_class_app_post(
5394                         l_industrial_class_app_rec,
5395                         x_return_status,
5396                         x_msg_count,
5397                         x_msg_data);
5398 
5399         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5400                 RAISE FND_API.G_EXC_ERROR;
5401         ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5402                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_HOOK_ERROR');
5403                 FND_MESSAGE.SET_TOKEN('PROCEDURE',
5404                                 'HZ_ORG_INFO_CRMHK.UPDATE_INDUS_CLASS_APP_POST');
5405                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
5406                 FND_MSG_PUB.ADD;
5407                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5408         END IF;
5409 
5410        END IF;
5411 */
5412 
5413 --Standard check of p_commit.
5414         IF FND_API.to_Boolean(p_commit) THEN
5415                 Commit;
5416         END IF;
5417 
5418 --Standard call to get message count and if count is 1, get message info.
5419         FND_MSG_PUB.Count_And_Get(
5420                 p_encoded => FND_API.G_FALSE,
5421                 p_count => x_msg_count,
5422                 p_data  => x_msg_data);
5423 EXCEPTION
5424         WHEN FND_API.G_EXC_ERROR THEN
5425                 ROLLBACK TO update_indus_class_app_pub;
5426                 x_return_status := FND_API.G_RET_STS_ERROR;
5427                 FND_MSG_PUB.Count_And_Get(
5428                                 p_encoded => FND_API.G_FALSE,
5429                                 p_count => x_msg_count,
5430                                 p_data  => x_msg_data);
5431 
5432         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5433                 ROLLBACK TO update_indus_class_app_pub;
5434                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5435                 FND_MSG_PUB.Count_And_Get(
5436                                 p_encoded => FND_API.G_FALSE,
5437                                 p_count => x_msg_count,
5438                                 p_data  => x_msg_data);
5439 
5440         WHEN OTHERS THEN
5441                 ROLLBACK TO update_indus_class_app_pub;
5442                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5443 
5444                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
5445                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
5446                 FND_MSG_PUB.ADD;
5447 
5448                 FND_MSG_PUB.Count_And_Get(
5449                                 p_encoded => FND_API.G_FALSE,
5450                                 p_count => x_msg_count,
5451                                 p_data  => x_msg_data);
5452 
5453 END update_industrial_class_app;
5454 
5455 
5456 procedure get_current_financial_report(
5457         p_api_version           IN      NUMBER,
5458         p_init_msg_list         IN      VARCHAR2:= FND_API.G_FALSE,
5459         p_financial_report_id   IN      NUMBER,
5460         x_financial_reports_rec OUT     NOCOPY FINANCIAL_REPORTS_REC_TYPE,
5461         x_return_status         IN OUT     NOCOPY VARCHAR2,
5462         x_msg_count             OUT     NOCOPY NUMBER,
5463         x_msg_data              OUT     NOCOPY VARCHAR2
5464 ) IS
5465         l_api_name              CONSTANT VARCHAR2(30) := 'get_current_financial_report';
5466         l_api_version           CONSTANT  NUMBER       := 1.0;
5467 
5468 BEGIN
5469 
5470 --Standard call to check for call compatibility.
5471         IF NOT FND_API.Compatible_API_Call(
5472                                         l_api_version,
5473                                         p_api_version,
5474                                         l_api_name,
5475                                         G_PKG_NAME)
5476         THEN
5477                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5478         END IF;
5479 
5480 --Initialize message list if p_init_msg_list is set to TRUE.
5481         IF FND_API.to_Boolean(p_init_msg_list) THEN
5482                 FND_MSG_PUB.initialize;
5483         END IF;
5484 
5485 --Initialize API return status to success.
5486         x_return_status := FND_API.G_RET_STS_SUCCESS;
5487 
5488 --Check whether primary key has been passed in.
5489         IF p_financial_report_id IS NULL OR
5490            p_financial_report_id = FND_API.G_MISS_NUM THEN
5491 
5492             FND_MESSAGE.SET_NAME('AR', 'HZ_API_MISSING_COLUMN');
5493             FND_MESSAGE.SET_TOKEN('COLUMN', 'financial_report_id');
5494             FND_MSG_PUB.ADD;
5495             RAISE FND_API.G_EXC_ERROR;
5496         END IF;
5497 
5498         BEGIN /* Just for select statement */
5499 
5500            SELECT
5501                 financial_report_id,
5502                 date_report_issued,
5503                 party_id,
5504                 document_reference,
5505                 issued_period,
5506                 requiring_authority,
5507                 type_of_financial_report,
5508                 wh_udpate_id,
5509                 report_start_date,
5510                 report_end_date,
5511                 audit_ind,
5512                 consolidated_ind,
5513                 estimated_ind,
5514                 fiscal_ind,
5515                 final_ind,
5516                 forecast_ind,
5517                 opening_ind,
5518                 proforma_ind,
5519                 qualified_ind,
5520                 restated_ind,
5521                 signed_by_principals_ind,
5522                 trial_balance_ind,
5523                 unbalanced_ind,
5524                 content_source_type,
5525                 status,
5526                 actual_content_source
5527            INTO
5528                 x_financial_reports_rec.financial_report_id,
5529                 x_financial_reports_rec.date_report_issued,
5530                 x_financial_reports_rec.party_id,
5531                 x_financial_reports_rec.document_reference,
5532                 x_financial_reports_rec.issued_period,
5533                 x_financial_reports_rec.requiring_authority,
5534                 x_financial_reports_rec.type_of_financial_report,
5535                 x_financial_reports_rec.wh_udpate_id,
5536                 x_financial_reports_rec.report_start_date,
5537                 x_financial_reports_rec.report_end_date,
5538                 x_financial_reports_rec.audit_ind,
5539                 x_financial_reports_rec.consolidated_ind,
5540                 x_financial_reports_rec.estimated_ind,
5541                 x_financial_reports_rec.fiscal_ind,
5542                 x_financial_reports_rec.final_ind,
5543                 x_financial_reports_rec.forecast_ind,
5544                 x_financial_reports_rec.opening_ind,
5545                 x_financial_reports_rec.proforma_ind,
5546                 x_financial_reports_rec.qualified_ind,
5547                 x_financial_reports_rec.restated_ind,
5548                 x_financial_reports_rec.signed_by_principals_ind,
5549                 x_financial_reports_rec.trial_balance_ind,
5550                 x_financial_reports_rec.unbalanced_ind,
5551                 x_financial_reports_rec.content_source_type,
5552                 x_financial_reports_rec.status,
5553                 x_financial_reports_rec.actual_content_source
5554 
5555            FROM hz_financial_reports
5556            WHERE financial_report_id = p_financial_report_id;
5557 
5558         EXCEPTION
5559            WHEN NO_DATA_FOUND THEN
5560               FND_MESSAGE.SET_NAME('AR', 'HZ_API_NO_RECORD');
5561               FND_MESSAGE.SET_TOKEN('RECORD', 'financial report');
5562               FND_MESSAGE.SET_TOKEN('VALUE', to_char(p_financial_report_id));
5563               FND_MSG_PUB.ADD;
5564               RAISE FND_API.G_EXC_ERROR;
5565         END;
5566 --Standard call to get message count and if count is 1, get message info.
5567         FND_MSG_PUB.Count_And_Get(
5568                 p_encoded => FND_API.G_FALSE,
5569                 p_count => x_msg_count,
5570                 p_data  => x_msg_data);
5571 
5572 EXCEPTION
5573         WHEN FND_API.G_EXC_ERROR THEN
5574                 x_return_status := FND_API.G_RET_STS_ERROR;
5575                 FND_MSG_PUB.Count_And_Get(
5576                                 p_encoded => FND_API.G_FALSE,
5577                                 p_count => x_msg_count,
5578                                 p_data  => x_msg_data);
5579 
5580         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5581                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5582                 FND_MSG_PUB.Count_And_Get(
5583                                 p_encoded => FND_API.G_FALSE,
5584                                 p_count => x_msg_count,
5585                                 p_data  => x_msg_data);
5586         WHEN OTHERS THEN
5587                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5588 
5589                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
5590                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
5591                 FND_MSG_PUB.ADD;
5592 
5593                 FND_MSG_PUB.Count_And_Get(
5594                                 p_encoded => FND_API.G_FALSE,
5595                                 p_count => x_msg_count,
5596                                 p_data  => x_msg_data);
5597 
5598 
5599 END get_current_financial_report;
5600 
5601 procedure get_current_financial_number(
5602         p_api_version           IN      NUMBER,
5603         p_init_msg_list         IN      VARCHAR2:= FND_API.G_FALSE,
5604         p_financial_number_id   IN      NUMBER,
5605         x_financial_numbers_rec OUT     NOCOPY FINANCIAL_NUMBERS_REC_TYPE,
5606         x_return_status         IN OUT     NOCOPY VARCHAR2,
5607         x_msg_count             OUT     NOCOPY NUMBER,
5608         x_msg_data              OUT     NOCOPY VARCHAR2
5609 ) IS
5610         l_api_name              CONSTANT VARCHAR2(30) := 'get_current_financial_number';
5611         l_api_version           CONSTANT  NUMBER       := 1.0;
5612 
5613 BEGIN
5614 
5615 --Standard call to check for call compatibility.
5616         IF NOT FND_API.Compatible_API_Call(
5617                                         l_api_version,
5618                                         p_api_version,
5619                                         l_api_name,
5620                                         G_PKG_NAME)
5621         THEN
5622                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5623         END IF;
5624 
5625 --Initialize message list if p_init_msg_list is set to TRUE.
5626         IF FND_API.to_Boolean(p_init_msg_list) THEN
5627                 FND_MSG_PUB.initialize;
5628         END IF;
5629 
5630 --Initialize API return status to success.
5631         x_return_status := FND_API.G_RET_STS_SUCCESS;
5632 
5633 --Check whether primary key has been passed in.
5634         IF p_financial_number_id IS NULL OR
5635            p_financial_number_id = FND_API.G_MISS_NUM THEN
5636 
5637             FND_MESSAGE.SET_NAME('AR', 'HZ_API_MISSING_COLUMN');
5638             FND_MESSAGE.SET_TOKEN('COLUMN', 'financial_number_id');
5639             FND_MSG_PUB.ADD;
5640             RAISE FND_API.G_EXC_ERROR;
5641         END IF;
5642 
5643         BEGIN /* Just for select statement */
5644 
5645            SELECT
5646                 financial_number_id,
5647                 financial_report_id,
5648                 financial_number,
5649                 financial_number_name,
5650                 financial_units_applied,
5651                 financial_number_currency,
5652                 projected_actual_flag,
5653                 wh_update_date,
5654                 content_source_type,
5655                 status
5656            INTO
5657                 x_financial_numbers_rec.financial_number_id,
5658                 x_financial_numbers_rec.financial_report_id,
5659                 x_financial_numbers_rec.financial_number,
5660                 x_financial_numbers_rec.financial_number_name,
5661                 x_financial_numbers_rec.financial_units_applied,
5662                 x_financial_numbers_rec.financial_number_currency,
5663                 x_financial_numbers_rec.projected_actual_flag,
5664                 x_financial_numbers_rec.wh_update_date,
5665                 x_financial_numbers_rec.content_source_type,
5666                 x_financial_numbers_rec.status
5667            FROM hz_financial_numbers
5668            WHERE financial_number_id = p_financial_number_id;
5669 
5670         EXCEPTION
5671            WHEN NO_DATA_FOUND THEN
5672               FND_MESSAGE.SET_NAME('AR', 'HZ_API_NO_RECORD');
5673               FND_MESSAGE.SET_TOKEN('RECORD', 'credit rating');
5674               FND_MESSAGE.SET_TOKEN('VALUE', to_char(p_financial_number_id));
5675               FND_MSG_PUB.ADD;
5676               RAISE FND_API.G_EXC_ERROR;
5677         END;
5678 --Standard call to get message count and if count is 1, get message info.
5679         FND_MSG_PUB.Count_And_Get(
5680                 p_encoded => FND_API.G_FALSE,
5681                 p_count => x_msg_count,
5682                 p_data  => x_msg_data);
5683 
5684 EXCEPTION
5685         WHEN FND_API.G_EXC_ERROR THEN
5686                 x_return_status := FND_API.G_RET_STS_ERROR;
5687                 FND_MSG_PUB.Count_And_Get(
5688                                 p_encoded => FND_API.G_FALSE,
5689                                 p_count => x_msg_count,
5690                                 p_data  => x_msg_data);
5691 
5692         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5693                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5694                 FND_MSG_PUB.Count_And_Get(
5695                                 p_encoded => FND_API.G_FALSE,
5696                                 p_count => x_msg_count,
5697                                 p_data  => x_msg_data);
5698         WHEN OTHERS THEN
5699                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5700 
5701                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
5702                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
5703                 FND_MSG_PUB.ADD;
5704 
5705                 FND_MSG_PUB.Count_And_Get(
5706                                 p_encoded => FND_API.G_FALSE,
5707                                 p_count => x_msg_count,
5708                                 p_data  => x_msg_data);
5709 
5710 
5711 END get_current_financial_number;
5712 
5713 
5714 
5715 
5716 
5717 END HZ_ORG_INFO_PUB;