DBA Data[Home] [Help]

PACKAGE BODY: APPS.HZ_ORGANIZATION_INFO_V2PUB

Source


1 PACKAGE BODY HZ_ORGANIZATION_INFO_V2PUB AS
2 /* $Header: ARH2OISB.pls 120.16 2005/12/07 19:30:45 acng noship $ */
3 
4 --------------------------------------
5 -- declaration of private global varibles
6 --------------------------------------
7 
8 --G_DEBUG             BOOLEAN := FALSE;
9 G_MISS_CONTENT_SOURCE_TYPE               VARCHAR2(30) := 'USER_ENTERED';
10 g_fin_mixnmatch_enabled                  VARCHAR2(1);
11 g_fin_selected_datasources               VARCHAR2(255);
12 g_fin_is_datasource_selected             VARCHAR2(1) := 'N';
13 g_fin_entity_attr_id                     NUMBER;
14 
15 --------------------------------------
16 -- declaration of private procedures and functions
17 --------------------------------------
18 
19 /*PROCEDURE enable_debug;
20 
21 PROCEDURE disable_debug;
22 */
23 
24 PROCEDURE do_create_financial_report(
25     p_financial_report_rec              IN OUT  NOCOPY FINANCIAL_REPORT_REC_TYPE,
26     x_financial_report_id               OUT NOCOPY     NUMBER,
27     x_return_status                     IN OUT NOCOPY  VARCHAR2
28 );
29 
30 PROCEDURE do_update_financial_report(
31     p_financial_report_rec              IN OUT  NOCOPY FINANCIAL_REPORT_REC_TYPE,
32     p_object_version_number             IN OUT NOCOPY  NUMBER,
33     x_return_status                     IN OUT NOCOPY  VARCHAR2
34 );
35 
36 PROCEDURE do_create_financial_number(
37     p_financial_number_rec              IN OUT  NOCOPY FINANCIAL_NUMBER_REC_TYPE,
38     x_financial_number_id               OUT NOCOPY     NUMBER,
39     x_return_status                     IN OUT NOCOPY  VARCHAR2
40 );
41 
42 PROCEDURE do_update_financial_number(
43     p_financial_number_rec              IN OUT  NOCOPY FINANCIAL_NUMBER_REC_TYPE,
44     p_object_version_number             IN OUT NOCOPY  NUMBER,
45     x_return_status                     IN OUT NOCOPY  VARCHAR2
46 );
47 
48 --------------------------------------
49 -- private procedures and functions
50 --------------------------------------
51 
52 /**
53  * PRIVATE PROCEDURE enable_debug
54  *
55  * DESCRIPTION
56  *     Turn on debug mode.
57  *
58  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
59  *     HZ_UTILITY_V2PUB.enable_debug
60  *
61  * MODIFICATION HISTORY
62  *
63  *   23-JAN-2003    Sreedhar Mohan      o Created.
64  *
65  */
66 
67 /*PROCEDURE enable_debug IS
68 
69 BEGIN
70 
71     IF FND_PROFILE.value( 'HZ_API_FILE_DEBUG_ON' ) = 'Y' OR
72        FND_PROFILE.value( 'HZ_API_DBMS_DEBUG_ON' ) = 'Y'
73     THEN
74         HZ_UTILITY_V2PUB.enable_debug;
75         G_DEBUG := TRUE;
76     END IF;
77 
78 END enable_debug;
79 */
80 
81 /**
82  * PRIVATE PROCEDURE disable_debug
83  *
84  * DESCRIPTION
85  *     Turn off debug mode.
86  *
87  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
88  *     HZ_UTILITY_V2PUB.disable_debug
89  *
90  * MODIFICATION HISTORY
91  *
92  *   23-JAN-2003    Sreedhar Mohan      o Created.
93  *
94  */
95 
96 /*PROCEDURE disable_debug IS
97 
98 BEGIN
99 
100     IF G_DEBUG THEN
101         HZ_UTILITY_V2PUB.disable_debug;
102         G_DEBUG := FALSE;
103     END IF;
104 
105 END disable_debug;
106 */
107 
108 /**
109  * PROCEDURE do_create_financial_report
110  *
111  * DESCRIPTION
112  *     Creates financial report.
113  *
114  * SCOPE - PRIVATE
115  *
116  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
117  *
118  * ARGUMENTS
119  *   IN:
120  *     p_financial_report_rec         Financial report record.
121  *
122  *   IN/OUT:
123  *   OUT:
124  *     x_financial_report_id          Financial report Id.
125  *     x_return_status                Return status after the call. The status can
126  *                                    be FND_API.G_RET_STS_SUCCESS (success),
127  *                                    FND_API.G_RET_STS_ERROR (error),
128  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
129  *
130  * NOTES
131  *
132  * MODIFICATION HISTORY
133  *
134  *   23-JAN-2003    Sreedhar Mohan        o Created.
135  *
136  */
137 
138 PROCEDURE do_create_financial_report(
139     p_financial_report_rec              IN OUT  NOCOPY FINANCIAL_REPORT_REC_TYPE,
140     x_financial_report_id               OUT NOCOPY     NUMBER,
141     x_return_status                     IN OUT NOCOPY  VARCHAR2
142 ) IS
143 
144     l_dummy                             VARCHAR2(1);
145     l_rowid                             ROWID;
146 
147 BEGIN
148 
149     -- validate Financial report  record
150     HZ_REGISTRY_VALIDATE_V2PUB.validate_financial_report(
151         'C',
152         p_financial_report_rec,
153         l_rowid,
154         x_return_status);
155 
156     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
157         RAISE FND_API.G_EXC_ERROR;
158     END IF;
159 
160     --Bug 2490399: Added final_ind in financial_report_rec_type. Hence passing
161     --the final_ind value instead of fnd_api.g_miss_char.
162     -- call table handler to insert a row
163     HZ_FINANCIAL_REPORTS_PKG.Insert_Row (
164         x_ROWID                                 => l_rowid,
165         x_FINANCIAL_REPORT_ID                   => p_financial_report_rec.financial_report_id,
166         x_DATE_REPORT_ISSUED                    => p_financial_report_rec.date_report_issued,
167         x_PARTY_ID                              => p_financial_report_rec.party_id,
168         x_DOCUMENT_REFERENCE                    => p_financial_report_rec.document_reference,
169         x_ISSUED_PERIOD                         => p_financial_report_rec.issued_period,
170         x_REQUIRING_AUTHORITY                   => p_financial_report_rec.requiring_authority,
171         x_TYPE_OF_FINANCIAL_REPORT              => p_financial_report_rec.type_of_financial_report,
172         x_REPORT_START_DATE                     => p_financial_report_rec.report_start_date,
173         x_REPORT_END_DATE                       => p_financial_report_rec.report_end_date,
174         x_AUDIT_IND                             => p_financial_report_rec.audit_ind,
175         x_CONSOLIDATED_IND                      => p_financial_report_rec.consolidated_ind,
176         x_ESTIMATED_IND                         => p_financial_report_rec.estimated_ind,
177         x_FISCAL_IND                            => p_financial_report_rec.fiscal_ind,
178         x_FINAL_IND                             => p_financial_report_rec.final_ind,
179         x_FORECAST_IND                          => p_financial_report_rec.forecast_ind,
180         x_OPENING_IND                           => p_financial_report_rec.opening_ind,
181         x_PROFORMA_IND                          => p_financial_report_rec.proforma_ind,
182         x_QUALIFIED_IND                         => p_financial_report_rec.qualified_ind,
183         x_RESTATED_IND                          => p_financial_report_rec.restated_ind,
184         x_SIGNED_BY_PRINCIPALS_IND              => p_financial_report_rec.signed_by_principals_ind,
185         x_TRIAL_BALANCE_IND                     => p_financial_report_rec.trial_balance_ind,
186         x_UNBALANCED_IND                        => p_financial_report_rec.unbalanced_ind,
187         x_CONTENT_SOURCE_TYPE                   => G_MISS_CONTENT_SOURCE_TYPE,
188         x_STATUS                                => p_financial_report_rec.status,
189         x_OBJECT_VERSION_NUMBER                 => 1,
190         x_CREATED_BY_MODULE                     => p_financial_report_rec.created_by_module,
191         x_ACTUAL_CONTENT_SOURCE                 => p_financial_report_rec.actual_content_source
192     );
193 
194     x_financial_report_id := p_financial_report_rec.financial_report_id;
195 
196 END do_create_financial_report;
197 
198 PROCEDURE do_update_financial_report(
199     p_financial_report_rec              IN OUT  NOCOPY FINANCIAL_REPORT_REC_TYPE,
200     p_object_version_number             IN OUT NOCOPY  NUMBER,
201     x_return_status                     IN OUT NOCOPY  VARCHAR2
202 ) IS
203 
204     l_rowid                                     ROWID  := NULL;
205     l_object_version_number                     NUMBER;
206     l_party_id                                  NUMBER;
207 --  Bug 4693719 : Added for local assignment
208     l_acs HZ_FINANCIAL_REPORTS.actual_content_source%TYPE;
209     db_actual_content_source HZ_FINANCIAL_REPORTS.actual_content_source%TYPE;
210 
211 BEGIN
212 
213     -- check whether record has been updated by another user
214     BEGIN
215         -- check object_version_number
216         --  Bug 4693719 : add ACS in select
217         SELECT rowid, object_version_number, party_id, actual_content_source
218         INTO l_rowid, l_object_version_number, l_party_id, db_actual_content_source
219         FROM HZ_FINANCIAL_REPORTS
220         WHERE financial_report_id = p_financial_report_rec.financial_report_id
221         FOR UPDATE NOWAIT;
222 
223         IF NOT
224              (
225               ( p_object_version_number IS NULL AND l_object_version_number IS NULL )
226               OR
227               ( p_object_version_number IS NOT NULL AND
228                 l_object_version_number IS NOT NULL AND
229                 p_object_version_number = l_object_version_number
230               )
231              )
232         THEN
233             FND_MESSAGE.SET_NAME('AR', 'HZ_API_RECORD_CHANGED');
234             FND_MESSAGE.SET_TOKEN('TABLE', 'HZ_FINANCIAL_REPORTS');
235             FND_MSG_PUB.ADD;
236             RAISE FND_API.G_EXC_ERROR;
237         END IF;
238 
239         p_object_version_number := nvl(l_object_version_number, 1) + 1;
240 
241     EXCEPTION
242         WHEN NO_DATA_FOUND THEN
243             FND_MESSAGE.SET_NAME('AR', 'HZ_API_NO_RECORD');
244             FND_MESSAGE.SET_TOKEN('RECORD', 'HZ_FINANCIAL_REPORTS');
245             FND_MESSAGE.SET_TOKEN('VALUE', NVL( TO_CHAR( p_financial_report_rec.financial_report_id ), 'null' ) );
246             FND_MSG_PUB.ADD;
247             RAISE FND_API.G_EXC_ERROR;
248     END;
249 
250     -- validate financial report record
251     HZ_REGISTRY_VALIDATE_V2PUB.validate_financial_report(
252         'U',
253         p_financial_report_rec,
254         l_rowid,
255         x_return_status);
256 
257     IF x_return_status = FND_API.G_RET_STS_ERROR THEN
258         RAISE FND_API.G_EXC_ERROR;
259     END IF;
260 
261     --  Bug 4693719 : pass NULL if the secure data is not updated
262    IF HZ_UTILITY_V2PUB.G_UPDATE_ACS = 'Y' THEN
263        l_acs := nvl(p_financial_report_rec.actual_content_source, 'USER_ENTERED');
264    ELSE
265        l_acs := NULL;
266    END IF;
267 
268 
269     --Bug 2490399: Added final_ind in financial_report_rec_type. Hence passing
270     --the final_ind value instead of fnd_api.g_miss_char.
271     -- call table handler to update a row
272     HZ_FINANCIAL_REPORTS_PKG.Update_Row (
273         x_ROWID                                 => l_rowid,
274         x_FINANCIAL_REPORT_ID                   => p_financial_report_rec.financial_report_id,
275         x_DATE_REPORT_ISSUED                    => p_financial_report_rec.date_report_issued,
276         x_PARTY_ID                              => p_financial_report_rec.party_id,
277         x_DOCUMENT_REFERENCE                    => p_financial_report_rec.document_reference,
278         x_ISSUED_PERIOD                         => p_financial_report_rec.issued_period,
279         x_REQUIRING_AUTHORITY                   => p_financial_report_rec.requiring_authority,
280         x_TYPE_OF_FINANCIAL_REPORT              => p_financial_report_rec.type_of_financial_report,
281         x_REPORT_START_DATE                     => p_financial_report_rec.report_start_date,
282         x_REPORT_END_DATE                       => p_financial_report_rec.report_end_date,
283         x_AUDIT_IND                             => p_financial_report_rec.audit_ind,
284         x_CONSOLIDATED_IND                      => p_financial_report_rec.consolidated_ind,
285         x_ESTIMATED_IND                         => p_financial_report_rec.estimated_ind,
286         x_FISCAL_IND                            => p_financial_report_rec.fiscal_ind,
287         x_FINAL_IND                             => p_financial_report_rec.final_ind,
288         x_FORECAST_IND                          => p_financial_report_rec.forecast_ind,
289         x_OPENING_IND                           => p_financial_report_rec.opening_ind,
290         x_PROFORMA_IND                          => p_financial_report_rec.proforma_ind,
291         x_QUALIFIED_IND                         => p_financial_report_rec.qualified_ind,
292         x_RESTATED_IND                          => p_financial_report_rec.restated_ind,
293         x_SIGNED_BY_PRINCIPALS_IND              => p_financial_report_rec.signed_by_principals_ind,
294         x_TRIAL_BALANCE_IND                     => p_financial_report_rec.trial_balance_ind,
295         x_UNBALANCED_IND                        => p_financial_report_rec.unbalanced_ind,
296         x_CONTENT_SOURCE_TYPE                   => G_MISS_CONTENT_SOURCE_TYPE,
297         x_STATUS                                => p_financial_report_rec.status,
298         x_OBJECT_VERSION_NUMBER                 => p_object_version_number,
299         x_CREATED_BY_MODULE                     => p_financial_report_rec.created_by_module,
300    --  Bug 4693719 : Pass correct value for ACS
301         x_ACTUAL_CONTENT_SOURCE                 => l_acs
302     );
303 
304 END do_update_financial_report;
305 
306 /**
307  * PROCEDURE do_create_financial_number
308  *
309  * DESCRIPTION
310  *     Creates financial_number.
311  *
312  * SCOPE - PRIVATE
313  *
314  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
315  *
316  * ARGUMENTS
317  *   IN:
318  *     p_financial_number_rec         Financial Number record.
319  *
320  *   IN/OUT:
321  *   OUT:
322  *     x_financial_number_id          Financial Number Id.
323  *     x_return_status                Return status after the call. The status can
324  *                                    be FND_API.G_RET_STS_SUCCESS (success),
325  *                                    FND_API.G_RET_STS_ERROR (error),
326  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
327  *
328  * NOTES
329  *
330  * MODIFICATION HISTORY
331  *
332  *   23-JAN-2003    Sreedhar Mohan        o Created.
333  *   22-MAR-2005    Rajib Ranjan Borah    o Bug 4225452. Added check for user creation privilege.
334  *
335  */
336 
337 PROCEDURE do_create_financial_number(
338     p_financial_number_rec              IN OUT  NOCOPY FINANCIAL_NUMBER_REC_TYPE,
339     x_financial_number_id               OUT NOCOPY     NUMBER,
340     x_return_status                     IN OUT NOCOPY  VARCHAR2
341 ) IS
342 
343     l_dummy                             VARCHAR2(1);
344     l_rowid                             ROWID;
345     l_acual_content_source              HZ_FINANCIAL_NUMBERS.actual_content_source%TYPE;
346 
347 BEGIN
348 
349     -- validate financial number  record
350     HZ_REGISTRY_VALIDATE_V2PUB.validate_financial_number(
351         'C',
352         p_financial_number_rec,
353         l_rowid,
354         x_return_status,
355  --bug 3942332 :added parameter l_acual_content_source
356 	l_acual_content_source);
357     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
358         RAISE FND_API.G_EXC_ERROR;
359     END IF;
360 
361     -- Bug 4225452.
362     IF l_acual_content_source = G_MISS_CONTENT_SOURCE_TYPE THEN
363         HZ_MIXNM_UTILITY.CheckUserCreationPrivilege (
364             p_entity_name                    => 'HZ_FINANCIAL_REPORTS',
365             p_entity_attr_id                 => g_fin_entity_attr_id,
366             p_mixnmatch_enabled              => g_fin_mixnmatch_enabled,
367             p_actual_content_source          => l_acual_content_source,
368             x_return_status                  => x_return_status );
369 
370 	IF x_return_status = FND_API.G_RET_STS_ERROR then
371 	    raise fnd_api.g_exc_error;
372 	END IF;
373     END IF;
374 
375     -- call table handler to insert a row
376     HZ_FINANCIAL_NUMBERS_PKG.Insert_Row (
377          x_rowid                                  => l_rowid,
378          x_financial_number_id                    => p_financial_number_rec.financial_number_id,
379          x_financial_report_id                    => p_financial_number_rec.financial_report_id,
380          x_financial_number                       => p_financial_number_rec.financial_number,
381          x_financial_number_name                  => p_financial_number_rec.financial_number_name,
382          x_financial_units_applied                => p_financial_number_rec.financial_units_applied,
383          x_financial_number_currency              => p_financial_number_rec.financial_number_currency,
384          x_projected_actual_flag                  => p_financial_number_rec.projected_actual_flag,
385          x_content_source_type                    => p_financial_number_rec.content_source_type,
386          x_status                                 => p_financial_number_rec.status,
387          x_object_version_number                  => 1,
388          x_created_by_module                      => p_financial_number_rec.created_by_module,
389          x_actual_content_source                  => l_acual_content_source
390 
391     );
392     x_financial_number_id := p_financial_number_rec.financial_number_id;
393 END do_create_financial_number;
394 
395 /**
396  * PROCEDURE do_update_financial_number
397  *
398  * DESCRIPTION
399  *     Creates financial_number.
400  *
401  * SCOPE - PRIVATE
402  *
403  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
404  *
405  * ARGUMENTS
406  *   IN:
407  *     p_financial_number_rec         Financial Number record.
408  *
409  *   IN/OUT:
410  *   OUT:
411  *     p_object_version_number        Used for locking the being updated record.
412  *     x_return_status                Return status after the call. The status can
413  *                                    be FND_API.G_RET_STS_SUCCESS (success),
414  *                                    FND_API.G_RET_STS_ERROR (error),
415  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
416  *
417  * NOTES
418  *
419  * MODIFICATION HISTORY
420  *
421  *   23-JAN-2003    Sreedhar Mohan        o Created.
422  *   04-JAN-2005    Rajib Ranjan Borah    o SSM SST Integration and Extension.
423  *                                          For non-profile entities, the concept of
424  *                                          select/de-select data-sources is obsoleted.
425  *   22-MAR-2005    Rajib Ranjan Borah    o Bug 4225452. The user creation rules for
426  *                                          credit ratings were wrongly checked.
427  */
428 
429 PROCEDURE do_update_financial_number(
430     p_financial_number_rec                  IN OUT  NOCOPY FINANCIAL_NUMBER_REC_TYPE,
431     p_object_version_number             IN OUT NOCOPY  NUMBER,
432     x_return_status                     IN OUT NOCOPY  VARCHAR2
433 ) IS
434 
435     l_rowid                                     ROWID  := NULL;
436     l_object_version_number                     NUMBER;
437     l_acual_content_source                      HZ_FINANCIAL_NUMBERS.actual_content_source%TYPE;
438     g_cre_mixnmatch_enabled                     VARCHAR2(1);
439     g_cre_selected_datasources                  VARCHAR2(255);
440     g_cre_is_datasource_selected                VARCHAR2(1) := 'N';
441     g_cre_entity_attr_id                        NUMBER;
442 
443 BEGIN
444 
445     -- check whether record has been updated by another user
446     BEGIN
447         -- check object_version_number
448         SELECT rowid, object_version_number
449         INTO l_rowid, l_object_version_number
450 	FROM HZ_financial_numbers
451         WHERE financial_number_id = p_financial_number_rec.financial_number_id
452         FOR UPDATE NOWAIT;
453 
454         IF NOT
455              (
456               ( p_object_version_number IS NULL AND l_object_version_number IS NULL )
457               OR
458               ( p_object_version_number IS NOT NULL AND
459                 l_object_version_number IS NOT NULL AND
460                 p_object_version_number = l_object_version_number
461               )
462              )
463         THEN
464             FND_MESSAGE.SET_NAME('AR', 'HZ_API_RECORD_CHANGED');
465             FND_MESSAGE.SET_TOKEN('TABLE', 'HZ_FINANCIAL_NUMBERS');
466             FND_MSG_PUB.ADD;
467             RAISE FND_API.G_EXC_ERROR;
468         END IF;
469 
470         p_object_version_number := nvl(l_object_version_number, 1) + 1;
471 
472     EXCEPTION
473         WHEN NO_DATA_FOUND THEN
474             FND_MESSAGE.SET_NAME('AR', 'HZ_API_NO_RECORD');
475             FND_MESSAGE.SET_TOKEN('RECORD', 'HZ_FINANCIAL_NUMBERS');
476             FND_MESSAGE.SET_TOKEN('VALUE', NVL( TO_CHAR( p_financial_number_rec.financial_number_id ), 'null' ) );
477             FND_MSG_PUB.ADD;
478             RAISE FND_API.G_EXC_ERROR;
479     END;
480 
481     -- validate financial number record
482     HZ_REGISTRY_VALIDATE_V2PUB.validate_financial_number(
483         'U',
484         p_financial_number_rec,
485         l_rowid,
486         x_return_status,
487 	--bug 3942332: added parameter to function call
488 	l_acual_content_source);
489 
490     IF x_return_status = FND_API.G_RET_STS_ERROR THEN
491         RAISE FND_API.G_EXC_ERROR;
492     END IF;
493 
494 /* SSM SST Integration and Extension
495  * For non-profile entities, the concept of select/de-select data-sources is obsoleted.
496 
497     HZ_MIXNM_UTILITY.LoadDataSources(
498       p_entity_name                    => 'HZ_CREDIT_RATINGS',
499       p_entity_attr_id                 => g_cre_entity_attr_id,
500       p_mixnmatch_enabled              => g_cre_mixnmatch_enabled,
501       p_selected_datasources           => g_cre_selected_datasources );
502 */
503 
504     -- Bug 4225452
505     /*
506     HZ_MIXNM_UTILITY.AssignDataSourceDuringCreation (
507       p_entity_name                    => 'HZ_CREDIT_RATINGS',
508       p_entity_attr_id                 => g_cre_entity_attr_id,
509       p_mixnmatch_enabled              => g_cre_mixnmatch_enabled,
510       p_selected_datasources           => g_cre_selected_datasources,
511       p_content_source_type            => p_financial_number_rec.content_source_type,
512       p_actual_content_source          => l_acual_content_source,
513       x_is_datasource_selected         => g_cre_is_datasource_selected,
514       x_return_status                  => x_return_status,
515       p_api_version                    => 'V2');
516     */
517 
518     -- call table handler to update a row
519     HZ_FINANCIAL_NUMBERS_PKG.Update_Row (
520          x_rowid                                  => l_rowid,
521          x_financial_number_id                    => p_financial_number_rec.financial_number_id,
522          x_financial_report_id                    => p_financial_number_rec.financial_report_id,
523          x_financial_number                       => p_financial_number_rec.financial_number,
524          x_financial_number_name                  => p_financial_number_rec.financial_number_name,
525          x_financial_units_applied                => p_financial_number_rec.financial_units_applied,
526          x_financial_number_currency              => p_financial_number_rec.financial_number_currency,
527          x_projected_actual_flag                  => p_financial_number_rec.projected_actual_flag,
528          x_content_source_type                    => p_financial_number_rec.content_source_type,
529          x_status                                 => p_financial_number_rec.status,
530          x_object_version_number                  => p_object_version_number,
531          x_created_by_module                      => p_financial_number_rec.created_by_module,
532 --bug 3942332: actual_content_source is a non-updateable column
533          --x_actual_content_source                  => l_acual_content_source
534          x_actual_content_source                  => null
535 
536     );
537 
538 END do_update_financial_number;
539 
540 --------------------------------------
541 -- public procedures and functions
542 --------------------------------------
543 
544 /**
545  * PROCEDURE create_financial_report
546  *
547  * DESCRIPTION
548  *     Creates financial_report.
549  *
550  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
551  *     HZ_BUSINESS_EVENT_V2PVT.create_fin_reports_event
552  *
553  * ARGUMENTS
554  *   IN:
555  *     p_init_msg_list                Initialize message stack if it is set to
556  *                                    FND_API.G_TRUE. Default is FND_API.G_FALSE.
557  *     p_financial_report_rec         financial_report record.
558  *   IN/OUT:
559  *   OUT:
560  *     x_financial_report_id          financial_report Id.
561  *     x_return_status                Return status after the call. The status can
562  *                                    be FND_API.G_RET_STS_SUCCESS (success),
563  *                                    FND_API.G_RET_STS_ERROR (error),
564  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
565  *     x_msg_count                    Number of messages in message stack.
566  *     x_msg_data                     Message text if x_msg_count is 1.
567  *
568  * NOTES
569  *
570  * MODIFICATION HISTORY
571  *
572  *   23-JAN-2003    Sreedhar Mohan        o Created.
573  *   04-JAN-2005    Rajib Ranjan Borah    o SSM SST Integration and Extension.
574  *                                          For non-profile entities, the concept of
575  *                                          select/de-select data-sources is obsoleted.
576  *
577  */
578 
579 PROCEDURE create_financial_report(
580     p_init_msg_list            IN  VARCHAR2 := FND_API.G_FALSE,
581     p_financial_report_rec     IN  FINANCIAL_REPORT_REC_TYPE,
582     x_financial_report_id      OUT NOCOPY NUMBER,
583     x_return_status            OUT NOCOPY VARCHAR2,
584     x_msg_count                OUT NOCOPY NUMBER,
585     x_msg_data                 OUT NOCOPY VARCHAR2
586 ) IS
587 
588     l_api_name                 CONSTANT       VARCHAR2(30) := 'create_financial_report';
589     l_financial_report_rec     FINANCIAL_REPORT_REC_TYPE := p_financial_report_rec;
590 
591 BEGIN
592 
593     --Standard start of API savepoint
594     SAVEPOINT create_financial_report;
595 
596     --Initialize message list if p_init_msg_list is set to TRUE.
597     IF FND_API.to_Boolean(p_init_msg_list) THEN
598         FND_MSG_PUB.initialize;
599     END IF;
600 
601     --Initialize API return status to success.
602     x_return_status := FND_API.G_RET_STS_SUCCESS;
603 
604     -- Bug 2868913: First load data
605     -- sources for this entity. Then assign the actual_content_source
606     -- to the real data source. The value of content_source_type is
607     -- depended on if data source is seleted. If it is selected, we reset
608     -- content_source_type to user-entered.
609 
610 /* SSM SST Integration and Extension
611    For non-profile entities, the concept of select/de-select data-sources is obsoleted.
612 
613     HZ_MIXNM_UTILITY.LoadDataSources(
614       p_entity_name                    => 'HZ_FINANCIAL_REPORTS',
615       p_entity_attr_id                 => g_fin_entity_attr_id,
616       p_mixnmatch_enabled              => g_fin_mixnmatch_enabled,
617       p_selected_datasources           => g_fin_selected_datasources );
618 */
619     HZ_MIXNM_UTILITY.AssignDataSourceDuringCreation (
620       p_entity_name                    => 'HZ_FINANCIAL_REPORTS',
621       p_entity_attr_id                 => g_fin_entity_attr_id,
622       p_mixnmatch_enabled              => g_fin_mixnmatch_enabled,
623       p_selected_datasources           => g_fin_selected_datasources,
624       p_content_source_type            => g_miss_content_source_type,
625       p_actual_content_source          => l_financial_report_rec.actual_content_source,
626       x_is_datasource_selected         => g_fin_is_datasource_selected,
627       x_return_status                  => x_return_status,
628       p_api_version                    => 'V2');
629 
630     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
631       RAISE FND_API.G_EXC_ERROR;
632     END IF;
633 
634     -- Call to business logic.
635     HZ_ORGANIZATION_INFO_V2PUB.do_create_financial_report(
636         l_financial_report_rec,
637         x_financial_report_id,
638         x_return_status);
639 
640     -- Bug 2868913: Added one more condition, g_fin_is_datasource_selected = Y, before calling business event
641 
642     -- SSM SST Integration and Extension
643     -- For non-profile entities, the concept of select/de-select data-sources is obsoleted.
644     -- There is no need to check if the data-source is selected.
645 
646     IF x_return_status = FND_API.G_RET_STS_SUCCESS /*AND
647        g_fin_is_datasource_selected = 'Y' */
648     THEN
649       IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('Y', 'EVENTS_ENABLED')) THEN
650         -- Invoke business event system.
651         HZ_BUSINESS_EVENT_V2PVT.create_fin_reports_event (
652           l_financial_report_rec );
653       END IF;
654 
655       IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('EVENTS_ENABLED', 'BO_EVENTS_ENABLED')) THEN
656         HZ_POPULATE_BOT_PKG.pop_hz_financial_reports(
657           p_operation           => 'I',
658           p_financial_report_id => x_financial_report_id);
659       END IF;
660     END IF;
661 
662     --Standard call to get message count and if count is 1, get message info.
663     FND_MSG_PUB.Count_And_Get(
664         p_encoded => FND_API.G_FALSE,
665         p_count => x_msg_count,
666         p_data  => x_msg_data);
667 
668 EXCEPTION
669     WHEN FND_API.G_EXC_ERROR THEN
670         ROLLBACK TO create_financial_report;
671         x_return_status := FND_API.G_RET_STS_ERROR;
672         FND_MSG_PUB.Count_And_Get(
673             p_encoded => FND_API.G_FALSE,
674             p_count => x_msg_count,
675             p_data  => x_msg_data);
676 
677     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
678         ROLLBACK TO create_financial_report;
679         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
680         FND_MSG_PUB.Count_And_Get(
681             p_encoded => FND_API.G_FALSE,
682             p_count => x_msg_count,
683             p_data  => x_msg_data);
684 
685     WHEN OTHERS THEN
686         ROLLBACK TO create_financial_report;
687         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
688         FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
689         FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
690         FND_MSG_PUB.ADD;
691         FND_MSG_PUB.Count_And_Get(
692             p_encoded => FND_API.G_FALSE,
693             p_count => x_msg_count,
694             p_data  => x_msg_data);
695 
696 END create_financial_report;
697 
698 /**
699  * PROCEDURE update_financial_report
700  *
701  * DESCRIPTION
702  *     Updates Financial Report.
703  *
704  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
705  *     HZ_BUSINESS_EVENT_V2PVT.update_fin_reports_event
706  *
707  * ARGUMENTS
708  *   IN:
709  *     p_init_msg_list                Initialize message stack if it is set to
710  *                                    FND_API.G_TRUE. Default is FND_API.G_FALSE.
711  *     p_financial_report_rec         Financial report record.
712  *   IN/OUT:
713  *     p_object_version_number        Used for locking the being updated record.
714  *   OUT:
715  *     x_return_status                Return status after the call. The status can
716  *                                    be FND_API.G_RET_STS_SUCCESS (success),
717  *                                    FND_API.G_RET_STS_ERROR (error),
718  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
719  *     x_msg_count                    Number of messages in message stack.
720  *     x_msg_data                     Message text if x_msg_count is 1.
721  *
722  * NOTES
723  *
724  * MODIFICATION HISTORY
725  *
726  *   23-JAN-2003    Sreedhar Mohan        o Created.
727  *   04-JAN-2005    Rajib Ranjan Borah    o SSM SST Integration and Extension.
728  *                                          For non-profile entities, the concept of
729  *                                          select/de-select data-sources is obsoleted.
730  *
731  */
732 
733 PROCEDURE update_financial_report(
734     p_init_msg_list          IN     VARCHAR2 := FND_API.G_FALSE,
735     p_financial_report_rec   IN     FINANCIAL_REPORT_REC_TYPE,
736     p_object_version_number  IN OUT NOCOPY NUMBER,
737     x_return_status             OUT NOCOPY VARCHAR2,
738     x_msg_count                 OUT NOCOPY NUMBER,
739     x_msg_data                  OUT NOCOPY VARCHAR2
740 ) IS
741 
742     l_api_name                       CONSTANT       VARCHAR2(30) := 'update_financial_report';
743     l_financial_report_rec                          FINANCIAL_REPORT_REC_TYPE := p_financial_report_rec;
744     l_old_fin_report_rec                            FINANCIAL_REPORT_REC_TYPE;
745 
746 BEGIN
747 
748     --Standard start of API savepoint
749     SAVEPOINT update_financial_report;
750 
751     --Initialize message list if p_init_msg_list is set to TRUE.
752     IF FND_API.to_Boolean(p_init_msg_list) THEN
753         FND_MSG_PUB.initialize;
754     END IF;
755 
756     --Initialize API return status to success.
757     x_return_status := FND_API.G_RET_STS_SUCCESS;
758 
759    HZ_ORGANIZATION_INFO_V2PUB.get_financial_report_rec (
760      p_financial_report_id        => p_financial_report_rec.financial_report_id,
761      p_financial_report_rec       => l_old_fin_report_rec,
762      x_return_status              => x_return_status,
763      x_msg_count                  => x_msg_count,
764      x_msg_data                   => x_msg_data);
765 
766 
767     IF x_return_status = FND_API.G_RET_STS_ERROR THEN
768         RAISE FND_API.G_EXC_ERROR;
769     ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
770         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
771     END IF;
772 
773     -- Bug 2868913: default the actual_content_source through mixnm API
774 /* SSM SST Integration and Extension
775  * For non-profile entities, the concept of select/de-select data-sources is obsoleted.
776  * There is no need to check if the data-source is selected.
777 
778     HZ_MIXNM_UTILITY.LoadDataSources(
779       p_entity_name                    => 'HZ_FINANCIAL_REPORTS',
780       p_entity_attr_id                 => g_fin_entity_attr_id,
781       p_mixnmatch_enabled              => g_fin_mixnmatch_enabled,
782       p_selected_datasources           => g_fin_selected_datasources );
783 
784     g_fin_is_datasource_selected :=
785       HZ_MIXNM_UTILITY.isDataSourceSelected (
786         p_selected_datasources           => g_fin_selected_datasources,
787         p_actual_content_source          => l_old_fin_report_rec.actual_content_source );
788 */
789     -- Call to business logic.
790     do_update_financial_report(
791         l_financial_report_rec,
792         p_object_version_number,
793         x_return_status);
794 
795     -- Bug 2868913: Added one more condition, g_fin_is_datasource_selected = Y, before calling business event
796 
797     -- SSM SST Integration and Extension
798     -- For non-profile entities, the concept of select/de-select data-sources is obsoleted.
799     -- There is no need to check if the data-source is selected.
800     IF x_return_status = FND_API.G_RET_STS_SUCCESS /*AND
801        g_fin_is_datasource_selected = 'Y'*/
802     THEN
803       --Bug 2979651: Since 2907261 made to HZ.K, keeping back the changes of 115.8 version.
804       IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('Y', 'EVENTS_ENABLED')) THEN
805       -- Invoke business event system.
806         HZ_BUSINESS_EVENT_V2PVT.update_fin_reports_event (
807           l_financial_report_rec,
808           l_old_fin_report_rec );
809       END IF;
810 
811       IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('EVENTS_ENABLED', 'BO_EVENTS_ENABLED')) THEN
812         HZ_POPULATE_BOT_PKG.pop_hz_financial_reports(
813           p_operation           => 'U',
814           p_financial_report_id => l_financial_report_rec.financial_report_id);
815       END IF;
816     END IF;
817 
818     HZ_UTILITY_V2PUB.G_UPDATE_ACS := NULL;
819     --Standard call to get message count and if count is 1, get message info.
820     FND_MSG_PUB.Count_And_Get(
821         p_encoded => FND_API.G_FALSE,
822         p_count => x_msg_count,
823         p_data  => x_msg_data);
824 
825 EXCEPTION
826     WHEN FND_API.G_EXC_ERROR THEN
827         ROLLBACK TO update_financial_report;
828         HZ_UTILITY_V2PUB.G_UPDATE_ACS := NULL;
829         x_return_status := FND_API.G_RET_STS_ERROR;
830         FND_MSG_PUB.Count_And_Get(
831             p_encoded => FND_API.G_FALSE,
832             p_count => x_msg_count,
833             p_data  => x_msg_data);
834 
835     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
836         ROLLBACK TO update_financial_report;
837         HZ_UTILITY_V2PUB.G_UPDATE_ACS := NULL;
838         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
839         FND_MSG_PUB.Count_And_Get(
840             p_encoded => FND_API.G_FALSE,
841             p_count => x_msg_count,
842             p_data  => x_msg_data);
843 
844     WHEN OTHERS THEN
845         ROLLBACK TO update_financial_report;
846         HZ_UTILITY_V2PUB.G_UPDATE_ACS := NULL;
847         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
848         FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
849         FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
850         FND_MSG_PUB.ADD;
851         FND_MSG_PUB.Count_And_Get(
852             p_encoded => FND_API.G_FALSE,
853             p_count => x_msg_count,
854             p_data  => x_msg_data);
855 
856 END update_financial_report;
857 
858 /**
859  * PROCEDURE get_financial_report_rec
860  *
861  * DESCRIPTION
862  *     Gets financial report record.
863  *
864  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
865  *     HZ_FINANCIAL_REPORTS_PKG.Select_Row
866  *
867  * ARGUMENTS
868  *   IN:
869  *     p_init_msg_list                Initialize message stack if it is set to
870  *                                    FND_API.G_TRUE. Default is FND_API.G_FALSE.
871  *     p_financial_report_id          Financial report ID.
872  *   IN/OUT:
873  *   OUT:
874  *     x_financial_report_rec         Returned financial report record.
875  *     x_return_status                Return status after the call. The status can
876  *                                    be FND_API.G_RET_STS_SUCCESS (success),
877  *                                    FND_API.G_RET_STS_ERROR (error),
878  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
879  *     x_msg_count                    Number of messages in message stack.
880  *     x_msg_data                     Message text if x_msg_count is 1.
881  *
882  * NOTES
883  *
884  * MODIFICATION HISTORY
885  *
886  *   23-JAN-2003    Sreedhar Mohan        o Created.
887  */
888 
889 PROCEDURE get_financial_report_rec (
890     p_init_msg_list                         IN     VARCHAR2 := FND_API.G_FALSE,
891     p_financial_report_id                   IN     NUMBER,
892     p_financial_report_rec                  OUT    NOCOPY FINANCIAL_REPORT_REC_TYPE,
893     x_return_status                         OUT NOCOPY    VARCHAR2,
894     x_msg_count                             OUT NOCOPY    NUMBER,
895     x_msg_data                              OUT NOCOPY    VARCHAR2
896 ) IS
897 
898     l_api_name                              CONSTANT VARCHAR2(30) := 'get_financial_report_rec';
899 
900 BEGIN
901 
902     --Initialize message list if p_init_msg_list is set to TRUE.
903     IF FND_API.to_Boolean(p_init_msg_list) THEN
904         FND_MSG_PUB.initialize;
905     END IF;
906 
907     --Initialize API return status to success.
908     x_return_status := FND_API.G_RET_STS_SUCCESS;
909 
910     --Check whether primary key has been passed in.
911     IF p_financial_report_id IS NULL OR
912        p_financial_report_id = FND_API.G_MISS_NUM THEN
913         FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_MISSING_COLUMN' );
914         FND_MESSAGE.SET_TOKEN( 'COLUMN', 'financial_report_id' );
915         FND_MSG_PUB.ADD;
916         RAISE FND_API.G_EXC_ERROR;
917     END IF;
918 
919     -- The p_financial_report_rec.financial_report_id must be initiated to p_financial_report_id
920     p_financial_report_rec.financial_report_id := p_financial_report_id;
921 
922     --Bug 2490399: Added final_ind in financial_report_rec_type. Hence changing the call to
923     --select_row.
924     HZ_FINANCIAL_REPORTS_PKG.Select_Row (
925         x_financial_report_id                  => p_financial_report_rec.financial_report_id,
926         x_date_report_issued                   => p_financial_report_rec.date_report_issued,
927         x_party_id                             => p_financial_report_rec.party_id,
928         x_document_reference                   => p_financial_report_rec.document_reference,
929         x_issued_period                        => p_financial_report_rec.issued_period,
930         x_requiring_authority                  => p_financial_report_rec.requiring_authority,
931         x_type_of_financial_report             => p_financial_report_rec.type_of_financial_report,
932         x_report_start_date                    => p_financial_report_rec.report_start_date,
933         x_report_end_date                      => p_financial_report_rec.report_end_date,
934         x_audit_ind                            => p_financial_report_rec.audit_ind,
935         x_consolidated_ind                     => p_financial_report_rec.consolidated_ind,
936         x_estimated_ind                        => p_financial_report_rec.estimated_ind,
937         x_fiscal_ind                           => p_financial_report_rec.fiscal_ind,
938         x_final_ind                            => p_financial_report_rec.final_ind,
939         x_forecast_ind                         => p_financial_report_rec.forecast_ind,
940         x_opening_ind                          => p_financial_report_rec.opening_ind,
941         x_proforma_ind                         => p_financial_report_rec.proforma_ind,
942         x_qualified_ind                        => p_financial_report_rec.qualified_ind,
943         x_restated_ind                         => p_financial_report_rec.restated_ind,
944         x_signed_by_principals_ind             => p_financial_report_rec.signed_by_principals_ind,
945         x_trial_balance_ind                    => p_financial_report_rec.trial_balance_ind,
946         x_unbalanced_ind                       => p_financial_report_rec.unbalanced_ind,
947         x_content_source_type                  => G_MISS_CONTENT_SOURCE_TYPE,
948         x_status                               => p_financial_report_rec.status,
949         x_actual_content_source                => p_financial_report_rec.actual_content_source,
950         x_created_by_module                    => p_financial_report_rec.created_by_module
951     );
952 
953     --Standard call to get message count and if count is 1, get message info.
954     FND_MSG_PUB.Count_And_Get(
955         p_encoded => FND_API.G_FALSE,
956         p_count => x_msg_count,
957         p_data  => x_msg_data );
958 
959 EXCEPTION
960     WHEN FND_API.G_EXC_ERROR THEN
961         x_return_status := FND_API.G_RET_STS_ERROR;
962 
963         FND_MSG_PUB.Count_And_Get(
964             p_encoded => FND_API.G_FALSE,
965             p_count => x_msg_count,
966             p_data  => x_msg_data );
967     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
968         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
969 
970         FND_MSG_PUB.Count_And_Get(
971             p_encoded => FND_API.G_FALSE,
972             p_count => x_msg_count,
973             p_data  => x_msg_data );
974 
975     WHEN OTHERS THEN
976         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
977 
978         FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_OTHERS_EXCEP' );
979         FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
980         FND_MSG_PUB.ADD;
981 
982         FND_MSG_PUB.Count_And_Get(
983             p_encoded => FND_API.G_FALSE,
984             p_count => x_msg_count,
985             p_data  => x_msg_data );
986 
987 END get_financial_report_rec;
988 
989 /**
990  * PROCEDURE create_financial_number
991  *
992  * DESCRIPTION
993  *     Creates financial_number.
994  *
995  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
996  *     HZ_BUSINESS_EVENT_V2PVT.create_fin_numbers_event
997  *
998  * ARGUMENTS
999  *   IN:
1000  *     p_init_msg_list                Initialize message stack if it is set to
1001  *                                    FND_API.G_TRUE. Default is FND_API.G_FALSE.
1002  *     p_financial_number_rec         financial_number record.
1003  *   IN/OUT:
1004  *   OUT:
1005  *     x_financial_number_id          financial_number ID.
1006  *     x_return_status                Return status after the call. The status can
1007  *                                    be FND_API.G_RET_STS_SUCCESS (success),
1008  *                                    FND_API.G_RET_STS_ERROR (error),
1009  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1010  *     x_msg_count                    Number of messages in message stack.
1011  *     x_msg_data                     Message text if x_msg_count is 1.
1012  *
1013  * NOTES
1014  *
1015  * MODIFICATION HISTORY
1016  *
1017  *   23-JAN-2003    Sreedhar Mohan        o Created.
1018  *   04-JAN-2005    Rajib Ranjan Borah    o SSM SST Integration and Extension.
1019  *                                          For non-profile entities, the concept of
1020  *                                          select/de-select data-sources is obsoleted.
1021  *
1022  */
1023 
1024 PROCEDURE create_financial_number(
1025     p_init_msg_list            IN  VARCHAR2 := FND_API.G_FALSE,
1026     p_financial_number_rec     IN  FINANCIAL_NUMBER_REC_TYPE,
1027     x_financial_number_id      OUT NOCOPY NUMBER,
1028     x_return_status            OUT NOCOPY VARCHAR2,
1029     x_msg_count                OUT NOCOPY NUMBER,
1030     x_msg_data                 OUT NOCOPY VARCHAR2
1031 ) IS
1032 
1033     l_api_name                 CONSTANT       VARCHAR2(30) := 'create_financial_number';
1034     l_financial_number_rec     FINANCIAL_NUMBER_REC_TYPE := p_financial_number_rec;
1035 
1036 BEGIN
1037 
1038     --Standard start of API savepoint
1039     SAVEPOINT create_financial_number;
1040 
1041     --Initialize message list if p_init_msg_list is set to TRUE.
1042     IF FND_API.to_Boolean(p_init_msg_list) THEN
1043         FND_MSG_PUB.initialize;
1044     END IF;
1045 
1046     --Initialize API return status to success.
1047     x_return_status := FND_API.G_RET_STS_SUCCESS;
1048 
1049     --Bug 2868913: Removed the LoadDataSources from do_create_financial_number
1050     --and added here, as per V1 way.
1051 /* SSM SST Integration and Extension
1052  * For non-profile entities, the concept of select/de-select data-sources is obsoleted.
1053  * There is no need to check if the data-source is selected.
1054 
1055     HZ_MIXNM_UTILITY.LoadDataSources(
1056       p_entity_name                    => 'HZ_FINANCIAL_REPORTS',
1057       p_entity_attr_id                 => g_fin_entity_attr_id,
1058       p_mixnmatch_enabled              => g_fin_mixnmatch_enabled,
1059       p_selected_datasources           => g_fin_selected_datasources );
1060 */
1061     -- Call to business logic.
1062     do_create_financial_number(
1063         l_financial_number_rec,
1064         x_financial_number_id,
1065         x_return_status);
1066 
1067     -- Bug 2868913: Added one more condition, g_fin_is_datasource_selected = Y, before calling business event
1068 
1069     -- SSM SST Integration and Extension
1070     -- For non-profile entities, the concept of select/de-select data-sources is obsoleted.
1071     -- There is no need to check if the data-source is selected.
1072 
1073     IF x_return_status = FND_API.G_RET_STS_SUCCESS /*AND
1074        g_fin_is_datasource_selected = 'Y' */
1075     THEN
1076       IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('Y', 'EVENTS_ENABLED')) THEN
1077         -- Invoke business event system.
1078         HZ_BUSINESS_EVENT_V2PVT.create_fin_numbers_event (
1079           l_financial_number_rec );
1080       END IF;
1081 
1082       IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('EVENTS_ENABLED', 'BO_EVENTS_ENABLED')) THEN
1083         HZ_POPULATE_BOT_PKG.pop_hz_financial_numbers(
1084           p_operation           => 'I',
1085           p_financial_number_id => x_financial_number_id);
1086       END IF;
1087     END IF;
1088 
1089     --Standard call to get message count and if count is 1, get message info.
1090     FND_MSG_PUB.Count_And_Get(
1091         p_encoded => FND_API.G_FALSE,
1092         p_count => x_msg_count,
1093         p_data  => x_msg_data);
1094 
1095 EXCEPTION
1096     WHEN FND_API.G_EXC_ERROR THEN
1097         ROLLBACK TO create_financial_number;
1098         x_return_status := FND_API.G_RET_STS_ERROR;
1099         FND_MSG_PUB.Count_And_Get(
1100             p_encoded => FND_API.G_FALSE,
1101             p_count => x_msg_count,
1102             p_data  => x_msg_data);
1103 
1104     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1105         ROLLBACK TO create_financial_number;
1106         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1107         FND_MSG_PUB.Count_And_Get(
1108             p_encoded => FND_API.G_FALSE,
1109             p_count => x_msg_count,
1110             p_data  => x_msg_data);
1111 
1112     WHEN OTHERS THEN
1113         ROLLBACK TO create_financial_number;
1114         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1115         FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
1116         FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1117         FND_MSG_PUB.ADD;
1118         FND_MSG_PUB.Count_And_Get(
1119             p_encoded => FND_API.G_FALSE,
1120             p_count => x_msg_count,
1121             p_data  => x_msg_data);
1122 
1123 END create_financial_number;
1124 
1125 /**
1126  * PROCEDURE update_financial_number
1127  *
1128  * DESCRIPTION
1129  *     Updates Financial Number.
1130  *
1131  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
1132  *     HZ_BUSINESS_EVENT_V2PVT.update_fin_number_event
1133  *
1134  * ARGUMENTS
1135  *   IN:
1136  *     p_init_msg_list                Initialize message stack if it is set to
1137  *                                    FND_API.G_TRUE. Default is FND_API.G_FALSE.
1138  *     p_financial_number_rec         Financial Number record.
1139  *   IN/OUT:
1140  *     p_object_version_number        Used for locking the being updated record.
1141  *   OUT:
1142  *     x_return_status                Return status after the call. The status can
1143  *                                    be FND_API.G_RET_STS_SUCCESS (success),
1144  *                                    FND_API.G_RET_STS_ERROR (error),
1145  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1146  *     x_msg_count                    Number of messages in message stack.
1147  *     x_msg_data                     Message text if x_msg_count is 1.
1148  *
1149  * NOTES
1150  *
1151  * MODIFICATION HISTORY
1152  *
1153  *   23-JAN-2003    Sreedhar Mohan        o Created.
1154  *   04-JAN-2005    Rajib Ranjan Borah    o SSM SST Integration and Extension.
1155  *                                          For non-profile entities, the concept of
1156  *                                          select/de-select data-sources is obsoleted.
1157  *
1158  */
1159 
1160 PROCEDURE update_financial_number(
1161     p_init_msg_list          IN     VARCHAR2 := FND_API.G_FALSE,
1162     p_financial_number_rec   IN     FINANCIAL_NUMBER_REC_TYPE,
1163     p_object_version_number  IN OUT NOCOPY NUMBER,
1164     x_return_status             OUT NOCOPY VARCHAR2,
1165     x_msg_count                 OUT NOCOPY NUMBER,
1166     x_msg_data                  OUT NOCOPY VARCHAR2
1167 ) IS
1168 
1169     l_api_name                       CONSTANT       VARCHAR2(30) := 'update_financial_number';
1170     l_financial_number_rec                          FINANCIAL_NUMBER_REC_TYPE := p_financial_number_rec;
1171     l_old_financial_number_rec                      FINANCIAL_NUMBER_REC_TYPE;
1172 
1173 BEGIN
1174 
1175     --Standard start of API savepoint
1176     SAVEPOINT update_financial_number;
1177 
1178     --Initialize message list if p_init_msg_list is set to TRUE.
1179     IF FND_API.to_Boolean(p_init_msg_list) THEN
1180         FND_MSG_PUB.initialize;
1181     END IF;
1182 
1183     --Initialize API return status to success.
1184     x_return_status := FND_API.G_RET_STS_SUCCESS;
1185 
1186    get_financial_number_rec (
1187      p_financial_number_id        => p_financial_number_rec.financial_number_id,
1188      p_financial_number_rec       => l_old_financial_number_rec,
1189      x_return_status              => x_return_status,
1190      x_msg_count                  => x_msg_count,
1191      x_msg_data                   => x_msg_data);
1192 
1193     IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1194         RAISE FND_API.G_EXC_ERROR;
1195     ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1196         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1197     END IF;
1198 
1199     -- Bug 2868913: default the actual_content_source through mixnm API
1200 /* SSM SST Integration and Extension
1201  * For non-profile entities, the concept of select/de-select data-sources is obsoleted.
1202  * There is no need to check if the data-source is selected.
1203 
1204     HZ_MIXNM_UTILITY.LoadDataSources(
1205       p_entity_name                    => 'HZ_FINANCIAL_REPORTS',
1206       p_entity_attr_id                 => g_fin_entity_attr_id,
1207       p_mixnmatch_enabled              => g_fin_mixnmatch_enabled,
1208       p_selected_datasources           => g_fin_selected_datasources );
1209 */
1210     -- Call to business logic.
1211     do_update_financial_number(
1212         l_financial_number_rec,
1213         p_object_version_number,
1214         x_return_status);
1215 
1216     -- Bug 2868913: Added one more condition, g_fin_is_datasource_selected = Y, before calling business event
1217     IF x_return_status = FND_API.G_RET_STS_SUCCESS /*AND
1218        g_fin_is_datasource_selected = 'Y'*/
1219     THEN
1220       --Bug 2979651: Since 2907261 made to HZ.K, keeping back the changes of 115.8 version.
1221       IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('Y', 'EVENTS_ENABLED')) THEN
1222         HZ_BUSINESS_EVENT_V2PVT.update_fin_numbers_event (
1223           l_financial_number_rec,
1224           l_old_financial_number_rec );
1225       END IF;
1226 
1227       IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('EVENTS_ENABLED', 'BO_EVENTS_ENABLED')) THEN
1228         HZ_POPULATE_BOT_PKG.pop_hz_financial_numbers(
1229           p_operation           => 'U',
1230           p_financial_number_id => l_financial_number_rec.financial_number_id);
1231       END IF;
1232     END IF;
1233 
1234     --Standard call to get message count and if count is 1, get message info.
1235     FND_MSG_PUB.Count_And_Get(
1236         p_encoded => FND_API.G_FALSE,
1237         p_count => x_msg_count,
1238         p_data  => x_msg_data);
1239 
1240 EXCEPTION
1241     WHEN FND_API.G_EXC_ERROR THEN
1242         ROLLBACK TO update_financial_number;
1243         x_return_status := FND_API.G_RET_STS_ERROR;
1244         FND_MSG_PUB.Count_And_Get(
1245             p_encoded => FND_API.G_FALSE,
1246             p_count => x_msg_count,
1247             p_data  => x_msg_data);
1248 
1249     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1250         ROLLBACK TO update_financial_number;
1251         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1252         FND_MSG_PUB.Count_And_Get(
1253             p_encoded => FND_API.G_FALSE,
1254             p_count => x_msg_count,
1255             p_data  => x_msg_data);
1256 
1257     WHEN OTHERS THEN
1258         ROLLBACK TO update_financial_number;
1259         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1260         FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
1261         FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1262         FND_MSG_PUB.ADD;
1263         FND_MSG_PUB.Count_And_Get(
1264             p_encoded => FND_API.G_FALSE,
1265             p_count => x_msg_count,
1266             p_data  => x_msg_data);
1267 
1268 END update_financial_number;
1269 
1270 /**
1271  * PROCEDURE get_financial_number_rec
1272  *
1273  * DESCRIPTION
1274  *     Gets financial number record.
1275  *
1276  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
1277  *     HZ_FINANCIAL_NUMBERS_PKG.Select_Row
1278  *
1279  * ARGUMENTS
1280  *   IN:
1281  *     p_init_msg_list                Initialize message stack if it is set to
1282  *                                    FND_API.G_TRUE. Default is FND_API.G_FALSE.
1283  *     p_financial_number_id          Financial Number ID.
1284  *   IN/OUT:
1285  *   OUT:
1286  *     x_financial_number_rec         Returned financial number record.
1287  *     x_return_status                Return status after the call. The status can
1288  *                                    be FND_API.G_RET_STS_SUCCESS (success),
1289  *                                    FND_API.G_RET_STS_ERROR (error),
1290  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1291  *     x_msg_count                    Number of messages in message stack.
1292  *     x_msg_data                     Message text if x_msg_count is 1.
1293  *
1294  * NOTES
1295  *
1296  * MODIFICATION HISTORY
1297  *
1298  *   23-JAN-2003    Sreedhar Mohan        o Created.
1299  */
1300 
1301 PROCEDURE get_financial_number_rec (
1302     p_init_msg_list                         IN     VARCHAR2 := FND_API.G_FALSE,
1303     p_financial_number_id                   IN     NUMBER,
1304     p_financial_number_rec                  OUT    NOCOPY FINANCIAL_NUMBER_REC_TYPE,
1305     x_return_status                         OUT NOCOPY    VARCHAR2,
1306     x_msg_count                             OUT NOCOPY    NUMBER,
1307     x_msg_data                              OUT NOCOPY    VARCHAR2
1308 ) IS
1309 
1310     l_api_name                              CONSTANT VARCHAR2(30) := 'get_financial_number_rec';
1311 
1312 BEGIN
1313 
1314     --Initialize message list if p_init_msg_list is set to TRUE.
1315     IF FND_API.to_Boolean(p_init_msg_list) THEN
1316         FND_MSG_PUB.initialize;
1317     END IF;
1318 
1319     --Initialize API return status to success.
1320     x_return_status := FND_API.G_RET_STS_SUCCESS;
1321 
1322     --Check whether primary key has been passed in.
1323     IF p_financial_number_id IS NULL OR
1324        p_financial_number_id = FND_API.G_MISS_NUM THEN
1325         FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_MISSING_COLUMN' );
1326         FND_MESSAGE.SET_TOKEN( 'COLUMN', 'financial_number_id' );
1327         FND_MSG_PUB.ADD;
1328         RAISE FND_API.G_EXC_ERROR;
1329     END IF;
1330 
1331     -- The p_financial_number_rec.financial_number_id must be initiated to p_financial_number_id
1332     p_financial_number_rec.financial_number_id := p_financial_number_id;
1333 
1334     HZ_FINANCIAL_NUMBERS_PKG.Select_Row (
1335         x_financial_number_id                  => p_financial_number_rec.financial_number_id,
1336         x_financial_report_id                  => p_financial_number_rec.financial_report_id,
1337         x_financial_number                     => p_financial_number_rec.financial_number,
1338         x_financial_number_name                => p_financial_number_rec.financial_number_name,
1339         x_financial_units_applied              => p_financial_number_rec.financial_units_applied,
1340         x_financial_number_currency            => p_financial_number_rec.financial_number_currency,
1341         x_projected_actual_flag                => p_financial_number_rec.projected_actual_flag,
1342         x_content_source_type                  => G_MISS_CONTENT_SOURCE_TYPE,
1343         x_status                               => p_financial_number_rec.status,
1344         x_actual_content_source                => G_MISS_CONTENT_SOURCE_TYPE
1345 
1346     );
1347 
1348     --Standard call to get message count and if count is 1, get message info.
1349     FND_MSG_PUB.Count_And_Get(
1350         p_encoded => FND_API.G_FALSE,
1351         p_count => x_msg_count,
1352         p_data  => x_msg_data );
1353 
1354 EXCEPTION
1355     WHEN FND_API.G_EXC_ERROR THEN
1356         x_return_status := FND_API.G_RET_STS_ERROR;
1357 
1358         FND_MSG_PUB.Count_And_Get(
1359             p_encoded => FND_API.G_FALSE,
1360             p_count => x_msg_count,
1361             p_data  => x_msg_data );
1362     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1363         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1364 
1365         FND_MSG_PUB.Count_And_Get(
1366             p_encoded => FND_API.G_FALSE,
1367             p_count => x_msg_count,
1368             p_data  => x_msg_data );
1369 
1370     WHEN OTHERS THEN
1371         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1372 
1373         FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_OTHERS_EXCEP' );
1374         FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
1375         FND_MSG_PUB.ADD;
1376 
1377         FND_MSG_PUB.Count_And_Get(
1378             p_encoded => FND_API.G_FALSE,
1379             p_count => x_msg_count,
1380             p_data  => x_msg_data );
1381 
1382 END get_financial_number_rec;
1383 
1384 END HZ_ORGANIZATION_INFO_V2PUB;