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