[Home] [Help]
PACKAGE BODY: APPS.AMW_FIN_COSO_VIEWS_PVT
Source
1 PACKAGE BODY amw_fin_coso_views_pvt as
2 /* $Header: amwcfcvb.pls 120.0.12000000.2 2007/04/02 16:45:02 dliao ship $ */
3
4
5 PROCEDURE create_fin_ctrl_components
6 (P_CERTIFICATION_ID number ,
7 P_FINANCIAL_STATEMENT_ID number,
8 P_STATEMENT_GROUP_ID number,
9 P_FINANCIAL_ITEM_ID number,
10 P_ACCOUNT_GROUP_ID number ,
11 P_ACCOUNT_ID number ,
12 P_OBJECT_TYPE varchar2 ) is
13
14 /* ************************************** Example of Paraemters received *************************************
15
16 For Financial Items the Parameter Passed will be
17 (P_CERTIFICATION_ID => l_certification_id,
18 P_FINANCIAL_STATEMENT_ID => Get_all_items_Rec.FINANCIAL_STATEMENT_ID ,
19 P_STATEMENT_GROUP_ID => Get_all_items_Rec.STATEMENT_GROUP_ID ,
20 P_FINANCIAL_ITEM_ID => Get_all_items_Rec.FINANCIAL_ITEM_ID,
21 P_ACCOUNT_GROUP_ID => NULL,
22 P_ACCOUNT_ID => NULL,
23 P_OBJECT_TYPE => 'FINANCIAL ITEM')
24
25 For Key Accounts the Parameter Passed will be
26
27 (P_CERTIFICATION_ID => l_certification_id,
28 P_STATEMENT_GROUP_ID => Get_all_accts_Rec.STATEMENT_GROUP_ID ,
29 P_FINANCIAL_STATEMENT_ID => Get_all_accts_Rec.FINANCIAL_STATEMENT_ID,
30 P_FINANCIAL_ITEM_ID => Get_all_accts_Rec.financial_item_id,
31 P_ACCOUNT_ID => Get_all_accts_Rec.natural_account_id,
32 P_ACCOUNT_GROUP_ID => Get_all_accts_Rec.account_group_id,
33 P_OBJECT_TYPE => 'ACCOUNT');
34
35
36 *******************************************************************************************************************
37 */
38
39 begin
40 declare
41
42 -- type component_code_array is table of varchar2(30) index by pls_integer;
43
44 -- type total_control_array is table of number index by pls_integer;
45
46 -- type ineff_control_array is table of number index by pls_integer;
47
48 ctr integer :=0;
49 max_num_of_codes integer :=0;
50 m_ctrl_attribute_type VARCHAR2(30) :='CTRL_COMPONENT';
51
52 m_component_code component_code_array;
53 m_total_control total_control_array ;
54 m_ineff_control ineff_control_array ;
55 m_acc_assert_flag component_code_array;
56 m_evaluated_ctrls total_control_array ;
57
58
59 v_COMPONENT_CODE varchar2(30);
60
61 g_user_id NUMBER := fnd_global.user_id;
62 g_login_id NUMBER := fnd_global.conc_login_id;
63 g_errbuf VARCHAR2(2000) := null;
64 g_retcode VARCHAR2(2) := '0';
65 m_object_version_number NUMBER;
66
67 m_display_flag varchar2(1) := 'N';
68
69 -- *************** Currsor to get all Control for the Fianancial Item being Passed ********** --
70
71 cursor ineff_ctrl_of_item
72 is
73 select
74 count(1) numIneffCtrls,
75 COMPONENT_CODE
76 from
77 (select
78 distinct
79 ctrl.ORGANIZATION_ID, ctrl.control_id, comp.COMPONENT_CODE
80 from
81 amw_fin_item_acc_ctrl ctrl,
82 amw_opinions_log_v opinion,
83 amw_assessment_components comp,
84 amw_control_associations ctrlAsso
85 where
86 ctrl.FIN_CERTIFICATION_ID= P_CERTIFICATION_ID and
87 ctrl.OBJECT_TYPE = 'FINANCIAL ITEM' and
88 ctrl.FINANCIAL_ITEM_ID= P_FINANCIAL_ITEM_ID and
89 -- ctrl.ACCOUNT_GROUP_ID is null and
90 -- ctrl.NATURAL_ACCOUNT_ID is null and
91 --opinion.OPINION_LOG_ID = ctrl.OPINION_LOG_ID and
92 opinion.pk1_value = ctrl.control_id and
93 opinion.pk3_value = ctrl.ORGANIZATION_ID and
94 opinion.audit_result_CODE <> 'EFFECTIVE' and
95 opinion.OPINION_TYPE_CODE = 'EVALUATION' AND
96 opinion.OBJECT_NAME = 'AMW_ORG_CONTROL' and
97 ctrl.CONTROL_REV_ID =comp.OBJECT_ID and
98 comp.OBJECT_TYPE ='CONTROL' and
99 ctrlAsso.OBJECT_TYPE='RISK_FINCERT' and
100 opinion.OPINION_LOG_ID = ctrlAsso.PK5 and
101 ctrlAsso.PK1 = ctrl.FIN_CERTIFICATION_ID and
102 ctrlAsso.PK2 = ctrl.ORGANIZATION_ID and
103 ctrlAsso.CONTROL_ID = ctrl.control_id)
104 group by COMPONENT_CODE;
105
106 --------------------------------------------------------------------------------
107 cursor tot_ctrl_of_item
108 is
109 select
110 count(1) numOfCtrls,
111 comp.COMPONENT_CODE
112 from
113 amw.amw_fin_item_acc_ctrl ctrl,
114 amw_assessment_components comp
115 where
116 ctrl.FIN_CERTIFICATION_ID=P_CERTIFICATION_ID and
117 ctrl.OBJECT_TYPE = 'FINANCIAL ITEM' and
118 ctrl.FINANCIAL_ITEM_ID= P_FINANCIAL_ITEM_ID and
119 --ctrl.ACCOUNT_GROUP_ID is null and
120 --ctrl.NATURAL_ACCOUNT_ID is null and
121 ctrl.CONTROL_REV_ID =comp.OBJECT_ID and
122 comp.OBJECT_TYPE ='CONTROL'
123 group by COMPONENT_CODE;
124
125 --------------------------------------------------------------------------------------
126 cursor evaluated_ctrls_of_item
127 is
128 select
129 count(1) numOfEvaluatedCtrls,
130 COMPONENT_CODE
131 from
132 (select
133 distinct
134 ctrl.ORGANIZATION_ID, ctrl.control_id, comp.COMPONENT_CODE
135 from
136 amw_fin_item_acc_ctrl ctrl,
137 amw_opinions_v opinion,
138 amw_assessment_components comp,
139 amw_control_associations ctrlAsso
140 where
141 ctrl.FIN_CERTIFICATION_ID= P_CERTIFICATION_ID
142 and
143 ctrl.OBJECT_TYPE = 'FINANCIAL ITEM' and
144 ctrl.FINANCIAL_ITEM_ID= P_FINANCIAL_ITEM_ID
145 and
146 opinion.pk1_value = ctrl.control_id and
147 opinion.pk3_value = ctrl.ORGANIZATION_ID and
148 opinion.OPINION_TYPE_CODE = 'EVALUATION' AND
149 opinion.OBJECT_NAME = 'AMW_ORG_CONTROL' and
150 ctrl.CONTROL_REV_ID =comp.OBJECT_ID and
151 comp.OBJECT_TYPE ='CONTROL' and
152 ctrlAsso.OBJECT_TYPE='RISK_FINCERT' and
153 ctrlAsso.PK1 = ctrl.FIN_CERTIFICATION_ID and
154 ctrlAsso.PK2 = ctrl.ORGANIZATION_ID and
155 ctrlAsso.CONTROL_ID = ctrl.control_id)
156 group by COMPONENT_CODE;
157
158
159
160 -- *************** Currsor to get all Control for the Fianancial Item being Passed ********** --
161
162 cursor in_eff_ctrl_of_accounts
163 is
164 --fix bug 5768982 on 2-12-07
165 /*******
166 select
167 count(1) numIneffCtrls,
168 COMPONENT_CODE from
169 ( select
170 distinct
171 ctrl.ORGANIZATION_ID, ctrl.control_id, comp.COMPONENT_CODE
172 from
173 amw_fin_item_acc_ctrl ctrl,
174 amw_opinions_log_v opinion,
175 amw_assessment_components comp,
176 amw_control_associations ctrlAsso
177 where
178 ctrl.FIN_CERTIFICATION_ID= P_CERTIFICATION_ID and
179 ctrl.OBJECT_TYPE = 'ACCOUNT' and
180 --ctrl.FINANCIAL_ITEM_ID= P_FINANCIAL_ITEM_ID and
181 ctrl.ACCOUNT_GROUP_ID = P_ACCOUNT_GROUP_ID
182 and NATURAL_ACCOUNT_ID = P_ACCOUNT_ID and
183 --opinion.OPINION_LOG_ID = ctrl.OPINION_LOG_ID and
184 opinion.pk1_value = ctrl.control_id and
185 opinion.pk3_value = ctrl.ORGANIZATION_ID and
186 opinion.audit_result_CODE <> 'EFFECTIVE' and
187 opinion.OPINION_TYPE_CODE = 'EVALUATION' AND
188 opinion.OBJECT_NAME = 'AMW_ORG_CONTROL' and
189 ctrl.CONTROL_REV_ID =comp.OBJECT_ID and
190 comp.OBJECT_TYPE ='CONTROL' and
191 ctrlAsso.OBJECT_TYPE='RISK_FINCERT' and
192 opinion.OPINION_LOG_ID = ctrlAsso.PK5 and
193 ctrlAsso.PK1 = ctrl.FIN_CERTIFICATION_ID and
194 ctrlAsso.PK2 = ctrl.ORGANIZATION_ID and
195 ctrlAsso.CONTROL_ID = ctrl.control_id)
196 group by COMPONENT_CODE;
197 *********/
198 SELECT COUNT(1) NUMINEFFCTRLS, COMPONENT_CODE
199 FROM
200 (SELECT DISTINCT CTRL.ORGANIZATION_ID, CTRL.CONTROL_ID, COMP.COMPONENT_CODE
201 FROM AMW_FIN_ITEM_ACC_CTRL CTRL,
202 AMW_ASSESSMENT_COMPONENTS COMP
203 WHERE
204 CTRL.FIN_CERTIFICATION_ID= P_CERTIFICATION_ID
205 AND CTRL.OBJECT_TYPE = 'ACCOUNT'
206 AND CTRL.ACCOUNT_GROUP_ID = P_ACCOUNT_GROUP_ID
207 AND NATURAL_ACCOUNT_ID = P_ACCOUNT_ID
208 AND CTRL.CONTROL_REV_ID =COMP.OBJECT_ID
209 AND COMP.OBJECT_TYPE ='CONTROL'
210 AND EXISTS
211 (SELECT 1 FROM AMW_OPINIONS_LOG_V OPINION
212 WHERE OPINION.PK1_VALUE = CTRL.CONTROL_ID
213 AND OPINION.PK3_VALUE = CTRL.ORGANIZATION_ID
214 AND OPINION.AUDIT_RESULT_CODE <> 'EFFECTIVE'
215 AND OPINION.OPINION_TYPE_CODE = 'EVALUATION'
216 AND OPINION.OBJECT_NAME = 'AMW_ORG_CONTROL'
217 AND EXISTS
218 (SELECT 1 FROM AMW_CONTROL_ASSOCIATIONS CTRLASSO
219 WHERE
220 CTRLASSO.OBJECT_TYPE='RISK_FINCERT'
221 AND OPINION.OPINION_LOG_ID = CTRLASSO.PK5
222 AND CTRLASSO.PK1 = P_CERTIFICATION_ID
223 AND CTRLASSO.PK2 = OPINION.PK3_VALUE
224 AND CTRLASSO.CONTROL_ID = OPINION.PK1_VALUE
225 ))) GROUP BY COMPONENT_CODE;
226
227 -------------------------------------------------------------
228 cursor total_ctrl_of_accounts
229 is
230 select
231 count(1) numOfCtrls,
232 comp.COMPONENT_CODE
233 from
234 amw.amw_fin_item_acc_ctrl ctrl,
235 amw_assessment_components comp
236 where
237 ctrl.FIN_CERTIFICATION_ID= P_CERTIFICATION_ID and
238 ctrl.OBJECT_TYPE = 'ACCOUNT' and
239 -- ctrl.FINANCIAL_ITEM_ID= P_FINANCIAL_ITEM_ID and
240 ACCOUNT_GROUP_ID = P_ACCOUNT_GROUP_ID and
241 NATURAL_ACCOUNT_ID =P_ACCOUNT_ID and
242 ctrl.CONTROL_REV_ID =comp.OBJECT_ID and
243 comp.OBJECT_TYPE ='CONTROL'
244 group by COMPONENT_CODE;
245 -----------------------------------------------------------------
246 cursor evaluated_ctrls_of_acc
247 is
248 select
249 count(1) numOfEvaluatedCtrls,
250 COMPONENT_CODE from
251 ( select
252 distinct
253 ctrl.ORGANIZATION_ID, ctrl.control_id, comp.COMPONENT_CODE
254 from
255 amw_fin_item_acc_ctrl ctrl,
256 amw_opinions_log_v opinion,
257 amw_assessment_components comp,
258 amw_control_associations ctrlAsso
259 where
260 ctrl.FIN_CERTIFICATION_ID= P_CERTIFICATION_ID
261 and
262 ctrl.OBJECT_TYPE = 'ACCOUNT' and
263 ctrl.ACCOUNT_GROUP_ID = P_ACCOUNT_GROUP_ID and
264 NATURAL_ACCOUNT_ID = P_ACCOUNT_ID and
265 opinion.pk1_value = ctrl.control_id and
266 opinion.pk3_value = ctrl.ORGANIZATION_ID and
267 opinion.OPINION_TYPE_CODE = 'EVALUATION' AND
268 opinion.OBJECT_NAME = 'AMW_ORG_CONTROL' and
269 ctrl.CONTROL_REV_ID =comp.OBJECT_ID and
270 comp.OBJECT_TYPE ='CONTROL' and
271 ctrlAsso.OBJECT_TYPE='RISK_FINCERT' and
272 ctrlAsso.PK1 = ctrl.FIN_CERTIFICATION_ID and
273 ctrlAsso.PK2 = ctrl.ORGANIZATION_ID and
274 ctrlAsso.CONTROL_ID = ctrl.control_id)
275 group by COMPONENT_CODE;
276
277
278 -- *************** Currsor to get all Control for the Fianancial Item being Passed ********** --
279
280 cursor COSO_COMPONENTS
281 is
282 select
283 LOOKUP_CODE
284 from
285 amw_lookups
286 where lookup_type = 'AMW_ASSESSMENT_COMPONENTS';
287
288 --********************* Get Inefftive Control *************************************************--
289
290
291
292
293
294 BEGIN
295
296 --m_component_code := null;
297 --ctr := 0;
298
299
300 -- ************ Since the Table has 30 Fileds only initialize 30 Positios in the Array**************--
301 ctr := 1;
302
303 loop
304 EXIT WHEN ctr > 30;
305
306 m_component_code(ctr) := null;
307 m_acc_assert_flag(ctr) := 'I';
308 m_total_control(ctr) := 0;
309 m_ineff_control(ctr) := 0;
310 m_evaluated_ctrls(ctr) := 0;
311
312
313 ctr := ctr + 1;
314 end loop; --end of initialization
315
316 -- ************ get All Control Components Codes and Load it in an Array for later use **************--
317
318 ctr := 0;
319 for coso_rec in COSO_COMPONENTS
320 loop
321 exit when COSO_COMPONENTS%notfound;
322 ctr := ctr + 1;
323 m_component_code(ctr) := coso_rec.LOOKUP_CODE;
324
325 end loop; --end of COSO_COMPONENTS loop
326
327 max_num_of_codes := ctr;
328
329 --dbms_output.put_line(' max_num_of_codes: ');
330 --dbms_output.put_line(max_num_of_codes);
331
332
333 if max_num_of_codes > 0 then
334
335 -- ************ get Total Controls and Ineff Ctrl for each Components Codes For a Financial Item**************--
336
337 if P_OBJECT_TYPE = 'FINANCIAL ITEM' then
338
339
340 -- ************ get Total Controls for each Components Codes and Load it in an Array for later use **************--
341
342 for tot_ctrls in tot_ctrl_of_item
343 loop
344 exit when tot_ctrl_of_item%notfound;
345 v_COMPONENT_CODE := tot_ctrls.COMPONENT_CODE;
346
347 ctr := 1;
348
349 -- check the code is in which bucket and the appropriately add the counts
350
351 while ctr <= max_num_of_codes
352 loop
353 if m_component_code(ctr) = v_COMPONENT_CODE then
354 m_total_control(ctr) := tot_ctrls.numOfCtrls;
355
356 --dbms_output.put_line( v_COMPONENT_CODE );
357 --dbms_output.put_line(' is the code and the total is ');
358
359 --dbms_output.put_line(m_total_control(ctr) );
360
361 exit;
362 end if;
363 ctr := ctr + 1;
364
365 end loop;
366 end loop; --end of tot_ctrl_of_item for the Financial Item loop
367
368 -- ************ get Total Controls Evaluted for each Components Codes and Load it in an Array for later use **************--
369
370 for tot_eval_ctrls in evaluated_ctrls_of_item
371 loop
372 exit when evaluated_ctrls_of_item%notfound;
373 v_COMPONENT_CODE := tot_eval_ctrls.COMPONENT_CODE;
374
375 ctr := 1;
376
377 -- check the code is in which bucket and the appropriately add the counts
378
379 while ctr <= max_num_of_codes
380 loop
381 if m_component_code(ctr) = v_COMPONENT_CODE then
382 m_evaluated_ctrls(ctr) := tot_eval_ctrls.numOfEvaluatedCtrls;
383
384
385 exit;
386 end if;
387 ctr := ctr + 1;
388
389 end loop;
390 end loop; --end of evaluated_ctrls_of_item for the Financial Item loop
391
392 -- ************ get Total Ineffective Controls for each Components Codes and Load it in an Array for later use **************--
393
394 for tot_ineff_ctrls in ineff_ctrl_of_item
395 loop
396 exit when ineff_ctrl_of_item%notfound;
397 v_COMPONENT_CODE := tot_ineff_ctrls.COMPONENT_CODE;
398
399 ctr := 1;
400
401 -- check the code is in which bucket and the appropriately add the counts
402
403 while ctr <= max_num_of_codes
404 loop
405 if m_component_code(ctr) = v_COMPONENT_CODE then
406
407 m_ineff_control(ctr) := tot_ineff_ctrls.numIneffCtrls ;
408
409
410 --dbms_output.put_line( v_COMPONENT_CODE );
411 --dbms_output.put_line(' is the code and the ineff ctrl is ');
412
413 --dbms_output.put_line(m_ineff_control(ctr) );
414
415 exit;
416 end if;
417 ctr := ctr + 1;
418
419 end loop;
420 end loop; --end of tot_ineff_ctrls for the Financial Item loop
421
422
423
424 end if; -- ****************** end if for P_OBJECT_TYPE = 'FINANCIAL ITEM'
425 -- ******************************************************************************************** ----
426 -- ************ get Total Controls and Ineff Ctrl for each Components Codes For a Account **************--
427 -- ********************************************************************************************----
428
429 if P_OBJECT_TYPE = 'ACCOUNT' then
430 -- ************ get Total Controls for each Components Codes and Load it in an Array for later use **************--
431
432 for tot_ctrls_acc in total_ctrl_of_accounts
433 loop
434 exit when total_ctrl_of_accounts%notfound;
435 v_COMPONENT_CODE := tot_ctrls_acc.COMPONENT_CODE;
436
437 ctr := 1;
438
439 -- check the code is in which bucket and the appropriately add the counts
440
441 while ctr <= max_num_of_codes
442 loop
443 if m_component_code(ctr) = v_COMPONENT_CODE then
444
445 m_total_control(ctr) := tot_ctrls_acc.numOfCtrls;
446 exit;
447 end if;
448 ctr := ctr + 1;
449 end loop;
450 end loop; --end of total_ctrl_of_accounts for the Account loop
451
452 -- ************ get Total Controls Evaluted for each Components Codes and Load it in an Array for later use **************--
453
454 for tot_eval_ctrls in evaluated_ctrls_of_acc
455 loop
456 exit when evaluated_ctrls_of_acc%notfound;
457 v_COMPONENT_CODE := tot_eval_ctrls.COMPONENT_CODE;
458
459 ctr := 1;
460
461 -- check the code is in which bucket and the appropriately add the counts
462
463 while ctr <= max_num_of_codes
464 loop
465 if m_component_code(ctr) = v_COMPONENT_CODE then
466 m_evaluated_ctrls(ctr) := tot_eval_ctrls.numOfEvaluatedCtrls;
467
468
469 exit;
470 end if;
471 ctr := ctr + 1;
472
473 end loop;
474 end loop; --end of evaluated_ctrls_of_acc for the Account loop
475
476
477
478
479 -- ************ get Total Ineffective Controls for each Components Codes and Load it in an Array for later use **************--
480
481 for tot_ineff_ctrls_acc in in_eff_ctrl_of_accounts
482 loop
483 exit when in_eff_ctrl_of_accounts%notfound;
484 v_COMPONENT_CODE := tot_ineff_ctrls_acc.COMPONENT_CODE;
485
486 ctr := 1;
487
488 -- check the code is in which bucket and the appropriately add the counts
489
490 while ctr <= max_num_of_codes
491 loop
492 if m_component_code(ctr) = v_COMPONENT_CODE then
493
494 m_ineff_control(ctr) := tot_ineff_ctrls_acc.numIneffCtrls;
495
496
497 exit;
498 end if;
499 ctr := ctr + 1;
500 end loop;
501 end loop; --end of in_eff_ctrl_of_accounts for the Account loop
502
503
504
505 end if; -- end if for P_OBJECT_TYPE = 'ACCOUNT'
506
507 -- ********************* set column flag to "ignore" if the total controls are 0 for the column
508
509 ctr := 1;
510 while ctr <= max_num_of_codes
511 loop
512
513 if nvl(m_total_control(ctr),0) > 0 then
514 m_acc_assert_flag(ctr) := 'N';
515 end if;
516 ctr := ctr +1;
517 end loop;
518
519
520 -- ************* Check at lease one control exists for the row *******************************
521
522 if set_display_flag(control_exists_array => m_total_control) then
523 m_display_flag := 'Y';
524 else
525 m_display_flag := 'N';
526 end if;
527
528 -- ************************** CALL Proc to Insert Data into the Table **************************************** --
529
530 m_object_version_number := 1;
531
532 amw_fin_coso_views_pvt.INSERT_ROW(
533 x_fin_certification_id => P_CERTIFICATION_ID ,
534 x_financial_statement_id => P_FINANCIAL_STATEMENT_ID ,
535 x_financial_item_id => P_FINANCIAL_ITEM_ID ,
536 x_account_group_id => P_ACCOUNT_GROUP_ID ,
537 x_natural_account_id => P_ACCOUNT_ID ,
538 x_object_type => P_OBJECT_TYPE ,
539 x_ctrl_attribute_type => m_ctrl_attribute_type ,
540 x_ctrl_attr_code_1 => m_component_code(1) ,
541 x_ineff_ctrl_attr_1 => m_ineff_control(1) ,
542 x_total_ctrl_attr_1 => m_total_control(1) ,
543 x_ctrl_attr_code_2 => m_component_code(2) ,
544 x_ineff_ctrl_attr_2 => m_ineff_control(2) ,
545 x_total_ctrl_attr_2 => m_total_control(2) ,
546 x_ctrl_attr_code_3 => m_component_code(3) ,
547 x_ineff_ctrl_attr_3 => m_ineff_control(3) ,
548 x_total_ctrl_attr_3 => m_total_control(3) ,
549 x_ctrl_attr_code_4 => m_component_code(4) ,
550 x_ineff_ctrl_attr_4 => m_ineff_control(4) ,
551 x_total_ctrl_attr_4 => m_total_control(4) ,
552 x_ctrl_attr_code_5 => m_component_code(5) ,
553 x_ineff_ctrl_attr_5 => m_ineff_control(5) ,
554 x_total_ctrl_attr_5 => m_total_control(5) ,
555 x_ctrl_attr_code_6 => m_component_code(6) ,
556 x_ineff_ctrl_attr_6 => m_ineff_control(6) ,
557 x_total_ctrl_attr_6 => m_total_control(6) ,
558 x_ctrl_attr_code_7 => m_component_code(7) ,
559 x_ineff_ctrl_attr_7 => m_ineff_control(7) ,
560 x_total_ctrl_attr_7 => m_total_control(7) ,
561 x_ctrl_attr_code_8 => m_component_code(8) ,
562 x_ineff_ctrl_attr_8 => m_ineff_control(8) ,
563 x_total_ctrl_attr_8 => m_total_control(8) ,
564 x_ctrl_attr_code_9 => m_component_code(9) ,
565 x_ineff_ctrl_attr_9 => m_ineff_control(9) ,
566 x_total_ctrl_attr_9 => m_total_control(9) ,
567 x_ctrl_attr_code_10 => m_component_code(10) ,
568 x_ineff_ctrl_attr_10 => m_ineff_control(10) ,
569 x_total_ctrl_attr_10 => m_total_control(10) ,
570 x_ctrl_attr_code_11 => m_component_code(11) ,
571 x_ineff_ctrl_attr_11 => m_ineff_control(11) ,
572 x_total_ctrl_attr_11 => m_total_control(11) ,
573 x_ctrl_attr_code_12 => m_component_code(12) ,
574 x_ineff_ctrl_attr_12 => m_ineff_control(12) ,
575 x_total_ctrl_attr_12 => m_total_control(12) ,
576 x_ctrl_attr_code_13 => m_component_code(13) ,
577 x_ineff_ctrl_attr_13 => m_ineff_control(13) ,
578 x_total_ctrl_attr_13 => m_total_control(13) ,
579 x_ctrl_attr_code_14 => m_component_code(14) ,
580 x_ineff_ctrl_attr_14 => m_ineff_control(14) ,
581 x_total_ctrl_attr_14 => m_total_control(14) ,
582 x_ctrl_attr_code_15 => m_component_code(15) ,
583 x_ineff_ctrl_attr_15 => m_ineff_control(15) ,
584 x_total_ctrl_attr_15 => m_total_control(15) ,
585 x_ctrl_attr_code_16 => m_component_code(16) ,
586 x_ineff_ctrl_attr_16 => m_ineff_control(16) ,
587 x_total_ctrl_attr_16 => m_total_control(16) ,
588 x_ctrl_attr_code_17 => m_component_code(17) ,
589 x_ineff_ctrl_attr_17 => m_ineff_control(17) ,
590 x_total_ctrl_attr_17 => m_total_control(17) ,
591 x_ctrl_attr_code_18 => m_component_code(18) ,
592 x_ineff_ctrl_attr_18 => m_ineff_control(18) ,
593 x_total_ctrl_attr_18 => m_total_control(18) ,
594 x_ctrl_attr_code_19 => m_component_code(19) ,
595 x_ineff_ctrl_attr_19 => m_ineff_control(19) ,
596 x_total_ctrl_attr_19 => m_total_control(19) ,
597 x_ctrl_attr_code_20 => m_component_code(20) ,
598 x_ineff_ctrl_attr_20 => m_ineff_control(20) ,
599 x_total_ctrl_attr_20 => m_total_control(20) ,
600 x_ctrl_attr_code_21 => m_component_code(21) ,
601 x_ineff_ctrl_attr_21 => m_ineff_control(21) ,
602 x_total_ctrl_attr_21 => m_total_control(21) ,
603 x_ctrl_attr_code_22 => m_component_code(22) ,
604 x_ineff_ctrl_attr_22 => m_ineff_control(22) ,
605 x_total_ctrl_attr_22 => m_total_control(22) ,
606 x_ctrl_attr_code_23 => m_component_code(23) ,
607 x_ineff_ctrl_attr_23 => m_ineff_control(23) ,
608 x_total_ctrl_attr_23 => m_total_control(23) ,
609 x_ctrl_attr_code_24 => m_component_code(24) ,
610 x_ineff_ctrl_attr_24 => m_ineff_control(24) ,
611 x_total_ctrl_attr_24 => m_total_control(24) ,
612 x_ctrl_attr_code_25 => m_component_code(25) ,
613 x_ineff_ctrl_attr_25 => m_ineff_control(25) ,
614 x_total_ctrl_attr_25 => m_total_control(25) ,
615 x_ctrl_attr_code_26 => m_component_code(26) ,
616 x_ineff_ctrl_attr_26 => m_ineff_control(26) ,
617 x_total_ctrl_attr_26 => m_total_control(26) ,
618 x_ctrl_attr_code_27 => m_component_code(27) ,
619 x_ineff_ctrl_attr_27 => m_ineff_control(27) ,
620 x_total_ctrl_attr_27 => m_total_control(27) ,
621 x_ctrl_attr_code_28 => m_component_code(28) ,
622 x_ineff_ctrl_attr_28 => m_ineff_control(28) ,
623 x_total_ctrl_attr_28 => m_total_control(28) ,
624 x_ctrl_attr_code_29 => m_component_code(29) ,
625 x_ineff_ctrl_attr_29 => m_ineff_control(29) ,
626 x_total_ctrl_attr_29 => m_total_control(29) ,
627 x_ctrl_attr_code_30 => m_component_code(30) ,
628 x_ineff_ctrl_attr_30 => m_ineff_control(30) ,
629 x_total_ctrl_attr_30 => m_total_control(30) ,
630 x_created_by => g_user_id ,
631 x_creation_date => SYSDATE ,
632 x_last_updated_by => g_user_id ,
633 x_last_update_date => SYSDATE ,
634 x_last_update_login => g_login_id ,
635 --x_security_group_id => null ,
636 x_object_version_number => m_object_version_number ,
637 x_acc_assert_flag1 => m_acc_assert_flag(1),
638 x_acc_assert_flag2 => m_acc_assert_flag(2),
639 x_acc_assert_flag3 => m_acc_assert_flag(3),
640 x_acc_assert_flag4 => m_acc_assert_flag(4),
641 x_acc_assert_flag5 => m_acc_assert_flag(5),
642 x_acc_assert_flag6 => m_acc_assert_flag(6),
643 x_acc_assert_flag7 => m_acc_assert_flag(7),
644 x_acc_assert_flag8 => m_acc_assert_flag(8),
645 x_acc_assert_flag9 => m_acc_assert_flag(9),
646 x_acc_assert_flag10 => m_acc_assert_flag(10),
647 x_acc_assert_flag11 => m_acc_assert_flag(11),
648 x_acc_assert_flag12 => m_acc_assert_flag(12),
649 x_acc_assert_flag13 => m_acc_assert_flag(13),
650 x_acc_assert_flag14 => m_acc_assert_flag(14),
651 x_acc_assert_flag15 => m_acc_assert_flag(15),
652 x_acc_assert_flag16 => m_acc_assert_flag(16),
653 x_acc_assert_flag17 => m_acc_assert_flag(17),
654 x_acc_assert_flag18 => m_acc_assert_flag(18),
655 x_acc_assert_flag19 => m_acc_assert_flag(19),
656 x_acc_assert_flag20 => m_acc_assert_flag(20),
657 x_acc_assert_flag21 => m_acc_assert_flag(21),
658 x_acc_assert_flag22 => m_acc_assert_flag(22),
659 x_acc_assert_flag23 => m_acc_assert_flag(23),
660 x_acc_assert_flag24 => m_acc_assert_flag(24),
661 x_acc_assert_flag25 => m_acc_assert_flag(25),
662 x_acc_assert_flag26 => m_acc_assert_flag(26),
663 x_acc_assert_flag27 => m_acc_assert_flag(27),
664 x_acc_assert_flag28 => m_acc_assert_flag(28),
665 x_acc_assert_flag29 => m_acc_assert_flag(29),
666 x_acc_assert_flag30 => m_acc_assert_flag(30),
667 x_eval_ctrl_attr_1 => m_evaluated_ctrls(1),
668 x_eval_ctrl_attr_2 => m_evaluated_ctrls(2),
669 x_eval_ctrl_attr_3 => m_evaluated_ctrls(3),
670 x_eval_ctrl_attr_4 => m_evaluated_ctrls(4),
671 x_eval_ctrl_attr_5 => m_evaluated_ctrls(5),
672 x_eval_ctrl_attr_6 => m_evaluated_ctrls(6),
673 x_eval_ctrl_attr_7 => m_evaluated_ctrls(7),
674 x_eval_ctrl_attr_8 => m_evaluated_ctrls(8),
675 x_eval_ctrl_attr_9 => m_evaluated_ctrls(9),
676 x_eval_ctrl_attr_10 => m_evaluated_ctrls(10),
677 x_eval_ctrl_attr_11 => m_evaluated_ctrls(11),
678 x_eval_ctrl_attr_12 => m_evaluated_ctrls(12),
679 x_eval_ctrl_attr_13 => m_evaluated_ctrls(13),
680 x_eval_ctrl_attr_14 => m_evaluated_ctrls(14),
681 x_eval_ctrl_attr_15 => m_evaluated_ctrls(15),
682 x_eval_ctrl_attr_16 => m_evaluated_ctrls(16),
683 x_eval_ctrl_attr_17 => m_evaluated_ctrls(17),
684 x_eval_ctrl_attr_18 => m_evaluated_ctrls(18),
685 x_eval_ctrl_attr_19 => m_evaluated_ctrls(19),
686 x_eval_ctrl_attr_20 => m_evaluated_ctrls(20),
687 x_eval_ctrl_attr_21 => m_evaluated_ctrls(21),
688 x_eval_ctrl_attr_22 => m_evaluated_ctrls(22),
689 x_eval_ctrl_attr_23 => m_evaluated_ctrls(23),
690 x_eval_ctrl_attr_24 => m_evaluated_ctrls(24),
691 x_eval_ctrl_attr_25 => m_evaluated_ctrls(25),
692 x_eval_ctrl_attr_26 => m_evaluated_ctrls(26),
693 x_eval_ctrl_attr_27 => m_evaluated_ctrls(27),
694 x_eval_ctrl_attr_28 => m_evaluated_ctrls(28),
695 x_eval_ctrl_attr_29 => m_evaluated_ctrls(29),
696 x_eval_ctrl_attr_30 => m_evaluated_ctrls(30),
697 x_display_flag => m_display_flag );
698
699
700 end if; -- end if for max_num_of_codes
701
702
703 -- ************ EXCEPTION definitions for the Procedure **************--
704
705 EXCEPTION
706 WHEN NO_DATA_FOUND
707 THEN
708 fnd_file.put_line (fnd_file.LOG, SUBSTR ('No data found in Update_Next_Level_Proc_Info'
709 || SUBSTR (SQLERRM, 1, 100), 1, 200));
710
711 WHEN OTHERS
712 THEN
713 fnd_file.put_line (fnd_file.LOG, SUBSTR ('Unexpected Error in Update_Next_Level_Proc_Info'
714 || SUBSTR (SQLERRM, 1, 100), 1, 200));
715
716 ---COMMIT;
717 end;
718 end ; --create_fin_ctrl_components
719
720 /* ******************************** Logic to build Control Objective-wise Summary Data *************************************** */
721
722
723 PROCEDURE create_fin_ctrl_objectives
724 (P_CERTIFICATION_ID number ,
725 P_FINANCIAL_STATEMENT_ID number,
726 P_STATEMENT_GROUP_ID number,
727 P_FINANCIAL_ITEM_ID number,
728 P_ACCOUNT_GROUP_ID number ,
729 P_ACCOUNT_ID number ,
730 P_OBJECT_TYPE varchar2 ) is
731
732 /* ************************************** Example of Paraemters received *************************************
733
734 For Financial Items the Parameter Passed will be
735 (P_CERTIFICATION_ID => l_certification_id,
736 P_FINANCIAL_STATEMENT_ID => Get_all_items_Rec.FINANCIAL_STATEMENT_ID ,
737 P_STATEMENT_GROUP_ID => Get_all_items_Rec.STATEMENT_GROUP_ID ,
738 P_FINANCIAL_ITEM_ID => Get_all_items_Rec.FINANCIAL_ITEM_ID,
739 P_ACCOUNT_GROUP_ID => NULL,
740 P_ACCOUNT_ID => NULL,
741 P_OBJECT_TYPE => 'FINANCIAL ITEM')
742
743 For Key Accounts the Parameter Passed will be
744
745 (P_CERTIFICATION_ID => l_certification_id,
746 P_STATEMENT_GROUP_ID => Get_all_accts_Rec.STATEMENT_GROUP_ID ,
747 P_FINANCIAL_STATEMENT_ID => Get_all_accts_Rec.FINANCIAL_STATEMENT_ID,
748 P_FINANCIAL_ITEM_ID => Get_all_accts_Rec.financial_item_id,
749 P_ACCOUNT_ID => Get_all_accts_Rec.natural_account_id,
750 P_ACCOUNT_GROUP_ID => Get_all_accts_Rec.account_group_id,
751 P_OBJECT_TYPE => 'ACCOUNT');
752
753
754 *******************************************************************************************************************
755 */
756
757 begin
758 declare
759
760
761 ctr integer :=0;
762 max_num_of_codes integer :=0;
763 m_ctrl_attribute_type VARCHAR2(30) :='CTRL_OBJECTIVES';
764
765 m_objectives_code component_code_array;
766 m_total_control total_control_array ;
767 m_ineff_control ineff_control_array ;
768 m_acc_assert_flag component_code_array;
769 m_evaluated_ctrls total_control_array ;
770
771
772
773 m_display_flag varchar2(1) := 'N';
774
775 v_OBJECTIVE_CODE varchar2(30);
776
777 g_user_id NUMBER := fnd_global.user_id;
778 g_login_id NUMBER := fnd_global.conc_login_id;
779 g_errbuf VARCHAR2(2000) := null;
780 g_retcode VARCHAR2(2) := '0';
781
782 -- *************** Currsor to get all Control for the Fianancial Item being Passed ********** --
783
784 cursor ineff_ctrl_of_item
785 is
786 select
787 count(1) numIneffCtrls,
788 OBJECTIVE_CODE
789 from
790 (select
791 distinct
792 ctrl.ORGANIZATION_ID, ctrl.control_id, comp.OBJECTIVE_CODE
793 from
794 amw.amw_fin_item_acc_ctrl ctrl,
795 amw_opinions_log_v opinion,
796 amw_control_objectives comp,
797 amw_control_associations ctrlAsso
798 where
799 ctrl.FIN_CERTIFICATION_ID= P_CERTIFICATION_ID and
800 ctrl.OBJECT_TYPE = 'FINANCIAL ITEM' and
801 ctrl.FINANCIAL_ITEM_ID= P_FINANCIAL_ITEM_ID and
802 -- ctrl.ACCOUNT_GROUP_ID is null and
803 -- ctrl.NATURAL_ACCOUNT_ID is null and
804 -- opinion.OPINION_LOG_ID = ctrl.OPINION_LOG_ID and
805 opinion.pk1_value = ctrl.control_id and
806 opinion.pk3_value = ctrl.ORGANIZATION_ID and
807 opinion.audit_result_CODE <> 'EFFECTIVE' and
808 opinion.OPINION_TYPE_CODE = 'EVALUATION' AND
809 opinion.OBJECT_NAME = 'AMW_ORG_CONTROL' and
810 ctrl.CONTROL_REV_ID =comp.CONTROL_REV_ID and
811 ctrlAsso.OBJECT_TYPE='RISK_FINCERT' and
812 opinion.OPINION_LOG_ID = ctrlAsso.PK5 and
813 ctrlAsso.PK1 = ctrl.FIN_CERTIFICATION_ID and
814 ctrlAsso.PK2 = ctrl.ORGANIZATION_ID and
815 ctrlAsso.CONTROL_ID = ctrl.control_id)
816 group by OBJECTIVE_CODE;
817
818 ---------------------------------------------------------------------------
819 cursor tot_ctrl_of_item
820 is
821 select
822 count(1) numOfCtrls,
823 comp.OBJECTIVE_CODE
824 from
825 amw.amw_fin_item_acc_ctrl ctrl,
826 amw_control_objectives comp
827 where
828 ctrl.FIN_CERTIFICATION_ID=P_CERTIFICATION_ID and
829 ctrl.OBJECT_TYPE = 'FINANCIAL ITEM' and
830 ctrl.FINANCIAL_ITEM_ID= P_FINANCIAL_ITEM_ID and
831 --ctrl.ACCOUNT_GROUP_ID is null and
832 --ctrl.NATURAL_ACCOUNT_ID is null and
833 ctrl.CONTROL_REV_ID =comp.CONTROL_REV_ID
834 group by OBJECTIVE_CODE;
835
836 -----------------------------------------------------------------------------
837 cursor evaluated_ctrls_of_item
838 is
839 select
840 count(1) numOfEvaluatedCtrls,
841 OBJECTIVE_CODE
842 from
843 (select
844 distinct
845 ctrl.ORGANIZATION_ID, ctrl.control_id, comp.OBJECTIVE_CODE
846 from
847 amw.amw_fin_item_acc_ctrl ctrl,
848 amw_opinions_log_v opinion,
849 amw_control_objectives comp,
850 amw_control_associations ctrlAsso
851 where
852 ctrl.FIN_CERTIFICATION_ID= P_CERTIFICATION_ID
853 and
854 ctrl.OBJECT_TYPE = 'FINANCIAL ITEM' and
855 ctrl.FINANCIAL_ITEM_ID= P_FINANCIAL_ITEM_ID
856 and
857 opinion.pk1_value = ctrl.control_id and
858 opinion.pk3_value = ctrl.ORGANIZATION_ID and
859 opinion.OPINION_TYPE_CODE = 'EVALUATION' AND
860 opinion.OBJECT_NAME = 'AMW_ORG_CONTROL' and
861 ctrl.CONTROL_REV_ID =comp.CONTROL_REV_ID and
862 ctrlAsso.OBJECT_TYPE='RISK_FINCERT' and
863 ctrlAsso.PK1 = ctrl.FIN_CERTIFICATION_ID and
864 ctrlAsso.PK2 = ctrl.ORGANIZATION_ID and
865 ctrlAsso.CONTROL_ID = ctrl.control_id)
866 group by OBJECTIVE_CODE;
867
868
869 -- *************** Currsor to get all Control for the Fianancial Item being Passed ********** --
870
871 cursor in_eff_ctrl_of_accounts
872 is
873 --fix bug 5768982 on 2-12-2007
874 /*****
875 select
876 count(1) numIneffCtrls,
877 OBJECTIVE_CODE from
878 (select
879 distinct
880 ctrl.ORGANIZATION_ID, ctrl.control_id, comp.OBJECTIVE_CODE
881 from
882 amw.amw_fin_item_acc_ctrl ctrl,
883 amw_opinions_log_v opinion,
884 amw_control_objectives comp,
885 amw_control_associations ctrlAsso
886 where
887 ctrl.FIN_CERTIFICATION_ID= P_CERTIFICATION_ID and
888 ctrl.OBJECT_TYPE = 'ACCOUNT' and
889 --ctrl.FINANCIAL_ITEM_ID= P_FINANCIAL_ITEM_ID and
890 ctrl.ACCOUNT_GROUP_ID = P_ACCOUNT_GROUP_ID and
891 NATURAL_ACCOUNT_ID = P_ACCOUNT_ID and
892 --opinion.OPINION_LOG_ID = ctrl.OPINION_LOG_ID and
893 opinion.pk1_value = ctrl.control_id and
894 opinion.pk3_value = ctrl.ORGANIZATION_ID and
895 opinion.audit_result_CODE <> 'EFFECTIVE' and
896 opinion.OPINION_TYPE_CODE = 'EVALUATION' AND
897 opinion.OBJECT_NAME = 'AMW_ORG_CONTROL' and
898 ctrl.CONTROL_REV_ID =comp.CONTROL_REV_ID and
899 ctrlAsso.OBJECT_TYPE='RISK_FINCERT' and
900 opinion.OPINION_LOG_ID = ctrlAsso.PK5 and
901 ctrlAsso.PK1 = ctrl.FIN_CERTIFICATION_ID and
902 ctrlAsso.PK2 = ctrl.ORGANIZATION_ID and
903 ctrlAsso.CONTROL_ID = ctrl.control_id)
904 group by OBJECTIVE_CODE;
905 ****/
906 SELECT COUNT(1) NUMINEFFCTRLS, OBJECTIVE_CODE
907 FROM
908 (SELECT DISTINCT CTRL.ORGANIZATION_ID, CTRL.CONTROL_ID, COMP.OBJECTIVE_CODE
909 FROM AMW.AMW_FIN_ITEM_ACC_CTRL CTRL,
910 AMW_CONTROL_OBJECTIVES COMP
911 WHERE
912 CTRL.FIN_CERTIFICATION_ID= P_CERTIFICATION_ID
913 AND CTRL.OBJECT_TYPE = 'ACCOUNT'
914 AND CTRL.ACCOUNT_GROUP_ID = P_ACCOUNT_GROUP_ID
915 AND NATURAL_ACCOUNT_ID = P_ACCOUNT_ID
916 AND CTRL.CONTROL_REV_ID =COMP.CONTROL_REV_ID
917 AND EXISTS
918 (SELECT 1 FROM
919 AMW_CONTROL_ASSOCIATIONS CTRLASSO
920 WHERE
921 CTRLASSO.OBJECT_TYPE='RISK_FINCERT'
922 AND CTRLASSO.PK1 = P_CERTIFICATION_ID
923 AND CTRLASSO.PK2 = CTRL.ORGANIZATION_ID
924 AND CTRLASSO.CONTROL_ID = CTRL.CONTROL_ID
925 AND EXISTS
926 (SELECT 1 FROM AMW_OPINIONS_LOG_V OPINION
927 WHERE
928 OPINION.OPINION_LOG_ID = CTRLASSO.PK5
929 AND OPINION.PK1_VALUE = CTRLASSO.CONTROL_ID
930 AND OPINION.PK3_VALUE = CTRLASSO.PK2
931 AND OPINION.AUDIT_RESULT_CODE <> 'EFFECTIVE'
932 AND OPINION.OPINION_TYPE_CODE = 'EVALUATION'
933 AND OPINION.OBJECT_NAME = 'AMW_ORG_CONTROL'
934 ))) GROUP BY OBJECTIVE_CODE ;
935
936 ---------------------------------------------------------------------------------------------------
937 cursor evaluated_ctrls_of_acc
938 is
939 select
940 count(1) numOfEvaluatedCtrls,
941 OBJECTIVE_CODE from
942 (select
943 distinct
944 ctrl.ORGANIZATION_ID, ctrl.control_id, comp.OBJECTIVE_CODE
945 from
946 amw.amw_fin_item_acc_ctrl ctrl,
947 amw_opinions_log_v opinion,
948 amw_control_objectives comp,
949 amw_control_associations ctrlAsso
950 where
951 ctrl.FIN_CERTIFICATION_ID= P_CERTIFICATION_ID
952 and
953 ctrl.OBJECT_TYPE = 'ACCOUNT' and
954 ctrl.ACCOUNT_GROUP_ID = P_ACCOUNT_GROUP_ID
955 and
956 NATURAL_ACCOUNT_ID = P_ACCOUNT_ID
957 and
958 opinion.pk1_value = ctrl.control_id and
959 opinion.pk3_value = ctrl.ORGANIZATION_ID and
960 opinion.OPINION_TYPE_CODE = 'EVALUATION' AND
961 opinion.OBJECT_NAME = 'AMW_ORG_CONTROL' and
962 ctrl.CONTROL_REV_ID =comp.CONTROL_REV_ID and
963 ctrlAsso.OBJECT_TYPE='RISK_FINCERT' and
964 ctrlAsso.PK1 = ctrl.FIN_CERTIFICATION_ID and
965 ctrlAsso.PK2 = ctrl.ORGANIZATION_ID and
966 ctrlAsso.CONTROL_ID = ctrl.control_id)
967 group by OBJECTIVE_CODE;
968
969 ------------------------------------------------------------------------------------------------
970 cursor total_ctrl_of_accounts
971 is
972 select
973 count(1) numOfCtrls,
974 comp.OBJECTIVE_CODE
975 from
976 amw.amw_fin_item_acc_ctrl ctrl,
977 amw_control_objectives comp
978 where
979 ctrl.FIN_CERTIFICATION_ID= P_CERTIFICATION_ID and
980 ctrl.OBJECT_TYPE = 'ACCOUNT' and
981 -- ctrl.FINANCIAL_ITEM_ID= P_FINANCIAL_ITEM_ID and
982 ACCOUNT_GROUP_ID = P_ACCOUNT_GROUP_ID and
983 NATURAL_ACCOUNT_ID =P_ACCOUNT_ID and
984 ctrl.CONTROL_REV_ID =comp.CONTROL_REV_ID
985 group by OBJECTIVE_CODE;
986
987
988
989 -- *************** Currsor to get all Control AMW_CONTROL_OBJECTIVES ********** --
990
991 cursor CTRL_OBJECTIVES
992 is
993 select
994 LOOKUP_CODE
995 from
996 amw_lookups
997 where lookup_type = 'AMW_CONTROL_OBJECTIVES';
998
999 --********************* Get Inefftive Control *************************************************--
1000
1001
1002
1003 BEGIN
1004
1005 --m_objectives_code := null;
1006 --ctr := 0;
1007
1008
1009 -- ************ Since the Table has 30 Fileds only initialize 30 Positios in the Array**************--
1010 ctr := 1;
1011
1012 loop
1013 EXIT WHEN ctr > 30;
1014
1015 m_objectives_code(ctr) := null;
1016 m_acc_assert_flag(ctr) := 'I';
1017 m_total_control(ctr) := 0;
1018 m_ineff_control(ctr) := 0;
1019 m_evaluated_ctrls (ctr) := 0;
1020
1021
1022 ctr := ctr + 1;
1023
1024 end loop; --end of initialization
1025
1026 -- ************ get All Control Components Codes and Load it in an Array for later use **************--
1027
1028 ctr := 0;
1029 for coso_rec in CTRL_OBJECTIVES
1030 loop
1031 exit when CTRL_OBJECTIVES%notfound;
1032 ctr := ctr + 1;
1033 m_objectives_code(ctr) := coso_rec.LOOKUP_CODE;
1034
1035 end loop; --end of CTRL_OBJECTIVES loop
1036
1037 max_num_of_codes := ctr;
1038
1039 --dbms_output.put_line(' max_num_of_codes: ');
1040 --dbms_output.put_line(max_num_of_codes);
1041
1042
1043 if max_num_of_codes > 0 then
1044
1045 -- ************ get Total Controls and Ineff Ctrl for each Control Objective Codes For a Financial Item**************--
1046
1047 if P_OBJECT_TYPE = 'FINANCIAL ITEM' then
1048 -- ************ get Total Controls for each objective / category Codes and Load it in an Array for later use **************--
1049
1050 for tot_ctrls in tot_ctrl_of_item
1051 loop
1052 exit when tot_ctrl_of_item%notfound;
1053 v_OBJECTIVE_CODE := tot_ctrls.OBJECTIVE_CODE;
1054
1055 ctr := 1;
1056
1057 -- check the code is in which bucket and the appropriately add the counts
1058
1059 while ctr <= max_num_of_codes
1060 loop
1061 if m_objectives_code(ctr) = v_OBJECTIVE_CODE then
1062 m_total_control(ctr) := tot_ctrls.numOfCtrls;
1063
1064 --dbms_output.put_line( v_OBJECTIVE_CODE );
1065 --dbms_output.put_line(' is the code and the total is ');
1066
1067 --dbms_output.put_line(m_total_control(ctr) );
1068
1069 exit;
1070 end if;
1071 ctr := ctr + 1;
1072
1073 end loop;
1074 end loop; --end of tot_ctrl_of_item for the Financial Item loop
1075
1076 -- ************ get Total Controls Evaluted for each objective/category Codes and Load it in an Array for later use **************--
1077
1078 for tot_eval_ctrls in evaluated_ctrls_of_item
1079 loop
1080 exit when evaluated_ctrls_of_item%notfound;
1081 v_OBJECTIVE_CODE := tot_eval_ctrls.OBJECTIVE_CODE;
1082
1083 ctr := 1;
1084
1085 -- check the code is in which bucket and the appropriately add the counts
1086
1087 while ctr <= max_num_of_codes
1088 loop
1089 if m_objectives_code(ctr) = v_OBJECTIVE_CODE then
1090 m_evaluated_ctrls(ctr) := tot_eval_ctrls.numOfEvaluatedCtrls;
1091
1092
1093 exit;
1094 end if;
1095 ctr := ctr + 1;
1096
1097 end loop;
1098 end loop; --end of evaluated_ctrls_of_item for the Fin Item loop
1099
1100
1101
1102 -- ************ get Total Ineffective Controls for each objectives/ category Codes and Load it in an Array for later use **************--
1103
1104 for tot_ineff_ctrls in ineff_ctrl_of_item
1105 loop
1106 exit when ineff_ctrl_of_item%notfound;
1107 v_OBJECTIVE_CODE := tot_ineff_ctrls.OBJECTIVE_CODE;
1108
1109 ctr := 1;
1110
1111 -- check the code is in which bucket and the appropriately add the counts
1112
1113 while ctr <= max_num_of_codes
1114 loop
1115 if m_objectives_code(ctr) = v_OBJECTIVE_CODE then
1116
1117 m_ineff_control(ctr) := tot_ineff_ctrls.numIneffCtrls ;
1118
1119
1120
1121 --dbms_output.put_line( v_OBJECTIVE_CODE );
1122 --dbms_output.put_line(' is the code and the ineff ctrl is ');
1123
1124 --dbms_output.put_line(m_ineff_control(ctr) );
1125
1126 exit;
1127 end if;
1128 ctr := ctr + 1;
1129
1130 end loop;
1131 end loop; --end of tot_ineff_ctrls for the Financial Item loop
1132
1133
1134
1135 end if; -- ****************** end if for P_OBJECT_TYPE = 'FINANCIAL ITEM'
1136 -- ******************************************************************************************** ----
1137 -- ************ get Total Controls and Ineff Ctrl for each Components Codes For a Account **************--
1138 -- ********************************************************************************************----
1139
1140 if P_OBJECT_TYPE = 'ACCOUNT' then
1141 -- ************ get Total Controls for each control objective/category Codes and Load it in an Array for later use **************--
1142
1143 for tot_ctrls_acc in total_ctrl_of_accounts
1144 loop
1145 exit when total_ctrl_of_accounts%notfound;
1146 v_OBJECTIVE_CODE := tot_ctrls_acc.OBJECTIVE_CODE;
1147
1148 ctr := 1;
1149
1150 -- check the code is in which bucket and the appropriately add the counts
1151
1152 while ctr <= max_num_of_codes
1153 loop
1154
1155 if m_objectives_code(ctr) = v_OBJECTIVE_CODE then
1156 m_total_control(ctr) := tot_ctrls_acc.numOfCtrls;
1157 exit;
1158 end if;
1159 ctr := ctr + 1;
1160 end loop;
1161 end loop; --end of total_ctrl_of_accounts for the Account loop
1162
1163 -- ************ get Total Controls Evaluted for each objective/category Codes and Load it in an Array for later use **************--
1164
1165 for tot_eval_ctrls in evaluated_ctrls_of_acc
1166 loop
1167 exit when evaluated_ctrls_of_acc%notfound;
1168 v_OBJECTIVE_CODE := tot_eval_ctrls.OBJECTIVE_CODE;
1169
1170 ctr := 1;
1171
1172 -- check the code is in which bucket and the appropriately add the counts
1173
1174 while ctr <= max_num_of_codes
1175 loop
1176 if m_objectives_code(ctr) = v_OBJECTIVE_CODE then
1177 m_evaluated_ctrls(ctr) := tot_eval_ctrls.numOfEvaluatedCtrls;
1178 exit;
1179 end if;
1180 ctr := ctr + 1;
1181
1182 end loop;
1183 end loop; --end of evaluated_ctrls_of_acc for the Account loop
1184
1185
1186 -- ************ get Total Ineffective Controls for each Components Codes and Load it in an Array for later use **************--
1187
1188 for tot_ineff_ctrls_acc in in_eff_ctrl_of_accounts
1189 loop
1190 exit when in_eff_ctrl_of_accounts%notfound;
1191 v_OBJECTIVE_CODE := tot_ineff_ctrls_acc.OBJECTIVE_CODE;
1192
1193 ctr := 1;
1194
1195 -- check the code is in which bucket and the appropriately add the counts
1196
1197 while ctr <= max_num_of_codes
1198 loop
1199 if m_objectives_code(ctr) = v_OBJECTIVE_CODE then
1200
1201 m_ineff_control(ctr) := tot_ineff_ctrls_acc.numIneffCtrls;
1202
1203
1204 exit;
1205 end if;
1206 ctr := ctr + 1;
1207 end loop;
1208 end loop; --end of in_eff_ctrl_of_accounts for the Account loop
1209
1210
1211
1212 end if; -- end if for P_OBJECT_TYPE = 'ACCOUNT'
1213
1214 -- ********************* set column flag to "N" if there is at least on control for the objective or cotinue to be
1215 -- "ignore" if the total controls are 0 for the column
1216
1217 ctr := 1;
1218 while ctr <= max_num_of_codes
1219 loop
1220
1221 if nvl(m_total_control(ctr),0) > 0 then
1222 m_acc_assert_flag(ctr) := 'N';
1223 end if;
1224 ctr := ctr +1;
1225 end loop;
1226
1227 -- ************* Check at lease one control exists for the row *******************************
1228
1229 if set_display_flag(control_exists_array => m_total_control) then
1230 m_display_flag := 'Y';
1231 else
1232 m_display_flag := 'N';
1233 end if;
1234
1235
1236
1237 -- ************************** CALL Proc to Insert Data into the Table **************************************** --
1238
1239 --dbms_output.put_line('Objective - before inserting data');
1240
1241 amw_fin_coso_views_pvt.INSERT_ROW(
1242 x_fin_certification_id => P_CERTIFICATION_ID ,
1243 x_financial_statement_id => P_FINANCIAL_STATEMENT_ID ,
1244 x_financial_item_id => P_FINANCIAL_ITEM_ID ,
1245 x_account_group_id => P_ACCOUNT_GROUP_ID ,
1246 x_natural_account_id => P_ACCOUNT_ID ,
1247 x_object_type => P_OBJECT_TYPE ,
1248 x_ctrl_attribute_type => m_ctrl_attribute_type ,
1249 x_ctrl_attr_code_1 => m_objectives_code(1) ,
1250 x_ineff_ctrl_attr_1 => m_ineff_control(1) ,
1251 x_total_ctrl_attr_1 => m_total_control(1) ,
1252 x_ctrl_attr_code_2 => m_objectives_code(2) ,
1253 x_ineff_ctrl_attr_2 => m_ineff_control(2) ,
1254 x_total_ctrl_attr_2 => m_total_control(2) ,
1255 x_ctrl_attr_code_3 => m_objectives_code(3) ,
1256 x_ineff_ctrl_attr_3 => m_ineff_control(3) ,
1257 x_total_ctrl_attr_3 => m_total_control(3) ,
1258 x_ctrl_attr_code_4 => m_objectives_code(4) ,
1259 x_ineff_ctrl_attr_4 => m_ineff_control(4) ,
1260 x_total_ctrl_attr_4 => m_total_control(4) ,
1261 x_ctrl_attr_code_5 => m_objectives_code(5) ,
1262 x_ineff_ctrl_attr_5 => m_ineff_control(5) ,
1263 x_total_ctrl_attr_5 => m_total_control(5) ,
1264 x_ctrl_attr_code_6 => m_objectives_code(6) ,
1265 x_ineff_ctrl_attr_6 => m_ineff_control(6) ,
1266 x_total_ctrl_attr_6 => m_total_control(6) ,
1267 x_ctrl_attr_code_7 => m_objectives_code(7) ,
1268 x_ineff_ctrl_attr_7 => m_ineff_control(7) ,
1269 x_total_ctrl_attr_7 => m_total_control(7) ,
1270 x_ctrl_attr_code_8 => m_objectives_code(8) ,
1271 x_ineff_ctrl_attr_8 => m_ineff_control(8) ,
1272 x_total_ctrl_attr_8 => m_total_control(8) ,
1273 x_ctrl_attr_code_9 => m_objectives_code(9) ,
1274 x_ineff_ctrl_attr_9 => m_ineff_control(9) ,
1275 x_total_ctrl_attr_9 => m_total_control(9) ,
1276 x_ctrl_attr_code_10 => m_objectives_code(10) ,
1277 x_ineff_ctrl_attr_10 => m_ineff_control(10) ,
1278 x_total_ctrl_attr_10 => m_total_control(10) ,
1279 x_ctrl_attr_code_11 => m_objectives_code(11) ,
1280 x_ineff_ctrl_attr_11 => m_ineff_control(11) ,
1281 x_total_ctrl_attr_11 => m_total_control(11) ,
1282 x_ctrl_attr_code_12 => m_objectives_code(12) ,
1283 x_ineff_ctrl_attr_12 => m_ineff_control(12) ,
1284 x_total_ctrl_attr_12 => m_total_control(12) ,
1285 x_ctrl_attr_code_13 => m_objectives_code(13) ,
1286 x_ineff_ctrl_attr_13 => m_ineff_control(13) ,
1287 x_total_ctrl_attr_13 => m_total_control(13) ,
1288 x_ctrl_attr_code_14 => m_objectives_code(14) ,
1289 x_ineff_ctrl_attr_14 => m_ineff_control(14) ,
1290 x_total_ctrl_attr_14 => m_total_control(14) ,
1291 x_ctrl_attr_code_15 => m_objectives_code(15) ,
1292 x_ineff_ctrl_attr_15 => m_ineff_control(15) ,
1293 x_total_ctrl_attr_15 => m_total_control(15) ,
1294 x_ctrl_attr_code_16 => m_objectives_code(16) ,
1295 x_ineff_ctrl_attr_16 => m_ineff_control(16) ,
1296 x_total_ctrl_attr_16 => m_total_control(16) ,
1297 x_ctrl_attr_code_17 => m_objectives_code(17) ,
1298 x_ineff_ctrl_attr_17 => m_ineff_control(17) ,
1299 x_total_ctrl_attr_17 => m_total_control(17) ,
1300 x_ctrl_attr_code_18 => m_objectives_code(18) ,
1301 x_ineff_ctrl_attr_18 => m_ineff_control(18) ,
1302 x_total_ctrl_attr_18 => m_total_control(18) ,
1303 x_ctrl_attr_code_19 => m_objectives_code(19) ,
1304 x_ineff_ctrl_attr_19 => m_ineff_control(19) ,
1305 x_total_ctrl_attr_19 => m_total_control(19) ,
1306 x_ctrl_attr_code_20 => m_objectives_code(20) ,
1307 x_ineff_ctrl_attr_20 => m_ineff_control(20) ,
1308 x_total_ctrl_attr_20 => m_total_control(20) ,
1309 x_ctrl_attr_code_21 => m_objectives_code(21) ,
1310 x_ineff_ctrl_attr_21 => m_ineff_control(21) ,
1311 x_total_ctrl_attr_21 => m_total_control(21) ,
1312 x_ctrl_attr_code_22 => m_objectives_code(22) ,
1313 x_ineff_ctrl_attr_22 => m_ineff_control(22) ,
1314 x_total_ctrl_attr_22 => m_total_control(22) ,
1315 x_ctrl_attr_code_23 => m_objectives_code(23) ,
1316 x_ineff_ctrl_attr_23 => m_ineff_control(23) ,
1317 x_total_ctrl_attr_23 => m_total_control(23) ,
1318 x_ctrl_attr_code_24 => m_objectives_code(24) ,
1319 x_ineff_ctrl_attr_24 => m_ineff_control(24) ,
1320 x_total_ctrl_attr_24 => m_total_control(24) ,
1321 x_ctrl_attr_code_25 => m_objectives_code(25) ,
1322 x_ineff_ctrl_attr_25 => m_ineff_control(25) ,
1323 x_total_ctrl_attr_25 => m_total_control(25) ,
1324 x_ctrl_attr_code_26 => m_objectives_code(26) ,
1325 x_ineff_ctrl_attr_26 => m_ineff_control(26) ,
1326 x_total_ctrl_attr_26 => m_total_control(26) ,
1327 x_ctrl_attr_code_27 => m_objectives_code(27) ,
1328 x_ineff_ctrl_attr_27 => m_ineff_control(27) ,
1329 x_total_ctrl_attr_27 => m_total_control(27) ,
1330 x_ctrl_attr_code_28 => m_objectives_code(28) ,
1331 x_ineff_ctrl_attr_28 => m_ineff_control(28) ,
1332 x_total_ctrl_attr_28 => m_total_control(28) ,
1333 x_ctrl_attr_code_29 => m_objectives_code(29) ,
1334 x_ineff_ctrl_attr_29 => m_ineff_control(29) ,
1335 x_total_ctrl_attr_29 => m_total_control(29) ,
1336 x_ctrl_attr_code_30 => m_objectives_code(30) ,
1337 x_ineff_ctrl_attr_30 => m_ineff_control(30) ,
1338 x_total_ctrl_attr_30 => m_total_control(30) ,
1339 x_created_by => g_user_id ,
1340 x_creation_date => SYSDATE ,
1341 x_last_updated_by => g_user_id ,
1342 x_last_update_date => SYSDATE ,
1343 x_last_update_login => g_login_id ,
1344 --x_security_group_id => null ,
1345 x_object_version_number => null ,
1346 x_acc_assert_flag1 => m_acc_assert_flag(1),
1347 x_acc_assert_flag2 => m_acc_assert_flag(2),
1348 x_acc_assert_flag3 => m_acc_assert_flag(3),
1349 x_acc_assert_flag4 => m_acc_assert_flag(4),
1350 x_acc_assert_flag5 => m_acc_assert_flag(5),
1351 x_acc_assert_flag6 => m_acc_assert_flag(6),
1352 x_acc_assert_flag7 => m_acc_assert_flag(7),
1353 x_acc_assert_flag8 => m_acc_assert_flag(8),
1354 x_acc_assert_flag9 => m_acc_assert_flag(9),
1355 x_acc_assert_flag10 => m_acc_assert_flag(10),
1356 x_acc_assert_flag11 => m_acc_assert_flag(11),
1357 x_acc_assert_flag12 => m_acc_assert_flag(12),
1358 x_acc_assert_flag13 => m_acc_assert_flag(13),
1359 x_acc_assert_flag14 => m_acc_assert_flag(14),
1360 x_acc_assert_flag15 => m_acc_assert_flag(15),
1361 x_acc_assert_flag16 => m_acc_assert_flag(16),
1362 x_acc_assert_flag17 => m_acc_assert_flag(17),
1363 x_acc_assert_flag18 => m_acc_assert_flag(18),
1364 x_acc_assert_flag19 => m_acc_assert_flag(19),
1365 x_acc_assert_flag20 => m_acc_assert_flag(20),
1366 x_acc_assert_flag21 => m_acc_assert_flag(21),
1367 x_acc_assert_flag22 => m_acc_assert_flag(22),
1368 x_acc_assert_flag23 => m_acc_assert_flag(23),
1369 x_acc_assert_flag24 => m_acc_assert_flag(24),
1370 x_acc_assert_flag25 => m_acc_assert_flag(25),
1371 x_acc_assert_flag26 => m_acc_assert_flag(26),
1372 x_acc_assert_flag27 => m_acc_assert_flag(27),
1373 x_acc_assert_flag28 => m_acc_assert_flag(28),
1374 x_acc_assert_flag29 => m_acc_assert_flag(29),
1375 x_acc_assert_flag30 => m_acc_assert_flag(30),
1376 x_eval_ctrl_attr_1 => m_evaluated_ctrls(1),
1377 x_eval_ctrl_attr_2 => m_evaluated_ctrls(2),
1378 x_eval_ctrl_attr_3 => m_evaluated_ctrls(3),
1379 x_eval_ctrl_attr_4 => m_evaluated_ctrls(4),
1380 x_eval_ctrl_attr_5 => m_evaluated_ctrls(5),
1381 x_eval_ctrl_attr_6 => m_evaluated_ctrls(6),
1382 x_eval_ctrl_attr_7 => m_evaluated_ctrls(7),
1383 x_eval_ctrl_attr_8 => m_evaluated_ctrls(8),
1384 x_eval_ctrl_attr_9 => m_evaluated_ctrls(9),
1385 x_eval_ctrl_attr_10 => m_evaluated_ctrls(10),
1386 x_eval_ctrl_attr_11 => m_evaluated_ctrls(11),
1387 x_eval_ctrl_attr_12 => m_evaluated_ctrls(12),
1388 x_eval_ctrl_attr_13 => m_evaluated_ctrls(13),
1389 x_eval_ctrl_attr_14 => m_evaluated_ctrls(14),
1390 x_eval_ctrl_attr_15 => m_evaluated_ctrls(15),
1391 x_eval_ctrl_attr_16 => m_evaluated_ctrls(16),
1392 x_eval_ctrl_attr_17 => m_evaluated_ctrls(17),
1393 x_eval_ctrl_attr_18 => m_evaluated_ctrls(18),
1394 x_eval_ctrl_attr_19 => m_evaluated_ctrls(19),
1395 x_eval_ctrl_attr_20 => m_evaluated_ctrls(20),
1396 x_eval_ctrl_attr_21 => m_evaluated_ctrls(21),
1397 x_eval_ctrl_attr_22 => m_evaluated_ctrls(22),
1398 x_eval_ctrl_attr_23 => m_evaluated_ctrls(23),
1399 x_eval_ctrl_attr_24 => m_evaluated_ctrls(24),
1400 x_eval_ctrl_attr_25 => m_evaluated_ctrls(25),
1401 x_eval_ctrl_attr_26 => m_evaluated_ctrls(26),
1402 x_eval_ctrl_attr_27 => m_evaluated_ctrls(27),
1403 x_eval_ctrl_attr_28 => m_evaluated_ctrls(28),
1404 x_eval_ctrl_attr_29 => m_evaluated_ctrls(29),
1405 x_eval_ctrl_attr_30 => m_evaluated_ctrls(30),
1406 x_display_flag => m_display_flag );
1407
1408
1409 end if; -- end if for max_num_of_codes
1410
1411
1412 -- ************ EXCEPTION definitions for the Procedure **************--
1413
1414 EXCEPTION
1415 WHEN NO_DATA_FOUND
1416 THEN
1417 --dbms_output.put_line('Objective - NO_DATA_FOUND');
1418
1419 fnd_file.put_line (fnd_file.LOG, SUBSTR ('No data found in Update_Next_Level_Proc_Info'
1420 || SUBSTR (SQLERRM, 1, 100), 1, 200));
1421
1422 WHEN OTHERS
1423 THEN
1424 --dbms_output.put_line('Objective -WHEN OTHERS');
1425
1426 fnd_file.put_line (fnd_file.LOG, SUBSTR ('Unexpected Error in Update_Next_Level_Proc_Info'
1427 || SUBSTR (SQLERRM, 1, 100), 1, 200));
1428
1429 ---COMMIT;
1430 end;
1431 end ; --create_fin_ctrl_components
1432
1433 /* ******************************************************************************************************** */
1434
1435 /* ******************************** Logic to build Control ASSERTION_CODE-wise Summary Data *************************************** */
1436
1437
1438 PROCEDURE create_fin_ctrl_Assertions
1439 (P_CERTIFICATION_ID number ,
1440 P_FINANCIAL_STATEMENT_ID number,
1441 P_STATEMENT_GROUP_ID number,
1442 P_FINANCIAL_ITEM_ID number,
1443 P_ACCOUNT_GROUP_ID number ,
1444 P_ACCOUNT_ID number ,
1445 P_OBJECT_TYPE varchar2 ) is
1446
1447 /* ************************************** Example of Paraemters received *************************************
1448
1449 For Financial Items the Parameter Passed will be
1450 (P_CERTIFICATION_ID => l_certification_id,
1451 P_FINANCIAL_STATEMENT_ID => Get_all_items_Rec.FINANCIAL_STATEMENT_ID ,
1452 P_STATEMENT_GROUP_ID => Get_all_items_Rec.STATEMENT_GROUP_ID ,
1453 P_FINANCIAL_ITEM_ID => Get_all_items_Rec.FINANCIAL_ITEM_ID,
1454 P_ACCOUNT_GROUP_ID => NULL,
1455 P_ACCOUNT_ID => NULL,
1456 P_OBJECT_TYPE => 'FINANCIAL ITEM')
1457
1458 For Key Accounts the Parameter Passed will be
1459
1460 (P_CERTIFICATION_ID => l_certification_id,
1461 P_STATEMENT_GROUP_ID => Get_all_accts_Rec.STATEMENT_GROUP_ID ,
1462 P_FINANCIAL_STATEMENT_ID => Get_all_accts_Rec.FINANCIAL_STATEMENT_ID,
1463 P_FINANCIAL_ITEM_ID => Get_all_accts_Rec.financial_item_id,
1464 P_ACCOUNT_ID => Get_all_accts_Rec.natural_account_id,
1465 P_ACCOUNT_GROUP_ID => Get_all_accts_Rec.account_group_id,
1466 P_OBJECT_TYPE => 'ACCOUNT');
1467
1468
1469 *******************************************************************************************************************
1470 */
1471
1472 begin
1473 declare
1474
1475
1476 ctr integer :=0;
1477 max_num_of_codes integer :=0;
1478 m_ctrl_attribute_type VARCHAR2(30) :='CTRL_ASSERTIONS';
1479
1480 m_assertions_code component_code_array;
1481 m_total_control total_control_array ;
1482 m_ineff_control ineff_control_array ;
1483 m_acc_assert_flag component_code_array;
1484 m_evaluated_ctrls total_control_array ;
1485
1486 -- **m_assert_maped_2_acc component_code_array;
1487
1488
1489 m_display_flag varchar2(1) := 'N';
1490
1491
1492
1493
1494 v_ASSERTION_CODE varchar2(30);
1495
1496 g_user_id NUMBER := fnd_global.user_id;
1497 g_login_id NUMBER := fnd_global.conc_login_id;
1498 g_errbuf VARCHAR2(2000) := null;
1499 g_retcode VARCHAR2(2) := '0';
1500
1501 -- *************** Currsor to get all Control for the Fianancial Item being Passed ********** --
1502
1503 cursor ineff_ctrl_of_item
1504 is
1505 select
1506 count(1) numIneffCtrls,
1507 ASSERTION_CODE
1508 from
1509 (select
1510 distinct
1511 ctrl.ORGANIZATION_ID, ctrl.control_id, comp.ASSERTION_CODE
1512 from
1513 amw.amw_fin_item_acc_ctrl ctrl,
1514 amw_opinions_log_v opinion,
1515 amw_control_assertions comp,
1516 amw_control_associations ctrlAsso
1517 where
1518 ctrl.FIN_CERTIFICATION_ID= P_CERTIFICATION_ID and
1519 ctrl.OBJECT_TYPE = 'FINANCIAL ITEM' and
1520 ctrl.FINANCIAL_ITEM_ID= P_FINANCIAL_ITEM_ID and
1521 -- ctrl.ACCOUNT_GROUP_ID is null and
1522 -- ctrl.NATURAL_ACCOUNT_ID is null and
1523 --opinion.OPINION_LOG_ID = ctrl.OPINION_LOG_ID and
1524 opinion.pk1_value = ctrl.control_id and
1525 opinion.pk3_value = ctrl.ORGANIZATION_ID and
1526 opinion.audit_result_CODE <> 'EFFECTIVE' and
1527 opinion.OPINION_TYPE_CODE = 'EVALUATION' AND
1528 opinion.OBJECT_NAME = 'AMW_ORG_CONTROL' and
1529 ctrl.CONTROL_REV_ID =comp.CONTROL_REV_ID and
1530 ctrlAsso.OBJECT_TYPE='RISK_FINCERT' and
1531 opinion.OPINION_LOG_ID = ctrlAsso.PK5 and
1532 ctrlAsso.PK1 = ctrl.FIN_CERTIFICATION_ID and
1533 ctrlAsso.PK2 = ctrl.ORGANIZATION_ID and
1534 ctrlAsso.CONTROL_ID = ctrl.control_id)
1535 group by ASSERTION_CODE;
1536 -------------------------------------------------------------------------------------------
1537
1538 cursor evaluated_ctrls_of_item
1539 is
1540 select
1541 count(1) numOfEvaluatedCtrls,
1542 ASSERTION_CODE
1543 from
1544 (select
1545 distinct
1546 ctrl.ORGANIZATION_ID, ctrl.control_id, comp.ASSERTION_CODE
1547 from
1548 amw.amw_fin_item_acc_ctrl ctrl,
1549 amw_opinions_v opinion,
1550 amw_control_assertions comp,
1551 amw_control_associations ctrlAsso
1552 where
1553 ctrl.FIN_CERTIFICATION_ID= P_CERTIFICATION_ID
1554 and
1555 ctrl.OBJECT_TYPE = 'FINANCIAL ITEM' and
1556 ctrl.FINANCIAL_ITEM_ID= P_FINANCIAL_ITEM_ID
1557 and
1558 opinion.pk1_value = ctrl.control_id and
1559 opinion.pk3_value = ctrl.ORGANIZATION_ID and
1560 opinion.OPINION_TYPE_CODE = 'EVALUATION' AND
1561 opinion.OBJECT_NAME = 'AMW_ORG_CONTROL' and
1562 ctrl.CONTROL_REV_ID =comp.CONTROL_REV_ID and
1563 ctrlAsso.OBJECT_TYPE='RISK_FINCERT' and
1564 ctrlAsso.PK1 = ctrl.FIN_CERTIFICATION_ID and
1565 ctrlAsso.PK2 = ctrl.ORGANIZATION_ID and
1566 ctrlAsso.CONTROL_ID = ctrl.control_id)
1567 group by ASSERTION_CODE;
1568
1569 -------------------------------------------------------------------------------------------
1570
1571
1572 cursor tot_ctrl_of_item
1573 is
1574 select
1575 count(1) numOfCtrls,
1576 comp.ASSERTION_CODE
1577 from
1578 amw.amw_fin_item_acc_ctrl ctrl,
1579 amw_control_assertions comp
1580 where
1581 ctrl.FIN_CERTIFICATION_ID=P_CERTIFICATION_ID and
1582 ctrl.OBJECT_TYPE = 'FINANCIAL ITEM' and
1583 ctrl.FINANCIAL_ITEM_ID= P_FINANCIAL_ITEM_ID and
1584 --ctrl.ACCOUNT_GROUP_ID is null and
1585 --ctrl.NATURAL_ACCOUNT_ID is null and
1586 ctrl.CONTROL_REV_ID =comp.CONTROL_REV_ID
1587 group by ASSERTION_CODE;
1588
1589
1590
1591 -- *************** Currsor to get all Control for the Fianancial Item being Passed ********** --
1592
1593 cursor in_eff_ctrl_of_accounts
1594 is
1595 --fix bug 5768982 by dliao on 2-12-2007
1596 /****
1597 select
1598 count(1) numIneffCtrls,
1599 ASSERTION_CODE
1600 from
1601 (select
1602 distinct
1603 ctrl.ORGANIZATION_ID, ctrl.control_id, comp.ASSERTION_CODE
1604 from
1605 amw.amw_fin_item_acc_ctrl ctrl,
1606 amw_opinions_log_v opinion,
1607 amw_control_assertions comp,
1608 amw_control_associations ctrlAsso
1609 where
1610 ctrl.FIN_CERTIFICATION_ID= P_CERTIFICATION_ID and
1611 ctrl.OBJECT_TYPE = 'ACCOUNT' and
1612 --ctrl.FINANCIAL_ITEM_ID= P_FINANCIAL_ITEM_ID and
1613 ctrl.ACCOUNT_GROUP_ID = P_ACCOUNT_GROUP_ID and
1614 NATURAL_ACCOUNT_ID = P_ACCOUNT_ID and
1615 --opinion.OPINION_LOG_ID = ctrl.OPINION_LOG_ID and
1616 opinion.pk1_value = ctrl.control_id and
1617 opinion.pk3_value = ctrl.ORGANIZATION_ID and
1618 opinion.audit_result_CODE <> 'EFFECTIVE' and
1619 opinion.OPINION_TYPE_CODE = 'EVALUATION' AND
1620 opinion.OBJECT_NAME = 'AMW_ORG_CONTROL' and
1621 ctrl.CONTROL_REV_ID =comp.CONTROL_REV_ID and
1622 ctrlAsso.OBJECT_TYPE='RISK_FINCERT' and
1623 opinion.OPINION_LOG_ID = ctrlAsso.PK5 and
1624 ctrlAsso.PK1 = ctrl.FIN_CERTIFICATION_ID and
1625 ctrlAsso.PK2 = ctrl.ORGANIZATION_ID and
1626 ctrlAsso.CONTROL_ID = ctrl.control_id)
1627 group by ASSERTION_CODE;
1628 ***/
1629 SELECT COUNT(1) NUMINEFFCTRLS, ASSERTION_CODE
1630 FROM
1631 (SELECT DISTINCT CTRL.ORGANIZATION_ID, CTRL.CONTROL_ID, COMP.ASSERTION_CODE
1632 FROM AMW.AMW_FIN_ITEM_ACC_CTRL CTRL, AMW_CONTROL_ASSERTIONS COMP
1633 WHERE
1634 CTRL.FIN_CERTIFICATION_ID= P_CERTIFICATION_ID
1635 AND CTRL.OBJECT_TYPE = 'ACCOUNT'
1636 AND CTRL.ACCOUNT_GROUP_ID = P_ACCOUNT_GROUP_ID
1637 AND NATURAL_ACCOUNT_ID = P_ACCOUNT_ID
1638 AND CTRL.CONTROL_REV_ID = COMP.CONTROL_REV_ID
1639 AND EXISTS
1640 (SELECT 1 FROM AMW_OPINIONS_LOG_V OPINION
1641 WHERE OPINION.PK1_VALUE = CTRL.CONTROL_ID
1642 AND OPINION.PK3_VALUE = CTRL.ORGANIZATION_ID
1643 AND OPINION.AUDIT_RESULT_CODE <> 'EFFECTIVE'
1644 AND OPINION.OPINION_TYPE_CODE = 'EVALUATION'
1645 AND OPINION.OBJECT_NAME = 'AMW_ORG_CONTROL'
1646 AND EXISTS
1647 (SELECT 1 FROM AMW_CONTROL_ASSOCIATIONS CTRLASSO
1648 WHERE CTRLASSO.OBJECT_TYPE='RISK_FINCERT'
1649 AND OPINION.OPINION_LOG_ID = CTRLASSO.PK5
1650 AND CTRLASSO.PK1 = P_CERTIFICATION_ID
1651 AND CTRLASSO.PK2 = OPINION.PK3_VALUE
1652 AND CTRLASSO.CONTROL_ID = OPINION.PK1_VALUE
1653 ))) GROUP BY ASSERTION_CODE;
1654
1655
1656 -----------------------------------------------------------------------------------------------
1657 cursor total_ctrl_of_accounts
1658 is
1659 select
1660 count(1) numOfCtrls,
1661 comp.ASSERTION_CODE
1662 from
1663 amw.amw_fin_item_acc_ctrl ctrl,
1664 amw_control_assertions comp
1665 where
1666 ctrl.FIN_CERTIFICATION_ID= P_CERTIFICATION_ID and
1667 ctrl.OBJECT_TYPE = 'ACCOUNT' and
1668 -- ctrl.FINANCIAL_ITEM_ID= P_FINANCIAL_ITEM_ID and
1669 ctrl.ACCOUNT_GROUP_ID = P_ACCOUNT_GROUP_ID and
1670 NATURAL_ACCOUNT_ID =P_ACCOUNT_ID and
1671 ctrl.CONTROL_REV_ID =comp.CONTROL_REV_ID
1672 group by ASSERTION_CODE;
1673 -----------------------------------------------------------------------------------------------
1674
1675 cursor evaluated_ctrls_of_acc
1676 is
1677 select
1678 count(1) numOfEvaluatedCtrls,
1679 ASSERTION_CODE
1680 from
1681 (select
1682 distinct
1683 ctrl.ORGANIZATION_ID, ctrl.control_id, comp.ASSERTION_CODE
1684 from
1685 amw.amw_fin_item_acc_ctrl ctrl,
1686 amw_opinions_log_v opinion,
1687 amw_control_assertions comp,
1688 amw_control_associations ctrlAsso
1689 where
1690 ctrl.FIN_CERTIFICATION_ID= P_CERTIFICATION_ID and
1691 ctrl.OBJECT_TYPE = 'ACCOUNT' and
1692 ctrl.ACCOUNT_GROUP_ID = P_ACCOUNT_GROUP_ID and
1693 NATURAL_ACCOUNT_ID = P_ACCOUNT_ID and
1694 opinion.pk1_value = ctrl.control_id and
1695 opinion.pk3_value = ctrl.ORGANIZATION_ID and
1696 opinion.OPINION_TYPE_CODE = 'EVALUATION' AND
1697 opinion.OBJECT_NAME = 'AMW_ORG_CONTROL' and
1698 ctrl.CONTROL_REV_ID =comp.CONTROL_REV_ID and
1699 ctrlAsso.OBJECT_TYPE='RISK_FINCERT' and
1700 ctrlAsso.PK1 = ctrl.FIN_CERTIFICATION_ID and
1701 ctrlAsso.PK2 = ctrl.ORGANIZATION_ID and
1702 ctrlAsso.CONTROL_ID = ctrl.control_id)
1703 group by ASSERTION_CODE;
1704
1705
1706
1707 -- *************** Currsor to get all Control AMW_CONTROL_OBJECTIVES ********** --
1708
1709 cursor CTRL_ASSERTIONS
1710 is
1711 select
1712 LOOKUP_CODE
1713 from
1714 amw_lookups
1715 where lookup_type = 'AMW_CONTROL_ASSERTIONS';
1716
1717 --********************* Get Account Assertion COdes FOR AN ACCOUNT *************************************************--
1718 /*
1719 cursor ACC_ASSERT_CODES
1720 is
1721 select
1722 ASSERTION_CODE
1723 from
1724 amw_account_assertions
1725 where
1726 NATURAL_ACCOUNT_ID =P_ACCOUNT_ID ;
1727 */
1728
1729 cursor ACC_ASSERT_CODES
1730 is
1731 select
1732 distinct
1733 ASSERTION_CODE
1734 from
1735 amw_account_assertions
1736 where
1737 ((NATURAL_ACCOUNT_ID =P_ACCOUNT_ID) or (NATURAL_ACCOUNT_ID in (select CHILD_NATURAL_ACCOUNT_ID from amw_fin_key_acct_flat
1738 where PARENT_NATURAL_ACCOUNT_ID =P_ACCOUNT_ID and ACCOUNT_GROUP_ID=P_ACCOUNT_GROUP_ID)));
1739
1740
1741 -- ================================= Get Account Assertion COdes FOR A FINANCIAL ITEM ===============================
1742 cursor ACC_ASSERT_FOR_FIN_ITEM
1743 is
1744 select DISTINCT
1745 ASSERTION_CODE
1746 from
1747 amw_account_assertions
1748 where
1749 NATURAL_ACCOUNT_ID IN
1750 (select DISTINCT NATURAL_ACCOUNT_ID from amw_fin_cert_scope where fin_certification_id = P_CERTIFICATION_ID and
1751 financial_item_id = P_FINANCIAL_ITEM_ID );
1752
1753
1754
1755 -- *****************************************************************************************************
1756
1757
1758
1759 BEGIN
1760
1761 --m_assertions_code := null;
1762 --ctr := 0;
1763
1764
1765 -- ************ Since the Table has 30 Fileds only initialize 30 Positios in the Array**************--
1766 ctr := 1;
1767
1768 loop
1769 EXIT WHEN ctr > 30;
1770
1771 m_assertions_code(ctr) := null;
1772 m_total_control(ctr) := 0;
1773 m_ineff_control(ctr) := 0;
1774 m_evaluated_ctrls(ctr) := 0;
1775
1776 -- **m_assert_maped_2_acc(ctr) := 'N';
1777
1778 --**************************************************************************************************************** --
1779 -- DEFAULT ASSUMPTION for m_acc_assert_flag(ctr) : The assertion is Not important for any of the accounts ot accounts
1780 -- of fin. Item then set the flag to 'I', (means ignore this column in the UI) based on which the data will be hidden
1781 -- in the UI
1782 --**************************************************************************************************************** --
1783
1784 m_acc_assert_flag(ctr) := 'I';
1785
1786 ctr := ctr + 1;
1787
1788 end loop; --end of initialization
1789
1790 -- ************ get All Control Components Codes and Load it in an Array for later use **************--
1791
1792 ctr := 0;
1793 for coso_rec in CTRL_ASSERTIONS
1794 loop
1795 exit when CTRL_ASSERTIONS%notfound;
1796 ctr := ctr + 1;
1797 m_assertions_code(ctr) := coso_rec.LOOKUP_CODE;
1798
1799 end loop; --end of CTRL_ASSERTIONS loop
1800
1801 max_num_of_codes := ctr;
1802
1803
1804 --dbms_output.put_line(' max_num_of_codes: ');
1805 --dbms_output.put_line(max_num_of_codes);
1806
1807
1808 if max_num_of_codes > 0 then
1809
1810 -- ************ get Total Controls and Ineff Ctrl for each Components Codes For a Financial Item**************--
1811
1812 if P_OBJECT_TYPE = 'FINANCIAL ITEM' then
1813 -- ************ get Total Controls for each Components Codes and Load it in an Array for later use **************--
1814
1815 for tot_ctrls in tot_ctrl_of_item
1816 loop
1817 exit when tot_ctrl_of_item%notfound;
1818 v_ASSERTION_CODE := tot_ctrls.ASSERTION_CODE;
1819
1820 ctr := 1;
1821
1822 -- check the code is in which bucket and the appropriately add the counts
1823
1824 while ctr <= max_num_of_codes
1825 loop
1826 if m_assertions_code(ctr) = v_ASSERTION_CODE then
1827
1828 m_total_control(ctr) := tot_ctrls.numOfCtrls;
1829
1830 --dbms_output.put_line( v_ASSERTION_CODE );
1831 --dbms_output.put_line(' is the code and the total is ');
1832
1833 --dbms_output.put_line(m_total_control(ctr) );
1834
1835 exit;
1836 end if;
1837 ctr := ctr + 1;
1838
1839 end loop;
1840 end loop; --end of tot_ctrl_of_item for the Financial Item loop
1841
1842
1843 -- ************ get Total Controls Evaluted for each Assertions Codes and Load it in an Array for later use **************--
1844
1845 for tot_eval_ctrls in evaluated_ctrls_of_item
1846 loop
1847 exit when evaluated_ctrls_of_item%notfound;
1848 v_ASSERTION_CODE := tot_eval_ctrls.ASSERTION_CODE;
1849
1850 ctr := 1;
1851
1852 -- check the code is in which bucket and the appropriately add the counts
1853
1854 while ctr <= max_num_of_codes
1855 loop
1856 if m_assertions_code(ctr) = v_ASSERTION_CODE then
1857
1858 m_evaluated_ctrls(ctr) := tot_eval_ctrls.numOfEvaluatedCtrls;
1859 exit;
1860 end if;
1861 ctr := ctr + 1;
1862
1863 end loop;
1864 end loop; --end of evaluated_ctrls_of_item for the Financial Item loop
1865
1866 -- ************ get Total Ineffective Controls for each Components Codes and Load it in an Array for later use **************--
1867
1868 for tot_ineff_ctrls in ineff_ctrl_of_item
1869 loop
1870 exit when ineff_ctrl_of_item%notfound;
1871 v_ASSERTION_CODE := tot_ineff_ctrls.ASSERTION_CODE;
1872
1873 ctr := 1;
1874
1875 -- check the code is in which bucket and the appropriately add the counts
1876
1877 while ctr <= max_num_of_codes
1878 loop
1879 if m_assertions_code(ctr) = v_ASSERTION_CODE then
1880
1881 m_ineff_control(ctr) := tot_ineff_ctrls.numIneffCtrls ;
1882
1883
1884 --dbms_output.put_line( v_ASSERTION_CODE );
1885 --dbms_output.put_line(' is the code and the ineff ctrl is ');
1886
1887 --dbms_output.put_line(m_ineff_control(ctr) );
1888
1889 exit;
1890 end if;
1891 ctr := ctr + 1;
1892
1893 end loop;
1894 end loop; --end of tot_ineff_ctrls for the Financial Item loop
1895
1896 -- ======================== The Image Display Flag setting should be done last as it need ineffective control array ====== --
1897
1898 for acc_assertions in ACC_ASSERT_FOR_FIN_ITEM
1899 loop
1900 exit when ACC_ASSERT_FOR_FIN_ITEM%notfound;
1901
1902 ctr := 1;
1903 while ctr <= max_num_of_codes
1904 loop
1905
1906 --************************************************************************************************** --
1907 -- NOT ONLY CHECK WHETHER ONE OF THE ACCOUNT FOR THE FINANCIAL ITEM IS MAPPED TO THE ASSERTION CODE BUT ALSO
1908 -- THERE IS AT LEAST ONE CONROL (WHICH MAPPED TO THE SAME ASSERTION) AND ACCOUNT (THORUGH)
1909 -- IT RELATION TO PROCESS IS INEFFECTIVE
1910 --************************************************************************************************** --
1911
1912 if m_assertions_code(ctr) = acc_assertions.ASSERTION_CODE then
1913
1914 -- if the assertion is important for one of the accounts of fin. Item and one of
1915 -- the control is invlaid then set the flag to 'Y', based on which an image will appear in UI
1916
1917 if nvl(m_ineff_control(ctr),0) > 0 then
1918
1919 m_acc_assert_flag(ctr) := 'Y';
1920
1921 --************************************************************************************************** --
1922 -- else if the assertion is important for one of the accounts of fin. Item and No controls exist for the
1923 -- processes associated with the accounts then set the flag to 'Y', based on which an image will
1924 --- appear in UI
1925 --************************************************************************************************** --
1926
1927 elsif (nvl(m_total_control(ctr),0) = 0) then
1928
1929 m_acc_assert_flag(ctr) := 'Y';
1930
1931
1932 --- ********** ie assertion is Not important for any of the accounts of fin. Item and(nvl(m_total_control(ctr),0) > 0)
1933 else
1934 m_acc_assert_flag(ctr) := 'N';
1935
1936 end if;
1937
1938 exit;
1939 end if;
1940
1941 ctr := ctr +1;
1942 end loop;
1943 end loop; --end of acc_assertions in ACC_ASSERT_FOR_FIN_ITEM
1944
1945 --------------------------**********************************************------------------------
1946
1947
1948 end if; -- ****************** end if for P_OBJECT_TYPE = 'FINANCIAL ITEM'
1949
1950
1951 -- ******************************************************************************************** ----
1952 -- ************ get Total Controls and Ineff Ctrl for each Components Codes For a Account **************--
1953 -- ********************************************************************************************----
1954
1955 if P_OBJECT_TYPE = 'ACCOUNT' then
1956
1957 -- ************ get Total Controls for each Components Codes and Load it in an Array for later use **************--
1958
1959 for tot_ctrls_acc in total_ctrl_of_accounts
1960 loop
1961 exit when total_ctrl_of_accounts%notfound;
1962 v_ASSERTION_CODE := tot_ctrls_acc.ASSERTION_CODE;
1963
1964 ctr := 1;
1965
1966 -- check the code is in which bucket and the appropriately add the counts
1967
1968 while ctr <= max_num_of_codes
1969 loop
1970 if m_assertions_code(ctr) = v_ASSERTION_CODE then
1971
1972 m_total_control(ctr) := tot_ctrls_acc.numOfCtrls;
1973
1974 exit;
1975 end if;
1976 ctr := ctr + 1;
1977 end loop;
1978 end loop; --end of total_ctrl_of_accounts for the Account loop
1979
1980 -- ************ get Total Controls Evaluted for each Components Codes and Load it in an Array for later use **************--
1981
1982 for tot_eval_ctrls in evaluated_ctrls_of_acc
1983 loop
1984 exit when evaluated_ctrls_of_acc%notfound;
1985 v_ASSERTION_CODE := tot_eval_ctrls.ASSERTION_CODE;
1986
1987 ctr := 1;
1988
1989 -- check the code is in which bucket and the appropriately add the counts
1990
1991 while ctr <= max_num_of_codes
1992 loop
1993 if m_assertions_code(ctr) = v_ASSERTION_CODE then
1994
1995 m_evaluated_ctrls(ctr) := tot_eval_ctrls.numOfEvaluatedCtrls;
1996
1997 exit;
1998 end if;
1999 ctr := ctr + 1;
2000
2001 end loop;
2002 end loop; --end of evaluated_ctrls_of_acc for the Account loop
2003
2004
2005 -- ************ get Total Ineffective Controls for each Components Codes and Load it in an Array for later use **************--
2006
2007 for tot_ineff_ctrls_acc in in_eff_ctrl_of_accounts
2008 loop
2009 exit when in_eff_ctrl_of_accounts%notfound;
2010 v_ASSERTION_CODE := tot_ineff_ctrls_acc.ASSERTION_CODE;
2011
2012 ctr := 1;
2013
2014 -- check the code is in which bucket and the appropriately add the counts
2015
2016 while ctr <= max_num_of_codes
2017 loop
2018 if m_assertions_code(ctr) = v_ASSERTION_CODE then
2019
2020
2021 m_ineff_control(ctr) := tot_ineff_ctrls_acc.numIneffCtrls;
2022
2023
2024 exit;
2025 end if;
2026 ctr := ctr + 1;
2027 end loop;
2028 end loop; --end of in_eff_ctrl_of_accounts for the Account loop
2029
2030
2031 --************ The Image Display Flag setting should be done last as it need ineffective control array *********--
2032
2033 for acc_assertions in ACC_ASSERT_CODES
2034 loop
2035 exit when ACC_ASSERT_CODES%notfound;
2036
2037 ctr := 1;
2038 while ctr <= max_num_of_codes
2039 loop
2040
2041 -- NOT ONLY CHECK WHETHER THE ACCOUNT IS MAPPED TO THE ASSERTION CODE BUT ALSO
2042 -- THERE IS AT LEASE ONE CONROL (WHICH MAPPED TO THE SAME ASSERTION) AND ACCOUNT (THORUGH)
2043 -- IT RELATION TO PROCESS IS INEFFECTIVE
2044
2045 if (m_assertions_code(ctr) = acc_assertions.ASSERTION_CODE) then
2046
2047 -- if the assertion is important for the accounts and one of
2048 -- the control is invlaid then set the flag to 'Y', based on which an image will appear in UI
2049
2050
2051 if nvl(m_ineff_control(ctr),0) > 0 then
2052
2053 m_acc_assert_flag(ctr) := 'Y';
2054
2055 --************************************************************************************************** --
2056 -- else if the assertion is important for the account and No controls exist for the
2057 -- processes associated with the accounts then set the flag to 'Y', based on which an image will
2058 --- appear in UI
2059 --************************************************************************************************** --
2060
2061 elsif (nvl(m_total_control(ctr),0) = 0) then
2062
2063 m_acc_assert_flag(ctr) := 'Y';
2064
2065
2066 --- ********** ie assertion is Not important for the account and(nvl(m_total_control(ctr),0) > 0)
2067 else
2068 m_acc_assert_flag(ctr) := 'N';
2069
2070 end if;
2071
2072 exit;
2073 end if;
2074 ctr := ctr +1;
2075 end loop;
2076 end loop; --end of acc_assertions in ACC_ASSERT_CODES
2077 --------------------------**********************************************------------------------
2078
2079 end if; -- end if for P_OBJECT_TYPE = 'ACCOUNT'
2080
2081
2082 -- ************* Check at lease one control exists for the row *******************************
2083
2084
2085 if set_flag_for_assertions( assert_acc_reln_exist=> m_acc_assert_flag) then
2086
2087 m_display_flag := 'Y';
2088 else
2089 m_display_flag := 'N';
2090 end if;
2091
2092
2093
2094 -- ************************** CALL Proc to Insert Data into the Table **************************************** --
2095
2096 --dbms_output.put_line('Objective - before inserting data');
2097
2098 amw_fin_coso_views_pvt.INSERT_ROW(
2099 x_fin_certification_id => P_CERTIFICATION_ID ,
2100 x_financial_statement_id => P_FINANCIAL_STATEMENT_ID ,
2101 x_financial_item_id => P_FINANCIAL_ITEM_ID ,
2102 x_account_group_id => P_ACCOUNT_GROUP_ID ,
2103 x_natural_account_id => P_ACCOUNT_ID ,
2104 x_object_type => P_OBJECT_TYPE ,
2105 x_ctrl_attribute_type => m_ctrl_attribute_type ,
2106 x_ctrl_attr_code_1 => m_assertions_code(1) ,
2107 x_ineff_ctrl_attr_1 => m_ineff_control(1) ,
2108 x_total_ctrl_attr_1 => m_total_control(1) ,
2109 x_ctrl_attr_code_2 => m_assertions_code(2) ,
2110 x_ineff_ctrl_attr_2 => m_ineff_control(2) ,
2111 x_total_ctrl_attr_2 => m_total_control(2) ,
2112 x_ctrl_attr_code_3 => m_assertions_code(3) ,
2113 x_ineff_ctrl_attr_3 => m_ineff_control(3) ,
2114 x_total_ctrl_attr_3 => m_total_control(3) ,
2115 x_ctrl_attr_code_4 => m_assertions_code(4) ,
2116 x_ineff_ctrl_attr_4 => m_ineff_control(4) ,
2117 x_total_ctrl_attr_4 => m_total_control(4) ,
2118 x_ctrl_attr_code_5 => m_assertions_code(5) ,
2119 x_ineff_ctrl_attr_5 => m_ineff_control(5) ,
2120 x_total_ctrl_attr_5 => m_total_control(5) ,
2121 x_ctrl_attr_code_6 => m_assertions_code(6) ,
2122 x_ineff_ctrl_attr_6 => m_ineff_control(6) ,
2123 x_total_ctrl_attr_6 => m_total_control(6) ,
2124 x_ctrl_attr_code_7 => m_assertions_code(7) ,
2125 x_ineff_ctrl_attr_7 => m_ineff_control(7) ,
2126 x_total_ctrl_attr_7 => m_total_control(7) ,
2127 x_ctrl_attr_code_8 => m_assertions_code(8) ,
2128 x_ineff_ctrl_attr_8 => m_ineff_control(8) ,
2129 x_total_ctrl_attr_8 => m_total_control(8) ,
2130 x_ctrl_attr_code_9 => m_assertions_code(9) ,
2131 x_ineff_ctrl_attr_9 => m_ineff_control(9) ,
2132 x_total_ctrl_attr_9 => m_total_control(9) ,
2133 x_ctrl_attr_code_10 => m_assertions_code(10) ,
2134 x_ineff_ctrl_attr_10 => m_ineff_control(10) ,
2135 x_total_ctrl_attr_10 => m_total_control(10) ,
2136 x_ctrl_attr_code_11 => m_assertions_code(11) ,
2137 x_ineff_ctrl_attr_11 => m_ineff_control(11) ,
2138 x_total_ctrl_attr_11 => m_total_control(11) ,
2139 x_ctrl_attr_code_12 => m_assertions_code(12) ,
2140 x_ineff_ctrl_attr_12 => m_ineff_control(12) ,
2141 x_total_ctrl_attr_12 => m_total_control(12) ,
2142 x_ctrl_attr_code_13 => m_assertions_code(13) ,
2143 x_ineff_ctrl_attr_13 => m_ineff_control(13) ,
2144 x_total_ctrl_attr_13 => m_total_control(13) ,
2145 x_ctrl_attr_code_14 => m_assertions_code(14) ,
2146 x_ineff_ctrl_attr_14 => m_ineff_control(14) ,
2147 x_total_ctrl_attr_14 => m_total_control(14) ,
2148 x_ctrl_attr_code_15 => m_assertions_code(15) ,
2149 x_ineff_ctrl_attr_15 => m_ineff_control(15) ,
2150 x_total_ctrl_attr_15 => m_total_control(15) ,
2151 x_ctrl_attr_code_16 => m_assertions_code(16) ,
2152 x_ineff_ctrl_attr_16 => m_ineff_control(16) ,
2153 x_total_ctrl_attr_16 => m_total_control(16) ,
2154 x_ctrl_attr_code_17 => m_assertions_code(17) ,
2155 x_ineff_ctrl_attr_17 => m_ineff_control(17) ,
2156 x_total_ctrl_attr_17 => m_total_control(17) ,
2157 x_ctrl_attr_code_18 => m_assertions_code(18) ,
2158 x_ineff_ctrl_attr_18 => m_ineff_control(18) ,
2159 x_total_ctrl_attr_18 => m_total_control(18) ,
2160 x_ctrl_attr_code_19 => m_assertions_code(19) ,
2161 x_ineff_ctrl_attr_19 => m_ineff_control(19) ,
2162 x_total_ctrl_attr_19 => m_total_control(19) ,
2163 x_ctrl_attr_code_20 => m_assertions_code(20) ,
2164 x_ineff_ctrl_attr_20 => m_ineff_control(20) ,
2165 x_total_ctrl_attr_20 => m_total_control(20) ,
2166 x_ctrl_attr_code_21 => m_assertions_code(21) ,
2167 x_ineff_ctrl_attr_21 => m_ineff_control(21) ,
2168 x_total_ctrl_attr_21 => m_total_control(21) ,
2169 x_ctrl_attr_code_22 => m_assertions_code(22) ,
2170 x_ineff_ctrl_attr_22 => m_ineff_control(22) ,
2171 x_total_ctrl_attr_22 => m_total_control(22) ,
2172 x_ctrl_attr_code_23 => m_assertions_code(23) ,
2173 x_ineff_ctrl_attr_23 => m_ineff_control(23) ,
2174 x_total_ctrl_attr_23 => m_total_control(23) ,
2175 x_ctrl_attr_code_24 => m_assertions_code(24) ,
2176 x_ineff_ctrl_attr_24 => m_ineff_control(24) ,
2177 x_total_ctrl_attr_24 => m_total_control(24) ,
2178 x_ctrl_attr_code_25 => m_assertions_code(25) ,
2179 x_ineff_ctrl_attr_25 => m_ineff_control(25) ,
2180 x_total_ctrl_attr_25 => m_total_control(25) ,
2181 x_ctrl_attr_code_26 => m_assertions_code(26) ,
2182 x_ineff_ctrl_attr_26 => m_ineff_control(26) ,
2183 x_total_ctrl_attr_26 => m_total_control(26) ,
2184 x_ctrl_attr_code_27 => m_assertions_code(27) ,
2185 x_ineff_ctrl_attr_27 => m_ineff_control(27) ,
2186 x_total_ctrl_attr_27 => m_total_control(27) ,
2187 x_ctrl_attr_code_28 => m_assertions_code(28) ,
2188 x_ineff_ctrl_attr_28 => m_ineff_control(28) ,
2189 x_total_ctrl_attr_28 => m_total_control(28) ,
2190 x_ctrl_attr_code_29 => m_assertions_code(29) ,
2191 x_ineff_ctrl_attr_29 => m_ineff_control(29) ,
2192 x_total_ctrl_attr_29 => m_total_control(29) ,
2193 x_ctrl_attr_code_30 => m_assertions_code(30) ,
2194 x_ineff_ctrl_attr_30 => m_ineff_control(30) ,
2195 x_total_ctrl_attr_30 => m_total_control(30) ,
2196 x_created_by => g_user_id ,
2197 x_creation_date => SYSDATE ,
2198 x_last_updated_by => g_user_id ,
2199 x_last_update_date => SYSDATE ,
2200 x_last_update_login => g_login_id ,
2201 --x_security_group_id => null ,
2202 x_object_version_number => null ,
2203 x_acc_assert_flag1 => m_acc_assert_flag(1),
2204 x_acc_assert_flag2 => m_acc_assert_flag(2),
2205 x_acc_assert_flag3 => m_acc_assert_flag(3),
2206 x_acc_assert_flag4 => m_acc_assert_flag(4),
2207 x_acc_assert_flag5 => m_acc_assert_flag(5),
2208 x_acc_assert_flag6 => m_acc_assert_flag(6),
2209 x_acc_assert_flag7 => m_acc_assert_flag(7),
2210 x_acc_assert_flag8 => m_acc_assert_flag(8),
2211 x_acc_assert_flag9 => m_acc_assert_flag(9),
2212 x_acc_assert_flag10 => m_acc_assert_flag(10),
2213 x_acc_assert_flag11 => m_acc_assert_flag(11),
2214 x_acc_assert_flag12 => m_acc_assert_flag(12),
2215 x_acc_assert_flag13 => m_acc_assert_flag(13),
2216 x_acc_assert_flag14 => m_acc_assert_flag(14),
2217 x_acc_assert_flag15 => m_acc_assert_flag(15),
2218 x_acc_assert_flag16 => m_acc_assert_flag(16),
2219 x_acc_assert_flag17 => m_acc_assert_flag(17),
2220 x_acc_assert_flag18 => m_acc_assert_flag(18),
2221 x_acc_assert_flag19 => m_acc_assert_flag(19),
2222 x_acc_assert_flag20 => m_acc_assert_flag(20),
2223 x_acc_assert_flag21 => m_acc_assert_flag(21),
2224 x_acc_assert_flag22 => m_acc_assert_flag(22),
2225 x_acc_assert_flag23 => m_acc_assert_flag(23),
2226 x_acc_assert_flag24 => m_acc_assert_flag(24),
2227 x_acc_assert_flag25 => m_acc_assert_flag(25),
2228 x_acc_assert_flag26 => m_acc_assert_flag(26),
2229 x_acc_assert_flag27 => m_acc_assert_flag(27),
2230 x_acc_assert_flag28 => m_acc_assert_flag(28),
2231 x_acc_assert_flag29 => m_acc_assert_flag(29),
2232 x_acc_assert_flag30 => m_acc_assert_flag(30),
2233 x_eval_ctrl_attr_1 => m_evaluated_ctrls(1),
2234 x_eval_ctrl_attr_2 => m_evaluated_ctrls(2),
2235 x_eval_ctrl_attr_3 => m_evaluated_ctrls(3),
2236 x_eval_ctrl_attr_4 => m_evaluated_ctrls(4),
2237 x_eval_ctrl_attr_5 => m_evaluated_ctrls(5),
2238 x_eval_ctrl_attr_6 => m_evaluated_ctrls(6),
2239 x_eval_ctrl_attr_7 => m_evaluated_ctrls(7),
2240 x_eval_ctrl_attr_8 => m_evaluated_ctrls(8),
2241 x_eval_ctrl_attr_9 => m_evaluated_ctrls(9),
2242 x_eval_ctrl_attr_10 => m_evaluated_ctrls(10),
2243 x_eval_ctrl_attr_11 => m_evaluated_ctrls(11),
2244 x_eval_ctrl_attr_12 => m_evaluated_ctrls(12),
2245 x_eval_ctrl_attr_13 => m_evaluated_ctrls(13),
2246 x_eval_ctrl_attr_14 => m_evaluated_ctrls(14),
2247 x_eval_ctrl_attr_15 => m_evaluated_ctrls(15),
2248 x_eval_ctrl_attr_16 => m_evaluated_ctrls(16),
2249 x_eval_ctrl_attr_17 => m_evaluated_ctrls(17),
2250 x_eval_ctrl_attr_18 => m_evaluated_ctrls(18),
2251 x_eval_ctrl_attr_19 => m_evaluated_ctrls(19),
2252 x_eval_ctrl_attr_20 => m_evaluated_ctrls(20),
2253 x_eval_ctrl_attr_21 => m_evaluated_ctrls(21),
2254 x_eval_ctrl_attr_22 => m_evaluated_ctrls(22),
2255 x_eval_ctrl_attr_23 => m_evaluated_ctrls(23),
2256 x_eval_ctrl_attr_24 => m_evaluated_ctrls(24),
2257 x_eval_ctrl_attr_25 => m_evaluated_ctrls(25),
2258 x_eval_ctrl_attr_26 => m_evaluated_ctrls(26),
2259 x_eval_ctrl_attr_27 => m_evaluated_ctrls(27),
2260 x_eval_ctrl_attr_28 => m_evaluated_ctrls(28),
2261 x_eval_ctrl_attr_29 => m_evaluated_ctrls(29),
2262 x_eval_ctrl_attr_30 => m_evaluated_ctrls(30),
2263 x_display_flag => m_display_flag );
2264
2265 end if; -- end if for max_num_of_codes
2266
2267
2268 -- ************ EXCEPTION definitions for the Procedure **************--
2269
2270 EXCEPTION
2271 WHEN NO_DATA_FOUND
2272 THEN
2273 --dbms_output.put_line('Objective - NO_DATA_FOUND');
2274
2275 fnd_file.put_line (fnd_file.LOG, SUBSTR ('No data found in Update_Next_Level_Proc_Info'
2276 || SUBSTR (SQLERRM, 1, 100), 1, 200));
2277
2278 WHEN OTHERS
2279 THEN
2280 --dbms_output.put_line('Objective -WHEN OTHERS');
2281
2282 fnd_file.put_line (fnd_file.LOG, SUBSTR ('Unexpected Error in Update_Next_Level_Proc_Info'
2283 || SUBSTR (SQLERRM, 1, 100), 1, 200));
2284
2285 ---COMMIT;
2286 end;
2287 end ; --create_fin_ctrl_components
2288
2289 /* ******************************************************************************************************** */
2290
2291
2292
2293
2294
2295 /* **************************** DELETE_ROWS in case of refresh data for a particular certification ******************* */
2296
2297 procedure DELETE_ROWS ( x_fin_certification_id NUMBER ) IS
2298
2299 begin
2300
2301 DELETE
2302 from
2303 amw_fin_cert_ctrl_sum
2304 where
2305 fin_certification_id = x_fin_certification_id ;
2306
2307
2308 EXCEPTION
2309 WHEN OTHERS THEN
2310 fnd_file.put_line(fnd_file.LOG, SUBSTR (SQLERRM, 1, 2000));
2311 -- dbms_output.put_line(SQLERRM);
2312 fnd_file.put_line(fnd_file.LOG, 'fin_certification_id ' || x_fin_certification_id );
2313
2314 -- g_errbuf := SUBSTR (SQLERRM, 1, 2000) ;
2315 -- g_retcode := '2';
2316
2317 RAISE ;
2318 RETURN;
2319
2320 end DELETE_ROWS ;
2321
2322 -------------------------------------------------------------------------------------
2323 /* ************** Check at least one control exists and set display flag to Yes **********************************/
2324
2325 function set_display_flag(control_exists_array total_control_array)
2326 return boolean is
2327 begin
2328 declare
2329 ctr number := 1;
2330
2331 begin
2332
2333 -- Check at least one control exists and set display flag to Yes
2334
2335
2336 while ctr <= 30
2337 loop
2338
2339
2340 -- ========= nvl was introduced --
2341
2342 if nvl(control_exists_array(ctr),0) > 0 then
2343 return True;
2344 exit;
2345 end if;
2346 ctr := ctr + 1;
2347
2348 end loop;
2349 return False;
2350 END;
2351 end set_display_flag;
2352 -------------------------------------------------------------------------------------
2353 /* ************** Check at least one assertion is important to the Item or Accounts before setting display flag to Yes **********************************/
2354
2355 function set_flag_for_assertions( assert_acc_reln_exist component_code_array)
2356 return boolean is
2357 begin
2358 declare
2359 ctr number := 1;
2360
2361 begin
2362
2363 --******************************************************************************************************************
2364 -- Check at least one assertion is mapped to the account or the accounts of the fin. item and then set display flag
2365 -- to Yes in the UI Page this FALG is used to control whether to show a line will all column values 0 (zero) or not..
2366 --******************************************************************************************************************
2367 while ctr <= 30
2368 loop
2369
2370 -- "Y" means a relation between account/fin item and the an Assertion exists and it also has an ineffective or zero control
2371 -- "N" means a relation between account/fin item and the an Assertion exists and it has controls but no ineffective ones.
2372 -- The other value do the assert_acc_reln_exist could be "I" , means ignore this column and not intersted in the UI. If all
2373 -- column are to be ignored (I), the whole record need not be displayed,hence the DISPLAY_FLAG will be set to "N"
2374
2375
2376 if (assert_acc_reln_exist(ctr) = 'Y' or assert_acc_reln_exist(ctr) = 'N') then
2377 return True;
2378 exit;
2379 end if;
2380 ctr := ctr + 1;
2381
2382 end loop;
2383 return False;
2384 END;
2385 end set_flag_for_assertions;
2386
2387
2388 /* ******************************************* INSERT_ROW ************************************************************* */
2389
2390 procedure INSERT_ROW (
2391 x_fin_certification_id NUMBER ,
2392 x_financial_statement_id NUMBER ,
2393 x_financial_item_id NUMBER ,
2394 x_account_group_id NUMBER,
2395 x_natural_account_id NUMBER,
2396 x_object_type VARCHAR2,
2397 x_ctrl_attribute_type VARCHAR2,
2398 x_ctrl_attr_code_1 VARCHAR2,
2399 x_ineff_ctrl_attr_1 NUMBER,
2400 x_total_ctrl_attr_1 NUMBER,
2401 x_ctrl_attr_code_2 VARCHAR2,
2402 x_ineff_ctrl_attr_2 NUMBER,
2403 x_total_ctrl_attr_2 NUMBER,
2404 x_ctrl_attr_code_3 VARCHAR2,
2405 x_ineff_ctrl_attr_3 NUMBER,
2406 x_total_ctrl_attr_3 NUMBER,
2407 x_ctrl_attr_code_4 VARCHAR2,
2408 x_ineff_ctrl_attr_4 NUMBER,
2409 x_total_ctrl_attr_4 NUMBER,
2410 x_ctrl_attr_code_5 VARCHAR2,
2411 x_ineff_ctrl_attr_5 NUMBER,
2412 x_total_ctrl_attr_5 NUMBER,
2413 x_ctrl_attr_code_6 VARCHAR2,
2414 x_ineff_ctrl_attr_6 NUMBER,
2415 x_total_ctrl_attr_6 NUMBER,
2416 x_ctrl_attr_code_7 VARCHAR2,
2417 x_ineff_ctrl_attr_7 NUMBER,
2418 x_total_ctrl_attr_7 NUMBER,
2419 x_ctrl_attr_code_8 VARCHAR2,
2420 x_ineff_ctrl_attr_8 NUMBER,
2421 x_total_ctrl_attr_8 NUMBER,
2422 x_ctrl_attr_code_9 VARCHAR2,
2423 x_ineff_ctrl_attr_9 NUMBER,
2424 x_total_ctrl_attr_9 NUMBER,
2425 x_ctrl_attr_code_10 VARCHAR2,
2426 x_ineff_ctrl_attr_10 NUMBER,
2427 x_total_ctrl_attr_10 NUMBER,
2428 x_ctrl_attr_code_11 VARCHAR2,
2429 x_ineff_ctrl_attr_11 NUMBER,
2430 x_total_ctrl_attr_11 NUMBER,
2431 x_ctrl_attr_code_12 VARCHAR2,
2432 x_ineff_ctrl_attr_12 NUMBER,
2433 x_total_ctrl_attr_12 NUMBER,
2434 x_ctrl_attr_code_13 VARCHAR2,
2435 x_ineff_ctrl_attr_13 NUMBER,
2436 x_total_ctrl_attr_13 NUMBER,
2437 x_ctrl_attr_code_14 VARCHAR2,
2438 x_ineff_ctrl_attr_14 NUMBER,
2439 x_total_ctrl_attr_14 NUMBER,
2440 x_ctrl_attr_code_15 VARCHAR2,
2441 x_ineff_ctrl_attr_15 NUMBER,
2442 x_total_ctrl_attr_15 NUMBER,
2443 x_ctrl_attr_code_16 VARCHAR2,
2444 x_ineff_ctrl_attr_16 NUMBER,
2445 x_total_ctrl_attr_16 NUMBER,
2446 x_ctrl_attr_code_17 VARCHAR2,
2447 x_ineff_ctrl_attr_17 NUMBER,
2448 x_total_ctrl_attr_17 NUMBER,
2449 x_ctrl_attr_code_18 VARCHAR2,
2450 x_ineff_ctrl_attr_18 NUMBER,
2451 x_total_ctrl_attr_18 NUMBER,
2452 x_ctrl_attr_code_19 VARCHAR2,
2453 x_ineff_ctrl_attr_19 NUMBER,
2454 x_total_ctrl_attr_19 NUMBER,
2455 x_ctrl_attr_code_20 VARCHAR2,
2456 x_ineff_ctrl_attr_20 NUMBER,
2457 x_total_ctrl_attr_20 NUMBER,
2458 x_ctrl_attr_code_21 VARCHAR2,
2459 x_ineff_ctrl_attr_21 NUMBER,
2460 x_total_ctrl_attr_21 NUMBER,
2461 x_ctrl_attr_code_22 VARCHAR2,
2462 x_ineff_ctrl_attr_22 NUMBER,
2463 x_total_ctrl_attr_22 NUMBER,
2464 x_ctrl_attr_code_23 VARCHAR2,
2465 x_ineff_ctrl_attr_23 NUMBER,
2466 x_total_ctrl_attr_23 NUMBER,
2467 x_ctrl_attr_code_24 VARCHAR2,
2468 x_ineff_ctrl_attr_24 NUMBER,
2469 x_total_ctrl_attr_24 NUMBER,
2470 x_ctrl_attr_code_25 VARCHAR2,
2471 x_ineff_ctrl_attr_25 NUMBER,
2472 x_total_ctrl_attr_25 NUMBER,
2473 x_ctrl_attr_code_26 VARCHAR2,
2474 x_ineff_ctrl_attr_26 NUMBER,
2475 x_total_ctrl_attr_26 NUMBER,
2476 x_ctrl_attr_code_27 VARCHAR2,
2477 x_ineff_ctrl_attr_27 NUMBER,
2478 x_total_ctrl_attr_27 NUMBER,
2479 x_ctrl_attr_code_28 VARCHAR2,
2480 x_ineff_ctrl_attr_28 NUMBER,
2481 x_total_ctrl_attr_28 NUMBER,
2482 x_ctrl_attr_code_29 VARCHAR2,
2483 x_ineff_ctrl_attr_29 NUMBER,
2484 x_total_ctrl_attr_29 NUMBER,
2485 x_ctrl_attr_code_30 VARCHAR2,
2486 x_ineff_ctrl_attr_30 NUMBER,
2487 x_total_ctrl_attr_30 NUMBER,
2488 x_created_by NUMBER ,
2489 x_creation_date DATE ,
2490 x_last_updated_by NUMBER,
2491 x_last_update_date DATE ,
2492 x_last_update_login NUMBER,
2493 -- x_security_group_id NUMBER,
2494 x_object_version_number NUMBER,
2495 x_acc_assert_flag1 VARCHAR2,
2496 x_acc_assert_flag2 VARCHAR2,
2497 x_acc_assert_flag3 VARCHAR2,
2498 x_acc_assert_flag4 VARCHAR2,
2499 x_acc_assert_flag5 VARCHAR2,
2500 x_acc_assert_flag6 VARCHAR2,
2501 x_acc_assert_flag7 VARCHAR2,
2502 x_acc_assert_flag8 VARCHAR2,
2503 x_acc_assert_flag9 VARCHAR2,
2504 x_acc_assert_flag10 VARCHAR2,
2505 x_acc_assert_flag11 VARCHAR2,
2506 x_acc_assert_flag12 VARCHAR2,
2507 x_acc_assert_flag13 VARCHAR2,
2508 x_acc_assert_flag14 VARCHAR2,
2509 x_acc_assert_flag15 VARCHAR2,
2510 x_acc_assert_flag16 VARCHAR2,
2511 x_acc_assert_flag17 VARCHAR2,
2512 x_acc_assert_flag18 VARCHAR2,
2513 x_acc_assert_flag19 VARCHAR2,
2514 x_acc_assert_flag20 VARCHAR2,
2515 x_acc_assert_flag21 VARCHAR2,
2516 x_acc_assert_flag22 VARCHAR2,
2517 x_acc_assert_flag23 VARCHAR2,
2518 x_acc_assert_flag24 VARCHAR2,
2519 x_acc_assert_flag25 VARCHAR2,
2520 x_acc_assert_flag26 VARCHAR2,
2521 x_acc_assert_flag27 VARCHAR2,
2522 x_acc_assert_flag28 VARCHAR2,
2523 x_acc_assert_flag29 VARCHAR2,
2524 x_acc_assert_flag30 VARCHAR2,
2525 x_eval_ctrl_attr_1 NUMBER,
2526 x_eval_ctrl_attr_2 NUMBER,
2527 x_eval_ctrl_attr_3 NUMBER,
2528 x_eval_ctrl_attr_4 NUMBER,
2529 x_eval_ctrl_attr_5 NUMBER,
2530 x_eval_ctrl_attr_6 NUMBER,
2531 x_eval_ctrl_attr_7 NUMBER,
2532 x_eval_ctrl_attr_8 NUMBER,
2533 x_eval_ctrl_attr_9 NUMBER,
2534 x_eval_ctrl_attr_10 NUMBER,
2535 x_eval_ctrl_attr_11 NUMBER,
2536 x_eval_ctrl_attr_12 NUMBER,
2537 x_eval_ctrl_attr_13 NUMBER,
2538 x_eval_ctrl_attr_14 NUMBER,
2539 x_eval_ctrl_attr_15 NUMBER,
2540 x_eval_ctrl_attr_16 NUMBER,
2541 x_eval_ctrl_attr_17 NUMBER,
2542 x_eval_ctrl_attr_18 NUMBER,
2543 x_eval_ctrl_attr_19 NUMBER,
2544 x_eval_ctrl_attr_20 NUMBER,
2545 x_eval_ctrl_attr_21 NUMBER,
2546 x_eval_ctrl_attr_22 NUMBER,
2547 x_eval_ctrl_attr_23 NUMBER,
2548 x_eval_ctrl_attr_24 NUMBER,
2549 x_eval_ctrl_attr_25 NUMBER,
2550 x_eval_ctrl_attr_26 NUMBER,
2551 x_eval_ctrl_attr_27 NUMBER,
2552 x_eval_ctrl_attr_28 NUMBER,
2553 x_eval_ctrl_attr_29 NUMBER,
2554 x_eval_ctrl_attr_30 NUMBER,
2555 x_display_flag VARCHAR2
2556 ) is
2557
2558 begin
2559 declare
2560 var_fin_certification_id number;
2561
2562 m_object_version_number NUMBER := 1;
2563
2564
2565
2566 begin
2567
2568 /* select
2569 fin_certification_id into var_fin_certification_id
2570 from
2571 amw_fin_cert_ctrl_sum
2572 where
2573 fin_certification_id = x_fin_certification_id and
2574 financial_statement_id = x_financial_statement_id and
2575 NVL(financial_item_id, -1) = NVL(x_financial_item_id, -1) and
2576 NVL(account_group_id, -1) = NVL(x_account_group_id, -1) and
2577 nvl(natural_account_id, -1) = nvl(x_natural_account_id, -1) and
2578 CTRL_ATTRIBUTE_TYPE = x_ctrl_attribute_type and
2579 object_type = x_object_type ;
2580 EXCEPTION
2581 WHEN NO_DATA_FOUND THEN
2582 */
2583 --dbms_output.put_line('inserting data');
2584
2585 insert into amw_fin_cert_ctrl_sum (
2586 fin_certification_id ,
2587 financial_statement_id ,
2588 financial_item_id ,
2589 account_group_id ,
2590 natural_account_id ,
2591 object_type ,
2592 ctrl_attribute_type ,
2593 ctrl_attr_code_1 ,
2594 ineff_ctrl_attr_1 ,
2595 total_ctrl_attr_1 ,
2596 ctrl_attr_code_2 ,
2597 ineff_ctrl_attr_2 ,
2598 total_ctrl_attr_2 ,
2599 ctrl_attr_code_3 ,
2600 ineff_ctrl_attr_3 ,
2601 total_ctrl_attr_3 ,
2602 ctrl_attr_code_4 ,
2603 ineff_ctrl_attr_4 ,
2604 total_ctrl_attr_4 ,
2605 ctrl_attr_code_5 ,
2606 ineff_ctrl_attr_5 ,
2607 total_ctrl_attr_5 ,
2608 ctrl_attr_code_6 ,
2609 ineff_ctrl_attr_6 ,
2610 total_ctrl_attr_6 ,
2611 ctrl_attr_code_7 ,
2612 ineff_ctrl_attr_7 ,
2613 total_ctrl_attr_7 ,
2614 ctrl_attr_code_8 ,
2615 ineff_ctrl_attr_8 ,
2616 total_ctrl_attr_8 ,
2617 ctrl_attr_code_9 ,
2618 ineff_ctrl_attr_9 ,
2619 total_ctrl_attr_9 ,
2620 ctrl_attr_code_10 ,
2621 ineff_ctrl_attr_10 ,
2622 total_ctrl_attr_10 ,
2623 ctrl_attr_code_11 ,
2624 ineff_ctrl_attr_11 ,
2625 total_ctrl_attr_11 ,
2626 ctrl_attr_code_12 ,
2627 ineff_ctrl_attr_12 ,
2628 total_ctrl_attr_12 ,
2629 ctrl_attr_code_13 ,
2630 ineff_ctrl_attr_13 ,
2631 total_ctrl_attr_13 ,
2632 ctrl_attr_code_14 ,
2633 ineff_ctrl_attr_14 ,
2634 total_ctrl_attr_14 ,
2635 ctrl_attr_code_15 ,
2636 ineff_ctrl_attr_15 ,
2637 total_ctrl_attr_15 ,
2638 ctrl_attr_code_16 ,
2639 ineff_ctrl_attr_16 ,
2640 total_ctrl_attr_16 ,
2641 ctrl_attr_code_17 ,
2642 ineff_ctrl_attr_17 ,
2643 total_ctrl_attr_17 ,
2644 ctrl_attr_code_18 ,
2645 ineff_ctrl_attr_18 ,
2646 total_ctrl_attr_18 ,
2647 ctrl_attr_code_19 ,
2648 ineff_ctrl_attr_19 ,
2649 total_ctrl_attr_19 ,
2650 ctrl_attr_code_20 ,
2651 ineff_ctrl_attr_20 ,
2652 total_ctrl_attr_20 ,
2653 ctrl_attr_code_21 ,
2654 ineff_ctrl_attr_21 ,
2655 total_ctrl_attr_21 ,
2656 ctrl_attr_code_22 ,
2657 ineff_ctrl_attr_22 ,
2658 total_ctrl_attr_22 ,
2659 ctrl_attr_code_23 ,
2660 ineff_ctrl_attr_23 ,
2661 total_ctrl_attr_23 ,
2662 ctrl_attr_code_24 ,
2663 ineff_ctrl_attr_24 ,
2664 total_ctrl_attr_24 ,
2665 ctrl_attr_code_25 ,
2666 ineff_ctrl_attr_25 ,
2667 total_ctrl_attr_25 ,
2668 ctrl_attr_code_26 ,
2669 ineff_ctrl_attr_26 ,
2670 total_ctrl_attr_26 ,
2671 ctrl_attr_code_27 ,
2672 ineff_ctrl_attr_27 ,
2673 total_ctrl_attr_27 ,
2674 ctrl_attr_code_28 ,
2675 ineff_ctrl_attr_28 ,
2676 total_ctrl_attr_28 ,
2677 ctrl_attr_code_29 ,
2678 ineff_ctrl_attr_29 ,
2679 total_ctrl_attr_29 ,
2680 ctrl_attr_code_30 ,
2681 ineff_ctrl_attr_30 ,
2682 total_ctrl_attr_30 ,
2683 created_by ,
2684 creation_date ,
2685 last_updated_by ,
2686 last_update_date ,
2687 last_update_login ,
2688 -- Removed security_group_id ,
2689 object_version_number,
2690 acc_assert_flag_1 ,
2691 acc_assert_flag_2 ,
2692 acc_assert_flag_3 ,
2693 acc_assert_flag_4 ,
2694 acc_assert_flag_5 ,
2695 acc_assert_flag_6 ,
2696 acc_assert_flag_7 ,
2697 acc_assert_flag_8 ,
2698 acc_assert_flag_9 ,
2699 acc_assert_flag_10,
2700 acc_assert_flag_11 ,
2701 acc_assert_flag_12 ,
2702 acc_assert_flag_13 ,
2703 acc_assert_flag_14 ,
2704 acc_assert_flag_15 ,
2705 acc_assert_flag_16 ,
2706 acc_assert_flag_17 ,
2707 acc_assert_flag_18 ,
2708 acc_assert_flag_19 ,
2709 acc_assert_flag_20,
2710 acc_assert_flag_21 ,
2711 acc_assert_flag_22 ,
2712 acc_assert_flag_23 ,
2713 acc_assert_flag_24 ,
2714 acc_assert_flag_25 ,
2715 acc_assert_flag_26 ,
2716 acc_assert_flag_27 ,
2717 acc_assert_flag_28 ,
2718 acc_assert_flag_29 ,
2719 acc_assert_flag_30 ,
2720 eval_ctrl_attr_1 ,
2721 eval_ctrl_attr_2 ,
2722 eval_ctrl_attr_3 ,
2723 eval_ctrl_attr_4 ,
2724 eval_ctrl_attr_5 ,
2725 eval_ctrl_attr_6 ,
2726 eval_ctrl_attr_7 ,
2727 eval_ctrl_attr_8 ,
2728 eval_ctrl_attr_9 ,
2729 eval_ctrl_attr_10 ,
2730 eval_ctrl_attr_11 ,
2731 eval_ctrl_attr_12 ,
2732 eval_ctrl_attr_13 ,
2733 eval_ctrl_attr_14 ,
2734 eval_ctrl_attr_15 ,
2735 eval_ctrl_attr_16 ,
2736 eval_ctrl_attr_17 ,
2737 eval_ctrl_attr_18 ,
2738 eval_ctrl_attr_19 ,
2739 eval_ctrl_attr_20 ,
2740 eval_ctrl_attr_21 ,
2741 eval_ctrl_attr_22 ,
2742 eval_ctrl_attr_23 ,
2743 eval_ctrl_attr_24 ,
2744 eval_ctrl_attr_25 ,
2745 eval_ctrl_attr_26 ,
2746 eval_ctrl_attr_27 ,
2747 eval_ctrl_attr_28 ,
2748 eval_ctrl_attr_29 ,
2749 eval_ctrl_attr_30 ,
2750 CONTROLS_EXIST_FLAG,
2751 ineff_ctrl_prcnt_1 ,
2752 ineff_ctrl_prcnt_2 ,
2753 ineff_ctrl_prcnt_3 ,
2754 ineff_ctrl_prcnt_4 ,
2755 ineff_ctrl_prcnt_5 ,
2756 ineff_ctrl_prcnt_6 ,
2757 ineff_ctrl_prcnt_7 ,
2758 ineff_ctrl_prcnt_8 ,
2759 ineff_ctrl_prcnt_9 ,
2760 ineff_ctrl_prcnt_10 ,
2761 ineff_ctrl_prcnt_11 ,
2762 ineff_ctrl_prcnt_12 ,
2763 ineff_ctrl_prcnt_13 ,
2764 ineff_ctrl_prcnt_14 ,
2765 ineff_ctrl_prcnt_15 ,
2766 ineff_ctrl_prcnt_16 ,
2767 ineff_ctrl_prcnt_17 ,
2768 ineff_ctrl_prcnt_18 ,
2769 ineff_ctrl_prcnt_19 ,
2770 ineff_ctrl_prcnt_20 ,
2771 ineff_ctrl_prcnt_21 ,
2772 ineff_ctrl_prcnt_22 ,
2773 ineff_ctrl_prcnt_23 ,
2774 ineff_ctrl_prcnt_24 ,
2775 ineff_ctrl_prcnt_25 ,
2776 ineff_ctrl_prcnt_26 ,
2777 ineff_ctrl_prcnt_27 ,
2778 ineff_ctrl_prcnt_28 ,
2779 ineff_ctrl_prcnt_29 ,
2780 ineff_ctrl_prcnt_30
2781 )
2782 values (
2783 x_fin_certification_id ,
2784 x_financial_statement_id ,
2785 x_financial_item_id ,
2786 x_account_group_id ,
2787 x_natural_account_id ,
2788 x_object_type ,
2789 x_ctrl_attribute_type ,
2790 x_ctrl_attr_code_1 ,
2791 x_ineff_ctrl_attr_1 ,
2792 x_total_ctrl_attr_1 ,
2793 x_ctrl_attr_code_2 ,
2794 x_ineff_ctrl_attr_2 ,
2795 x_total_ctrl_attr_2 ,
2796 x_ctrl_attr_code_3 ,
2797 x_ineff_ctrl_attr_3 ,
2798 x_total_ctrl_attr_3 ,
2799 x_ctrl_attr_code_4 ,
2800 x_ineff_ctrl_attr_4 ,
2801 x_total_ctrl_attr_4 ,
2802 x_ctrl_attr_code_5 ,
2803 x_ineff_ctrl_attr_5 ,
2804 x_total_ctrl_attr_5 ,
2805 x_ctrl_attr_code_6 ,
2806 x_ineff_ctrl_attr_6 ,
2807 x_total_ctrl_attr_6 ,
2808 x_ctrl_attr_code_7 ,
2809 x_ineff_ctrl_attr_7 ,
2810 x_total_ctrl_attr_7 ,
2811 x_ctrl_attr_code_8 ,
2812 x_ineff_ctrl_attr_8 ,
2813 x_total_ctrl_attr_8 ,
2814 x_ctrl_attr_code_9 ,
2815 x_ineff_ctrl_attr_9 ,
2816 x_total_ctrl_attr_9 ,
2817 x_ctrl_attr_code_10 ,
2818 x_ineff_ctrl_attr_10 ,
2819 x_total_ctrl_attr_10 ,
2820 x_ctrl_attr_code_11 ,
2821 x_ineff_ctrl_attr_11 ,
2822 x_total_ctrl_attr_11 ,
2823 x_ctrl_attr_code_12 ,
2824 x_ineff_ctrl_attr_12 ,
2825 x_total_ctrl_attr_12 ,
2826 x_ctrl_attr_code_13 ,
2827 x_ineff_ctrl_attr_13 ,
2828 x_total_ctrl_attr_13 ,
2829 x_ctrl_attr_code_14 ,
2830 x_ineff_ctrl_attr_14 ,
2831 x_total_ctrl_attr_14 ,
2832 x_ctrl_attr_code_15 ,
2833 x_ineff_ctrl_attr_15 ,
2834 x_total_ctrl_attr_15 ,
2835 x_ctrl_attr_code_16 ,
2836 x_ineff_ctrl_attr_16 ,
2837 x_total_ctrl_attr_16 ,
2838 x_ctrl_attr_code_17 ,
2839 x_ineff_ctrl_attr_17 ,
2840 x_total_ctrl_attr_17 ,
2841 x_ctrl_attr_code_18 ,
2842 x_ineff_ctrl_attr_18 ,
2843 x_total_ctrl_attr_18 ,
2844 x_ctrl_attr_code_19 ,
2845 x_ineff_ctrl_attr_19 ,
2846 x_total_ctrl_attr_19 ,
2847 x_ctrl_attr_code_20 ,
2848 x_ineff_ctrl_attr_20 ,
2849 x_total_ctrl_attr_20 ,
2850 x_ctrl_attr_code_21 ,
2851 x_ineff_ctrl_attr_21 ,
2852 x_total_ctrl_attr_21 ,
2853 x_ctrl_attr_code_22 ,
2854 x_ineff_ctrl_attr_22 ,
2855 x_total_ctrl_attr_22 ,
2856 x_ctrl_attr_code_23 ,
2857 x_ineff_ctrl_attr_23 ,
2858 x_total_ctrl_attr_23 ,
2859 x_ctrl_attr_code_24 ,
2860 x_ineff_ctrl_attr_24 ,
2861 x_total_ctrl_attr_24 ,
2862 x_ctrl_attr_code_25 ,
2863 x_ineff_ctrl_attr_25 ,
2864 x_total_ctrl_attr_25 ,
2865 x_ctrl_attr_code_26 ,
2866 x_ineff_ctrl_attr_26 ,
2867 x_total_ctrl_attr_26 ,
2868 x_ctrl_attr_code_27 ,
2869 x_ineff_ctrl_attr_27 ,
2870 x_total_ctrl_attr_27 ,
2871 x_ctrl_attr_code_28 ,
2872 x_ineff_ctrl_attr_28 ,
2873 x_total_ctrl_attr_28 ,
2874 x_ctrl_attr_code_29 ,
2875 x_ineff_ctrl_attr_29 ,
2876 x_total_ctrl_attr_29 ,
2877 x_ctrl_attr_code_30 ,
2878 x_ineff_ctrl_attr_30 ,
2879 x_total_ctrl_attr_30 ,
2880 x_created_by ,
2881 x_creation_date ,
2882 x_last_updated_by ,
2883 x_last_update_date ,
2884 x_last_update_login ,
2885 -- Removed x_security_group_id ,
2886 -- x_object_version_number,
2887 m_object_version_number ,
2888 x_acc_assert_flag1 ,
2889 x_acc_assert_flag2 ,
2890 x_acc_assert_flag3 ,
2891 x_acc_assert_flag4 ,
2892 x_acc_assert_flag5 ,
2893 x_acc_assert_flag6 ,
2894 x_acc_assert_flag7 ,
2895 x_acc_assert_flag8 ,
2896 x_acc_assert_flag9 ,
2897 x_acc_assert_flag10,
2898 x_acc_assert_flag11 ,
2899 x_acc_assert_flag12 ,
2900 x_acc_assert_flag13 ,
2901 x_acc_assert_flag14 ,
2902 x_acc_assert_flag15 ,
2903 x_acc_assert_flag16 ,
2904 x_acc_assert_flag17 ,
2905 x_acc_assert_flag18 ,
2906 x_acc_assert_flag19 ,
2907 x_acc_assert_flag20,
2908 x_acc_assert_flag21 ,
2909 x_acc_assert_flag22 ,
2910 x_acc_assert_flag23 ,
2911 x_acc_assert_flag24 ,
2912 x_acc_assert_flag25 ,
2913 x_acc_assert_flag26 ,
2914 x_acc_assert_flag27 ,
2915 x_acc_assert_flag28 ,
2916 x_acc_assert_flag29 ,
2917 x_acc_assert_flag30,
2918 x_eval_ctrl_attr_1 ,
2919 x_eval_ctrl_attr_2 ,
2920 x_eval_ctrl_attr_3 ,
2921 x_eval_ctrl_attr_4 ,
2922 x_eval_ctrl_attr_5 ,
2923 x_eval_ctrl_attr_6 ,
2924 x_eval_ctrl_attr_7 ,
2925 x_eval_ctrl_attr_8 ,
2926 x_eval_ctrl_attr_9 ,
2927 x_eval_ctrl_attr_10 ,
2928 x_eval_ctrl_attr_11 ,
2929 x_eval_ctrl_attr_12 ,
2930 x_eval_ctrl_attr_13 ,
2931 x_eval_ctrl_attr_14 ,
2932 x_eval_ctrl_attr_15 ,
2933 x_eval_ctrl_attr_16 ,
2934 x_eval_ctrl_attr_17 ,
2935 x_eval_ctrl_attr_18 ,
2936 x_eval_ctrl_attr_19 ,
2937 x_eval_ctrl_attr_20 ,
2938 x_eval_ctrl_attr_21 ,
2939 x_eval_ctrl_attr_22 ,
2940 x_eval_ctrl_attr_23 ,
2941 x_eval_ctrl_attr_24 ,
2942 x_eval_ctrl_attr_25 ,
2943 x_eval_ctrl_attr_26 ,
2944 x_eval_ctrl_attr_27 ,
2945 x_eval_ctrl_attr_28 ,
2946 x_eval_ctrl_attr_29 ,
2947 x_eval_ctrl_attr_30 ,
2948 x_display_flag ,
2949 round((x_ineff_ctrl_attr_1 / decode(x_total_ctrl_attr_1,null,1,0,1,x_total_ctrl_attr_1) ) * 100,0),
2950 round((x_ineff_ctrl_attr_2 / decode(x_total_ctrl_attr_2,null,1,0,1,x_total_ctrl_attr_2) ) * 100,0),
2951 round((x_ineff_ctrl_attr_3 / decode(x_total_ctrl_attr_3,null,1,0,1,x_total_ctrl_attr_3) ) * 100,0),
2952 round((x_ineff_ctrl_attr_4 / decode(x_total_ctrl_attr_4,null,1,0,1,x_total_ctrl_attr_4) ) * 100,0),
2953 round((x_ineff_ctrl_attr_5 / decode(x_total_ctrl_attr_5,null,1,0,1,x_total_ctrl_attr_5) ) * 100,0),
2954 round((x_ineff_ctrl_attr_6 / decode(x_total_ctrl_attr_6,null,1,0,1,x_total_ctrl_attr_6) ) * 100,0),
2955 round((x_ineff_ctrl_attr_7 / decode(x_total_ctrl_attr_7,null,1,0,1,x_total_ctrl_attr_7) ) * 100,0),
2956 round((x_ineff_ctrl_attr_8 / decode(x_total_ctrl_attr_8,null,1,0,1,x_total_ctrl_attr_8) ) * 100,0),
2957 round((x_ineff_ctrl_attr_9 / decode(x_total_ctrl_attr_9,null,1,0,1,x_total_ctrl_attr_9) ) * 100,0),
2958 round((x_ineff_ctrl_attr_10 / decode(x_total_ctrl_attr_10,null,1,0,1,x_total_ctrl_attr_10) ) * 100,0),
2959 round((x_ineff_ctrl_attr_11 / decode(x_total_ctrl_attr_11,null,1,0,1,x_total_ctrl_attr_11) ) * 100,0),
2960 round((x_ineff_ctrl_attr_12 / decode(x_total_ctrl_attr_12,null,1,0,1,x_total_ctrl_attr_12) ) * 100,0),
2961 round((x_ineff_ctrl_attr_13 / decode(x_total_ctrl_attr_13,null,1,0,1,x_total_ctrl_attr_13) ) * 100,0),
2962 round((x_ineff_ctrl_attr_14 / decode(x_total_ctrl_attr_14,null,1,0,1,x_total_ctrl_attr_14) ) * 100,0),
2963 round((x_ineff_ctrl_attr_15 / decode(x_total_ctrl_attr_15,null,1,0,1,x_total_ctrl_attr_15) ) * 100,0),
2964 round((x_ineff_ctrl_attr_16 / decode(x_total_ctrl_attr_16,null,1,0,1,x_total_ctrl_attr_16) ) * 100,0),
2965 round((x_ineff_ctrl_attr_17 / decode(x_total_ctrl_attr_17,null,1,0,1,x_total_ctrl_attr_17) ) * 100,0),
2966 round((x_ineff_ctrl_attr_18 / decode(x_total_ctrl_attr_18,null,1,0,1,x_total_ctrl_attr_18) ) * 100,0),
2967 round((x_ineff_ctrl_attr_19 / decode(x_total_ctrl_attr_19,null,1,0,1,x_total_ctrl_attr_19) ) * 100,0),
2968 round((x_ineff_ctrl_attr_20 / decode(x_total_ctrl_attr_20,null,1,0,1,x_total_ctrl_attr_20) ) * 100,0),
2969 round((x_ineff_ctrl_attr_21 / decode(x_total_ctrl_attr_21,null,1,0,1,x_total_ctrl_attr_21) ) * 100,0),
2970 round((x_ineff_ctrl_attr_22 / decode(x_total_ctrl_attr_22,null,1,0,1,x_total_ctrl_attr_22) ) * 100,0),
2971 round((x_ineff_ctrl_attr_23 / decode(x_total_ctrl_attr_23,null,1,0,1,x_total_ctrl_attr_23) ) * 100,0),
2972 round((x_ineff_ctrl_attr_24 / decode(x_total_ctrl_attr_24,null,1,0,1,x_total_ctrl_attr_24) ) * 100,0),
2973 round((x_ineff_ctrl_attr_25 / decode(x_total_ctrl_attr_25,null,1,0,1,x_total_ctrl_attr_25) ) * 100,0),
2974 round((x_ineff_ctrl_attr_26 / decode(x_total_ctrl_attr_26,null,1,0,1,x_total_ctrl_attr_26) ) * 100,0),
2975 round((x_ineff_ctrl_attr_27 / decode(x_total_ctrl_attr_27,null,1,0,1,x_total_ctrl_attr_27) ) * 100,0),
2976 round((x_ineff_ctrl_attr_28 / decode(x_total_ctrl_attr_28,null,1,0,1,x_total_ctrl_attr_28) ) * 100,0),
2977 round((x_ineff_ctrl_attr_29 / decode(x_total_ctrl_attr_29,null,1,0,1,x_total_ctrl_attr_29) ) * 100,0),
2978 round((x_ineff_ctrl_attr_30 / decode(x_total_ctrl_attr_30,null,1,0,1,x_total_ctrl_attr_30) ) * 100,0)
2979 );
2980
2981 EXCEPTION
2982 WHEN DUP_VAL_ON_INDEX THEN
2983 fnd_file.put_line(fnd_file.LOG, 'Duplicate row insert');
2984 fnd_file.put_line(fnd_file.LOG, SUBSTR (SQLERRM, 1, 2000));
2985 -- dbms_output.put_line(SQLERRM);
2986 fnd_file.put_line(fnd_file.LOG, 'natural_account_id' || x_natural_account_id );
2987 fnd_file.put_line(fnd_file.LOG, 'financial_item_id' || x_financial_item_id);
2988 fnd_file.put_line(fnd_file.LOG, 'fin_certification_id ' || x_fin_certification_id );
2989
2990 WHEN OTHERS THEN
2991 fnd_file.put_line(fnd_file.LOG, SUBSTR (SQLERRM, 1, 2000));
2992 -- dbms_output.put_line(SQLERRM);
2993 fnd_file.put_line(fnd_file.LOG, 'natural_account_id' || x_natural_account_id );
2994 fnd_file.put_line(fnd_file.LOG, 'financial_item_id' || x_financial_item_id);
2995 fnd_file.put_line(fnd_file.LOG, 'fin_certification_id ' || x_fin_certification_id );
2996
2997 --g_errbuf := SUBSTR (SQLERRM, 1, 2000) ;
2998 --g_retcode := '2';
2999
3000 RAISE ;
3001 RETURN;
3002 end;
3003
3004 end INSERT_ROW;
3005 --******************************************************************************************************
3006 /* ************************* Code to be executed for updating COSO COMPONENT LEVEL DATA
3007 -- when business evevnt is rised on opinion changes **** */
3008 --******************************************************************************************************
3009 PROCEDURE Update_item_ctrl_components
3010 (P_CERTIFICATION_ID number ,
3011 P_FINANCIAL_STATEMENT_ID number,
3012 P_STATEMENT_GROUP_ID number,
3013 P_FINANCIAL_ITEM_ID number,
3014 P_CONTROL_ID number ,
3015 P_ORG_ID number ,
3016 P_CHANGE_FLAG VARCHAR2,
3017 P_NEW_FLAG VARCHAR2) is
3018
3019 begin
3020
3021 declare
3022
3023 cursor existing_code(par_type varchar2)
3024 is
3025 select
3026 ctrl_attr_code_1,
3027 ctrl_attr_code_2,
3028 ctrl_attr_code_3,
3029 ctrl_attr_code_4,
3030 ctrl_attr_code_5,
3031 ctrl_attr_code_6,
3032 ctrl_attr_code_7,
3033 ctrl_attr_code_8,
3034 ctrl_attr_code_9,
3035 ctrl_attr_code_10,
3036 ctrl_attr_code_11,
3037 ctrl_attr_code_12,
3038 ctrl_attr_code_13,
3039 ctrl_attr_code_14,
3040 ctrl_attr_code_15,
3041 ctrl_attr_code_16,
3042 ctrl_attr_code_17,
3043 ctrl_attr_code_18,
3044 ctrl_attr_code_19,
3045 ctrl_attr_code_20,
3046 ctrl_attr_code_21,
3047 ctrl_attr_code_22,
3048 ctrl_attr_code_23,
3049 ctrl_attr_code_24,
3050 ctrl_attr_code_25,
3051 ctrl_attr_code_26,
3052 ctrl_attr_code_27,
3053 ctrl_attr_code_28,
3054 ctrl_attr_code_29,
3055 ctrl_attr_code_30
3056 from
3057 amw_fin_cert_ctrl_sum
3058 where
3059 fin_certification_id = P_CERTIFICATION_ID and
3060 ctrl_attribute_type = par_type and
3061 ROWNUM <2;
3062
3063 cursor comp_of_the_ctrl
3064 is
3065 select
3066 distinct
3067 comp.COMPONENT_CODE
3068 from
3069 amw.amw_fin_item_acc_ctrl ctrl,
3070 amw_assessment_components comp
3071 where
3072 ctrl.FIN_CERTIFICATION_ID= P_CERTIFICATION_ID and
3073 ctrl.OBJECT_TYPE = 'FINANCIAL ITEM' and
3074 ctrl.FINANCIAL_ITEM_ID= P_FINANCIAL_ITEM_ID and
3075 ctrl.CONTROL_REV_ID =comp.OBJECT_ID and
3076 comp.OBJECT_TYPE ='CONTROL' and
3077 ctrl.ORGANIZATION_ID = P_ORG_ID and
3078 ctrl.CONTROL_ID = P_CONTROL_ID ;
3079
3080
3081
3082 g_user_id NUMBER := fnd_global.user_id;
3083 g_login_id NUMBER := fnd_global.conc_login_id;
3084 m_object_version_number NUMBER;
3085 ctr integer :=0;
3086 max_num_of_codes integer :=0;
3087 m_ctrl_attribute_type VARCHAR2(30) :='CTRL_COMPONENT';
3088 m_OBJECT_TYPE VARCHAR2(50) := 'FINANCIAL ITEM';
3089
3090
3091 m_component_code component_code_array;
3092 m_ineff_control ineff_control_array ;
3093 -- m_acc_assert_flag component_code_array;
3094 m_add_to_eval_ctrls total_control_array ;
3095
3096 add_or_deduct_value number :=0;
3097
3098 begin
3099
3100 -- ************ Since the Table has 30 Fileds only initialize 30 Positios in the Array**************--
3101 /******** comment out by dong because index-by table doesn't need intialization. *************
3102 ctr := 1;
3103
3104 loop
3105 EXIT WHEN ctr > 30;
3106
3107 m_component_code(ctr) := null;
3108 -- m_acc_assert_flag(ctr) := 'N';
3109 m_ineff_control(ctr) := 0;
3110 m_add_to_eval_ctrls(ctr) := 0;
3111
3112 ctr := ctr + 1;
3113
3114 end loop; --end of initialization
3115 ***********************************************************************************/
3116
3117 -- ************ get All Control Components Codes and Load it in an Array for later use **************--
3118 m_ctrl_attribute_type := 'CTRL_COMPONENT';
3119
3120 --- P_CHANGE_FLAG = 'F' means the Opinion is changed from Ineffective to Efective
3121 --- P_CHANGE_FLAG = 'B' means the Opinion is changed from Efective to Ineffective
3122
3123 if P_CHANGE_FLAG = 'B' then
3124 add_or_deduct_value := 1;
3125
3126 -- note on next elseif: -- do this deduction only if the effectivity is changed from ineffective othereise if it is a new opinion for the
3127 --- control no need to take action
3128
3129 elsif (P_CHANGE_FLAG = 'F' and P_NEW_FLAG <> 'Y') then
3130 add_or_deduct_value := -1;
3131 elsif P_CHANGE_FLAG = 'N' then
3132 return;
3133 end if;
3134
3135 ctr := 0;
3136 for coso_rec in existing_code(m_ctrl_attribute_type)
3137 loop
3138 exit when existing_code%notfound;
3139
3140 m_component_code(1) := coso_rec.ctrl_attr_code_1;
3141 m_component_code(2) := coso_rec.ctrl_attr_code_2;
3142 m_component_code(3) := coso_rec.ctrl_attr_code_3;
3143 m_component_code(4) := coso_rec.ctrl_attr_code_4;
3144 m_component_code(5) :=coso_rec.ctrl_attr_code_5;
3145 m_component_code(6) :=coso_rec.ctrl_attr_code_6;
3146 m_component_code(7) :=coso_rec.ctrl_attr_code_7;
3147 m_component_code(8) :=coso_rec.ctrl_attr_code_8;
3148 m_component_code(9) :=coso_rec.ctrl_attr_code_9;
3149 m_component_code(10) :=coso_rec.ctrl_attr_code_10;
3150 m_component_code(11) :=coso_rec.ctrl_attr_code_11;
3151 m_component_code(12) :=coso_rec.ctrl_attr_code_12;
3152 m_component_code(13) :=coso_rec.ctrl_attr_code_13;
3153 m_component_code(14) :=coso_rec.ctrl_attr_code_14;
3154 m_component_code(15) :=coso_rec.ctrl_attr_code_15;
3155 m_component_code(16) :=coso_rec.ctrl_attr_code_16;
3156 m_component_code(17) :=coso_rec.ctrl_attr_code_17;
3157 m_component_code(18) :=coso_rec.ctrl_attr_code_18;
3158 m_component_code(19) :=coso_rec.ctrl_attr_code_19;
3159 m_component_code(20) :=coso_rec.ctrl_attr_code_20;
3160 m_component_code(21) :=coso_rec.ctrl_attr_code_21;
3161 m_component_code(22) :=coso_rec.ctrl_attr_code_22;
3162 m_component_code(23) :=coso_rec.ctrl_attr_code_23;
3163 m_component_code(24) :=coso_rec.ctrl_attr_code_24;
3164 m_component_code(25) :=coso_rec.ctrl_attr_code_25;
3165 m_component_code(26) :=coso_rec.ctrl_attr_code_26;
3166 m_component_code(27) :=coso_rec.ctrl_attr_code_27;
3167 m_component_code(28) :=coso_rec.ctrl_attr_code_28;
3168 m_component_code(29) :=coso_rec.ctrl_attr_code_29;
3169 m_component_code(30) :=coso_rec.ctrl_attr_code_30;
3170
3171 end loop; --end of COSO_COMPONENTS loop
3172
3173
3174 -- **************** Check the REVISION of the Control came with the event has what COSO Codes *******************
3175 -- and in which filed (out of 1 to 30) it is falling and the init varaible with the -1 or +1 corrsponding to that
3176 --****************************************************************************************************************
3177 ctr := 0;
3178 for ctrl_coso_codes in comp_of_the_ctrl
3179 loop
3180 exit when comp_of_the_ctrl%notfound;
3181 ctr := 1;
3182 while ctr <= 30
3183 loop
3184 if m_component_code(ctr) = ctrl_coso_codes.COMPONENT_CODE then
3185 m_ineff_control(ctr) := add_or_deduct_value;
3186
3187 if P_NEW_FLAG = 'Y' then
3188 m_add_to_eval_ctrls(ctr) := 1;
3189 end if;
3190
3191 end if;
3192 ctr := ctr + 1;
3193
3194 end loop;
3195
3196
3197 end loop; --end of ctrl_coso_codes in comp_of_the_ctrl loop
3198
3199
3200
3201
3202 amw_fin_coso_views_pvt.UPDATE_FIN_ITEM_ROW(
3203 x_fin_certification_id => P_CERTIFICATION_ID ,
3204 x_financial_statement_id => P_FINANCIAL_STATEMENT_ID ,
3205 x_financial_item_id => P_FINANCIAL_ITEM_ID ,
3206 x_account_group_id => null ,
3207 x_natural_account_id => null,
3208 x_object_type => m_OBJECT_TYPE ,
3209 x_ctrl_attribute_type => m_ctrl_attribute_type ,
3210 x_ineff_ctrl_attr_1 => m_ineff_control(1) ,
3211 x_ineff_ctrl_attr_2 => m_ineff_control(2) ,
3212 x_ineff_ctrl_attr_3 => m_ineff_control(3) ,
3213 x_ineff_ctrl_attr_4 => m_ineff_control(4) ,
3214 x_ineff_ctrl_attr_5 => m_ineff_control(5) ,
3215 x_ineff_ctrl_attr_6 => m_ineff_control(6) ,
3216 x_ineff_ctrl_attr_7 => m_ineff_control(7) ,
3217 x_ineff_ctrl_attr_8 => m_ineff_control(8) ,
3218 x_ineff_ctrl_attr_9 => m_ineff_control(9) ,
3219 x_ineff_ctrl_attr_10 => m_ineff_control(10) ,
3220 x_ineff_ctrl_attr_11 => m_ineff_control(11) ,
3221 x_ineff_ctrl_attr_12 => m_ineff_control(12) ,
3222 x_ineff_ctrl_attr_13 => m_ineff_control(13) ,
3223 x_ineff_ctrl_attr_14 => m_ineff_control(14) ,
3224 x_ineff_ctrl_attr_15 => m_ineff_control(15) ,
3225 x_ineff_ctrl_attr_16 => m_ineff_control(16) ,
3226 x_ineff_ctrl_attr_17 => m_ineff_control(17) ,
3227 x_ineff_ctrl_attr_18 => m_ineff_control(18) ,
3228 x_ineff_ctrl_attr_19 => m_ineff_control(19) ,
3229 x_ineff_ctrl_attr_20 => m_ineff_control(20) ,
3230 x_ineff_ctrl_attr_21 => m_ineff_control(21) ,
3231 x_ineff_ctrl_attr_22 => m_ineff_control(22) ,
3232 x_ineff_ctrl_attr_23 => m_ineff_control(23) ,
3233 x_ineff_ctrl_attr_24 => m_ineff_control(24) ,
3234 x_ineff_ctrl_attr_25 => m_ineff_control(25) ,
3235 x_ineff_ctrl_attr_26 => m_ineff_control(26) ,
3236 x_ineff_ctrl_attr_27 => m_ineff_control(27) ,
3237 x_ineff_ctrl_attr_28 => m_ineff_control(28) ,
3238 x_ineff_ctrl_attr_29 => m_ineff_control(29) ,
3239 x_ineff_ctrl_attr_30 => m_ineff_control(30) ,
3240 x_last_updated_by => g_user_id ,
3241 x_last_update_date => SYSDATE ,
3242 x_last_update_login => g_login_id,
3243 x_eval_ctrl_attr_1 => m_add_to_eval_ctrls(1),
3244 x_eval_ctrl_attr_2 => m_add_to_eval_ctrls(2),
3245 x_eval_ctrl_attr_3 => m_add_to_eval_ctrls(3),
3246 x_eval_ctrl_attr_4 => m_add_to_eval_ctrls(4),
3247 x_eval_ctrl_attr_5 => m_add_to_eval_ctrls(5),
3248 x_eval_ctrl_attr_6 => m_add_to_eval_ctrls(6),
3249 x_eval_ctrl_attr_7 => m_add_to_eval_ctrls(7),
3250 x_eval_ctrl_attr_8 => m_add_to_eval_ctrls(8),
3251 x_eval_ctrl_attr_9 => m_add_to_eval_ctrls(9),
3252 x_eval_ctrl_attr_10 => m_add_to_eval_ctrls(10),
3253 x_eval_ctrl_attr_11 => m_add_to_eval_ctrls(11),
3254 x_eval_ctrl_attr_12 => m_add_to_eval_ctrls(12),
3255 x_eval_ctrl_attr_13 => m_add_to_eval_ctrls(13),
3256 x_eval_ctrl_attr_14 => m_add_to_eval_ctrls(14),
3257 x_eval_ctrl_attr_15 => m_add_to_eval_ctrls(15),
3258 x_eval_ctrl_attr_16 => m_add_to_eval_ctrls(16),
3259 x_eval_ctrl_attr_17 => m_add_to_eval_ctrls(17),
3260 x_eval_ctrl_attr_18 => m_add_to_eval_ctrls(18),
3261 x_eval_ctrl_attr_19 => m_add_to_eval_ctrls(19),
3262 x_eval_ctrl_attr_20 => m_add_to_eval_ctrls(20),
3263 x_eval_ctrl_attr_21 => m_add_to_eval_ctrls(21),
3264 x_eval_ctrl_attr_22 => m_add_to_eval_ctrls(22),
3265 x_eval_ctrl_attr_23 => m_add_to_eval_ctrls(23),
3266 x_eval_ctrl_attr_24 => m_add_to_eval_ctrls(24),
3267 x_eval_ctrl_attr_25 => m_add_to_eval_ctrls(25),
3268 x_eval_ctrl_attr_26 => m_add_to_eval_ctrls(26),
3269 x_eval_ctrl_attr_27 => m_add_to_eval_ctrls(27),
3270 x_eval_ctrl_attr_28 => m_add_to_eval_ctrls(28),
3271 x_eval_ctrl_attr_29 => m_add_to_eval_ctrls(29),
3272 x_eval_ctrl_attr_30 => m_add_to_eval_ctrls(30));
3273
3274 EXCEPTION
3275 WHEN NO_DATA_FOUND
3276 THEN
3277 fnd_file.put_line (fnd_file.LOG, SUBSTR ('No data found in Update_item_ctrl_components'
3278 || SUBSTR (SQLERRM, 1, 100), 1, 200));
3279
3280 WHEN OTHERS
3281 THEN
3282 fnd_file.put_line (fnd_file.LOG, SUBSTR ('Unexpected Error in Update_item_ctrl_components'
3283 || SUBSTR (SQLERRM, 1, 100), 1, 200));
3284
3285
3286 end;
3287 end ; --Update_item_ctrl_components
3288
3289 ------------------------------ fOR THE ACCOUNTS ------------------------------------------------------------------------------
3290
3291 PROCEDURE Update_acc_ctrl_components
3292 (P_CERTIFICATION_ID number ,
3293 P_ACCOUNT_GROUP_ID number ,
3294 P_ACCOUNT_ID number ,
3295 P_CONTROL_ID number ,
3296 P_ORG_ID number ,
3297 P_CHANGE_FLAG VARCHAR2,
3298 P_NEW_FLAG VARCHAR2) is
3299
3300
3301
3302 begin
3303 declare
3304 cursor existing_code(par_type varchar2)
3305 is
3306 select
3307 ctrl_attr_code_1,
3308 ctrl_attr_code_2,
3309 ctrl_attr_code_3,
3310 ctrl_attr_code_4,
3311 ctrl_attr_code_5,
3312 ctrl_attr_code_6,
3313 ctrl_attr_code_7,
3314 ctrl_attr_code_8,
3315 ctrl_attr_code_9,
3316 ctrl_attr_code_10,
3317 ctrl_attr_code_11,
3318 ctrl_attr_code_12,
3319 ctrl_attr_code_13,
3320 ctrl_attr_code_14,
3321 ctrl_attr_code_15,
3322 ctrl_attr_code_16,
3323 ctrl_attr_code_17,
3324 ctrl_attr_code_18,
3325 ctrl_attr_code_19,
3326 ctrl_attr_code_20,
3327 ctrl_attr_code_21,
3328 ctrl_attr_code_22,
3329 ctrl_attr_code_23,
3330 ctrl_attr_code_24,
3331 ctrl_attr_code_25,
3332 ctrl_attr_code_26,
3333 ctrl_attr_code_27,
3334 ctrl_attr_code_28,
3335 ctrl_attr_code_29,
3336 ctrl_attr_code_30,
3337 ineff_ctrl_attr_1,
3338 ineff_ctrl_attr_2,
3339 ineff_ctrl_attr_3,
3340 ineff_ctrl_attr_4,
3341 ineff_ctrl_attr_5,
3342 ineff_ctrl_attr_6,
3343 ineff_ctrl_attr_7,
3344 ineff_ctrl_attr_8,
3345 ineff_ctrl_attr_9,
3346 ineff_ctrl_attr_10,
3347 ineff_ctrl_attr_11,
3348 ineff_ctrl_attr_12,
3349 ineff_ctrl_attr_13,
3350 ineff_ctrl_attr_14,
3351 ineff_ctrl_attr_15,
3352 ineff_ctrl_attr_16,
3353 ineff_ctrl_attr_17,
3354 ineff_ctrl_attr_18,
3355 ineff_ctrl_attr_19,
3356 ineff_ctrl_attr_20,
3357 ineff_ctrl_attr_21,
3358 ineff_ctrl_attr_22,
3359 ineff_ctrl_attr_23,
3360 ineff_ctrl_attr_24,
3361 ineff_ctrl_attr_25,
3362 ineff_ctrl_attr_26,
3363 ineff_ctrl_attr_27,
3364 ineff_ctrl_attr_28,
3365 ineff_ctrl_attr_29,
3366 ineff_ctrl_attr_30
3367 from
3368 amw_fin_cert_ctrl_sum
3369 where
3370 fin_certification_id = P_CERTIFICATION_ID and
3371 ctrl_attribute_type = par_type and
3372 ROWNUM <2
3373 AND account_group_id = P_ACCOUNT_GROUP_ID and
3374 natural_account_id = P_ACCOUNT_ID and
3375 object_type = 'ACCOUNT' ;
3376
3377
3378 ----------------------------------------------
3379 cursor comp_of_the_ctrl
3380 is select
3381 distinct
3382 comp.COMPONENT_CODE
3383 from
3384 amw.amw_fin_item_acc_ctrl ctrl,
3385 amw_assessment_components comp
3386 where
3387 ctrl.FIN_CERTIFICATION_ID= P_CERTIFICATION_ID
3388 and
3389 ctrl.OBJECT_TYPE = 'ACCOUNT' and
3390 ctrl.ACCOUNT_GROUP_ID= P_ACCOUNT_GROUP_ID AND
3391 ctrl.NATURAL_ACCOUNT_ID= P_ACCOUNT_ID and
3392 ctrl.CONTROL_REV_ID =comp.OBJECT_ID and
3393 comp.OBJECT_TYPE ='CONTROL' and
3394 ctrl.ORGANIZATION_ID = P_ORG_ID and
3395 ctrl.CONTROL_ID = P_CONTROL_ID ;
3396 ----------------------------------------------------
3397 g_user_id NUMBER := fnd_global.user_id;
3398 g_login_id NUMBER := fnd_global.conc_login_id;
3399 m_object_version_number NUMBER;
3400 ctr integer :=0;
3401 max_num_of_codes integer :=0;
3402 m_ctrl_attribute_type VARCHAR2(30) :='CTRL_COMPONENT';
3403 m_OBJECT_TYPE VARCHAR2(50) := 'ACCOUNT';
3404
3405
3406 m_component_code component_code_array;
3407 m_ineff_control ineff_control_array ;
3408 --m_acc_assert_flag component_code_array;
3409 m_add_to_eval_ctrls total_control_array ;
3410
3411
3412 add_or_deduct_value number :=0;
3413
3414 begin
3415
3416 -- ************ Since the Table has 30 Fileds only initialize 30 Positios in the Array**************--
3417 ctr := 1;
3418
3419 loop
3420 EXIT WHEN ctr > 30;
3421
3422 m_component_code(ctr) := null;
3423 --m_acc_assert_flag(ctr) := 'N';
3424 m_ineff_control(ctr) := 0;
3425 m_add_to_eval_ctrls(ctr) := 0;
3426
3427 ctr := ctr + 1;
3428
3429 end loop; --end of initialization
3430
3431 -- ************ get All Control Components Codes and Load it in an Array for later use **************--
3432 m_ctrl_attribute_type := 'CTRL_COMPONENT';
3433
3434 --- P_CHANGE_FLAG = 'F' means the Opinion is changed from Ineffective to Efective
3435 --- P_CHANGE_FLAG = 'B' means the Opinion is changed from Efective to Ineffective
3436
3437 if P_CHANGE_FLAG = 'B' then
3438 add_or_deduct_value := 1;
3439 elsif (P_CHANGE_FLAG = 'F' and P_NEW_FLAG <> 'Y') then
3440 add_or_deduct_value := -1;
3441 elsif P_CHANGE_FLAG = 'N' then
3442 return;
3443 end if;
3444
3445 ctr := 0;
3446 for coso_rec in existing_code(m_ctrl_attribute_type)
3447 loop
3448 exit when existing_code%notfound;
3449
3450 m_component_code(1) := coso_rec.ctrl_attr_code_1;
3451 m_component_code(2) := coso_rec.ctrl_attr_code_2;
3452 m_component_code(3) := coso_rec.ctrl_attr_code_3;
3453 m_component_code(4) := coso_rec.ctrl_attr_code_4;
3454 m_component_code(5) :=coso_rec.ctrl_attr_code_5;
3455 m_component_code(6) :=coso_rec.ctrl_attr_code_6;
3456 m_component_code(7) :=coso_rec.ctrl_attr_code_7;
3457 m_component_code(8) :=coso_rec.ctrl_attr_code_8;
3458 m_component_code(9) :=coso_rec.ctrl_attr_code_9;
3459 m_component_code(10) :=coso_rec.ctrl_attr_code_10;
3460 m_component_code(11) :=coso_rec.ctrl_attr_code_11;
3461 m_component_code(12) :=coso_rec.ctrl_attr_code_12;
3462 m_component_code(13) :=coso_rec.ctrl_attr_code_13;
3463 m_component_code(14) :=coso_rec.ctrl_attr_code_14;
3464 m_component_code(15) :=coso_rec.ctrl_attr_code_15;
3465 m_component_code(16) :=coso_rec.ctrl_attr_code_16;
3466 m_component_code(17) :=coso_rec.ctrl_attr_code_17;
3467 m_component_code(18) :=coso_rec.ctrl_attr_code_18;
3468 m_component_code(19) :=coso_rec.ctrl_attr_code_19;
3469 m_component_code(20) :=coso_rec.ctrl_attr_code_20;
3470 m_component_code(21) :=coso_rec.ctrl_attr_code_21;
3471 m_component_code(22) :=coso_rec.ctrl_attr_code_22;
3472 m_component_code(23) :=coso_rec.ctrl_attr_code_23;
3473 m_component_code(24) :=coso_rec.ctrl_attr_code_24;
3474 m_component_code(25) :=coso_rec.ctrl_attr_code_25;
3475 m_component_code(26) :=coso_rec.ctrl_attr_code_26;
3476 m_component_code(27) :=coso_rec.ctrl_attr_code_27;
3477 m_component_code(28) :=coso_rec.ctrl_attr_code_28;
3478 m_component_code(29) :=coso_rec.ctrl_attr_code_29;
3479 m_component_code(30) :=coso_rec.ctrl_attr_code_30;
3480
3481
3482 m_ineff_control(1) := coso_rec.ineff_ctrl_attr_1;
3483 m_ineff_control(2) := coso_rec.ineff_ctrl_attr_2;
3484 m_ineff_control(3) := coso_rec.ineff_ctrl_attr_3;
3485 m_ineff_control(4) := coso_rec.ineff_ctrl_attr_4;
3486 m_ineff_control(5) :=coso_rec.ineff_ctrl_attr_5;
3487 m_ineff_control(6) :=coso_rec.ineff_ctrl_attr_6;
3488 m_ineff_control(7) :=coso_rec.ineff_ctrl_attr_7;
3489 m_ineff_control(8) :=coso_rec.ineff_ctrl_attr_8;
3490 m_ineff_control(9) :=coso_rec.ineff_ctrl_attr_9;
3491 m_ineff_control(10) :=coso_rec.ineff_ctrl_attr_10;
3492 m_ineff_control(11) :=coso_rec.ineff_ctrl_attr_11;
3493 m_ineff_control(12) :=coso_rec.ineff_ctrl_attr_12;
3494 m_ineff_control(13) :=coso_rec.ineff_ctrl_attr_13;
3495 m_ineff_control(14) :=coso_rec.ineff_ctrl_attr_14;
3496 m_ineff_control(15) :=coso_rec.ineff_ctrl_attr_15;
3497 m_ineff_control(16) :=coso_rec.ineff_ctrl_attr_16;
3498 m_ineff_control(17) :=coso_rec.ineff_ctrl_attr_17;
3499 m_ineff_control(18) :=coso_rec.ineff_ctrl_attr_18;
3500 m_ineff_control(19) :=coso_rec.ineff_ctrl_attr_19;
3501 m_ineff_control(20) :=coso_rec.ineff_ctrl_attr_20;
3502 m_ineff_control(21) :=coso_rec.ineff_ctrl_attr_21;
3503 m_ineff_control(22) :=coso_rec.ineff_ctrl_attr_22;
3504 m_ineff_control(23) :=coso_rec.ineff_ctrl_attr_23;
3505 m_ineff_control(24) :=coso_rec.ineff_ctrl_attr_24;
3506 m_ineff_control(25) :=coso_rec.ineff_ctrl_attr_25;
3507 m_ineff_control(26) :=coso_rec.ineff_ctrl_attr_26;
3508 m_ineff_control(27) :=coso_rec.ineff_ctrl_attr_27;
3509 m_ineff_control(28) :=coso_rec.ineff_ctrl_attr_28;
3510 m_ineff_control(29) :=coso_rec.ineff_ctrl_attr_29;
3511 m_ineff_control(30) :=coso_rec.ineff_ctrl_attr_30;
3512
3513 end loop; --end of COSO_COMPONENTS loop
3514
3515
3516 -- **************** Check the REVISION of the Control came with the event has what COSO Codes *******************
3517 -- and in which filed (out of 1 to 30) it is falling and the init varaible with the -1 or +1 corrsponding to that
3518 --****************************************************************************************************************
3519 ctr := 0;
3520 for ctrl_coso_codes in comp_of_the_ctrl
3521 loop
3522 exit when comp_of_the_ctrl%notfound;
3523 ctr := 1;
3524 while ctr <= 30
3525 loop
3526 if m_component_code(ctr) = ctrl_coso_codes.COMPONENT_CODE then
3527
3528 /********** insanity check for the numbers ******
3529 ********* If the display format is a/b/c, then a >= 0 and b>= a and c>= b ****/
3530 IF( (NVL(m_ineff_control(ctr),0) + add_or_deduct_value) < 0 or (NVL(m_ineff_control(ctr),0) + add_or_deduct_value) > m_add_to_eval_ctrls(ctr))
3531 THEN
3532 AMW_FINSTMT_CERT_BES_PKG.G_REFRESH_FLAG := 'Y';
3533 IF AMW_FINSTMT_CERT_BES_PKG.m_certification_list.exists(P_CERTIFICATION_ID) THEN
3534 EXIT;
3535 ELSE
3536 AMW_FINSTMT_CERT_BES_PKG.m_certification_list(AMW_FINSTMT_CERT_BES_PKG.m_certification_list.COUNT+1) := P_CERTIFICATION_ID;
3537 EXIT;
3538 END IF;
3539 END IF;
3540
3541 m_ineff_control(ctr) := NVL(m_ineff_control(ctr),0) + add_or_deduct_value;
3542
3543
3544
3545 if P_NEW_FLAG = 'Y' then
3546 m_add_to_eval_ctrls(ctr) := 1;
3547
3548 end if;
3549
3550 end if;
3551 ctr := ctr + 1;
3552
3553 end loop;
3554
3555
3556 end loop; --end of ctrl_coso_codes in comp_of_the_ctrl loop
3557
3558
3559
3560 amw_fin_coso_views_pvt.UPDATE_FIN_ACC_ROW(
3561 x_fin_certification_id => P_CERTIFICATION_ID ,
3562 x_financial_statement_id => NULL ,
3563 x_financial_item_id => NULL ,
3564 x_account_group_id => P_ACCOUNT_GROUP_ID,
3565 x_natural_account_id => P_ACCOUNT_ID,
3566 x_object_type => m_OBJECT_TYPE ,
3567 x_ctrl_attribute_type => m_ctrl_attribute_type ,
3568 x_ineff_ctrl_attr_1 => m_ineff_control(1) ,
3569 x_ineff_ctrl_attr_2 => m_ineff_control(2) ,
3570 x_ineff_ctrl_attr_3 => m_ineff_control(3) ,
3571 x_ineff_ctrl_attr_4 => m_ineff_control(4) ,
3572 x_ineff_ctrl_attr_5 => m_ineff_control(5) ,
3573 x_ineff_ctrl_attr_6 => m_ineff_control(6) ,
3574 x_ineff_ctrl_attr_7 => m_ineff_control(7) ,
3575 x_ineff_ctrl_attr_8 => m_ineff_control(8) ,
3576 x_ineff_ctrl_attr_9 => m_ineff_control(9) ,
3577 x_ineff_ctrl_attr_10 => m_ineff_control(10) ,
3578 x_ineff_ctrl_attr_11 => m_ineff_control(11) ,
3579 x_ineff_ctrl_attr_12 => m_ineff_control(12) ,
3580 x_ineff_ctrl_attr_13 => m_ineff_control(13) ,
3581 x_ineff_ctrl_attr_14 => m_ineff_control(14) ,
3582 x_ineff_ctrl_attr_15 => m_ineff_control(15) ,
3583 x_ineff_ctrl_attr_16 => m_ineff_control(16) ,
3584 x_ineff_ctrl_attr_17 => m_ineff_control(17) ,
3585 x_ineff_ctrl_attr_18 => m_ineff_control(18) ,
3586 x_ineff_ctrl_attr_19 => m_ineff_control(19) ,
3587 x_ineff_ctrl_attr_20 => m_ineff_control(20) ,
3588 x_ineff_ctrl_attr_21 => m_ineff_control(21) ,
3589 x_ineff_ctrl_attr_22 => m_ineff_control(22) ,
3590 x_ineff_ctrl_attr_23 => m_ineff_control(23) ,
3591 x_ineff_ctrl_attr_24 => m_ineff_control(24) ,
3592 x_ineff_ctrl_attr_25 => m_ineff_control(25) ,
3593 x_ineff_ctrl_attr_26 => m_ineff_control(26) ,
3594 x_ineff_ctrl_attr_27 => m_ineff_control(27) ,
3595 x_ineff_ctrl_attr_28 => m_ineff_control(28) ,
3596 x_ineff_ctrl_attr_29 => m_ineff_control(29) ,
3597 x_ineff_ctrl_attr_30 => m_ineff_control(30) ,
3598 x_last_updated_by => g_user_id ,
3599 x_last_update_date => SYSDATE ,
3600 x_last_update_login => g_login_id,
3601 x_eval_ctrl_attr_1 => m_add_to_eval_ctrls(1),
3602 x_eval_ctrl_attr_2 => m_add_to_eval_ctrls(2),
3603 x_eval_ctrl_attr_3 => m_add_to_eval_ctrls(3),
3604 x_eval_ctrl_attr_4 => m_add_to_eval_ctrls(4),
3605 x_eval_ctrl_attr_5 => m_add_to_eval_ctrls(5),
3606 x_eval_ctrl_attr_6 => m_add_to_eval_ctrls(6),
3607 x_eval_ctrl_attr_7 => m_add_to_eval_ctrls(7),
3608 x_eval_ctrl_attr_8 => m_add_to_eval_ctrls(8),
3609 x_eval_ctrl_attr_9 => m_add_to_eval_ctrls(9),
3610 x_eval_ctrl_attr_10 => m_add_to_eval_ctrls(10),
3611 x_eval_ctrl_attr_11 => m_add_to_eval_ctrls(11),
3612 x_eval_ctrl_attr_12 => m_add_to_eval_ctrls(12),
3613 x_eval_ctrl_attr_13 => m_add_to_eval_ctrls(13),
3614 x_eval_ctrl_attr_14 => m_add_to_eval_ctrls(14),
3615 x_eval_ctrl_attr_15 => m_add_to_eval_ctrls(15),
3616 x_eval_ctrl_attr_16 => m_add_to_eval_ctrls(16),
3617 x_eval_ctrl_attr_17 => m_add_to_eval_ctrls(17),
3618 x_eval_ctrl_attr_18 => m_add_to_eval_ctrls(18),
3619 x_eval_ctrl_attr_19 => m_add_to_eval_ctrls(19),
3620 x_eval_ctrl_attr_20 => m_add_to_eval_ctrls(20),
3621 x_eval_ctrl_attr_21 => m_add_to_eval_ctrls(21),
3622 x_eval_ctrl_attr_22 => m_add_to_eval_ctrls(22),
3623 x_eval_ctrl_attr_23 => m_add_to_eval_ctrls(23),
3624 x_eval_ctrl_attr_24 => m_add_to_eval_ctrls(24),
3625 x_eval_ctrl_attr_25 => m_add_to_eval_ctrls(25),
3626 x_eval_ctrl_attr_26 => m_add_to_eval_ctrls(26),
3627 x_eval_ctrl_attr_27 => m_add_to_eval_ctrls(27),
3628 x_eval_ctrl_attr_28 => m_add_to_eval_ctrls(28),
3629 x_eval_ctrl_attr_29 => m_add_to_eval_ctrls(29),
3630 x_eval_ctrl_attr_30 => m_add_to_eval_ctrls(30)
3631 );
3632
3633
3634 EXCEPTION
3635 WHEN NO_DATA_FOUND
3636 THEN
3637 fnd_file.put_line (fnd_file.LOG, SUBSTR ('No data found in Update_acc_ctrl_components'
3638 || SUBSTR (SQLERRM, 1, 100), 1, 200));
3639
3640 WHEN OTHERS
3641 THEN
3642 fnd_file.put_line (fnd_file.LOG, SUBSTR ('Unexpected Error in Update_acc_ctrl_components'
3643 || SUBSTR (SQLERRM, 1, 100), 1, 200));
3644
3645
3646 end;
3647 end ; --Update_acc_ctrl_components
3648
3649 --******************************************************************************************************
3650 /* ************************* Code to be executed for updating Control Objective LEVEL DATA
3651 -- when business evevnt is rised on opinion changes **** */
3652 --******************************************************************************************************
3653
3654 PROCEDURE Update_item_ctrl_objectives
3655 (P_CERTIFICATION_ID number ,
3656 P_FINANCIAL_STATEMENT_ID number,
3657 P_STATEMENT_GROUP_ID number,
3658 P_FINANCIAL_ITEM_ID number,
3659 P_CONTROL_ID number ,
3660 P_ORG_ID number ,
3661 P_CHANGE_FLAG VARCHAR2,
3662 P_NEW_FLAG VARCHAR2) is
3663
3664 begin
3665
3666 declare
3667
3668 cursor existing_code(par_type varchar2)
3669 is
3670 select
3671 ctrl_attr_code_1,
3672 ctrl_attr_code_2,
3673 ctrl_attr_code_3,
3674 ctrl_attr_code_4,
3675 ctrl_attr_code_5,
3676 ctrl_attr_code_6,
3677 ctrl_attr_code_7,
3678 ctrl_attr_code_8,
3679 ctrl_attr_code_9,
3680 ctrl_attr_code_10,
3681 ctrl_attr_code_11,
3682 ctrl_attr_code_12,
3683 ctrl_attr_code_13,
3684 ctrl_attr_code_14,
3685 ctrl_attr_code_15,
3686 ctrl_attr_code_16,
3687 ctrl_attr_code_17,
3688 ctrl_attr_code_18,
3689 ctrl_attr_code_19,
3690 ctrl_attr_code_20,
3691 ctrl_attr_code_21,
3692 ctrl_attr_code_22,
3693 ctrl_attr_code_23,
3694 ctrl_attr_code_24,
3695 ctrl_attr_code_25,
3696 ctrl_attr_code_26,
3697 ctrl_attr_code_27,
3698 ctrl_attr_code_28,
3699 ctrl_attr_code_29,
3700 ctrl_attr_code_30,
3701 ineff_ctrl_attr_1,
3702 ineff_ctrl_attr_2,
3703 ineff_ctrl_attr_3,
3704 ineff_ctrl_attr_4,
3705 ineff_ctrl_attr_5,
3706 ineff_ctrl_attr_6,
3707 ineff_ctrl_attr_7,
3708 ineff_ctrl_attr_8,
3709 ineff_ctrl_attr_9,
3710 ineff_ctrl_attr_10,
3711 ineff_ctrl_attr_11,
3712 ineff_ctrl_attr_12,
3713 ineff_ctrl_attr_13,
3714 ineff_ctrl_attr_14,
3715 ineff_ctrl_attr_15,
3716 ineff_ctrl_attr_16,
3717 ineff_ctrl_attr_17,
3718 ineff_ctrl_attr_18,
3719 ineff_ctrl_attr_19,
3720 ineff_ctrl_attr_20,
3721 ineff_ctrl_attr_21,
3722 ineff_ctrl_attr_22,
3723 ineff_ctrl_attr_23,
3724 ineff_ctrl_attr_24,
3725 ineff_ctrl_attr_25,
3726 ineff_ctrl_attr_26,
3727 ineff_ctrl_attr_27,
3728 ineff_ctrl_attr_28,
3729 ineff_ctrl_attr_29,
3730 ineff_ctrl_attr_30
3731 from
3732 amw_fin_cert_ctrl_sum
3733 where
3734 fin_certification_id = P_CERTIFICATION_ID and
3735 ctrl_attribute_type = par_type and
3736 ROWNUM <2;
3737
3738 cursor obj_of_the_ctrl
3739 is
3740 select
3741 distinct
3742 comp.OBJECTIVE_CODE
3743 from
3744 amw.amw_fin_item_acc_ctrl ctrl,
3745 amw_control_objectives comp
3746 where
3747 ctrl.FIN_CERTIFICATION_ID= P_CERTIFICATION_ID
3748 and
3749 ctrl.OBJECT_TYPE = 'FINANCIAL ITEM' and
3750 ctrl.FINANCIAL_ITEM_ID= P_FINANCIAL_ITEM_ID
3751 and
3752 ctrl.CONTROL_REV_ID =comp.CONTROL_REV_ID and
3753 ctrl.ORGANIZATION_ID = P_ORG_ID
3754 and
3755 ctrl.CONTROL_ID = P_CONTROL_ID ;
3756
3757
3758
3759 g_user_id NUMBER := fnd_global.user_id;
3760 g_login_id NUMBER := fnd_global.conc_login_id;
3761 m_object_version_number NUMBER;
3762 ctr integer :=0;
3763 max_num_of_codes integer :=0;
3764 m_ctrl_attribute_type VARCHAR2(30) :='CTRL_OBJECTIVES';
3765 m_OBJECT_TYPE VARCHAR2(50) := 'FINANCIAL ITEM';
3766
3767
3768 m_component_code component_code_array;
3769 m_ineff_control ineff_control_array ;
3770 --m_acc_assert_flag component_code_array;
3771 m_add_to_eval_ctrls total_control_array ;
3772
3773
3774 add_or_deduct_value number :=0;
3775
3776 begin
3777
3778 -- ************ Since the Table has 30 Fileds only initialize 30 Positios in the Array**************--
3779 ctr := 1;
3780
3781 loop
3782 EXIT WHEN ctr > 30;
3783
3784 m_component_code(ctr) := null;
3785 -- m_acc_assert_flag(ctr) := 'N';
3786 m_ineff_control(ctr) := 0;
3787 m_add_to_eval_ctrls(ctr) := 0;
3788
3789 ctr := ctr + 1;
3790
3791 end loop; --end of initialization
3792
3793 -- ************ get All Control Components Codes and Load it in an Array for later use **************--
3794 m_ctrl_attribute_type :='CTRL_OBJECTIVES';
3795
3796 --- P_CHANGE_FLAG = 'F' means the Opinion is changed from Ineffective to Efective
3797 --- P_CHANGE_FLAG = 'B' means the Opinion is changed from Efective to Ineffective
3798
3799 if P_CHANGE_FLAG = 'B' then
3800 add_or_deduct_value := 1;
3801 elsif (P_CHANGE_FLAG = 'F' and P_NEW_FLAG <> 'Y') then
3802 add_or_deduct_value := -1;
3803 elsif P_CHANGE_FLAG = 'N' then
3804 return;
3805 end if;
3806
3807 ctr := 0;
3808 for objective_rec in existing_code(m_ctrl_attribute_type)
3809 loop
3810 exit when existing_code%notfound;
3811
3812 m_component_code(1) := objective_rec .ctrl_attr_code_1;
3813 m_component_code(2) := objective_rec .ctrl_attr_code_2;
3814 m_component_code(3) := objective_rec .ctrl_attr_code_3;
3815 m_component_code(4) := objective_rec .ctrl_attr_code_4;
3816 m_component_code(5) :=objective_rec .ctrl_attr_code_5;
3817 m_component_code(6) :=objective_rec .ctrl_attr_code_6;
3818 m_component_code(7) :=objective_rec .ctrl_attr_code_7;
3819 m_component_code(8) :=objective_rec .ctrl_attr_code_8;
3820 m_component_code(9) :=objective_rec .ctrl_attr_code_9;
3821 m_component_code(10) :=objective_rec .ctrl_attr_code_10;
3822 m_component_code(11) :=objective_rec .ctrl_attr_code_11;
3823 m_component_code(12) :=objective_rec .ctrl_attr_code_12;
3824 m_component_code(13) :=objective_rec .ctrl_attr_code_13;
3825 m_component_code(14) :=objective_rec .ctrl_attr_code_14;
3826 m_component_code(15) :=objective_rec .ctrl_attr_code_15;
3827 m_component_code(16) :=objective_rec .ctrl_attr_code_16;
3828 m_component_code(17) :=objective_rec .ctrl_attr_code_17;
3829 m_component_code(18) :=objective_rec .ctrl_attr_code_18;
3830 m_component_code(19) :=objective_rec .ctrl_attr_code_19;
3831 m_component_code(20) :=objective_rec .ctrl_attr_code_20;
3832 m_component_code(21) :=objective_rec .ctrl_attr_code_21;
3833 m_component_code(22) :=objective_rec .ctrl_attr_code_22;
3834 m_component_code(23) :=objective_rec .ctrl_attr_code_23;
3835 m_component_code(24) :=objective_rec .ctrl_attr_code_24;
3836 m_component_code(25) :=objective_rec .ctrl_attr_code_25;
3837 m_component_code(26) :=objective_rec .ctrl_attr_code_26;
3838 m_component_code(27) :=objective_rec .ctrl_attr_code_27;
3839 m_component_code(28) :=objective_rec .ctrl_attr_code_28;
3840 m_component_code(29) :=objective_rec .ctrl_attr_code_29;
3841 m_component_code(30) :=objective_rec .ctrl_attr_code_30;
3842
3843 m_ineff_control(1) := objective_rec.ineff_ctrl_attr_1;
3844 m_ineff_control(2) := objective_rec.ineff_ctrl_attr_2;
3845 m_ineff_control(3) := objective_rec.ineff_ctrl_attr_3;
3846 m_ineff_control(4) := objective_rec.ineff_ctrl_attr_4;
3847 m_ineff_control(5) :=objective_rec.ineff_ctrl_attr_5;
3848 m_ineff_control(6) :=objective_rec.ineff_ctrl_attr_6;
3849 m_ineff_control(7) :=objective_rec.ineff_ctrl_attr_7;
3850 m_ineff_control(8) :=objective_rec.ineff_ctrl_attr_8;
3851 m_ineff_control(9) :=objective_rec.ineff_ctrl_attr_9;
3852 m_ineff_control(10) :=objective_rec.ineff_ctrl_attr_10;
3853 m_ineff_control(11) :=objective_rec.ineff_ctrl_attr_11;
3854 m_ineff_control(12) :=objective_rec.ineff_ctrl_attr_12;
3855 m_ineff_control(13) :=objective_rec.ineff_ctrl_attr_13;
3856 m_ineff_control(14) :=objective_rec.ineff_ctrl_attr_14;
3857 m_ineff_control(15) :=objective_rec.ineff_ctrl_attr_15;
3858 m_ineff_control(16) :=objective_rec.ineff_ctrl_attr_16;
3859 m_ineff_control(17) :=objective_rec.ineff_ctrl_attr_17;
3860 m_ineff_control(18) :=objective_rec.ineff_ctrl_attr_18;
3861 m_ineff_control(19) :=objective_rec.ineff_ctrl_attr_19;
3862 m_ineff_control(20) :=objective_rec.ineff_ctrl_attr_20;
3863 m_ineff_control(21) :=objective_rec.ineff_ctrl_attr_21;
3864 m_ineff_control(22) :=objective_rec.ineff_ctrl_attr_22;
3865 m_ineff_control(23) :=objective_rec.ineff_ctrl_attr_23;
3866 m_ineff_control(24) :=objective_rec.ineff_ctrl_attr_24;
3867 m_ineff_control(25) :=objective_rec.ineff_ctrl_attr_25;
3868 m_ineff_control(26) :=objective_rec.ineff_ctrl_attr_26;
3869 m_ineff_control(27) :=objective_rec.ineff_ctrl_attr_27;
3870 m_ineff_control(28) :=objective_rec.ineff_ctrl_attr_28;
3871 m_ineff_control(29) :=objective_rec.ineff_ctrl_attr_29;
3872 m_ineff_control(30) :=objective_rec.ineff_ctrl_attr_30;
3873
3874
3875 end loop; --end of control objectives loop
3876
3877
3878 -- **************** Check the REVISION of the Control came with the event has what COSO Codes *******************
3879 -- and in which filed (out of 1 to 30) it is falling and the init varaible with the -1 or +1 corrsponding to that
3880 --****************************************************************************************************************
3881 ctr := 0;
3882 for ctrl_objective_codes in obj_of_the_ctrl
3883 loop
3884 exit when obj_of_the_ctrl%notfound;
3885 ctr := 1;
3886 while ctr <= 30
3887 loop
3888
3889
3890 -- Only '+1' or '-1' is stored and the actual addition or deduction (Addition of negative value)
3891 -- is done with the original value during the actual Table update
3892
3893 if m_component_code(ctr) = ctrl_objective_codes.OBJECTIVE_CODE then
3894
3895 /********** insanity check for the numbers ******
3896 ********* If the display format is a/b/c, then a >= 0 and b>= a and c>= b ****/
3897 IF( (NVL(m_ineff_control(ctr),0) + add_or_deduct_value) < 0 or (NVL(m_ineff_control(ctr),0) + add_or_deduct_value) > m_add_to_eval_ctrls(ctr))
3898 THEN
3899 AMW_FINSTMT_CERT_BES_PKG.G_REFRESH_FLAG := 'Y';
3900 IF AMW_FINSTMT_CERT_BES_PKG.m_certification_list.exists(P_CERTIFICATION_ID) THEN
3901 EXIT;
3902 ELSE
3903 AMW_FINSTMT_CERT_BES_PKG.m_certification_list(AMW_FINSTMT_CERT_BES_PKG.m_certification_list.COUNT+1) := P_CERTIFICATION_ID;
3904 EXIT;
3905 END IF;
3906 END IF;
3907
3908 m_ineff_control(ctr) := NVL(m_ineff_control(ctr),0) + add_or_deduct_value;
3909
3910
3911 if P_NEW_FLAG = 'Y' then
3912 m_add_to_eval_ctrls(ctr) := 1;
3913
3914 end if;
3915
3916 end if;
3917 ctr := ctr + 1;
3918
3919 end loop;
3920
3921
3922 end loop; --end of ctrl_objective_codes in obj_of_the_ctrl loop
3923
3924
3925
3926
3927 amw_fin_coso_views_pvt.UPDATE_FIN_ITEM_ROW(
3928 x_fin_certification_id => P_CERTIFICATION_ID ,
3929 x_financial_statement_id => P_FINANCIAL_STATEMENT_ID ,
3930 x_financial_item_id => P_FINANCIAL_ITEM_ID ,
3931 x_account_group_id => null ,
3932 x_natural_account_id => null,
3933 x_object_type => m_OBJECT_TYPE ,
3934 x_ctrl_attribute_type => m_ctrl_attribute_type ,
3935 x_ineff_ctrl_attr_1 => m_ineff_control(1) ,
3936 x_ineff_ctrl_attr_2 => m_ineff_control(2) ,
3937 x_ineff_ctrl_attr_3 => m_ineff_control(3) ,
3938 x_ineff_ctrl_attr_4 => m_ineff_control(4) ,
3939 x_ineff_ctrl_attr_5 => m_ineff_control(5) ,
3940 x_ineff_ctrl_attr_6 => m_ineff_control(6) ,
3941 x_ineff_ctrl_attr_7 => m_ineff_control(7) ,
3942 x_ineff_ctrl_attr_8 => m_ineff_control(8) ,
3943 x_ineff_ctrl_attr_9 => m_ineff_control(9) ,
3944 x_ineff_ctrl_attr_10 => m_ineff_control(10) ,
3945 x_ineff_ctrl_attr_11 => m_ineff_control(11) ,
3946 x_ineff_ctrl_attr_12 => m_ineff_control(12) ,
3947 x_ineff_ctrl_attr_13 => m_ineff_control(13) ,
3948 x_ineff_ctrl_attr_14 => m_ineff_control(14) ,
3949 x_ineff_ctrl_attr_15 => m_ineff_control(15) ,
3950 x_ineff_ctrl_attr_16 => m_ineff_control(16) ,
3951 x_ineff_ctrl_attr_17 => m_ineff_control(17) ,
3952 x_ineff_ctrl_attr_18 => m_ineff_control(18) ,
3953 x_ineff_ctrl_attr_19 => m_ineff_control(19) ,
3954 x_ineff_ctrl_attr_20 => m_ineff_control(20) ,
3955 x_ineff_ctrl_attr_21 => m_ineff_control(21) ,
3956 x_ineff_ctrl_attr_22 => m_ineff_control(22) ,
3957 x_ineff_ctrl_attr_23 => m_ineff_control(23) ,
3958 x_ineff_ctrl_attr_24 => m_ineff_control(24) ,
3959 x_ineff_ctrl_attr_25 => m_ineff_control(25) ,
3960 x_ineff_ctrl_attr_26 => m_ineff_control(26) ,
3961 x_ineff_ctrl_attr_27 => m_ineff_control(27) ,
3962 x_ineff_ctrl_attr_28 => m_ineff_control(28) ,
3963 x_ineff_ctrl_attr_29 => m_ineff_control(29) ,
3964 x_ineff_ctrl_attr_30 => m_ineff_control(30) ,
3965 x_last_updated_by => g_user_id ,
3966 x_last_update_date => SYSDATE ,
3967 x_last_update_login => g_login_id,
3968 x_eval_ctrl_attr_1 => m_add_to_eval_ctrls(1),
3969 x_eval_ctrl_attr_2 => m_add_to_eval_ctrls(2),
3970 x_eval_ctrl_attr_3 => m_add_to_eval_ctrls(3),
3971 x_eval_ctrl_attr_4 => m_add_to_eval_ctrls(4),
3972 x_eval_ctrl_attr_5 => m_add_to_eval_ctrls(5),
3973 x_eval_ctrl_attr_6 => m_add_to_eval_ctrls(6),
3974 x_eval_ctrl_attr_7 => m_add_to_eval_ctrls(7),
3975 x_eval_ctrl_attr_8 => m_add_to_eval_ctrls(8),
3976 x_eval_ctrl_attr_9 => m_add_to_eval_ctrls(9),
3977 x_eval_ctrl_attr_10 => m_add_to_eval_ctrls(10),
3978 x_eval_ctrl_attr_11 => m_add_to_eval_ctrls(11),
3979 x_eval_ctrl_attr_12 => m_add_to_eval_ctrls(12),
3980 x_eval_ctrl_attr_13 => m_add_to_eval_ctrls(13),
3981 x_eval_ctrl_attr_14 => m_add_to_eval_ctrls(14),
3982 x_eval_ctrl_attr_15 => m_add_to_eval_ctrls(15),
3983 x_eval_ctrl_attr_16 => m_add_to_eval_ctrls(16),
3984 x_eval_ctrl_attr_17 => m_add_to_eval_ctrls(17),
3985 x_eval_ctrl_attr_18 => m_add_to_eval_ctrls(18),
3986 x_eval_ctrl_attr_19 => m_add_to_eval_ctrls(19),
3987 x_eval_ctrl_attr_20 => m_add_to_eval_ctrls(20),
3988 x_eval_ctrl_attr_21 => m_add_to_eval_ctrls(21),
3989 x_eval_ctrl_attr_22 => m_add_to_eval_ctrls(22),
3990 x_eval_ctrl_attr_23 => m_add_to_eval_ctrls(23),
3991 x_eval_ctrl_attr_24 => m_add_to_eval_ctrls(24),
3992 x_eval_ctrl_attr_25 => m_add_to_eval_ctrls(25),
3993 x_eval_ctrl_attr_26 => m_add_to_eval_ctrls(26),
3994 x_eval_ctrl_attr_27 => m_add_to_eval_ctrls(27),
3995 x_eval_ctrl_attr_28 => m_add_to_eval_ctrls(28),
3996 x_eval_ctrl_attr_29 => m_add_to_eval_ctrls(29),
3997 x_eval_ctrl_attr_30 => m_add_to_eval_ctrls(30));
3998
3999 EXCEPTION
4000 WHEN NO_DATA_FOUND
4001 THEN
4002 fnd_file.put_line (fnd_file.LOG, SUBSTR ('No data found in Update_item_ctrl_components'
4003 || SUBSTR (SQLERRM, 1, 100), 1, 200));
4004
4005 WHEN OTHERS
4006 THEN
4007 fnd_file.put_line (fnd_file.LOG, SUBSTR ('Unexpected Error in Update_item_ctrl_components'
4008 || SUBSTR (SQLERRM, 1, 100), 1, 200));
4009
4010
4011 end;
4012 end ; --Update_item_ctrl_objectives
4013
4014 ------------------------------ fOR THE ACCOUNTS ------------------------------------------------------------------------------
4015
4016
4017 PROCEDURE Update_acc_ctrl_objectives
4018 (P_CERTIFICATION_ID number ,
4019 P_ACCOUNT_GROUP_ID number ,
4020 P_ACCOUNT_ID number ,
4021 P_CONTROL_ID number ,
4022 P_ORG_ID number ,
4023 P_CHANGE_FLAG VARCHAR2,
4024 P_NEW_FLAG VARCHAR2) is
4025
4026
4027
4028 begin
4029 declare
4030 cursor existing_code(par_type varchar2)
4031 is
4032 select
4033 ctrl_attr_code_1,
4034 ctrl_attr_code_2,
4035 ctrl_attr_code_3,
4036 ctrl_attr_code_4,
4037 ctrl_attr_code_5,
4038 ctrl_attr_code_6,
4039 ctrl_attr_code_7,
4040 ctrl_attr_code_8,
4041 ctrl_attr_code_9,
4042 ctrl_attr_code_10,
4043 ctrl_attr_code_11,
4044 ctrl_attr_code_12,
4045 ctrl_attr_code_13,
4046 ctrl_attr_code_14,
4047 ctrl_attr_code_15,
4048 ctrl_attr_code_16,
4049 ctrl_attr_code_17,
4050 ctrl_attr_code_18,
4051 ctrl_attr_code_19,
4052 ctrl_attr_code_20,
4053 ctrl_attr_code_21,
4054 ctrl_attr_code_22,
4055 ctrl_attr_code_23,
4056 ctrl_attr_code_24,
4057 ctrl_attr_code_25,
4058 ctrl_attr_code_26,
4059 ctrl_attr_code_27,
4060 ctrl_attr_code_28,
4061 ctrl_attr_code_29,
4062 ctrl_attr_code_30,
4063 ineff_ctrl_attr_1,
4064 ineff_ctrl_attr_2,
4065 ineff_ctrl_attr_3,
4066 ineff_ctrl_attr_4,
4067 ineff_ctrl_attr_5,
4068 ineff_ctrl_attr_6,
4069 ineff_ctrl_attr_7,
4070 ineff_ctrl_attr_8,
4071 ineff_ctrl_attr_9,
4072 ineff_ctrl_attr_10,
4073 ineff_ctrl_attr_11,
4074 ineff_ctrl_attr_12,
4075 ineff_ctrl_attr_13,
4076 ineff_ctrl_attr_14,
4077 ineff_ctrl_attr_15,
4078 ineff_ctrl_attr_16,
4079 ineff_ctrl_attr_17,
4080 ineff_ctrl_attr_18,
4081 ineff_ctrl_attr_19,
4082 ineff_ctrl_attr_20,
4083 ineff_ctrl_attr_21,
4084 ineff_ctrl_attr_22,
4085 ineff_ctrl_attr_23,
4086 ineff_ctrl_attr_24,
4087 ineff_ctrl_attr_25,
4088 ineff_ctrl_attr_26,
4089 ineff_ctrl_attr_27,
4090 ineff_ctrl_attr_28,
4091 ineff_ctrl_attr_29,
4092 ineff_ctrl_attr_30
4093 from
4094 amw_fin_cert_ctrl_sum
4095 where
4096 fin_certification_id = P_CERTIFICATION_ID and
4097 ctrl_attribute_type = par_type and
4098 ROWNUM <2
4099 AND account_group_id = P_ACCOUNT_GROUP_ID and
4100 natural_account_id = P_ACCOUNT_ID and
4101 object_type = 'ACCOUNT' ;
4102
4103
4104 ----------------------------------------------
4105 cursor obj_of_the_ctrl
4106 is
4107 select
4108 distinct
4109 comp.OBJECTIVE_CODE
4110 from
4111 amw.amw_fin_item_acc_ctrl ctrl,
4112 amw_control_objectives comp
4113 where
4114 ctrl.FIN_CERTIFICATION_ID= P_CERTIFICATION_ID
4115 and
4116 ctrl.OBJECT_TYPE = 'ACCOUNT' and
4117 ctrl.ACCOUNT_GROUP_ID= P_ACCOUNT_GROUP_ID
4118 AND
4119 ctrl.NATURAL_ACCOUNT_ID = P_ACCOUNT_ID
4120 and
4121 ctrl.CONTROL_REV_ID =comp.CONTROL_REV_ID and
4122 ctrl.ORGANIZATION_ID = P_ORG_ID
4123 and
4124 ctrl.CONTROL_ID = P_CONTROL_ID ;
4125
4126 ----------------------------------------------------
4127 g_user_id NUMBER := fnd_global.user_id;
4128 g_login_id NUMBER := fnd_global.conc_login_id;
4129 m_object_version_number NUMBER;
4130 ctr integer :=0;
4131 max_num_of_codes integer :=0;
4132 m_ctrl_attribute_type VARCHAR2(30) :='CTRL_OBJECTIVES';
4133 m_OBJECT_TYPE VARCHAR2(50) := 'ACCOUNT';
4134
4135
4136 m_component_code component_code_array;
4137 m_ineff_control ineff_control_array ;
4138 -- m_acc_assert_flag component_code_array;
4139 m_add_to_eval_ctrls total_control_array ;
4140
4141 add_or_deduct_value number :=0;
4142
4143 begin
4144
4145 -- ************ Since the Table has 30 Fileds only initialize 30 Positios in the Array**************--
4146 ctr := 1;
4147
4148 loop
4149 EXIT WHEN ctr > 30;
4150
4151 m_component_code(ctr) := null;
4152 -- m_acc_assert_flag(ctr) := 'N';
4153 m_ineff_control(ctr) := 0;
4154 m_add_to_eval_ctrls(ctr) := 0;
4155
4156 ctr := ctr + 1;
4157
4158 end loop; --end of initialization
4159
4160 -- ************ get All Control Components Codes and Load it in an Array for later use **************--
4161 m_ctrl_attribute_type :='CTRL_OBJECTIVES';
4162
4163 --- P_CHANGE_FLAG = 'F' means the Opinion is changed from Ineffective to Efective
4164 --- P_CHANGE_FLAG = 'B' means the Opinion is changed from Efective to Ineffective
4165
4166 if P_CHANGE_FLAG = 'B' then
4167 add_or_deduct_value := 1;
4168 elsif (P_CHANGE_FLAG = 'F' and P_NEW_FLAG <> 'Y') then
4169 add_or_deduct_value := -1;
4170 elsif P_CHANGE_FLAG = 'N' then
4171 return;
4172 end if;
4173
4174 ctr := 0;
4175 for objective_rec in existing_code(m_ctrl_attribute_type)
4176 loop
4177 exit when existing_code%notfound;
4178
4179 m_component_code(1) := objective_rec .ctrl_attr_code_1;
4180 m_component_code(2) := objective_rec .ctrl_attr_code_2;
4181 m_component_code(3) := objective_rec .ctrl_attr_code_3;
4182 m_component_code(4) := objective_rec .ctrl_attr_code_4;
4183 m_component_code(5) :=objective_rec .ctrl_attr_code_5;
4184 m_component_code(6) :=objective_rec .ctrl_attr_code_6;
4185 m_component_code(7) :=objective_rec .ctrl_attr_code_7;
4186 m_component_code(8) :=objective_rec .ctrl_attr_code_8;
4187 m_component_code(9) :=objective_rec .ctrl_attr_code_9;
4188 m_component_code(10) :=objective_rec .ctrl_attr_code_10;
4189 m_component_code(11) :=objective_rec .ctrl_attr_code_11;
4190 m_component_code(12) :=objective_rec .ctrl_attr_code_12;
4191 m_component_code(13) :=objective_rec .ctrl_attr_code_13;
4192 m_component_code(14) :=objective_rec .ctrl_attr_code_14;
4193 m_component_code(15) :=objective_rec .ctrl_attr_code_15;
4194 m_component_code(16) :=objective_rec .ctrl_attr_code_16;
4195 m_component_code(17) :=objective_rec .ctrl_attr_code_17;
4196 m_component_code(18) :=objective_rec .ctrl_attr_code_18;
4197 m_component_code(19) :=objective_rec .ctrl_attr_code_19;
4198 m_component_code(20) :=objective_rec .ctrl_attr_code_20;
4199 m_component_code(21) :=objective_rec .ctrl_attr_code_21;
4200 m_component_code(22) :=objective_rec .ctrl_attr_code_22;
4201 m_component_code(23) :=objective_rec .ctrl_attr_code_23;
4202 m_component_code(24) :=objective_rec .ctrl_attr_code_24;
4203 m_component_code(25) :=objective_rec .ctrl_attr_code_25;
4204 m_component_code(26) :=objective_rec .ctrl_attr_code_26;
4205 m_component_code(27) :=objective_rec .ctrl_attr_code_27;
4206 m_component_code(28) :=objective_rec .ctrl_attr_code_28;
4207 m_component_code(29) :=objective_rec .ctrl_attr_code_29;
4208 m_component_code(30) :=objective_rec .ctrl_attr_code_30;
4209
4210 m_ineff_control(1) := objective_rec.ineff_ctrl_attr_1;
4211 m_ineff_control(2) := objective_rec.ineff_ctrl_attr_2;
4212 m_ineff_control(3) := objective_rec.ineff_ctrl_attr_3;
4213 m_ineff_control(4) := objective_rec.ineff_ctrl_attr_4;
4214 m_ineff_control(5) :=objective_rec.ineff_ctrl_attr_5;
4215 m_ineff_control(6) :=objective_rec.ineff_ctrl_attr_6;
4216 m_ineff_control(7) :=objective_rec.ineff_ctrl_attr_7;
4217 m_ineff_control(8) :=objective_rec.ineff_ctrl_attr_8;
4218 m_ineff_control(9) :=objective_rec.ineff_ctrl_attr_9;
4219 m_ineff_control(10) :=objective_rec.ineff_ctrl_attr_10;
4220 m_ineff_control(11) :=objective_rec.ineff_ctrl_attr_11;
4221 m_ineff_control(12) :=objective_rec.ineff_ctrl_attr_12;
4222 m_ineff_control(13) :=objective_rec.ineff_ctrl_attr_13;
4223 m_ineff_control(14) :=objective_rec.ineff_ctrl_attr_14;
4224 m_ineff_control(15) :=objective_rec.ineff_ctrl_attr_15;
4225 m_ineff_control(16) :=objective_rec.ineff_ctrl_attr_16;
4226 m_ineff_control(17) :=objective_rec.ineff_ctrl_attr_17;
4227 m_ineff_control(18) :=objective_rec.ineff_ctrl_attr_18;
4228 m_ineff_control(19) :=objective_rec.ineff_ctrl_attr_19;
4229 m_ineff_control(20) :=objective_rec.ineff_ctrl_attr_20;
4230 m_ineff_control(21) :=objective_rec.ineff_ctrl_attr_21;
4231 m_ineff_control(22) :=objective_rec.ineff_ctrl_attr_22;
4232 m_ineff_control(23) :=objective_rec.ineff_ctrl_attr_23;
4233 m_ineff_control(24) :=objective_rec.ineff_ctrl_attr_24;
4234 m_ineff_control(25) :=objective_rec.ineff_ctrl_attr_25;
4235 m_ineff_control(26) :=objective_rec.ineff_ctrl_attr_26;
4236 m_ineff_control(27) :=objective_rec.ineff_ctrl_attr_27;
4237 m_ineff_control(28) :=objective_rec.ineff_ctrl_attr_28;
4238 m_ineff_control(29) :=objective_rec.ineff_ctrl_attr_29;
4239 m_ineff_control(30) :=objective_rec.ineff_ctrl_attr_30;
4240
4241 end loop; --end of COSO_COMPONENTS loop
4242
4243
4244 -- **************** Check the REVISION of the Control came with the event has what COSO Codes *******************
4245 -- and in which filed (out of 1 to 30) it is falling and the init varaible with the -1 or +1 corrsponding to that
4246 --****************************************************************************************************************
4247 ctr := 0;
4248 for ctrl_objective_codes in obj_of_the_ctrl
4249 loop
4250 exit when obj_of_the_ctrl%notfound;
4251 ctr := 1;
4252 while ctr <= 30
4253 loop
4254 if m_component_code(ctr) = ctrl_objective_codes.OBJECTIVE_CODE then
4255
4256 m_ineff_control(ctr) := NVL(m_ineff_control(ctr),0) + add_or_deduct_value;
4257
4258 -- m_ineff_control(ctr) := add_or_deduct_value;
4259
4260 if P_NEW_FLAG = 'Y' then
4261 m_add_to_eval_ctrls(ctr) := 1;
4262
4263 end if;
4264
4265 end if;
4266 ctr := ctr + 1;
4267
4268 end loop;
4269
4270
4271 end loop; --end of ctrl_objective_codes in obj_of_the_ctrl loop
4272
4273
4274
4275
4276 amw_fin_coso_views_pvt.UPDATE_FIN_ACC_ROW(
4277 x_fin_certification_id => P_CERTIFICATION_ID ,
4278 x_financial_statement_id => NULL ,
4279 x_financial_item_id => NULL ,
4280 x_account_group_id => P_ACCOUNT_GROUP_ID,
4281 x_natural_account_id => P_ACCOUNT_ID,
4282 x_object_type => m_OBJECT_TYPE ,
4283 x_ctrl_attribute_type => m_ctrl_attribute_type ,
4284 x_ineff_ctrl_attr_1 => m_ineff_control(1) ,
4285 x_ineff_ctrl_attr_2 => m_ineff_control(2) ,
4286 x_ineff_ctrl_attr_3 => m_ineff_control(3) ,
4287 x_ineff_ctrl_attr_4 => m_ineff_control(4) ,
4288 x_ineff_ctrl_attr_5 => m_ineff_control(5) ,
4289 x_ineff_ctrl_attr_6 => m_ineff_control(6) ,
4290 x_ineff_ctrl_attr_7 => m_ineff_control(7) ,
4291 x_ineff_ctrl_attr_8 => m_ineff_control(8) ,
4292 x_ineff_ctrl_attr_9 => m_ineff_control(9) ,
4293 x_ineff_ctrl_attr_10 => m_ineff_control(10) ,
4294 x_ineff_ctrl_attr_11 => m_ineff_control(11) ,
4295 x_ineff_ctrl_attr_12 => m_ineff_control(12) ,
4296 x_ineff_ctrl_attr_13 => m_ineff_control(13) ,
4297 x_ineff_ctrl_attr_14 => m_ineff_control(14) ,
4298 x_ineff_ctrl_attr_15 => m_ineff_control(15) ,
4299 x_ineff_ctrl_attr_16 => m_ineff_control(16) ,
4300 x_ineff_ctrl_attr_17 => m_ineff_control(17) ,
4301 x_ineff_ctrl_attr_18 => m_ineff_control(18) ,
4302 x_ineff_ctrl_attr_19 => m_ineff_control(19) ,
4303 x_ineff_ctrl_attr_20 => m_ineff_control(20) ,
4304 x_ineff_ctrl_attr_21 => m_ineff_control(21) ,
4305 x_ineff_ctrl_attr_22 => m_ineff_control(22) ,
4306 x_ineff_ctrl_attr_23 => m_ineff_control(23) ,
4307 x_ineff_ctrl_attr_24 => m_ineff_control(24) ,
4308 x_ineff_ctrl_attr_25 => m_ineff_control(25) ,
4309 x_ineff_ctrl_attr_26 => m_ineff_control(26) ,
4310 x_ineff_ctrl_attr_27 => m_ineff_control(27) ,
4311 x_ineff_ctrl_attr_28 => m_ineff_control(28) ,
4312 x_ineff_ctrl_attr_29 => m_ineff_control(29) ,
4313 x_ineff_ctrl_attr_30 => m_ineff_control(30) ,
4314 x_last_updated_by => g_user_id ,
4315 x_last_update_date => SYSDATE ,
4316 x_last_update_login => g_login_id,
4317 x_eval_ctrl_attr_1 => m_add_to_eval_ctrls(1),
4318 x_eval_ctrl_attr_2 => m_add_to_eval_ctrls(2),
4319 x_eval_ctrl_attr_3 => m_add_to_eval_ctrls(3),
4320 x_eval_ctrl_attr_4 => m_add_to_eval_ctrls(4),
4321 x_eval_ctrl_attr_5 => m_add_to_eval_ctrls(5),
4322 x_eval_ctrl_attr_6 => m_add_to_eval_ctrls(6),
4323 x_eval_ctrl_attr_7 => m_add_to_eval_ctrls(7),
4324 x_eval_ctrl_attr_8 => m_add_to_eval_ctrls(8),
4325 x_eval_ctrl_attr_9 => m_add_to_eval_ctrls(9),
4326 x_eval_ctrl_attr_10 => m_add_to_eval_ctrls(10),
4327 x_eval_ctrl_attr_11 => m_add_to_eval_ctrls(11),
4328 x_eval_ctrl_attr_12 => m_add_to_eval_ctrls(12),
4329 x_eval_ctrl_attr_13 => m_add_to_eval_ctrls(13),
4330 x_eval_ctrl_attr_14 => m_add_to_eval_ctrls(14),
4331 x_eval_ctrl_attr_15 => m_add_to_eval_ctrls(15),
4332 x_eval_ctrl_attr_16 => m_add_to_eval_ctrls(16),
4333 x_eval_ctrl_attr_17 => m_add_to_eval_ctrls(17),
4334 x_eval_ctrl_attr_18 => m_add_to_eval_ctrls(18),
4335 x_eval_ctrl_attr_19 => m_add_to_eval_ctrls(19),
4336 x_eval_ctrl_attr_20 => m_add_to_eval_ctrls(20),
4337 x_eval_ctrl_attr_21 => m_add_to_eval_ctrls(21),
4338 x_eval_ctrl_attr_22 => m_add_to_eval_ctrls(22),
4339 x_eval_ctrl_attr_23 => m_add_to_eval_ctrls(23),
4340 x_eval_ctrl_attr_24 => m_add_to_eval_ctrls(24),
4341 x_eval_ctrl_attr_25 => m_add_to_eval_ctrls(25),
4342 x_eval_ctrl_attr_26 => m_add_to_eval_ctrls(26),
4343 x_eval_ctrl_attr_27 => m_add_to_eval_ctrls(27),
4344 x_eval_ctrl_attr_28 => m_add_to_eval_ctrls(28),
4345 x_eval_ctrl_attr_29 => m_add_to_eval_ctrls(29),
4346 x_eval_ctrl_attr_30 => m_add_to_eval_ctrls(30)
4347
4348 );
4349
4350
4351 EXCEPTION
4352 WHEN NO_DATA_FOUND
4353 THEN
4354 fnd_file.put_line (fnd_file.LOG, SUBSTR ('No data found in Update_acc_ctrl_components'
4355 || SUBSTR (SQLERRM, 1, 100), 1, 200));
4356
4357 WHEN OTHERS
4358 THEN
4359 fnd_file.put_line (fnd_file.LOG, SUBSTR ('Unexpected Error in Update_acc_ctrl_components'
4360 || SUBSTR (SQLERRM, 1, 100), 1, 200));
4361
4362
4363 end;
4364 end ; --Update_acc_ctrl_objectives
4365 ------------------------------------------------------------------------------------------------------------
4366 --******************************************************************************************************
4367 /* ************************* End of Code to be executed for updating Control Objective LEVEL DATA
4368 -- when business evevnt is rised on opinion changes **** */
4369 --******************************************************************************************************
4370
4371
4372 ------------------------------------------------------------------------------------------------------------
4373
4374 --******************************************************************************************************
4375 /* ************************* Code to be executed for updating Control Assertions LEVEL DATA
4376 -- when business evevnt is rised on opinion changes **** */
4377 --******************************************************************************************************
4378
4379 PROCEDURE Update_item_ctrl_Assertions
4380 (P_CERTIFICATION_ID number ,
4381 P_FINANCIAL_STATEMENT_ID number,
4382 P_STATEMENT_GROUP_ID number,
4383 P_FINANCIAL_ITEM_ID number,
4384 P_CONTROL_ID number ,
4385 P_ORG_ID number ,
4386 P_CHANGE_FLAG VARCHAR2,
4387 P_NEW_FLAG VARCHAR2) is
4388
4389 begin
4390
4391 declare
4392
4393 cursor existing_code(par_type varchar2)
4394 is
4395 select
4396 ctrl_attr_code_1,
4397 ctrl_attr_code_2,
4398 ctrl_attr_code_3,
4399 ctrl_attr_code_4,
4400 ctrl_attr_code_5,
4401 ctrl_attr_code_6,
4402 ctrl_attr_code_7,
4403 ctrl_attr_code_8,
4404 ctrl_attr_code_9,
4405 ctrl_attr_code_10,
4406 ctrl_attr_code_11,
4407 ctrl_attr_code_12,
4408 ctrl_attr_code_13,
4409 ctrl_attr_code_14,
4410 ctrl_attr_code_15,
4411 ctrl_attr_code_16,
4412 ctrl_attr_code_17,
4413 ctrl_attr_code_18,
4414 ctrl_attr_code_19,
4415 ctrl_attr_code_20,
4416 ctrl_attr_code_21,
4417 ctrl_attr_code_22,
4418 ctrl_attr_code_23,
4419 ctrl_attr_code_24,
4420 ctrl_attr_code_25,
4421 ctrl_attr_code_26,
4422 ctrl_attr_code_27,
4423 ctrl_attr_code_28,
4424 ctrl_attr_code_29,
4425 ctrl_attr_code_30,
4426 ineff_ctrl_attr_1,
4427 ineff_ctrl_attr_2,
4428 ineff_ctrl_attr_3,
4429 ineff_ctrl_attr_4,
4430 ineff_ctrl_attr_5,
4431 ineff_ctrl_attr_6,
4432 ineff_ctrl_attr_7,
4433 ineff_ctrl_attr_8,
4434 ineff_ctrl_attr_9,
4435 ineff_ctrl_attr_10,
4436 ineff_ctrl_attr_11,
4437 ineff_ctrl_attr_12,
4438 ineff_ctrl_attr_13,
4439 ineff_ctrl_attr_14,
4440 ineff_ctrl_attr_15,
4441 ineff_ctrl_attr_16,
4442 ineff_ctrl_attr_17,
4443 ineff_ctrl_attr_18,
4444 ineff_ctrl_attr_19,
4445 ineff_ctrl_attr_20,
4446 ineff_ctrl_attr_21,
4447 ineff_ctrl_attr_22,
4448 ineff_ctrl_attr_23,
4449 ineff_ctrl_attr_24,
4450 ineff_ctrl_attr_25,
4451 ineff_ctrl_attr_26,
4452 ineff_ctrl_attr_27,
4453 ineff_ctrl_attr_28,
4454 ineff_ctrl_attr_29,
4455 ineff_ctrl_attr_30,
4456 acc_assert_flag_1 ,
4457 acc_assert_flag_2 ,
4458 acc_assert_flag_3 ,
4459 acc_assert_flag_4 ,
4460 acc_assert_flag_5 ,
4461 acc_assert_flag_6 ,
4462 acc_assert_flag_7 ,
4463 acc_assert_flag_8 ,
4464 acc_assert_flag_9 ,
4465 acc_assert_flag_10,
4466 acc_assert_flag_11 ,
4467 acc_assert_flag_12 ,
4468 acc_assert_flag_13 ,
4469 acc_assert_flag_14 ,
4470 acc_assert_flag_15 ,
4471 acc_assert_flag_16 ,
4472 acc_assert_flag_17 ,
4473 acc_assert_flag_18 ,
4474 acc_assert_flag_19 ,
4475 acc_assert_flag_20,
4476 acc_assert_flag_21 ,
4477 acc_assert_flag_22 ,
4478 acc_assert_flag_23 ,
4479 acc_assert_flag_24 ,
4480 acc_assert_flag_25 ,
4481 acc_assert_flag_26 ,
4482 acc_assert_flag_27 ,
4483 acc_assert_flag_28 ,
4484 acc_assert_flag_29 ,
4485 acc_assert_flag_30
4486
4487 from
4488 amw_fin_cert_ctrl_sum
4489 where
4490 fin_certification_id = P_CERTIFICATION_ID and
4491 ctrl_attribute_type = par_type and
4492 ROWNUM <2;
4493
4494 cursor assertion_of_the_ctrl
4495 is
4496 select
4497 distinct
4498 comp.ASSERTION_CODE
4499 from
4500 amw.amw_fin_item_acc_ctrl ctrl,
4501 amw_control_assertions comp
4502 where
4503 ctrl.FIN_CERTIFICATION_ID= P_CERTIFICATION_ID
4504 and
4505 ctrl.OBJECT_TYPE = 'FINANCIAL ITEM' and
4506 ctrl.FINANCIAL_ITEM_ID= P_FINANCIAL_ITEM_ID
4507 and
4508 ctrl.CONTROL_REV_ID =comp.CONTROL_REV_ID and
4509 ctrl.ORGANIZATION_ID = P_ORG_ID
4510 and
4511 ctrl.CONTROL_ID = P_CONTROL_ID ;
4512
4513 -- ================================= Get Account Assertion COdes FOR A FINANCIAL ITEM ===============================
4514 cursor ACC_ASSERT_FOR_FIN_ITEM
4515 is
4516 select DISTINCT
4517 ASSERTION_CODE
4518 from
4519 amw_account_assertions
4520 where
4521 NATURAL_ACCOUNT_ID IN
4522 (select DISTINCT NATURAL_ACCOUNT_ID from amw_fin_cert_scope where fin_certification_id = P_CERTIFICATION_ID and
4523 financial_item_id = P_FINANCIAL_ITEM_ID );
4524
4525
4526
4527 -- *****************************************************************************************************
4528
4529
4530
4531 g_user_id NUMBER := fnd_global.user_id;
4532 g_login_id NUMBER := fnd_global.conc_login_id;
4533 m_object_version_number NUMBER;
4534 ctr integer :=0;
4535 max_num_of_codes integer :=0;
4536 m_ctrl_attribute_type VARCHAR2(30) :='CTRL_ASSERTIONS';
4537 m_OBJECT_TYPE VARCHAR2(50) := 'FINANCIAL ITEM';
4538
4539
4540 m_component_code component_code_array;
4541 m_ineff_control ineff_control_array ;
4542 m_acc_assert_flag component_code_array;
4543 m_add_to_eval_ctrls total_control_array ;
4544
4545 add_or_deduct_value number :=0;
4546
4547 begin
4548
4549 -- ************ Since the Table has 30 Fileds only initialize 30 Positios in the Array**************--
4550 ctr := 1;
4551
4552 loop
4553 EXIT WHEN ctr > 30;
4554
4555 m_component_code(ctr) := null;
4556 m_acc_assert_flag(ctr) := 'N';
4557 m_ineff_control(ctr) := 0;
4558 m_add_to_eval_ctrls(ctr) := 0;
4559
4560 ctr := ctr + 1;
4561
4562 end loop; --end of initialization
4563
4564 -- ************ get All Control Components Codes and Load it in an Array for later use **************--
4565 m_ctrl_attribute_type :='CTRL_ASSERTIONS';
4566
4567 --- P_CHANGE_FLAG = 'F' means the Opinion is changed from Ineffective to Efective
4568 --- P_CHANGE_FLAG = 'B' means the Opinion is changed from Efective to Ineffective
4569
4570 if P_CHANGE_FLAG = 'B' then
4571 add_or_deduct_value := 1;
4572 elsif (P_CHANGE_FLAG = 'F' and P_NEW_FLAG <> 'Y') then
4573 add_or_deduct_value := -1;
4574 elsif P_CHANGE_FLAG = 'N' then
4575 return;
4576 end if;
4577
4578 ctr := 0;
4579 for assertion_rec in existing_code(m_ctrl_attribute_type)
4580 loop
4581 exit when existing_code%notfound;
4582
4583 m_component_code(1) := assertion_rec .ctrl_attr_code_1;
4584 m_component_code(2) := assertion_rec .ctrl_attr_code_2;
4585 m_component_code(3) := assertion_rec .ctrl_attr_code_3;
4586 m_component_code(4) := assertion_rec .ctrl_attr_code_4;
4587 m_component_code(5) :=assertion_rec .ctrl_attr_code_5;
4588 m_component_code(6) :=assertion_rec .ctrl_attr_code_6;
4589 m_component_code(7) :=assertion_rec .ctrl_attr_code_7;
4590 m_component_code(8) :=assertion_rec .ctrl_attr_code_8;
4591 m_component_code(9) :=assertion_rec .ctrl_attr_code_9;
4592 m_component_code(10) :=assertion_rec .ctrl_attr_code_10;
4593 m_component_code(11) :=assertion_rec .ctrl_attr_code_11;
4594 m_component_code(12) :=assertion_rec .ctrl_attr_code_12;
4595 m_component_code(13) :=assertion_rec .ctrl_attr_code_13;
4596 m_component_code(14) :=assertion_rec .ctrl_attr_code_14;
4597 m_component_code(15) :=assertion_rec .ctrl_attr_code_15;
4598 m_component_code(16) :=assertion_rec .ctrl_attr_code_16;
4599 m_component_code(17) :=assertion_rec .ctrl_attr_code_17;
4600 m_component_code(18) :=assertion_rec .ctrl_attr_code_18;
4601 m_component_code(19) :=assertion_rec .ctrl_attr_code_19;
4602 m_component_code(20) :=assertion_rec .ctrl_attr_code_20;
4603 m_component_code(21) :=assertion_rec .ctrl_attr_code_21;
4604 m_component_code(22) :=assertion_rec .ctrl_attr_code_22;
4605 m_component_code(23) :=assertion_rec .ctrl_attr_code_23;
4606 m_component_code(24) :=assertion_rec .ctrl_attr_code_24;
4607 m_component_code(25) :=assertion_rec .ctrl_attr_code_25;
4608 m_component_code(26) :=assertion_rec .ctrl_attr_code_26;
4609 m_component_code(27) :=assertion_rec .ctrl_attr_code_27;
4610 m_component_code(28) :=assertion_rec .ctrl_attr_code_28;
4611 m_component_code(29) :=assertion_rec .ctrl_attr_code_29;
4612 m_component_code(30) :=assertion_rec .ctrl_attr_code_30;
4613
4614
4615 m_acc_assert_flag(1) := assertion_rec .acc_assert_flag_1;
4616 m_acc_assert_flag(2) := assertion_rec .acc_assert_flag_2;
4617 m_acc_assert_flag(3) := assertion_rec .acc_assert_flag_3;
4618 m_acc_assert_flag(4) := assertion_rec .acc_assert_flag_4;
4619 m_acc_assert_flag(5) :=assertion_rec .acc_assert_flag_5;
4620 m_acc_assert_flag(6) :=assertion_rec .acc_assert_flag_6;
4621 m_acc_assert_flag(7) :=assertion_rec .acc_assert_flag_7;
4622 m_acc_assert_flag(8) :=assertion_rec .acc_assert_flag_8;
4623 m_acc_assert_flag(9) :=assertion_rec .acc_assert_flag_9;
4624 m_acc_assert_flag(10) :=assertion_rec .acc_assert_flag_10;
4625 m_acc_assert_flag(11) :=assertion_rec .acc_assert_flag_11;
4626 m_acc_assert_flag(12) :=assertion_rec .acc_assert_flag_12;
4627 m_acc_assert_flag(13) :=assertion_rec .acc_assert_flag_13;
4628 m_acc_assert_flag(14) :=assertion_rec .acc_assert_flag_14;
4629 m_acc_assert_flag(15) :=assertion_rec .acc_assert_flag_15;
4630 m_acc_assert_flag(16) :=assertion_rec .acc_assert_flag_16;
4631 m_acc_assert_flag(17) :=assertion_rec .acc_assert_flag_17;
4632 m_acc_assert_flag(18) :=assertion_rec .acc_assert_flag_18;
4633 m_acc_assert_flag(19) :=assertion_rec .acc_assert_flag_19;
4634 m_acc_assert_flag(20) :=assertion_rec .acc_assert_flag_20;
4635 m_acc_assert_flag(21) :=assertion_rec .acc_assert_flag_21;
4636 m_acc_assert_flag(22) :=assertion_rec .acc_assert_flag_22;
4637 m_acc_assert_flag(23) :=assertion_rec .acc_assert_flag_23;
4638 m_acc_assert_flag(24) :=assertion_rec .acc_assert_flag_24;
4639 m_acc_assert_flag(25) :=assertion_rec .acc_assert_flag_25;
4640 m_acc_assert_flag(26) :=assertion_rec .acc_assert_flag_26;
4641 m_acc_assert_flag(27) :=assertion_rec .acc_assert_flag_27;
4642 m_acc_assert_flag(28) :=assertion_rec .acc_assert_flag_28;
4643 m_acc_assert_flag(29) :=assertion_rec .acc_assert_flag_29;
4644 m_acc_assert_flag(30) :=assertion_rec .acc_assert_flag_30;
4645
4646 m_ineff_control(1) := assertion_rec.ineff_ctrl_attr_1;
4647 m_ineff_control(2) := assertion_rec.ineff_ctrl_attr_2;
4648 m_ineff_control(3) := assertion_rec.ineff_ctrl_attr_3;
4649 m_ineff_control(4) := assertion_rec.ineff_ctrl_attr_4;
4650 m_ineff_control(5) :=assertion_rec.ineff_ctrl_attr_5;
4651 m_ineff_control(6) :=assertion_rec.ineff_ctrl_attr_6;
4652 m_ineff_control(7) :=assertion_rec.ineff_ctrl_attr_7;
4653 m_ineff_control(8) :=assertion_rec.ineff_ctrl_attr_8;
4654 m_ineff_control(9) :=assertion_rec.ineff_ctrl_attr_9;
4655 m_ineff_control(10) :=assertion_rec.ineff_ctrl_attr_10;
4656 m_ineff_control(11) :=assertion_rec.ineff_ctrl_attr_11;
4657 m_ineff_control(12) :=assertion_rec.ineff_ctrl_attr_12;
4658 m_ineff_control(13) :=assertion_rec.ineff_ctrl_attr_13;
4659 m_ineff_control(14) :=assertion_rec.ineff_ctrl_attr_14;
4660 m_ineff_control(15) :=assertion_rec.ineff_ctrl_attr_15;
4661 m_ineff_control(16) :=assertion_rec.ineff_ctrl_attr_16;
4662 m_ineff_control(17) :=assertion_rec.ineff_ctrl_attr_17;
4663 m_ineff_control(18) :=assertion_rec.ineff_ctrl_attr_18;
4664 m_ineff_control(19) :=assertion_rec.ineff_ctrl_attr_19;
4665 m_ineff_control(20) :=assertion_rec.ineff_ctrl_attr_20;
4666 m_ineff_control(21) :=assertion_rec.ineff_ctrl_attr_21;
4667 m_ineff_control(22) :=assertion_rec.ineff_ctrl_attr_22;
4668 m_ineff_control(23) :=assertion_rec.ineff_ctrl_attr_23;
4669 m_ineff_control(24) :=assertion_rec.ineff_ctrl_attr_24;
4670 m_ineff_control(25) :=assertion_rec.ineff_ctrl_attr_25;
4671 m_ineff_control(26) :=assertion_rec.ineff_ctrl_attr_26;
4672 m_ineff_control(27) :=assertion_rec.ineff_ctrl_attr_27;
4673 m_ineff_control(28) :=assertion_rec.ineff_ctrl_attr_28;
4674 m_ineff_control(29) :=assertion_rec.ineff_ctrl_attr_29;
4675 m_ineff_control(30) :=assertion_rec.ineff_ctrl_attr_30;
4676
4677 end loop; --end of Control Assertion Rec loop
4678
4679
4680 -- **************** Check the REVISION of the Control came with the event has what COSO Codes *******************
4681 -- and in which filed (out of 1 to 30) it is falling and the init varaible with the -1 or +1 corrsponding to that
4682 --****************************************************************************************************************
4683 ctr := 0;
4684 for ctrl_assertion_codes in assertion_of_the_ctrl
4685 loop
4686 exit when assertion_of_the_ctrl%notfound;
4687 ctr := 1;
4688 while ctr <= 30
4689 loop
4690 if m_component_code(ctr) = ctrl_assertion_codes.ASSERTION_CODE then
4691
4692 /********** insanity check for the numbers ******
4693 ********* If the display format is a/b/c, then a >= 0 and b>= a and c>= b ****/
4694 IF( (NVL(m_ineff_control(ctr),0) + add_or_deduct_value) < 0 or (NVL(m_ineff_control(ctr),0) + add_or_deduct_value) > m_add_to_eval_ctrls(ctr))
4695 THEN
4696 AMW_FINSTMT_CERT_BES_PKG.G_REFRESH_FLAG := 'Y';
4697 IF AMW_FINSTMT_CERT_BES_PKG.m_certification_list.exists(P_CERTIFICATION_ID) THEN
4698 EXIT;
4699 ELSE
4700 AMW_FINSTMT_CERT_BES_PKG.m_certification_list(AMW_FINSTMT_CERT_BES_PKG.m_certification_list.COUNT+1) := P_CERTIFICATION_ID;
4701 EXIT;
4702 END IF;
4703 END IF;
4704
4705 m_ineff_control(ctr) := NVL(m_ineff_control(ctr),0) + add_or_deduct_value;
4706
4707
4708 if P_NEW_FLAG = 'Y' then
4709 m_add_to_eval_ctrls(ctr) := 1;
4710
4711 end if;
4712
4713 end if;
4714 ctr := ctr + 1;
4715
4716 end loop;
4717
4718
4719 end loop; --end of ctrl_assertion_codes in assertion_of_the_ctrl loop
4720
4721
4722 --************ The Image Display Flag setting should be done last as it need ineffective control array *********--
4723 for acc_assertions in ACC_ASSERT_FOR_FIN_ITEM
4724 loop
4725 exit when ACC_ASSERT_FOR_FIN_ITEM%notfound;
4726
4727 ctr := 1;
4728 while ctr <= 30
4729 loop
4730
4731 -- NOT ONLY CHECK WHETHER THE ACCOUNT IS MAPPED TO THE ASSERTION CODE BUT ALSO
4732 -- THERE IS AT LEASE ONE CONROL (WHICH MAPPED TO THE SAME ASSERTION) AND ACCOUNT (THORUGH)
4733 -- IT RELATION TO PROCESS IS INEFFECTIVE
4734
4735 if (m_component_code(ctr) = acc_assertions.ASSERTION_CODE
4736 and m_ineff_control(ctr) > 0 ) then
4737 m_acc_assert_flag(ctr) := 'Y';
4738 exit;
4739 end if;
4740 ctr := ctr +1;
4741 end loop;
4742 end loop; --end of acc_assertions in ACC_ASSERT_CODES
4743
4744
4745
4746
4747 amw_fin_coso_views_pvt.UPDATE_FINITEM_ASSERT_ROW(
4748 x_fin_certification_id => P_CERTIFICATION_ID ,
4749 x_financial_statement_id => P_FINANCIAL_STATEMENT_ID ,
4750 x_financial_item_id => P_FINANCIAL_ITEM_ID ,
4751 x_account_group_id => null ,
4752 x_natural_account_id => null,
4753 x_object_type => m_OBJECT_TYPE ,
4754 x_ctrl_attribute_type => m_ctrl_attribute_type ,
4755 x_ineff_ctrl_attr_1 => m_ineff_control(1) ,
4756 x_ineff_ctrl_attr_2 => m_ineff_control(2) ,
4757 x_ineff_ctrl_attr_3 => m_ineff_control(3) ,
4758 x_ineff_ctrl_attr_4 => m_ineff_control(4) ,
4759 x_ineff_ctrl_attr_5 => m_ineff_control(5) ,
4760 x_ineff_ctrl_attr_6 => m_ineff_control(6) ,
4761 x_ineff_ctrl_attr_7 => m_ineff_control(7) ,
4762 x_ineff_ctrl_attr_8 => m_ineff_control(8) ,
4763 x_ineff_ctrl_attr_9 => m_ineff_control(9) ,
4764 x_ineff_ctrl_attr_10 => m_ineff_control(10) ,
4765 x_ineff_ctrl_attr_11 => m_ineff_control(11) ,
4766 x_ineff_ctrl_attr_12 => m_ineff_control(12) ,
4767 x_ineff_ctrl_attr_13 => m_ineff_control(13) ,
4768 x_ineff_ctrl_attr_14 => m_ineff_control(14) ,
4769 x_ineff_ctrl_attr_15 => m_ineff_control(15) ,
4770 x_ineff_ctrl_attr_16 => m_ineff_control(16) ,
4771 x_ineff_ctrl_attr_17 => m_ineff_control(17) ,
4772 x_ineff_ctrl_attr_18 => m_ineff_control(18) ,
4773 x_ineff_ctrl_attr_19 => m_ineff_control(19) ,
4774 x_ineff_ctrl_attr_20 => m_ineff_control(20) ,
4775 x_ineff_ctrl_attr_21 => m_ineff_control(21) ,
4776 x_ineff_ctrl_attr_22 => m_ineff_control(22) ,
4777 x_ineff_ctrl_attr_23 => m_ineff_control(23) ,
4778 x_ineff_ctrl_attr_24 => m_ineff_control(24) ,
4779 x_ineff_ctrl_attr_25 => m_ineff_control(25) ,
4780 x_ineff_ctrl_attr_26 => m_ineff_control(26) ,
4781 x_ineff_ctrl_attr_27 => m_ineff_control(27) ,
4782 x_ineff_ctrl_attr_28 => m_ineff_control(28) ,
4783 x_ineff_ctrl_attr_29 => m_ineff_control(29) ,
4784 x_ineff_ctrl_attr_30 => m_ineff_control(30) ,
4785 x_last_updated_by => g_user_id ,
4786 x_last_update_date => SYSDATE ,
4787 x_last_update_login => g_login_id,
4788 x_eval_ctrl_attr_1 => m_add_to_eval_ctrls(1),
4789 x_eval_ctrl_attr_2 => m_add_to_eval_ctrls(2),
4790 x_eval_ctrl_attr_3 => m_add_to_eval_ctrls(3),
4791 x_eval_ctrl_attr_4 => m_add_to_eval_ctrls(4),
4792 x_eval_ctrl_attr_5 => m_add_to_eval_ctrls(5),
4793 x_eval_ctrl_attr_6 => m_add_to_eval_ctrls(6),
4794 x_eval_ctrl_attr_7 => m_add_to_eval_ctrls(7),
4795 x_eval_ctrl_attr_8 => m_add_to_eval_ctrls(8),
4796 x_eval_ctrl_attr_9 => m_add_to_eval_ctrls(9),
4797 x_eval_ctrl_attr_10 => m_add_to_eval_ctrls(10),
4798 x_eval_ctrl_attr_11 => m_add_to_eval_ctrls(11),
4799 x_eval_ctrl_attr_12 => m_add_to_eval_ctrls(12),
4800 x_eval_ctrl_attr_13 => m_add_to_eval_ctrls(13),
4801 x_eval_ctrl_attr_14 => m_add_to_eval_ctrls(14),
4802 x_eval_ctrl_attr_15 => m_add_to_eval_ctrls(15),
4803 x_eval_ctrl_attr_16 => m_add_to_eval_ctrls(16),
4804 x_eval_ctrl_attr_17 => m_add_to_eval_ctrls(17),
4805 x_eval_ctrl_attr_18 => m_add_to_eval_ctrls(18),
4806 x_eval_ctrl_attr_19 => m_add_to_eval_ctrls(19),
4807 x_eval_ctrl_attr_20 => m_add_to_eval_ctrls(20),
4808 x_eval_ctrl_attr_21 => m_add_to_eval_ctrls(21),
4809 x_eval_ctrl_attr_22 => m_add_to_eval_ctrls(22),
4810 x_eval_ctrl_attr_23 => m_add_to_eval_ctrls(23),
4811 x_eval_ctrl_attr_24 => m_add_to_eval_ctrls(24),
4812 x_eval_ctrl_attr_25 => m_add_to_eval_ctrls(25),
4813 x_eval_ctrl_attr_26 => m_add_to_eval_ctrls(26),
4814 x_eval_ctrl_attr_27 => m_add_to_eval_ctrls(27),
4815 x_eval_ctrl_attr_28 => m_add_to_eval_ctrls(28),
4816 x_eval_ctrl_attr_29 => m_add_to_eval_ctrls(29),
4817 x_eval_ctrl_attr_30 => m_add_to_eval_ctrls(30),
4818 x_acc_assert_flag1 => m_acc_assert_flag(1),
4819 x_acc_assert_flag2 => m_acc_assert_flag(2),
4820 x_acc_assert_flag3 => m_acc_assert_flag(3),
4821 x_acc_assert_flag4 => m_acc_assert_flag(4),
4822 x_acc_assert_flag5 => m_acc_assert_flag(5),
4823 x_acc_assert_flag6 => m_acc_assert_flag(6),
4824 x_acc_assert_flag7 => m_acc_assert_flag(7),
4825 x_acc_assert_flag8 => m_acc_assert_flag(8),
4826 x_acc_assert_flag9 => m_acc_assert_flag(9),
4827 x_acc_assert_flag10 => m_acc_assert_flag(10),
4828 x_acc_assert_flag11 => m_acc_assert_flag(11),
4829 x_acc_assert_flag12 => m_acc_assert_flag(12),
4830 x_acc_assert_flag13 => m_acc_assert_flag(13),
4831 x_acc_assert_flag14 => m_acc_assert_flag(14),
4832 x_acc_assert_flag15 => m_acc_assert_flag(15),
4833 x_acc_assert_flag16 => m_acc_assert_flag(16),
4834 x_acc_assert_flag17 => m_acc_assert_flag(17),
4835 x_acc_assert_flag18 => m_acc_assert_flag(18),
4836 x_acc_assert_flag19 => m_acc_assert_flag(19),
4837 x_acc_assert_flag20 => m_acc_assert_flag(20),
4838 x_acc_assert_flag21 => m_acc_assert_flag(21),
4839 x_acc_assert_flag22 => m_acc_assert_flag(22),
4840 x_acc_assert_flag23 => m_acc_assert_flag(23),
4841 x_acc_assert_flag24 => m_acc_assert_flag(24),
4842 x_acc_assert_flag25 => m_acc_assert_flag(25),
4843 x_acc_assert_flag26 => m_acc_assert_flag(26),
4844 x_acc_assert_flag27 => m_acc_assert_flag(27),
4845 x_acc_assert_flag28 => m_acc_assert_flag(28),
4846 x_acc_assert_flag29 => m_acc_assert_flag(29),
4847 x_acc_assert_flag30 => m_acc_assert_flag(30)
4848 );
4849
4850 EXCEPTION
4851 WHEN NO_DATA_FOUND
4852 THEN
4853 fnd_file.put_line (fnd_file.LOG, SUBSTR ('No data found in Update_item_ctrl_components'
4854 || SUBSTR (SQLERRM, 1, 100), 1, 200));
4855
4856 WHEN OTHERS
4857 THEN
4858 fnd_file.put_line (fnd_file.LOG, SUBSTR ('Unexpected Error in Update_item_ctrl_components'
4859 || SUBSTR (SQLERRM, 1, 100), 1, 200));
4860
4861
4862 end;
4863 end ; --Update_item_ctrl_Assertions
4864
4865 ------------------------------ fOR THE ACCOUNTS ------------------------------------------------------------------------------
4866
4867
4868 PROCEDURE Update_acc_ctrl_Assertions
4869 (P_CERTIFICATION_ID number ,
4870 P_ACCOUNT_GROUP_ID number ,
4871 P_ACCOUNT_ID number ,
4872 P_CONTROL_ID number ,
4873 P_ORG_ID number ,
4874 P_CHANGE_FLAG VARCHAR2,
4875 P_NEW_FLAG VARCHAR2) is
4876
4877
4878
4879 begin
4880 declare
4881 cursor existing_code(par_type varchar2)
4882 is
4883 select
4884 ctrl_attr_code_1,
4885 ctrl_attr_code_2,
4886 ctrl_attr_code_3,
4887 ctrl_attr_code_4,
4888 ctrl_attr_code_5,
4889 ctrl_attr_code_6,
4890 ctrl_attr_code_7,
4891 ctrl_attr_code_8,
4892 ctrl_attr_code_9,
4893 ctrl_attr_code_10,
4894 ctrl_attr_code_11,
4895 ctrl_attr_code_12,
4896 ctrl_attr_code_13,
4897 ctrl_attr_code_14,
4898 ctrl_attr_code_15,
4899 ctrl_attr_code_16,
4900 ctrl_attr_code_17,
4901 ctrl_attr_code_18,
4902 ctrl_attr_code_19,
4903 ctrl_attr_code_20,
4904 ctrl_attr_code_21,
4905 ctrl_attr_code_22,
4906 ctrl_attr_code_23,
4907 ctrl_attr_code_24,
4908 ctrl_attr_code_25,
4909 ctrl_attr_code_26,
4910 ctrl_attr_code_27,
4911 ctrl_attr_code_28,
4912 ctrl_attr_code_29,
4913 ctrl_attr_code_30,
4914 ineff_ctrl_attr_1,
4915 ineff_ctrl_attr_2,
4916 ineff_ctrl_attr_3,
4917 ineff_ctrl_attr_4,
4918 ineff_ctrl_attr_5,
4919 ineff_ctrl_attr_6,
4920 ineff_ctrl_attr_7,
4921 ineff_ctrl_attr_8,
4922 ineff_ctrl_attr_9,
4923 ineff_ctrl_attr_10,
4924 ineff_ctrl_attr_11,
4925 ineff_ctrl_attr_12,
4926 ineff_ctrl_attr_13,
4927 ineff_ctrl_attr_14,
4928 ineff_ctrl_attr_15,
4929 ineff_ctrl_attr_16,
4930 ineff_ctrl_attr_17,
4931 ineff_ctrl_attr_18,
4932 ineff_ctrl_attr_19,
4933 ineff_ctrl_attr_20,
4934 ineff_ctrl_attr_21,
4935 ineff_ctrl_attr_22,
4936 ineff_ctrl_attr_23,
4937 ineff_ctrl_attr_24,
4938 ineff_ctrl_attr_25,
4939 ineff_ctrl_attr_26,
4940 ineff_ctrl_attr_27,
4941 ineff_ctrl_attr_28,
4942 ineff_ctrl_attr_29,
4943 ineff_ctrl_attr_30,
4944 acc_assert_flag_1 ,
4945 acc_assert_flag_2 ,
4946 acc_assert_flag_3 ,
4947 acc_assert_flag_4 ,
4948 acc_assert_flag_5 ,
4949 acc_assert_flag_6 ,
4950 acc_assert_flag_7 ,
4951 acc_assert_flag_8 ,
4952 acc_assert_flag_9 ,
4953 acc_assert_flag_10,
4954 acc_assert_flag_11 ,
4955 acc_assert_flag_12 ,
4956 acc_assert_flag_13 ,
4957 acc_assert_flag_14 ,
4958 acc_assert_flag_15 ,
4959 acc_assert_flag_16 ,
4960 acc_assert_flag_17 ,
4961 acc_assert_flag_18 ,
4962 acc_assert_flag_19 ,
4963 acc_assert_flag_20,
4964 acc_assert_flag_21 ,
4965 acc_assert_flag_22 ,
4966 acc_assert_flag_23 ,
4967 acc_assert_flag_24 ,
4968 acc_assert_flag_25 ,
4969 acc_assert_flag_26 ,
4970 acc_assert_flag_27 ,
4971 acc_assert_flag_28 ,
4972 acc_assert_flag_29 ,
4973 acc_assert_flag_30
4974 from
4975 amw_fin_cert_ctrl_sum
4976 where
4977 fin_certification_id = P_CERTIFICATION_ID and
4978 ctrl_attribute_type = par_type and
4979 ROWNUM <2
4980 AND account_group_id = P_ACCOUNT_GROUP_ID and
4981 natural_account_id = P_ACCOUNT_ID and
4982 object_type = 'ACCOUNT' ;
4983
4984
4985 ----------------------------------------------
4986 cursor assertion_of_the_ctrl
4987 is
4988 select
4989 distinct
4990 comp.ASSERTION_CODE
4991 from
4992 amw.amw_fin_item_acc_ctrl ctrl,
4993 amw_control_assertions comp
4994 where
4995 ctrl.FIN_CERTIFICATION_ID= P_CERTIFICATION_ID
4996 and
4997 ctrl.OBJECT_TYPE = 'ACCOUNT' and
4998 ctrl.ACCOUNT_GROUP_ID= P_ACCOUNT_GROUP_ID
4999 AND
5000 ctrl.NATURAL_ACCOUNT_ID = P_ACCOUNT_ID
5001 and
5002 ctrl.CONTROL_REV_ID =comp.CONTROL_REV_ID and
5003 ctrl.ORGANIZATION_ID = P_ORG_ID
5004 and
5005 ctrl.CONTROL_ID = P_CONTROL_ID ;
5006
5007 --********************* Get Account Assertion COdes *************************************************--
5008 /*
5009 cursor ACC_ASSERT_CODES
5010 is
5011 select
5012 ASSERTION_CODE
5013 from
5014 amw_account_assertions
5015 where
5016 NATURAL_ACCOUNT_ID =P_ACCOUNT_ID ;
5017 */
5018
5019 cursor ACC_ASSERT_CODES
5020 is
5021 select
5022 distinct
5023 ASSERTION_CODE
5024 from
5025 amw_account_assertions
5026 where
5027 ((NATURAL_ACCOUNT_ID =P_ACCOUNT_ID) or (NATURAL_ACCOUNT_ID in (select CHILD_NATURAL_ACCOUNT_ID from amw_fin_key_acct_flat
5028 where PARENT_NATURAL_ACCOUNT_ID =P_ACCOUNT_ID and ACCOUNT_GROUP_ID=P_ACCOUNT_GROUP_ID)));
5029
5030 ----------------------------------------------------
5031 g_user_id NUMBER := fnd_global.user_id;
5032 g_login_id NUMBER := fnd_global.conc_login_id;
5033 m_object_version_number NUMBER;
5034 ctr integer :=0;
5035 max_num_of_codes integer :=0; m_ctrl_attribute_type VARCHAR2(30) :='CTRL_ASSERTIONS';
5036 m_OBJECT_TYPE VARCHAR2(50) := 'ACCOUNT';
5037
5038 m_assertions_code component_code_array;
5039 m_component_code component_code_array;
5040 m_ineff_control ineff_control_array ;
5041 m_acc_assert_flag component_code_array;
5042 m_add_to_eval_ctrls total_control_array ;
5043
5044 add_or_deduct_value number :=0;
5045
5046 begin
5047
5048 -- ************ Since the Table has 30 Fileds only initialize 30 Positios in the Array**************--
5049 ctr := 1;
5050
5051 loop
5052 EXIT WHEN ctr > 30;
5053
5054 m_component_code(ctr) := null;
5055 m_acc_assert_flag(ctr) := 'N';
5056 m_ineff_control(ctr) := 0;
5057 m_add_to_eval_ctrls(ctr) := 0;
5058
5059 ctr := ctr + 1;
5060
5061 end loop; --end of initialization
5062
5063 -- ************ get All Control Components Codes and Load it in an Array for later use **************--
5064 m_ctrl_attribute_type :='CTRL_ASSERTIONS';
5065
5066 --- P_CHANGE_FLAG = 'F' means the Opinion is changed from Ineffective to Efective
5067 --- P_CHANGE_FLAG = 'B' means the Opinion is changed from Efective to Ineffective
5068
5069 if P_CHANGE_FLAG = 'B' then
5070 add_or_deduct_value := 1;
5071 elsif (P_CHANGE_FLAG = 'F' and P_NEW_FLAG <> 'Y') then
5072 add_or_deduct_value := -1;
5073 elsif P_CHANGE_FLAG = 'N' then
5074 return;
5075 end if;
5076
5077 ctr := 0;
5078 for assertion_rec in existing_code(m_ctrl_attribute_type)
5079 loop
5080 exit when existing_code%notfound;
5081
5082 m_component_code(1) := assertion_rec .ctrl_attr_code_1;
5083 m_component_code(2) := assertion_rec .ctrl_attr_code_2;
5084 m_component_code(3) := assertion_rec .ctrl_attr_code_3;
5085 m_component_code(4) := assertion_rec .ctrl_attr_code_4;
5086 m_component_code(5) :=assertion_rec .ctrl_attr_code_5;
5087 m_component_code(6) :=assertion_rec .ctrl_attr_code_6;
5088 m_component_code(7) :=assertion_rec .ctrl_attr_code_7;
5089 m_component_code(8) :=assertion_rec .ctrl_attr_code_8;
5090 m_component_code(9) :=assertion_rec .ctrl_attr_code_9;
5091 m_component_code(10) :=assertion_rec .ctrl_attr_code_10;
5092 m_component_code(11) :=assertion_rec .ctrl_attr_code_11;
5093 m_component_code(12) :=assertion_rec .ctrl_attr_code_12;
5094 m_component_code(13) :=assertion_rec .ctrl_attr_code_13;
5095 m_component_code(14) :=assertion_rec .ctrl_attr_code_14;
5096 m_component_code(15) :=assertion_rec .ctrl_attr_code_15;
5097 m_component_code(16) :=assertion_rec .ctrl_attr_code_16;
5098 m_component_code(17) :=assertion_rec .ctrl_attr_code_17;
5099 m_component_code(18) :=assertion_rec .ctrl_attr_code_18;
5100 m_component_code(19) :=assertion_rec .ctrl_attr_code_19;
5101 m_component_code(20) :=assertion_rec .ctrl_attr_code_20;
5102 m_component_code(21) :=assertion_rec .ctrl_attr_code_21;
5103 m_component_code(22) :=assertion_rec .ctrl_attr_code_22;
5104 m_component_code(23) :=assertion_rec .ctrl_attr_code_23;
5105 m_component_code(24) :=assertion_rec .ctrl_attr_code_24;
5106 m_component_code(25) :=assertion_rec .ctrl_attr_code_25;
5107 m_component_code(26) :=assertion_rec .ctrl_attr_code_26;
5108 m_component_code(27) :=assertion_rec .ctrl_attr_code_27;
5109 m_component_code(28) :=assertion_rec .ctrl_attr_code_28;
5110 m_component_code(29) :=assertion_rec .ctrl_attr_code_29;
5111 m_component_code(30) :=assertion_rec .ctrl_attr_code_30;
5112
5113
5114 m_ineff_control(1) := assertion_rec.ineff_ctrl_attr_1;
5115 m_ineff_control(2) := assertion_rec.ineff_ctrl_attr_2;
5116 m_ineff_control(3) := assertion_rec.ineff_ctrl_attr_3;
5117 m_ineff_control(4) := assertion_rec.ineff_ctrl_attr_4;
5118 m_ineff_control(5) :=assertion_rec.ineff_ctrl_attr_5;
5119 m_ineff_control(6) :=assertion_rec.ineff_ctrl_attr_6;
5120 m_ineff_control(7) :=assertion_rec.ineff_ctrl_attr_7;
5121 m_ineff_control(8) :=assertion_rec.ineff_ctrl_attr_8;
5122 m_ineff_control(9) :=assertion_rec.ineff_ctrl_attr_9;
5123 m_ineff_control(10) :=assertion_rec.ineff_ctrl_attr_10;
5124 m_ineff_control(11) :=assertion_rec.ineff_ctrl_attr_11;
5125 m_ineff_control(12) :=assertion_rec.ineff_ctrl_attr_12;
5126 m_ineff_control(13) :=assertion_rec.ineff_ctrl_attr_13;
5127 m_ineff_control(14) :=assertion_rec.ineff_ctrl_attr_14;
5128 m_ineff_control(15) :=assertion_rec.ineff_ctrl_attr_15;
5129 m_ineff_control(16) :=assertion_rec.ineff_ctrl_attr_16;
5130 m_ineff_control(17) :=assertion_rec.ineff_ctrl_attr_17;
5131 m_ineff_control(18) :=assertion_rec.ineff_ctrl_attr_18;
5132 m_ineff_control(19) :=assertion_rec.ineff_ctrl_attr_19;
5133 m_ineff_control(20) :=assertion_rec.ineff_ctrl_attr_20;
5134 m_ineff_control(21) :=assertion_rec.ineff_ctrl_attr_21;
5135 m_ineff_control(22) :=assertion_rec.ineff_ctrl_attr_22;
5136 m_ineff_control(23) :=assertion_rec.ineff_ctrl_attr_23;
5137 m_ineff_control(24) :=assertion_rec.ineff_ctrl_attr_24;
5138 m_ineff_control(25) :=assertion_rec.ineff_ctrl_attr_25;
5139 m_ineff_control(26) :=assertion_rec.ineff_ctrl_attr_26;
5140 m_ineff_control(27) :=assertion_rec.ineff_ctrl_attr_27;
5141 m_ineff_control(28) :=assertion_rec.ineff_ctrl_attr_28;
5142 m_ineff_control(29) :=assertion_rec.ineff_ctrl_attr_29;
5143 m_ineff_control(30) :=assertion_rec.ineff_ctrl_attr_30;
5144
5145 m_acc_assert_flag(1) := assertion_rec .acc_assert_flag_1;
5146 m_acc_assert_flag(2) := assertion_rec .acc_assert_flag_2;
5147 m_acc_assert_flag(3) := assertion_rec .acc_assert_flag_3;
5148 m_acc_assert_flag(4) := assertion_rec .acc_assert_flag_4;
5149 m_acc_assert_flag(5) :=assertion_rec .acc_assert_flag_5;
5150 m_acc_assert_flag(6) :=assertion_rec .acc_assert_flag_6;
5151 m_acc_assert_flag(7) :=assertion_rec .acc_assert_flag_7;
5152 m_acc_assert_flag(8) :=assertion_rec .acc_assert_flag_8;
5153 m_acc_assert_flag(9) :=assertion_rec .acc_assert_flag_9;
5154 m_acc_assert_flag(10) :=assertion_rec .acc_assert_flag_10;
5155 m_acc_assert_flag(11) :=assertion_rec .acc_assert_flag_11;
5156 m_acc_assert_flag(12) :=assertion_rec .acc_assert_flag_12;
5157 m_acc_assert_flag(13) :=assertion_rec .acc_assert_flag_13;
5158 m_acc_assert_flag(14) :=assertion_rec .acc_assert_flag_14;
5159 m_acc_assert_flag(15) :=assertion_rec .acc_assert_flag_15;
5160 m_acc_assert_flag(16) :=assertion_rec .acc_assert_flag_16;
5161 m_acc_assert_flag(17) :=assertion_rec .acc_assert_flag_17;
5162 m_acc_assert_flag(18) :=assertion_rec .acc_assert_flag_18;
5163 m_acc_assert_flag(19) :=assertion_rec .acc_assert_flag_19;
5164 m_acc_assert_flag(20) :=assertion_rec .acc_assert_flag_20;
5165 m_acc_assert_flag(21) :=assertion_rec .acc_assert_flag_21;
5166 m_acc_assert_flag(22) :=assertion_rec .acc_assert_flag_22;
5167 m_acc_assert_flag(23) :=assertion_rec .acc_assert_flag_23;
5168 m_acc_assert_flag(24) :=assertion_rec .acc_assert_flag_24;
5169 m_acc_assert_flag(25) :=assertion_rec .acc_assert_flag_25;
5170 m_acc_assert_flag(26) :=assertion_rec .acc_assert_flag_26;
5171 m_acc_assert_flag(27) :=assertion_rec .acc_assert_flag_27;
5172 m_acc_assert_flag(28) :=assertion_rec .acc_assert_flag_28;
5173 m_acc_assert_flag(29) :=assertion_rec .acc_assert_flag_29;
5174 m_acc_assert_flag(30) :=assertion_rec .acc_assert_flag_30;
5175
5176
5177
5178 end loop; --end of Control Assertion Rec loop
5179
5180 -- **************** Check the REVISION of the Control came with the event has what COSO Codes *******************
5181 -- and in which filed (out of 1 to 30) it is falling and the init varaible with the -1 or +1 corrsponding to that
5182 --****************************************************************************************************************
5183 ctr := 0;
5184 for ctrl_assertion_codes in assertion_of_the_ctrl
5185 loop
5186 exit when assertion_of_the_ctrl%notfound;
5187 ctr := 1;
5188 while ctr <= 30
5189 loop
5190 if m_component_code(ctr) = ctrl_assertion_codes.ASSERTION_CODE then
5191
5192 /********** insanity check for the numbers ******
5193 ********* If the display format is a/b/c, then a >= 0 and b>= a and c>= b ****/
5194 IF( (NVL(m_ineff_control(ctr),0) + add_or_deduct_value) < 0 or (NVL(m_ineff_control(ctr),0) + add_or_deduct_value) > m_add_to_eval_ctrls(ctr))
5195 THEN
5196 AMW_FINSTMT_CERT_BES_PKG.G_REFRESH_FLAG := 'Y';
5197 IF AMW_FINSTMT_CERT_BES_PKG.m_certification_list.exists(P_CERTIFICATION_ID) THEN
5198 EXIT;
5199 ELSE
5200 AMW_FINSTMT_CERT_BES_PKG.m_certification_list(AMW_FINSTMT_CERT_BES_PKG.m_certification_list.COUNT+1) := P_CERTIFICATION_ID;
5201 EXIT;
5202 END IF;
5203 END IF;
5204
5205 m_ineff_control(ctr) := NVL(m_ineff_control(ctr),0) + add_or_deduct_value;
5206
5207 if P_NEW_FLAG = 'Y' then
5208 m_add_to_eval_ctrls(ctr) := 1;
5209
5210 end if;
5211
5212 end if;
5213 ctr := ctr + 1;
5214
5215 end loop;
5216
5217
5218 end loop; --end of ctrl_assertion_codes in assertion_of_the_ctrl loop
5219
5220 --************ The Image Display Flag setting should be done last as it need ineffective control array *********--
5221
5222 for acc_assertions in ACC_ASSERT_CODES
5223 loop
5224 exit when ACC_ASSERT_CODES%notfound;
5225
5226 ctr := 1;
5227 while ctr <= 30
5228 loop
5229
5230 -- NOT ONLY CHECK WHETHER THE ACCOUNT IS MAPPED TO THE ASSERTION CODE BUT ALSO
5231 -- THERE IS AT LEASE ONE CONROL (WHICH MAPPED TO THE SAME ASSERTION) AND ACCOUNT (THORUGH)
5232 -- IT RELATION TO PROCESS IS INEFFECTIVE
5233
5234 if (m_component_code(ctr) = acc_assertions.ASSERTION_CODE
5235 and m_ineff_control(ctr) > 0 ) then
5236 m_acc_assert_flag(ctr) := 'Y';
5237 exit;
5238 end if;
5239 ctr := ctr +1;
5240 end loop;
5241 end loop; --end of acc_assertions in ACC_ASSERT_CODES
5242
5243
5244 amw_fin_coso_views_pvt.UPDATE_FIN_ACC_ASSERT_ROW(
5245 x_fin_certification_id => P_CERTIFICATION_ID ,
5246 x_financial_statement_id => NULL ,
5247 x_financial_item_id => NULL ,
5248 x_account_group_id => P_ACCOUNT_GROUP_ID,
5249 x_natural_account_id => P_ACCOUNT_ID,
5250 x_object_type => m_OBJECT_TYPE ,
5251 x_ctrl_attribute_type => m_ctrl_attribute_type ,
5252 x_ineff_ctrl_attr_1 => m_ineff_control(1) ,
5253 x_ineff_ctrl_attr_2 => m_ineff_control(2) ,
5254 x_ineff_ctrl_attr_3 => m_ineff_control(3) ,
5255 x_ineff_ctrl_attr_4 => m_ineff_control(4) ,
5256 x_ineff_ctrl_attr_5 => m_ineff_control(5) ,
5257 x_ineff_ctrl_attr_6 => m_ineff_control(6) ,
5258 x_ineff_ctrl_attr_7 => m_ineff_control(7) ,
5259 x_ineff_ctrl_attr_8 => m_ineff_control(8) ,
5260 x_ineff_ctrl_attr_9 => m_ineff_control(9) ,
5261 x_ineff_ctrl_attr_10 => m_ineff_control(10) ,
5262 x_ineff_ctrl_attr_11 => m_ineff_control(11) ,
5263 x_ineff_ctrl_attr_12 => m_ineff_control(12) ,
5264 x_ineff_ctrl_attr_13 => m_ineff_control(13) ,
5265 x_ineff_ctrl_attr_14 => m_ineff_control(14) ,
5266 x_ineff_ctrl_attr_15 => m_ineff_control(15) ,
5267 x_ineff_ctrl_attr_16 => m_ineff_control(16) ,
5268 x_ineff_ctrl_attr_17 => m_ineff_control(17) ,
5269 x_ineff_ctrl_attr_18 => m_ineff_control(18) ,
5270 x_ineff_ctrl_attr_19 => m_ineff_control(19) ,
5271 x_ineff_ctrl_attr_20 => m_ineff_control(20) ,
5272 x_ineff_ctrl_attr_21 => m_ineff_control(21) ,
5273 x_ineff_ctrl_attr_22 => m_ineff_control(22) ,
5274 x_ineff_ctrl_attr_23 => m_ineff_control(23) ,
5275 x_ineff_ctrl_attr_24 => m_ineff_control(24) ,
5276 x_ineff_ctrl_attr_25 => m_ineff_control(25) ,
5277 x_ineff_ctrl_attr_26 => m_ineff_control(26) ,
5278 x_ineff_ctrl_attr_27 => m_ineff_control(27) ,
5279 x_ineff_ctrl_attr_28 => m_ineff_control(28) ,
5280 x_ineff_ctrl_attr_29 => m_ineff_control(29) ,
5281 x_ineff_ctrl_attr_30 => m_ineff_control(30) ,
5282 x_last_updated_by => g_user_id ,
5283 x_last_update_date => SYSDATE ,
5284 x_last_update_login => g_login_id,
5285 x_eval_ctrl_attr_1 => m_add_to_eval_ctrls(1),
5286 x_eval_ctrl_attr_2 => m_add_to_eval_ctrls(2),
5287 x_eval_ctrl_attr_3 => m_add_to_eval_ctrls(3),
5288 x_eval_ctrl_attr_4 => m_add_to_eval_ctrls(4),
5289 x_eval_ctrl_attr_5 => m_add_to_eval_ctrls(5),
5290 x_eval_ctrl_attr_6 => m_add_to_eval_ctrls(6),
5291 x_eval_ctrl_attr_7 => m_add_to_eval_ctrls(7),
5292 x_eval_ctrl_attr_8 => m_add_to_eval_ctrls(8),
5293 x_eval_ctrl_attr_9 => m_add_to_eval_ctrls(9),
5294 x_eval_ctrl_attr_10 => m_add_to_eval_ctrls(10),
5295 x_eval_ctrl_attr_11 => m_add_to_eval_ctrls(11),
5296 x_eval_ctrl_attr_12 => m_add_to_eval_ctrls(12),
5297 x_eval_ctrl_attr_13 => m_add_to_eval_ctrls(13),
5298 x_eval_ctrl_attr_14 => m_add_to_eval_ctrls(14),
5299 x_eval_ctrl_attr_15 => m_add_to_eval_ctrls(15),
5300 x_eval_ctrl_attr_16 => m_add_to_eval_ctrls(16),
5301 x_eval_ctrl_attr_17 => m_add_to_eval_ctrls(17),
5302 x_eval_ctrl_attr_18 => m_add_to_eval_ctrls(18),
5303 x_eval_ctrl_attr_19 => m_add_to_eval_ctrls(19),
5304 x_eval_ctrl_attr_20 => m_add_to_eval_ctrls(20),
5305 x_eval_ctrl_attr_21 => m_add_to_eval_ctrls(21),
5306 x_eval_ctrl_attr_22 => m_add_to_eval_ctrls(22),
5307 x_eval_ctrl_attr_23 => m_add_to_eval_ctrls(23),
5308 x_eval_ctrl_attr_24 => m_add_to_eval_ctrls(24),
5309 x_eval_ctrl_attr_25 => m_add_to_eval_ctrls(25),
5310 x_eval_ctrl_attr_26 => m_add_to_eval_ctrls(26),
5311 x_eval_ctrl_attr_27 => m_add_to_eval_ctrls(27),
5312 x_eval_ctrl_attr_28 => m_add_to_eval_ctrls(28),
5313 x_eval_ctrl_attr_29 => m_add_to_eval_ctrls(29),
5314 x_eval_ctrl_attr_30 => m_add_to_eval_ctrls(30),
5315 x_acc_assert_flag1 => m_acc_assert_flag(1),
5316 x_acc_assert_flag2 => m_acc_assert_flag(2),
5317 x_acc_assert_flag3 => m_acc_assert_flag(3),
5318 x_acc_assert_flag4 => m_acc_assert_flag(4),
5319 x_acc_assert_flag5 => m_acc_assert_flag(5),
5320 x_acc_assert_flag6 => m_acc_assert_flag(6),
5321 x_acc_assert_flag7 => m_acc_assert_flag(7),
5322 x_acc_assert_flag8 => m_acc_assert_flag(8),
5323 x_acc_assert_flag9 => m_acc_assert_flag(9),
5324 x_acc_assert_flag10 => m_acc_assert_flag(10),
5325 x_acc_assert_flag11 => m_acc_assert_flag(11),
5326 x_acc_assert_flag12 => m_acc_assert_flag(12),
5327 x_acc_assert_flag13 => m_acc_assert_flag(13),
5328 x_acc_assert_flag14 => m_acc_assert_flag(14),
5329 x_acc_assert_flag15 => m_acc_assert_flag(15),
5330 x_acc_assert_flag16 => m_acc_assert_flag(16),
5331 x_acc_assert_flag17 => m_acc_assert_flag(17),
5332 x_acc_assert_flag18 => m_acc_assert_flag(18),
5333 x_acc_assert_flag19 => m_acc_assert_flag(19),
5334 x_acc_assert_flag20 => m_acc_assert_flag(20),
5335 x_acc_assert_flag21 => m_acc_assert_flag(21),
5336 x_acc_assert_flag22 => m_acc_assert_flag(22),
5337 x_acc_assert_flag23 => m_acc_assert_flag(23),
5338 x_acc_assert_flag24 => m_acc_assert_flag(24),
5339 x_acc_assert_flag25 => m_acc_assert_flag(25),
5340 x_acc_assert_flag26 => m_acc_assert_flag(26),
5341 x_acc_assert_flag27 => m_acc_assert_flag(27),
5342 x_acc_assert_flag28 => m_acc_assert_flag(28),
5343 x_acc_assert_flag29 => m_acc_assert_flag(29),
5344 x_acc_assert_flag30 => m_acc_assert_flag(30)
5345 );
5346
5347
5348 EXCEPTION
5349 WHEN NO_DATA_FOUND
5350 THEN
5351 fnd_file.put_line (fnd_file.LOG, SUBSTR ('No data found in Update_acc_ctrl_components'
5352 || SUBSTR (SQLERRM, 1, 100), 1, 200));
5353
5354 WHEN OTHERS
5355 THEN
5356 fnd_file.put_line (fnd_file.LOG, SUBSTR ('Unexpected Error in Update_acc_ctrl_components'
5357 || SUBSTR (SQLERRM, 1, 100), 1, 200));
5358
5359
5360 end;
5361 end ; --Update_acc_ctrl_Assertions
5362 ------------------------------------------------------------------------------------------------------------
5363 --******************************************************************************************************
5364 /* ************************* End of Code to be executed for updating Control Assertions LEVEL DATA
5365 -- when business evevnt is rised on opinion changes **** */
5366 --******************************************************************************************************
5367
5368
5369
5370 ------------------------------------------------------------------------------------------------------------
5371
5372 procedure UPDATE_FINITEM_ASSERT_ROW (
5373 x_fin_certification_id NUMBER ,
5374 x_financial_statement_id NUMBER ,
5375 x_financial_item_id NUMBER ,
5376 x_account_group_id NUMBER,
5377 x_natural_account_id NUMBER,
5378 x_object_type VARCHAR2,
5379 x_ctrl_attribute_type VARCHAR2,
5380 x_ineff_ctrl_attr_1 NUMBER,
5381 x_ineff_ctrl_attr_2 NUMBER,
5382 x_ineff_ctrl_attr_3 NUMBER,
5383 x_ineff_ctrl_attr_4 NUMBER,
5384 x_ineff_ctrl_attr_5 NUMBER,
5385 x_ineff_ctrl_attr_6 NUMBER,
5386 x_ineff_ctrl_attr_7 NUMBER,
5387 x_ineff_ctrl_attr_8 NUMBER,
5388 x_ineff_ctrl_attr_9 NUMBER,
5389 x_ineff_ctrl_attr_10 NUMBER,
5390 x_ineff_ctrl_attr_11 NUMBER,
5391 x_ineff_ctrl_attr_12 NUMBER,
5392 x_ineff_ctrl_attr_13 NUMBER,
5393 x_ineff_ctrl_attr_14 NUMBER,
5394 x_ineff_ctrl_attr_15 NUMBER,
5395 x_ineff_ctrl_attr_16 NUMBER,
5396 x_ineff_ctrl_attr_17 NUMBER,
5397 x_ineff_ctrl_attr_18 NUMBER,
5398 x_ineff_ctrl_attr_19 NUMBER,
5399 x_ineff_ctrl_attr_20 NUMBER,
5400 x_ineff_ctrl_attr_21 NUMBER,
5401 x_ineff_ctrl_attr_22 NUMBER,
5402 x_ineff_ctrl_attr_23 NUMBER,
5403 x_ineff_ctrl_attr_24 NUMBER,
5404 x_ineff_ctrl_attr_25 NUMBER,
5405 x_ineff_ctrl_attr_26 NUMBER,
5406 x_ineff_ctrl_attr_27 NUMBER,
5407 x_ineff_ctrl_attr_28 NUMBER,
5408 x_ineff_ctrl_attr_29 NUMBER,
5409 x_ineff_ctrl_attr_30 NUMBER,
5410 x_last_updated_by NUMBER,
5411 x_last_update_date DATE ,
5412 x_last_update_login NUMBER,
5413 x_eval_ctrl_attr_1 NUMBER,
5414 x_eval_ctrl_attr_2 NUMBER,
5415 x_eval_ctrl_attr_3 NUMBER,
5416 x_eval_ctrl_attr_4 NUMBER,
5417 x_eval_ctrl_attr_5 NUMBER,
5418 x_eval_ctrl_attr_6 NUMBER,
5419 x_eval_ctrl_attr_7 NUMBER,
5420 x_eval_ctrl_attr_8 NUMBER,
5421 x_eval_ctrl_attr_9 NUMBER,
5422 x_eval_ctrl_attr_10 NUMBER,
5423 x_eval_ctrl_attr_11 NUMBER,
5424 x_eval_ctrl_attr_12 NUMBER,
5425 x_eval_ctrl_attr_13 NUMBER,
5426 x_eval_ctrl_attr_14 NUMBER,
5427 x_eval_ctrl_attr_15 NUMBER,
5428 x_eval_ctrl_attr_16 NUMBER,
5429 x_eval_ctrl_attr_17 NUMBER,
5430 x_eval_ctrl_attr_18 NUMBER,
5431 x_eval_ctrl_attr_19 NUMBER,
5432 x_eval_ctrl_attr_20 NUMBER,
5433 x_eval_ctrl_attr_21 NUMBER,
5434 x_eval_ctrl_attr_22 NUMBER,
5435 x_eval_ctrl_attr_23 NUMBER,
5436 x_eval_ctrl_attr_24 NUMBER,
5437 x_eval_ctrl_attr_25 NUMBER,
5438 x_eval_ctrl_attr_26 NUMBER,
5439 x_eval_ctrl_attr_27 NUMBER,
5440 x_eval_ctrl_attr_28 NUMBER,
5441 x_eval_ctrl_attr_29 NUMBER,
5442 x_eval_ctrl_attr_30 NUMBER,
5443 x_acc_assert_flag1 VARCHAR2,
5444 x_acc_assert_flag2 VARCHAR2,
5445 x_acc_assert_flag3 VARCHAR2,
5446 x_acc_assert_flag4 VARCHAR2,
5447 x_acc_assert_flag5 VARCHAR2,
5448 x_acc_assert_flag6 VARCHAR2,
5449 x_acc_assert_flag7 VARCHAR2,
5450 x_acc_assert_flag8 VARCHAR2,
5451 x_acc_assert_flag9 VARCHAR2,
5452 x_acc_assert_flag10 VARCHAR2,
5453 x_acc_assert_flag11 VARCHAR2,
5454 x_acc_assert_flag12 VARCHAR2,
5455 x_acc_assert_flag13 VARCHAR2,
5456 x_acc_assert_flag14 VARCHAR2,
5457 x_acc_assert_flag15 VARCHAR2,
5458 x_acc_assert_flag16 VARCHAR2,
5459 x_acc_assert_flag17 VARCHAR2,
5460 x_acc_assert_flag18 VARCHAR2,
5461 x_acc_assert_flag19 VARCHAR2,
5462 x_acc_assert_flag20 VARCHAR2,
5463 x_acc_assert_flag21 VARCHAR2,
5464 x_acc_assert_flag22 VARCHAR2,
5465 x_acc_assert_flag23 VARCHAR2,
5466 x_acc_assert_flag24 VARCHAR2,
5467 x_acc_assert_flag25 VARCHAR2,
5468 x_acc_assert_flag26 VARCHAR2,
5469 x_acc_assert_flag27 VARCHAR2,
5470 x_acc_assert_flag28 VARCHAR2,
5471 x_acc_assert_flag29 VARCHAR2,
5472 x_acc_assert_flag30 VARCHAR2
5473 ) is
5474
5475 begin
5476 declare
5477 var_fin_certification_id number;
5478
5479 begin
5480
5481 --******************************************************************************************************
5482 -- NOTE: The values in x_ineff_ctrl_attr_(1 .. 30) may be +1 or -1 depending on the change_flag b or f respectively
5483 --******************************************************************************************************
5484 UPDATE
5485 amw_fin_cert_ctrl_sum
5486 SET
5487 ineff_ctrl_attr_1= x_ineff_ctrl_attr_1
5488 ,ineff_ctrl_attr_2= x_ineff_ctrl_attr_2
5489 ,ineff_ctrl_attr_3= x_ineff_ctrl_attr_3
5490 ,ineff_ctrl_attr_4= x_ineff_ctrl_attr_4
5491 ,ineff_ctrl_attr_5= x_ineff_ctrl_attr_5
5492 ,ineff_ctrl_attr_6= x_ineff_ctrl_attr_6
5493 ,ineff_ctrl_attr_7= x_ineff_ctrl_attr_7
5494 ,ineff_ctrl_attr_8= x_ineff_ctrl_attr_8
5495 ,ineff_ctrl_attr_9= x_ineff_ctrl_attr_9
5496 ,ineff_ctrl_attr_10= x_ineff_ctrl_attr_10
5497 ,ineff_ctrl_attr_11= x_ineff_ctrl_attr_11
5498 ,ineff_ctrl_attr_12= x_ineff_ctrl_attr_12
5499 ,ineff_ctrl_attr_13= x_ineff_ctrl_attr_13
5500 ,ineff_ctrl_attr_14= x_ineff_ctrl_attr_14
5501 ,ineff_ctrl_attr_15= x_ineff_ctrl_attr_15
5502 ,ineff_ctrl_attr_16= x_ineff_ctrl_attr_16
5503 ,ineff_ctrl_attr_17= x_ineff_ctrl_attr_17
5504 ,ineff_ctrl_attr_18= x_ineff_ctrl_attr_18
5505 ,ineff_ctrl_attr_19= x_ineff_ctrl_attr_19
5506 ,ineff_ctrl_attr_20= x_ineff_ctrl_attr_20
5507 ,ineff_ctrl_attr_21= x_ineff_ctrl_attr_21
5508 ,ineff_ctrl_attr_22= x_ineff_ctrl_attr_22
5509 ,ineff_ctrl_attr_23= x_ineff_ctrl_attr_23
5510 ,ineff_ctrl_attr_24= x_ineff_ctrl_attr_24
5511 ,ineff_ctrl_attr_25= x_ineff_ctrl_attr_25
5512 ,ineff_ctrl_attr_26= x_ineff_ctrl_attr_26
5513 ,ineff_ctrl_attr_27= x_ineff_ctrl_attr_27
5514 ,ineff_ctrl_attr_28= x_ineff_ctrl_attr_28
5515 ,ineff_ctrl_attr_29= x_ineff_ctrl_attr_29
5516 ,ineff_ctrl_attr_30= x_ineff_ctrl_attr_30,
5517 eval_ctrl_attr_1 = nvl(eval_ctrl_attr_1,0) + x_eval_ctrl_attr_1 ,
5518 eval_ctrl_attr_2 = nvl(eval_ctrl_attr_2,0) + x_eval_ctrl_attr_2 ,
5519 eval_ctrl_attr_3 = nvl(eval_ctrl_attr_3,0) + x_eval_ctrl_attr_3 ,
5520 eval_ctrl_attr_4 = nvl(eval_ctrl_attr_4,0) + x_eval_ctrl_attr_4 ,
5521 eval_ctrl_attr_5 = nvl(eval_ctrl_attr_5,0) + x_eval_ctrl_attr_5 ,
5522 eval_ctrl_attr_6 = nvl(eval_ctrl_attr_6,0) + x_eval_ctrl_attr_6 ,
5523 eval_ctrl_attr_7 = nvl(eval_ctrl_attr_7,0) + x_eval_ctrl_attr_7 ,
5524 eval_ctrl_attr_8 = nvl(eval_ctrl_attr_8,0) + x_eval_ctrl_attr_8 ,
5525 eval_ctrl_attr_9 = nvl(eval_ctrl_attr_9,0) + x_eval_ctrl_attr_9 ,
5526 eval_ctrl_attr_10 = nvl(eval_ctrl_attr_10,0) + x_eval_ctrl_attr_10 ,
5527 eval_ctrl_attr_11 = nvl(eval_ctrl_attr_11,0) + x_eval_ctrl_attr_11 ,
5528 eval_ctrl_attr_12 = nvl(eval_ctrl_attr_12,0) + x_eval_ctrl_attr_12 ,
5529 eval_ctrl_attr_13 = nvl(eval_ctrl_attr_13,0) + x_eval_ctrl_attr_13 ,
5530 eval_ctrl_attr_14 = nvl(eval_ctrl_attr_14,0) + x_eval_ctrl_attr_14 ,
5531 eval_ctrl_attr_15 = nvl(eval_ctrl_attr_15,0) + x_eval_ctrl_attr_15 ,
5532 eval_ctrl_attr_16 = nvl(eval_ctrl_attr_16,0) + x_eval_ctrl_attr_16 ,
5533 eval_ctrl_attr_17 = nvl(eval_ctrl_attr_17,0) + x_eval_ctrl_attr_17 ,
5534 eval_ctrl_attr_18 = nvl(eval_ctrl_attr_18,0) + x_eval_ctrl_attr_18 ,
5535 eval_ctrl_attr_19 = nvl(eval_ctrl_attr_19,0) + x_eval_ctrl_attr_19 ,
5536 eval_ctrl_attr_20 = nvl(eval_ctrl_attr_20,0) + x_eval_ctrl_attr_20 ,
5537 eval_ctrl_attr_21 = nvl(eval_ctrl_attr_21,0) + x_eval_ctrl_attr_21 ,
5538 eval_ctrl_attr_22 = nvl(eval_ctrl_attr_22,0) + x_eval_ctrl_attr_22 ,
5539 eval_ctrl_attr_23 = nvl(eval_ctrl_attr_23,0) + x_eval_ctrl_attr_23 ,
5540 eval_ctrl_attr_24 = nvl(eval_ctrl_attr_24,0) + x_eval_ctrl_attr_24 ,
5541 eval_ctrl_attr_25 = nvl(eval_ctrl_attr_25,0) + x_eval_ctrl_attr_25 ,
5542 eval_ctrl_attr_26 = nvl(eval_ctrl_attr_26,0) + x_eval_ctrl_attr_26 ,
5543 eval_ctrl_attr_27 = nvl(eval_ctrl_attr_27,0) + x_eval_ctrl_attr_27 ,
5544 eval_ctrl_attr_28 = nvl(eval_ctrl_attr_28,0) + x_eval_ctrl_attr_28 ,
5545 eval_ctrl_attr_29 = nvl(eval_ctrl_attr_29,0) + x_eval_ctrl_attr_29 ,
5546 eval_ctrl_attr_30 = nvl(eval_ctrl_attr_30,0) + x_eval_ctrl_attr_30
5547 ,ineff_ctrl_prcnt_1= round((x_ineff_ctrl_attr_1 / decode(total_ctrl_attr_1,null,1,0,1,total_ctrl_attr_1) ) * 100,0)
5548 ,ineff_ctrl_prcnt_2 = round((x_ineff_ctrl_attr_2 / decode(total_ctrl_attr_2,null,1,0,1,total_ctrl_attr_2) ) * 100,0)
5549 ,ineff_ctrl_prcnt_3= round((x_ineff_ctrl_attr_3 / decode(total_ctrl_attr_3,null,1,0,1,total_ctrl_attr_3) ) * 100,0)
5550 ,ineff_ctrl_prcnt_4= round((x_ineff_ctrl_attr_4 / decode(total_ctrl_attr_4,null,1,0,1,total_ctrl_attr_4) ) * 100,0)
5551 ,ineff_ctrl_prcnt_5= round((x_ineff_ctrl_attr_5 / decode(total_ctrl_attr_5,null,1,0,1,total_ctrl_attr_5) ) * 100,0)
5552 ,ineff_ctrl_prcnt_6= round((x_ineff_ctrl_attr_6 / decode(total_ctrl_attr_6,null,1,0,1,total_ctrl_attr_6) ) * 100,0)
5553 ,ineff_ctrl_prcnt_7= round((x_ineff_ctrl_attr_7 / decode(total_ctrl_attr_7,null,1,0,1,total_ctrl_attr_7) ) * 100,0)
5554 ,ineff_ctrl_prcnt_8= round((x_ineff_ctrl_attr_8 / decode(total_ctrl_attr_8,null,1,0,1,total_ctrl_attr_8) ) * 100,0)
5555 ,ineff_ctrl_prcnt_9= round((x_ineff_ctrl_attr_9 / decode(total_ctrl_attr_9,null,1,0,1,total_ctrl_attr_9) ) * 100,0)
5556 ,ineff_ctrl_prcnt_10= round((x_ineff_ctrl_attr_10 / decode(total_ctrl_attr_10,null,1,0,1,total_ctrl_attr_10) ) * 100,0)
5557 ,ineff_ctrl_prcnt_11= round((x_ineff_ctrl_attr_11 / decode(total_ctrl_attr_11,null,1,0,1,total_ctrl_attr_11) ) * 100,0)
5558 ,ineff_ctrl_prcnt_12= round((x_ineff_ctrl_attr_12 / decode(total_ctrl_attr_12,null,1,0,1,total_ctrl_attr_12) ) * 100,0)
5559 ,ineff_ctrl_prcnt_13= round((x_ineff_ctrl_attr_13 / decode(total_ctrl_attr_13,null,1,0,1,total_ctrl_attr_13) ) * 100,0)
5560 ,ineff_ctrl_prcnt_14= round((x_ineff_ctrl_attr_14 / decode(total_ctrl_attr_14,null,1,0,1,total_ctrl_attr_14) ) * 100,0)
5561 ,ineff_ctrl_prcnt_15= round((x_ineff_ctrl_attr_15 / decode(total_ctrl_attr_15,null,1,0,1,total_ctrl_attr_15) ) * 100,0)
5562 ,ineff_ctrl_prcnt_16= round((x_ineff_ctrl_attr_16 / decode(total_ctrl_attr_16,null,1,0,1,total_ctrl_attr_16) ) * 100,0)
5563 ,ineff_ctrl_prcnt_17= round((x_ineff_ctrl_attr_17 / decode(total_ctrl_attr_17,null,1,0,1,total_ctrl_attr_17) ) * 100,0)
5564 ,ineff_ctrl_prcnt_18= round((x_ineff_ctrl_attr_18 / decode(total_ctrl_attr_18,null,1,0,1,total_ctrl_attr_18) ) * 100,0)
5565 ,ineff_ctrl_prcnt_19= round((x_ineff_ctrl_attr_19 / decode(total_ctrl_attr_19,null,1,0,1,total_ctrl_attr_19) ) * 100,0)
5566 ,ineff_ctrl_prcnt_20= round((x_ineff_ctrl_attr_20 / decode(total_ctrl_attr_20,null,1,0,1,total_ctrl_attr_20) ) * 100,0)
5567 ,ineff_ctrl_prcnt_21= round((x_ineff_ctrl_attr_21 / decode(total_ctrl_attr_21,null,1,0,1,total_ctrl_attr_21) ) * 100,0)
5568 ,ineff_ctrl_prcnt_22= round((x_ineff_ctrl_attr_22 / decode(total_ctrl_attr_22,null,1,0,1,total_ctrl_attr_22) ) * 100,0)
5569 ,ineff_ctrl_prcnt_23= round((x_ineff_ctrl_attr_23 / decode(total_ctrl_attr_23,null,1,0,1,total_ctrl_attr_23) ) * 100,0)
5570 ,ineff_ctrl_prcnt_24= round((x_ineff_ctrl_attr_24 / decode(total_ctrl_attr_24,null,1,0,1,total_ctrl_attr_24) ) * 100,0)
5571 ,ineff_ctrl_prcnt_25= round((x_ineff_ctrl_attr_25 / decode(total_ctrl_attr_25,null,1,0,1,total_ctrl_attr_25) ) * 100,0)
5572 ,ineff_ctrl_prcnt_26= round((x_ineff_ctrl_attr_26 / decode(total_ctrl_attr_26,null,1,0,1,total_ctrl_attr_26) ) * 100,0)
5573 ,ineff_ctrl_prcnt_27= round((x_ineff_ctrl_attr_27 / decode(total_ctrl_attr_27,null,1,0,1,total_ctrl_attr_27) ) * 100,0)
5574 ,ineff_ctrl_prcnt_28= round((x_ineff_ctrl_attr_28 / decode(total_ctrl_attr_28,null,1,0,1,total_ctrl_attr_28) ) * 100,0)
5575 ,ineff_ctrl_prcnt_29= round((x_ineff_ctrl_attr_29 / decode(total_ctrl_attr_29,null,1,0,1,total_ctrl_attr_29) ) * 100,0)
5576 ,ineff_ctrl_prcnt_30= round((x_ineff_ctrl_attr_30 / decode(total_ctrl_attr_30,null,1,0,1,total_ctrl_attr_30) ) * 100,0)
5577 ,acc_assert_flag_1 = x_acc_assert_flag1
5578 ,acc_assert_flag_2 = x_acc_assert_flag2
5579 ,acc_assert_flag_3 = x_acc_assert_flag3
5580 ,acc_assert_flag_4 = x_acc_assert_flag4
5581 ,acc_assert_flag_5 = x_acc_assert_flag5
5582 ,acc_assert_flag_6 = x_acc_assert_flag6
5583 ,acc_assert_flag_7 = x_acc_assert_flag7
5584 ,acc_assert_flag_8 = x_acc_assert_flag8
5585 ,acc_assert_flag_9 = x_acc_assert_flag9
5586 ,acc_assert_flag_10 = x_acc_assert_flag10
5587 ,acc_assert_flag_11 = x_acc_assert_flag11
5588 ,acc_assert_flag_12 = x_acc_assert_flag12
5589 ,acc_assert_flag_13 = x_acc_assert_flag13
5590 ,acc_assert_flag_14 = x_acc_assert_flag14
5591 ,acc_assert_flag_15 = x_acc_assert_flag15
5592 ,acc_assert_flag_16 = x_acc_assert_flag16
5593 ,acc_assert_flag_17 = x_acc_assert_flag17
5594 ,acc_assert_flag_18 = x_acc_assert_flag18
5595 ,acc_assert_flag_19 = x_acc_assert_flag19
5596 ,acc_assert_flag_20 = x_acc_assert_flag20
5597 ,acc_assert_flag_21 = x_acc_assert_flag21
5598 ,acc_assert_flag_22 = x_acc_assert_flag22
5599 ,acc_assert_flag_23 = x_acc_assert_flag23
5600 ,acc_assert_flag_24 = x_acc_assert_flag24
5601 ,acc_assert_flag_25 = x_acc_assert_flag25
5602 ,acc_assert_flag_26 = x_acc_assert_flag26
5603 ,acc_assert_flag_27 = x_acc_assert_flag27
5604 ,acc_assert_flag_28 = x_acc_assert_flag28
5605 ,acc_assert_flag_29 = x_acc_assert_flag29
5606 ,acc_assert_flag_30 = x_acc_assert_flag30
5607 ,last_updated_by = x_last_updated_by
5608 ,last_update_date = x_last_update_date
5609 ,last_update_login = x_last_update_login
5610 ,object_version_number = object_version_number +1
5611 where
5612 fin_certification_id = x_fin_certification_id and
5613 financial_statement_id = x_financial_statement_id and
5614 NVL(financial_item_id, -1) = NVL(x_financial_item_id, -1) and
5615 NVL(account_group_id, -1) = NVL(x_account_group_id, -1) and
5616 nvl(natural_account_id, -1) = nvl(x_natural_account_id, -1) and
5617 CTRL_ATTRIBUTE_TYPE = x_ctrl_attribute_type and
5618 object_type = x_object_type ;
5619
5620 /* EXCEPTION
5621 WHEN OTHERS THEN
5622 fnd_file.put_line(fnd_file.LOG, SUBSTR (SQLERRM, 1, 2000));
5623 fnd_file.put_line(fnd_file.LOG, 'natural_account_id' || x_natural_account_id );
5624 fnd_file.put_line(fnd_file.LOG, 'financial_item_id' || x_financial_item_id);
5625 fnd_file.put_line(fnd_file.LOG, 'fin_certification_id ' || x_fin_certification_id );
5626
5627
5628 RAISE ;
5629 RETURN; */
5630
5631 end;
5632 end UPDATE_FINITEM_ASSERT_ROW;
5633
5634 --***********************************************************************************************************
5635 procedure UPDATE_FIN_ITEM_ROW(
5636 x_fin_certification_id NUMBER ,
5637 x_financial_statement_id NUMBER ,
5638 x_financial_item_id NUMBER ,
5639 x_account_group_id NUMBER,
5640 x_natural_account_id NUMBER,
5641 x_object_type VARCHAR2,
5642 x_ctrl_attribute_type VARCHAR2,
5643 x_ineff_ctrl_attr_1 NUMBER,
5644 x_ineff_ctrl_attr_2 NUMBER,
5645 x_ineff_ctrl_attr_3 NUMBER,
5646 x_ineff_ctrl_attr_4 NUMBER,
5647 x_ineff_ctrl_attr_5 NUMBER,
5648 x_ineff_ctrl_attr_6 NUMBER,
5649 x_ineff_ctrl_attr_7 NUMBER,
5650 x_ineff_ctrl_attr_8 NUMBER,
5651 x_ineff_ctrl_attr_9 NUMBER,
5652 x_ineff_ctrl_attr_10 NUMBER,
5653 x_ineff_ctrl_attr_11 NUMBER,
5654 x_ineff_ctrl_attr_12 NUMBER,
5655 x_ineff_ctrl_attr_13 NUMBER,
5656 x_ineff_ctrl_attr_14 NUMBER,
5657 x_ineff_ctrl_attr_15 NUMBER,
5658 x_ineff_ctrl_attr_16 NUMBER,
5659 x_ineff_ctrl_attr_17 NUMBER,
5660 x_ineff_ctrl_attr_18 NUMBER,
5661 x_ineff_ctrl_attr_19 NUMBER,
5662 x_ineff_ctrl_attr_20 NUMBER,
5663 x_ineff_ctrl_attr_21 NUMBER,
5664 x_ineff_ctrl_attr_22 NUMBER,
5665 x_ineff_ctrl_attr_23 NUMBER,
5666 x_ineff_ctrl_attr_24 NUMBER,
5667 x_ineff_ctrl_attr_25 NUMBER,
5668 x_ineff_ctrl_attr_26 NUMBER,
5669 x_ineff_ctrl_attr_27 NUMBER,
5670 x_ineff_ctrl_attr_28 NUMBER,
5671 x_ineff_ctrl_attr_29 NUMBER,
5672 x_ineff_ctrl_attr_30 NUMBER,
5673 x_last_updated_by NUMBER,
5674 x_last_update_date DATE ,
5675 x_last_update_login NUMBER,
5676 x_eval_ctrl_attr_1 NUMBER,
5677 x_eval_ctrl_attr_2 NUMBER,
5678 x_eval_ctrl_attr_3 NUMBER,
5679 x_eval_ctrl_attr_4 NUMBER,
5680 x_eval_ctrl_attr_5 NUMBER,
5681 x_eval_ctrl_attr_6 NUMBER,
5682 x_eval_ctrl_attr_7 NUMBER,
5683 x_eval_ctrl_attr_8 NUMBER,
5684 x_eval_ctrl_attr_9 NUMBER,
5685 x_eval_ctrl_attr_10 NUMBER,
5686 x_eval_ctrl_attr_11 NUMBER,
5687 x_eval_ctrl_attr_12 NUMBER,
5688 x_eval_ctrl_attr_13 NUMBER,
5689 x_eval_ctrl_attr_14 NUMBER,
5690 x_eval_ctrl_attr_15 NUMBER,
5691 x_eval_ctrl_attr_16 NUMBER,
5692 x_eval_ctrl_attr_17 NUMBER,
5693 x_eval_ctrl_attr_18 NUMBER,
5694 x_eval_ctrl_attr_19 NUMBER,
5695 x_eval_ctrl_attr_20 NUMBER,
5696 x_eval_ctrl_attr_21 NUMBER,
5697 x_eval_ctrl_attr_22 NUMBER,
5698 x_eval_ctrl_attr_23 NUMBER,
5699 x_eval_ctrl_attr_24 NUMBER,
5700 x_eval_ctrl_attr_25 NUMBER,
5701 x_eval_ctrl_attr_26 NUMBER,
5702 x_eval_ctrl_attr_27 NUMBER,
5703 x_eval_ctrl_attr_28 NUMBER,
5704 x_eval_ctrl_attr_29 NUMBER,
5705 x_eval_ctrl_attr_30 NUMBER
5706 ) is
5707
5708 begin
5709 declare
5710 var_fin_certification_id number;
5711
5712 begin
5713
5714 --******************************************************************************************************
5715 -- NOTE: The values in x_ineff_ctrl_attr_(1 .. 30) may be +1 or -1 depending on the change_flag b or f respectively
5716 --******************************************************************************************************
5717 UPDATE
5718 amw_fin_cert_ctrl_sum
5719 SET
5720 ineff_ctrl_attr_1= x_ineff_ctrl_attr_1
5721 ,ineff_ctrl_attr_2 = x_ineff_ctrl_attr_2
5722 ,ineff_ctrl_attr_3= x_ineff_ctrl_attr_3
5723 ,ineff_ctrl_attr_4= x_ineff_ctrl_attr_4
5724 ,ineff_ctrl_attr_5= x_ineff_ctrl_attr_5
5725 ,ineff_ctrl_attr_6= x_ineff_ctrl_attr_6
5726 ,ineff_ctrl_attr_7= x_ineff_ctrl_attr_7
5727 ,ineff_ctrl_attr_8= x_ineff_ctrl_attr_8
5728 ,ineff_ctrl_attr_9= x_ineff_ctrl_attr_9
5729 ,ineff_ctrl_attr_10= x_ineff_ctrl_attr_10
5730 ,ineff_ctrl_attr_11= x_ineff_ctrl_attr_11
5731 ,ineff_ctrl_attr_12= x_ineff_ctrl_attr_12
5732 ,ineff_ctrl_attr_13= x_ineff_ctrl_attr_13
5733 ,ineff_ctrl_attr_14= x_ineff_ctrl_attr_14
5734 ,ineff_ctrl_attr_15= x_ineff_ctrl_attr_15
5735 ,ineff_ctrl_attr_16= x_ineff_ctrl_attr_16
5736 ,ineff_ctrl_attr_17= x_ineff_ctrl_attr_17
5737 ,ineff_ctrl_attr_18= x_ineff_ctrl_attr_18
5738 ,ineff_ctrl_attr_19= x_ineff_ctrl_attr_19
5739 ,ineff_ctrl_attr_20= x_ineff_ctrl_attr_20
5740 ,ineff_ctrl_attr_21= x_ineff_ctrl_attr_21
5741 ,ineff_ctrl_attr_22= x_ineff_ctrl_attr_22
5742 ,ineff_ctrl_attr_23= x_ineff_ctrl_attr_23
5743 ,ineff_ctrl_attr_24= x_ineff_ctrl_attr_24
5744 ,ineff_ctrl_attr_25= x_ineff_ctrl_attr_25
5745 ,ineff_ctrl_attr_26= x_ineff_ctrl_attr_26
5746 ,ineff_ctrl_attr_27= x_ineff_ctrl_attr_27
5747 ,ineff_ctrl_attr_28= x_ineff_ctrl_attr_28
5748 ,ineff_ctrl_attr_29= x_ineff_ctrl_attr_29
5749 ,ineff_ctrl_attr_30= x_ineff_ctrl_attr_30,
5750 eval_ctrl_attr_1 = nvl(eval_ctrl_attr_1,0) + x_eval_ctrl_attr_1 ,
5751 eval_ctrl_attr_2 = nvl(eval_ctrl_attr_2,0) + x_eval_ctrl_attr_2 ,
5752 eval_ctrl_attr_3 = nvl(eval_ctrl_attr_3,0) + x_eval_ctrl_attr_3 ,
5753 eval_ctrl_attr_4 = nvl(eval_ctrl_attr_4,0) + x_eval_ctrl_attr_4 ,
5754 eval_ctrl_attr_5 = nvl(eval_ctrl_attr_5,0) + x_eval_ctrl_attr_5 ,
5755 eval_ctrl_attr_6 = nvl(eval_ctrl_attr_6,0) + x_eval_ctrl_attr_6 ,
5756 eval_ctrl_attr_7 = nvl(eval_ctrl_attr_7,0) + x_eval_ctrl_attr_7 ,
5757 eval_ctrl_attr_8 = nvl(eval_ctrl_attr_8,0) + x_eval_ctrl_attr_8 ,
5758 eval_ctrl_attr_9 = nvl(eval_ctrl_attr_9,0) + x_eval_ctrl_attr_9 ,
5759 eval_ctrl_attr_10 = nvl(eval_ctrl_attr_10,0) + x_eval_ctrl_attr_10 ,
5760 eval_ctrl_attr_11 = nvl(eval_ctrl_attr_11,0) + x_eval_ctrl_attr_11 ,
5761 eval_ctrl_attr_12 = nvl(eval_ctrl_attr_12,0) + x_eval_ctrl_attr_12 ,
5762 eval_ctrl_attr_13 = nvl(eval_ctrl_attr_13,0) + x_eval_ctrl_attr_13 ,
5763 eval_ctrl_attr_14 = nvl(eval_ctrl_attr_14,0) + x_eval_ctrl_attr_14 ,
5764 eval_ctrl_attr_15 = nvl(eval_ctrl_attr_15,0) + x_eval_ctrl_attr_15 ,
5765 eval_ctrl_attr_16 = nvl(eval_ctrl_attr_16,0) + x_eval_ctrl_attr_16 ,
5766 eval_ctrl_attr_17 = nvl(eval_ctrl_attr_17,0) + x_eval_ctrl_attr_17 ,
5767 eval_ctrl_attr_18 = nvl(eval_ctrl_attr_18,0) + x_eval_ctrl_attr_18 ,
5768 eval_ctrl_attr_19 = nvl(eval_ctrl_attr_19,0) + x_eval_ctrl_attr_19 ,
5769 eval_ctrl_attr_20 = nvl(eval_ctrl_attr_20,0) + x_eval_ctrl_attr_20 ,
5770 eval_ctrl_attr_21 = nvl(eval_ctrl_attr_21,0) + x_eval_ctrl_attr_21 ,
5771 eval_ctrl_attr_22 = nvl(eval_ctrl_attr_22,0) + x_eval_ctrl_attr_22 ,
5772 eval_ctrl_attr_23 = nvl(eval_ctrl_attr_23,0) + x_eval_ctrl_attr_23 ,
5773 eval_ctrl_attr_24 = nvl(eval_ctrl_attr_24,0) + x_eval_ctrl_attr_24 ,
5774 eval_ctrl_attr_25 = nvl(eval_ctrl_attr_25,0) + x_eval_ctrl_attr_25 ,
5775 eval_ctrl_attr_26 = nvl(eval_ctrl_attr_26,0) + x_eval_ctrl_attr_26 ,
5776 eval_ctrl_attr_27 = nvl(eval_ctrl_attr_27,0) + x_eval_ctrl_attr_27 ,
5777 eval_ctrl_attr_28 = nvl(eval_ctrl_attr_28,0) + x_eval_ctrl_attr_28 ,
5778 eval_ctrl_attr_29 = nvl(eval_ctrl_attr_29,0) + x_eval_ctrl_attr_29,
5779 eval_ctrl_attr_30 = nvl(eval_ctrl_attr_30,0) + x_eval_ctrl_attr_30
5780 ,ineff_ctrl_prcnt_1= round((x_ineff_ctrl_attr_1 / decode(total_ctrl_attr_1,null,1,0,1,total_ctrl_attr_1) ) * 100,0)
5781 ,ineff_ctrl_prcnt_2 = round((x_ineff_ctrl_attr_2 / decode(total_ctrl_attr_2,null,1,0,1,total_ctrl_attr_2) ) * 100,0)
5782 ,ineff_ctrl_prcnt_3= round((x_ineff_ctrl_attr_3 / decode(total_ctrl_attr_3,null,1,0,1,total_ctrl_attr_3) ) * 100,0)
5783 ,ineff_ctrl_prcnt_4= round((x_ineff_ctrl_attr_4 / decode(total_ctrl_attr_4,null,1,0,1,total_ctrl_attr_4) ) * 100,0)
5784 ,ineff_ctrl_prcnt_5= round((x_ineff_ctrl_attr_5 / decode(total_ctrl_attr_5,null,1,0,1,total_ctrl_attr_5) ) * 100,0)
5785 ,ineff_ctrl_prcnt_6= round((x_ineff_ctrl_attr_6 / decode(total_ctrl_attr_6,null,1,0,1,total_ctrl_attr_6) ) * 100,0)
5786 ,ineff_ctrl_prcnt_7= round((x_ineff_ctrl_attr_7 / decode(total_ctrl_attr_7,null,1,0,1,total_ctrl_attr_7) ) * 100,0)
5787 ,ineff_ctrl_prcnt_8= round((x_ineff_ctrl_attr_8 / decode(total_ctrl_attr_8,null,1,0,1,total_ctrl_attr_8) ) * 100,0)
5788 ,ineff_ctrl_prcnt_9= round((x_ineff_ctrl_attr_9 / decode(total_ctrl_attr_9,null,1,0,1,total_ctrl_attr_9) ) * 100,0)
5789 ,ineff_ctrl_prcnt_10= round((x_ineff_ctrl_attr_10 / decode(total_ctrl_attr_10,null,1,0,1,total_ctrl_attr_10) ) * 100,0)
5790 ,ineff_ctrl_prcnt_11= round((x_ineff_ctrl_attr_11 / decode(total_ctrl_attr_11,null,1,0,1,total_ctrl_attr_11) ) * 100,0)
5791 ,ineff_ctrl_prcnt_12= round((x_ineff_ctrl_attr_12 / decode(total_ctrl_attr_12,null,1,0,1,total_ctrl_attr_12) ) * 100,0)
5792 ,ineff_ctrl_prcnt_13= round((x_ineff_ctrl_attr_13 / decode(total_ctrl_attr_13,null,1,0,1,total_ctrl_attr_13) ) * 100,0)
5793 ,ineff_ctrl_prcnt_14= round((x_ineff_ctrl_attr_14 / decode(total_ctrl_attr_14,null,1,0,1,total_ctrl_attr_14) ) * 100,0)
5794 ,ineff_ctrl_prcnt_15= round((x_ineff_ctrl_attr_15 / decode(total_ctrl_attr_15,null,1,0,1,total_ctrl_attr_15) ) * 100,0)
5795 ,ineff_ctrl_prcnt_16= round((x_ineff_ctrl_attr_16 / decode(total_ctrl_attr_16,null,1,0,1,total_ctrl_attr_16) ) * 100,0)
5796 ,ineff_ctrl_prcnt_17= round((x_ineff_ctrl_attr_17 / decode(total_ctrl_attr_17,null,1,0,1,total_ctrl_attr_17) ) * 100,0)
5797 ,ineff_ctrl_prcnt_18= round((x_ineff_ctrl_attr_18 / decode(total_ctrl_attr_18,null,1,0,1,total_ctrl_attr_18) ) * 100,0)
5798 ,ineff_ctrl_prcnt_19= round((x_ineff_ctrl_attr_19 / decode(total_ctrl_attr_19,null,1,0,1,total_ctrl_attr_19) ) * 100,0)
5799 ,ineff_ctrl_prcnt_20= round((x_ineff_ctrl_attr_20 / decode(total_ctrl_attr_20,null,1,0,1,total_ctrl_attr_20) ) * 100,0)
5800 ,ineff_ctrl_prcnt_21= round((x_ineff_ctrl_attr_21 / decode(total_ctrl_attr_21,null,1,0,1,total_ctrl_attr_21) ) * 100,0)
5801 ,ineff_ctrl_prcnt_22= round((x_ineff_ctrl_attr_22 / decode(total_ctrl_attr_22,null,1,0,1,total_ctrl_attr_22) ) * 100,0)
5802 ,ineff_ctrl_prcnt_23= round((x_ineff_ctrl_attr_23 / decode(total_ctrl_attr_23,null,1,0,1,total_ctrl_attr_23) ) * 100,0)
5803 ,ineff_ctrl_prcnt_24= round((x_ineff_ctrl_attr_24 / decode(total_ctrl_attr_24,null,1,0,1,total_ctrl_attr_24) ) * 100,0)
5804 ,ineff_ctrl_prcnt_25= round((x_ineff_ctrl_attr_25 / decode(total_ctrl_attr_25,null,1,0,1,total_ctrl_attr_25) ) * 100,0)
5805 ,ineff_ctrl_prcnt_26= round((x_ineff_ctrl_attr_26 / decode(total_ctrl_attr_26,null,1,0,1,total_ctrl_attr_26) ) * 100,0)
5806 ,ineff_ctrl_prcnt_27= round((x_ineff_ctrl_attr_27 / decode(total_ctrl_attr_27,null,1,0,1,total_ctrl_attr_27) ) * 100,0)
5807 ,ineff_ctrl_prcnt_28= round((x_ineff_ctrl_attr_28 / decode(total_ctrl_attr_28,null,1,0,1,total_ctrl_attr_28) ) * 100,0)
5808 ,ineff_ctrl_prcnt_29= round((x_ineff_ctrl_attr_29 / decode(total_ctrl_attr_29,null,1,0,1,total_ctrl_attr_29) ) * 100,0)
5809 ,ineff_ctrl_prcnt_30= round((x_ineff_ctrl_attr_30 / decode(total_ctrl_attr_30,null,1,0,1,total_ctrl_attr_30) ) * 100,0)
5810 ,last_updated_by = x_last_updated_by
5811 ,last_update_date = x_last_update_date
5812 ,last_update_login = x_last_update_login
5813 ,object_version_number = object_version_number +1
5814 where
5815 fin_certification_id = x_fin_certification_id and
5816 financial_statement_id = x_financial_statement_id and
5817 NVL(financial_item_id, -1) = NVL(x_financial_item_id, -1) and
5818 NVL(account_group_id, -1) = NVL(x_account_group_id, -1) and
5819 nvl(natural_account_id, -1) = nvl(x_natural_account_id, -1) and
5820 CTRL_ATTRIBUTE_TYPE = x_ctrl_attribute_type and
5821 object_type = x_object_type ;
5822
5823 /* EXCEPTION
5824 WHEN OTHERS THEN
5825 fnd_file.put_line(fnd_file.LOG, SUBSTR (SQLERRM, 1, 2000));
5826 fnd_file.put_line(fnd_file.LOG, 'natural_account_id' || x_natural_account_id );
5827 fnd_file.put_line(fnd_file.LOG, 'financial_item_id' || x_financial_item_id);
5828 fnd_file.put_line(fnd_file.LOG, 'fin_certification_id ' || x_fin_certification_id );
5829
5830
5831 RAISE ;
5832 RETURN; */
5833
5834 end;
5835 end UPDATE_FIN_ITEM_ROW;
5836 --*************************************************************************************************************
5837 procedure UPDATE_FIN_ACC_ASSERT_ROW (
5838 x_fin_certification_id NUMBER ,
5839 x_financial_statement_id NUMBER ,
5840 x_financial_item_id NUMBER ,
5841 x_account_group_id NUMBER,
5842 x_natural_account_id NUMBER,
5843 x_object_type VARCHAR2,
5844 x_ctrl_attribute_type VARCHAR2,
5845 x_ineff_ctrl_attr_1 NUMBER,
5846 x_ineff_ctrl_attr_2 NUMBER,
5847 x_ineff_ctrl_attr_3 NUMBER,
5848 x_ineff_ctrl_attr_4 NUMBER,
5849 x_ineff_ctrl_attr_5 NUMBER,
5850 x_ineff_ctrl_attr_6 NUMBER,
5851 x_ineff_ctrl_attr_7 NUMBER,
5852 x_ineff_ctrl_attr_8 NUMBER,
5853 x_ineff_ctrl_attr_9 NUMBER,
5854 x_ineff_ctrl_attr_10 NUMBER,
5855 x_ineff_ctrl_attr_11 NUMBER,
5856 x_ineff_ctrl_attr_12 NUMBER,
5857 x_ineff_ctrl_attr_13 NUMBER,
5858 x_ineff_ctrl_attr_14 NUMBER,
5859 x_ineff_ctrl_attr_15 NUMBER,
5860 x_ineff_ctrl_attr_16 NUMBER,
5861 x_ineff_ctrl_attr_17 NUMBER,
5862 x_ineff_ctrl_attr_18 NUMBER,
5863 x_ineff_ctrl_attr_19 NUMBER,
5864 x_ineff_ctrl_attr_20 NUMBER,
5865 x_ineff_ctrl_attr_21 NUMBER,
5866 x_ineff_ctrl_attr_22 NUMBER,
5867 x_ineff_ctrl_attr_23 NUMBER,
5868 x_ineff_ctrl_attr_24 NUMBER,
5869 x_ineff_ctrl_attr_25 NUMBER,
5870 x_ineff_ctrl_attr_26 NUMBER,
5871 x_ineff_ctrl_attr_27 NUMBER,
5872 x_ineff_ctrl_attr_28 NUMBER,
5873 x_ineff_ctrl_attr_29 NUMBER,
5874 x_ineff_ctrl_attr_30 NUMBER,
5875 x_last_updated_by NUMBER,
5876 x_last_update_date DATE ,
5877 x_last_update_login NUMBER,
5878 x_eval_ctrl_attr_1 NUMBER,
5879 x_eval_ctrl_attr_2 NUMBER,
5880 x_eval_ctrl_attr_3 NUMBER,
5881 x_eval_ctrl_attr_4 NUMBER,
5882 x_eval_ctrl_attr_5 NUMBER,
5883 x_eval_ctrl_attr_6 NUMBER,
5884 x_eval_ctrl_attr_7 NUMBER,
5885 x_eval_ctrl_attr_8 NUMBER,
5886 x_eval_ctrl_attr_9 NUMBER,
5887 x_eval_ctrl_attr_10 NUMBER,
5888 x_eval_ctrl_attr_11 NUMBER,
5889 x_eval_ctrl_attr_12 NUMBER,
5890 x_eval_ctrl_attr_13 NUMBER,
5891 x_eval_ctrl_attr_14 NUMBER,
5892 x_eval_ctrl_attr_15 NUMBER,
5893 x_eval_ctrl_attr_16 NUMBER,
5894 x_eval_ctrl_attr_17 NUMBER,
5895 x_eval_ctrl_attr_18 NUMBER,
5896 x_eval_ctrl_attr_19 NUMBER,
5897 x_eval_ctrl_attr_20 NUMBER,
5898 x_eval_ctrl_attr_21 NUMBER,
5899 x_eval_ctrl_attr_22 NUMBER,
5900 x_eval_ctrl_attr_23 NUMBER,
5901 x_eval_ctrl_attr_24 NUMBER,
5902 x_eval_ctrl_attr_25 NUMBER,
5903 x_eval_ctrl_attr_26 NUMBER,
5904 x_eval_ctrl_attr_27 NUMBER,
5905 x_eval_ctrl_attr_28 NUMBER,
5906 x_eval_ctrl_attr_29 NUMBER,
5907 x_eval_ctrl_attr_30 NUMBER,
5908 x_acc_assert_flag1 VARCHAR2,
5909 x_acc_assert_flag2 VARCHAR2,
5910 x_acc_assert_flag3 VARCHAR2,
5911 x_acc_assert_flag4 VARCHAR2,
5912 x_acc_assert_flag5 VARCHAR2,
5913 x_acc_assert_flag6 VARCHAR2,
5914 x_acc_assert_flag7 VARCHAR2,
5915 x_acc_assert_flag8 VARCHAR2,
5916 x_acc_assert_flag9 VARCHAR2,
5917 x_acc_assert_flag10 VARCHAR2,
5918 x_acc_assert_flag11 VARCHAR2,
5919 x_acc_assert_flag12 VARCHAR2,
5920 x_acc_assert_flag13 VARCHAR2,
5921 x_acc_assert_flag14 VARCHAR2,
5922 x_acc_assert_flag15 VARCHAR2,
5923 x_acc_assert_flag16 VARCHAR2,
5924 x_acc_assert_flag17 VARCHAR2,
5925 x_acc_assert_flag18 VARCHAR2,
5926 x_acc_assert_flag19 VARCHAR2,
5927 x_acc_assert_flag20 VARCHAR2,
5928 x_acc_assert_flag21 VARCHAR2,
5929 x_acc_assert_flag22 VARCHAR2,
5930 x_acc_assert_flag23 VARCHAR2,
5931 x_acc_assert_flag24 VARCHAR2,
5932 x_acc_assert_flag25 VARCHAR2,
5933 x_acc_assert_flag26 VARCHAR2,
5934 x_acc_assert_flag27 VARCHAR2,
5935 x_acc_assert_flag28 VARCHAR2,
5936 x_acc_assert_flag29 VARCHAR2,
5937 x_acc_assert_flag30 VARCHAR2
5938 ) is
5939
5940 begin
5941 declare
5942 var_fin_certification_id number;
5943
5944 begin
5945
5946 --******************************************************************************************************
5947 -- NOTE: The values in x_ineff_ctrl_attr_(1 .. 30) may be +1 or -1 depending on the change_flag b or f respectively
5948 --******************************************************************************************************
5949
5950
5951 UPDATE
5952 amw_fin_cert_ctrl_sum
5953 SET
5954 ineff_ctrl_attr_1= x_ineff_ctrl_attr_1
5955 ,ineff_ctrl_attr_2 = x_ineff_ctrl_attr_2
5956 ,ineff_ctrl_attr_3= x_ineff_ctrl_attr_3
5957 ,ineff_ctrl_attr_4= x_ineff_ctrl_attr_4
5958 ,ineff_ctrl_attr_5= x_ineff_ctrl_attr_5
5959 ,ineff_ctrl_attr_6= x_ineff_ctrl_attr_6
5960 ,ineff_ctrl_attr_7= x_ineff_ctrl_attr_7
5961 ,ineff_ctrl_attr_8= x_ineff_ctrl_attr_8
5962 ,ineff_ctrl_attr_9= x_ineff_ctrl_attr_9
5963 ,ineff_ctrl_attr_10= x_ineff_ctrl_attr_10
5964 ,ineff_ctrl_attr_11= x_ineff_ctrl_attr_11
5965 ,ineff_ctrl_attr_12= x_ineff_ctrl_attr_12
5966 ,ineff_ctrl_attr_13= x_ineff_ctrl_attr_13
5967 ,ineff_ctrl_attr_14= x_ineff_ctrl_attr_14
5968 ,ineff_ctrl_attr_15= x_ineff_ctrl_attr_15
5969 ,ineff_ctrl_attr_16= x_ineff_ctrl_attr_16
5970 ,ineff_ctrl_attr_17= x_ineff_ctrl_attr_17
5971 ,ineff_ctrl_attr_18= x_ineff_ctrl_attr_18
5972 ,ineff_ctrl_attr_19= x_ineff_ctrl_attr_19
5973 ,ineff_ctrl_attr_20= x_ineff_ctrl_attr_20
5974 ,ineff_ctrl_attr_21= x_ineff_ctrl_attr_21
5975 ,ineff_ctrl_attr_22= x_ineff_ctrl_attr_22
5976 ,ineff_ctrl_attr_23= x_ineff_ctrl_attr_23
5977 ,ineff_ctrl_attr_24= x_ineff_ctrl_attr_24
5978 ,ineff_ctrl_attr_25= x_ineff_ctrl_attr_25
5979 ,ineff_ctrl_attr_26= x_ineff_ctrl_attr_26
5980 ,ineff_ctrl_attr_27= x_ineff_ctrl_attr_27
5981 ,ineff_ctrl_attr_28= x_ineff_ctrl_attr_28
5982 ,ineff_ctrl_attr_29= x_ineff_ctrl_attr_29
5983 ,ineff_ctrl_attr_30= x_ineff_ctrl_attr_30
5984 ,acc_assert_flag_1 = x_acc_assert_flag1
5985 ,acc_assert_flag_2 = x_acc_assert_flag2
5986 ,acc_assert_flag_3 = x_acc_assert_flag3
5987 ,acc_assert_flag_4 = x_acc_assert_flag4
5988 ,acc_assert_flag_5 = x_acc_assert_flag5
5989 ,acc_assert_flag_6 = x_acc_assert_flag6
5990 ,acc_assert_flag_7 = x_acc_assert_flag7
5991 ,acc_assert_flag_8 = x_acc_assert_flag8
5992 ,acc_assert_flag_9 = x_acc_assert_flag9
5993 ,acc_assert_flag_10 = x_acc_assert_flag10
5994 ,acc_assert_flag_11 = x_acc_assert_flag11
5995 ,acc_assert_flag_12 = x_acc_assert_flag12
5996 ,acc_assert_flag_13 = x_acc_assert_flag13
5997 ,acc_assert_flag_14 = x_acc_assert_flag14
5998 ,acc_assert_flag_15 = x_acc_assert_flag15
5999 ,acc_assert_flag_16 = x_acc_assert_flag16
6000 ,acc_assert_flag_17 = x_acc_assert_flag17
6001 ,acc_assert_flag_18 = x_acc_assert_flag18
6002 ,acc_assert_flag_19 = x_acc_assert_flag19
6003 ,acc_assert_flag_20 = x_acc_assert_flag20
6004 ,acc_assert_flag_21 = x_acc_assert_flag21
6005 ,acc_assert_flag_22 = x_acc_assert_flag22
6006 ,acc_assert_flag_23 = x_acc_assert_flag23
6007 ,acc_assert_flag_24 = x_acc_assert_flag24
6008 ,acc_assert_flag_25 = x_acc_assert_flag25
6009 ,acc_assert_flag_26 = x_acc_assert_flag26
6010 ,acc_assert_flag_27 = x_acc_assert_flag27
6011 ,acc_assert_flag_28 = x_acc_assert_flag28
6012 ,acc_assert_flag_29 = x_acc_assert_flag29
6013 ,acc_assert_flag_30 = x_acc_assert_flag30,
6014 eval_ctrl_attr_1 = nvl(eval_ctrl_attr_1,0) + x_eval_ctrl_attr_1 ,
6015 eval_ctrl_attr_2 = nvl(eval_ctrl_attr_2,0) + x_eval_ctrl_attr_2 ,
6016 eval_ctrl_attr_3 = nvl(eval_ctrl_attr_3,0) + x_eval_ctrl_attr_3 ,
6017 eval_ctrl_attr_4 = nvl(eval_ctrl_attr_4,0) + x_eval_ctrl_attr_4 ,
6018 eval_ctrl_attr_5 = nvl(eval_ctrl_attr_5,0) + x_eval_ctrl_attr_5 ,
6019 eval_ctrl_attr_6 = nvl(eval_ctrl_attr_6,0) + x_eval_ctrl_attr_6 ,
6020 eval_ctrl_attr_7 = nvl(eval_ctrl_attr_7,0) + x_eval_ctrl_attr_7 ,
6021 eval_ctrl_attr_8 = nvl(eval_ctrl_attr_8,0) + x_eval_ctrl_attr_8 ,
6022 eval_ctrl_attr_9 = nvl(eval_ctrl_attr_9,0) + x_eval_ctrl_attr_9 ,
6023 eval_ctrl_attr_10 = nvl(eval_ctrl_attr_10,0) + x_eval_ctrl_attr_10 ,
6024 eval_ctrl_attr_11 = nvl(eval_ctrl_attr_11,0) + x_eval_ctrl_attr_11 ,
6025 eval_ctrl_attr_12 = nvl(eval_ctrl_attr_12,0) + x_eval_ctrl_attr_12 ,
6026 eval_ctrl_attr_13 = nvl(eval_ctrl_attr_13,0) + x_eval_ctrl_attr_13 ,
6027 eval_ctrl_attr_14 = nvl(eval_ctrl_attr_14,0) + x_eval_ctrl_attr_14 ,
6028 eval_ctrl_attr_15 = nvl(eval_ctrl_attr_15,0) + x_eval_ctrl_attr_15 ,
6029 eval_ctrl_attr_16 = nvl(eval_ctrl_attr_16,0) + x_eval_ctrl_attr_16 ,
6030 eval_ctrl_attr_17 = nvl(eval_ctrl_attr_17,0) + x_eval_ctrl_attr_17 ,
6031 eval_ctrl_attr_18 = nvl(eval_ctrl_attr_18,0) + x_eval_ctrl_attr_18 ,
6032 eval_ctrl_attr_19 = nvl(eval_ctrl_attr_19,0) + x_eval_ctrl_attr_19 ,
6033 eval_ctrl_attr_20 = nvl(eval_ctrl_attr_20,0) + x_eval_ctrl_attr_20 ,
6034 eval_ctrl_attr_21 = nvl(eval_ctrl_attr_21,0) + x_eval_ctrl_attr_21 ,
6035 eval_ctrl_attr_22 = nvl(eval_ctrl_attr_22,0) + x_eval_ctrl_attr_22 ,
6036 eval_ctrl_attr_23 = nvl(eval_ctrl_attr_23,0) + x_eval_ctrl_attr_23 ,
6037 eval_ctrl_attr_24 = nvl(eval_ctrl_attr_24,0) + x_eval_ctrl_attr_24 ,
6038 eval_ctrl_attr_25 = nvl(eval_ctrl_attr_25,0) + x_eval_ctrl_attr_25 ,
6039 eval_ctrl_attr_26 = nvl(eval_ctrl_attr_26,0) + x_eval_ctrl_attr_26 ,
6040 eval_ctrl_attr_27 = nvl(eval_ctrl_attr_27,0) + x_eval_ctrl_attr_27 ,
6041 eval_ctrl_attr_28 = nvl(eval_ctrl_attr_28,0) + x_eval_ctrl_attr_28 ,
6042 eval_ctrl_attr_29 = nvl(eval_ctrl_attr_29,0) + x_eval_ctrl_attr_29 ,
6043 eval_ctrl_attr_30 = nvl(eval_ctrl_attr_30,0) + x_eval_ctrl_attr_30
6044 ,ineff_ctrl_prcnt_1= round((x_ineff_ctrl_attr_1 / decode(total_ctrl_attr_1,null,1,0,1,total_ctrl_attr_1) ) * 100,0)
6045 ,ineff_ctrl_prcnt_2 = round((x_ineff_ctrl_attr_2 / decode(total_ctrl_attr_2,null,1,0,1,total_ctrl_attr_2) ) * 100,0)
6046 ,ineff_ctrl_prcnt_3= round((x_ineff_ctrl_attr_3 / decode(total_ctrl_attr_3,null,1,0,1,total_ctrl_attr_3) ) * 100,0)
6047 ,ineff_ctrl_prcnt_4= round((x_ineff_ctrl_attr_4 / decode(total_ctrl_attr_4,null,1,0,1,total_ctrl_attr_4) ) * 100,0)
6048 ,ineff_ctrl_prcnt_5= round((x_ineff_ctrl_attr_5 / decode(total_ctrl_attr_5,null,1,0,1,total_ctrl_attr_5) ) * 100,0)
6049 ,ineff_ctrl_prcnt_6= round((x_ineff_ctrl_attr_6 / decode(total_ctrl_attr_6,null,1,0,1,total_ctrl_attr_6) ) * 100,0)
6050 ,ineff_ctrl_prcnt_7= round((x_ineff_ctrl_attr_7 / decode(total_ctrl_attr_7,null,1,0,1,total_ctrl_attr_7) ) * 100,0)
6051 ,ineff_ctrl_prcnt_8= round((x_ineff_ctrl_attr_8 / decode(total_ctrl_attr_8,null,1,0,1,total_ctrl_attr_8) ) * 100,0)
6052 ,ineff_ctrl_prcnt_9= round((x_ineff_ctrl_attr_9 / decode(total_ctrl_attr_9,null,1,0,1,total_ctrl_attr_9) ) * 100,0)
6053 ,ineff_ctrl_prcnt_10= round((x_ineff_ctrl_attr_10 / decode(total_ctrl_attr_10,null,1,0,1,total_ctrl_attr_10) ) * 100,0)
6054 ,ineff_ctrl_prcnt_11= round((x_ineff_ctrl_attr_11 / decode(total_ctrl_attr_11,null,1,0,1,total_ctrl_attr_11) ) * 100,0)
6055 ,ineff_ctrl_prcnt_12= round((x_ineff_ctrl_attr_12 / decode(total_ctrl_attr_12,null,1,0,1,total_ctrl_attr_12) ) * 100,0)
6056 ,ineff_ctrl_prcnt_13= round((x_ineff_ctrl_attr_13 / decode(total_ctrl_attr_13,null,1,0,1,total_ctrl_attr_13) ) * 100,0)
6057 ,ineff_ctrl_prcnt_14= round((x_ineff_ctrl_attr_14 / decode(total_ctrl_attr_14,null,1,0,1,total_ctrl_attr_14) ) * 100,0)
6058 ,ineff_ctrl_prcnt_15= round((x_ineff_ctrl_attr_15 / decode(total_ctrl_attr_15,null,1,0,1,total_ctrl_attr_15) ) * 100,0)
6059 ,ineff_ctrl_prcnt_16= round((x_ineff_ctrl_attr_16 / decode(total_ctrl_attr_16,null,1,0,1,total_ctrl_attr_16) ) * 100,0)
6060 ,ineff_ctrl_prcnt_17= round((x_ineff_ctrl_attr_17 / decode(total_ctrl_attr_17,null,1,0,1,total_ctrl_attr_17) ) * 100,0)
6061 ,ineff_ctrl_prcnt_18= round((x_ineff_ctrl_attr_18 / decode(total_ctrl_attr_18,null,1,0,1,total_ctrl_attr_18) ) * 100,0)
6062 ,ineff_ctrl_prcnt_19= round((x_ineff_ctrl_attr_19 / decode(total_ctrl_attr_19,null,1,0,1,total_ctrl_attr_19) ) * 100,0)
6063 ,ineff_ctrl_prcnt_20= round((x_ineff_ctrl_attr_20 / decode(total_ctrl_attr_20,null,1,0,1,total_ctrl_attr_20) ) * 100,0)
6064 ,ineff_ctrl_prcnt_21= round((x_ineff_ctrl_attr_21 / decode(total_ctrl_attr_21,null,1,0,1,total_ctrl_attr_21) ) * 100,0)
6065 ,ineff_ctrl_prcnt_22= round((x_ineff_ctrl_attr_22 / decode(total_ctrl_attr_22,null,1,0,1,total_ctrl_attr_22) ) * 100,0)
6066 ,ineff_ctrl_prcnt_23= round((x_ineff_ctrl_attr_23 / decode(total_ctrl_attr_23,null,1,0,1,total_ctrl_attr_23) ) * 100,0)
6067 ,ineff_ctrl_prcnt_24= round((x_ineff_ctrl_attr_24 / decode(total_ctrl_attr_24,null,1,0,1,total_ctrl_attr_24) ) * 100,0)
6068 ,ineff_ctrl_prcnt_25= round((x_ineff_ctrl_attr_25 / decode(total_ctrl_attr_25,null,1,0,1,total_ctrl_attr_25) ) * 100,0)
6069 ,ineff_ctrl_prcnt_26= round((x_ineff_ctrl_attr_26 / decode(total_ctrl_attr_26,null,1,0,1,total_ctrl_attr_26) ) * 100,0)
6070 ,ineff_ctrl_prcnt_27= round((x_ineff_ctrl_attr_27 / decode(total_ctrl_attr_27,null,1,0,1,total_ctrl_attr_27) ) * 100,0)
6071 ,ineff_ctrl_prcnt_28= round((x_ineff_ctrl_attr_28 / decode(total_ctrl_attr_28,null,1,0,1,total_ctrl_attr_28) ) * 100,0)
6072 ,ineff_ctrl_prcnt_29= round((x_ineff_ctrl_attr_29 / decode(total_ctrl_attr_29,null,1,0,1,total_ctrl_attr_29) ) * 100,0)
6073 ,ineff_ctrl_prcnt_30= round((x_ineff_ctrl_attr_30 / decode(total_ctrl_attr_30,null,1,0,1,total_ctrl_attr_30) ) * 100,0)
6074 ,last_updated_by = x_last_updated_by ,
6075 last_update_date = x_last_update_date ,
6076 last_update_login = x_last_update_login
6077 ,object_version_number = object_version_number +1
6078 where
6079 fin_certification_id = x_fin_certification_id and
6080 account_group_id = x_account_group_id and
6081 natural_account_id = x_natural_account_id and
6082 CTRL_ATTRIBUTE_TYPE = x_ctrl_attribute_type and
6083 object_type = x_object_type ;
6084
6085 /* EXCEPTION
6086 WHEN OTHERS THEN
6087 fnd_file.put_line(fnd_file.LOG, SUBSTR (SQLERRM, 1, 2000));
6088 fnd_file.put_line(fnd_file.LOG, 'natural_account_id' || x_natural_account_id );
6089 fnd_file.put_line(fnd_file.LOG, 'financial_item_id' || x_financial_item_id);
6090 fnd_file.put_line(fnd_file.LOG, 'fin_certification_id ' || x_fin_certification_id );
6091
6092
6093 RAISE ;
6094 RETURN; */
6095
6096 end;
6097 end UPDATE_FIN_ACC_ASSERT_ROW ;
6098 -- ****************************************** Business Event Subscription for Account Assertion ---------------
6099
6100
6101 --*************************************************************************************************************
6102 procedure UPDATE_FIN_ACC_ROW (
6103 x_fin_certification_id NUMBER ,
6104 x_financial_statement_id NUMBER ,
6105 x_financial_item_id NUMBER ,
6106 x_account_group_id NUMBER,
6107 x_natural_account_id NUMBER,
6108 x_object_type VARCHAR2,
6109 x_ctrl_attribute_type VARCHAR2,
6110 x_ineff_ctrl_attr_1 NUMBER,
6111 x_ineff_ctrl_attr_2 NUMBER,
6112 x_ineff_ctrl_attr_3 NUMBER,
6113 x_ineff_ctrl_attr_4 NUMBER,
6114 x_ineff_ctrl_attr_5 NUMBER,
6115 x_ineff_ctrl_attr_6 NUMBER,
6116 x_ineff_ctrl_attr_7 NUMBER,
6117 x_ineff_ctrl_attr_8 NUMBER,
6118 x_ineff_ctrl_attr_9 NUMBER,
6119 x_ineff_ctrl_attr_10 NUMBER,
6120 x_ineff_ctrl_attr_11 NUMBER,
6121 x_ineff_ctrl_attr_12 NUMBER,
6122 x_ineff_ctrl_attr_13 NUMBER,
6123 x_ineff_ctrl_attr_14 NUMBER,
6124 x_ineff_ctrl_attr_15 NUMBER,
6125 x_ineff_ctrl_attr_16 NUMBER,
6126 x_ineff_ctrl_attr_17 NUMBER,
6127 x_ineff_ctrl_attr_18 NUMBER,
6128 x_ineff_ctrl_attr_19 NUMBER,
6129 x_ineff_ctrl_attr_20 NUMBER,
6130 x_ineff_ctrl_attr_21 NUMBER,
6131 x_ineff_ctrl_attr_22 NUMBER,
6132 x_ineff_ctrl_attr_23 NUMBER,
6133 x_ineff_ctrl_attr_24 NUMBER,
6134 x_ineff_ctrl_attr_25 NUMBER,
6135 x_ineff_ctrl_attr_26 NUMBER,
6136 x_ineff_ctrl_attr_27 NUMBER,
6137 x_ineff_ctrl_attr_28 NUMBER,
6138 x_ineff_ctrl_attr_29 NUMBER,
6139 x_ineff_ctrl_attr_30 NUMBER,
6140 x_last_updated_by NUMBER,
6141 x_last_update_date DATE ,
6142 x_last_update_login NUMBER,
6143 x_eval_ctrl_attr_1 NUMBER,
6144 x_eval_ctrl_attr_2 NUMBER,
6145 x_eval_ctrl_attr_3 NUMBER,
6146 x_eval_ctrl_attr_4 NUMBER,
6147 x_eval_ctrl_attr_5 NUMBER,
6148 x_eval_ctrl_attr_6 NUMBER,
6149 x_eval_ctrl_attr_7 NUMBER,
6150 x_eval_ctrl_attr_8 NUMBER,
6151 x_eval_ctrl_attr_9 NUMBER,
6152 x_eval_ctrl_attr_10 NUMBER,
6153 x_eval_ctrl_attr_11 NUMBER,
6154 x_eval_ctrl_attr_12 NUMBER,
6155 x_eval_ctrl_attr_13 NUMBER,
6156 x_eval_ctrl_attr_14 NUMBER,
6157 x_eval_ctrl_attr_15 NUMBER,
6158 x_eval_ctrl_attr_16 NUMBER,
6159 x_eval_ctrl_attr_17 NUMBER,
6160 x_eval_ctrl_attr_18 NUMBER,
6161 x_eval_ctrl_attr_19 NUMBER,
6162 x_eval_ctrl_attr_20 NUMBER,
6163 x_eval_ctrl_attr_21 NUMBER,
6164 x_eval_ctrl_attr_22 NUMBER,
6165 x_eval_ctrl_attr_23 NUMBER,
6166 x_eval_ctrl_attr_24 NUMBER,
6167 x_eval_ctrl_attr_25 NUMBER,
6168 x_eval_ctrl_attr_26 NUMBER,
6169 x_eval_ctrl_attr_27 NUMBER,
6170 x_eval_ctrl_attr_28 NUMBER,
6171 x_eval_ctrl_attr_29 NUMBER,
6172 x_eval_ctrl_attr_30 NUMBER
6173 ) is
6174
6175 begin
6176 declare
6177 var_fin_certification_id number;
6178
6179 begin
6180
6181 --******************************************************************************************************
6182 -- NOTE: The values in x_ineff_ctrl_attr_(1 .. 30) may be +1 or -1 depending on the change_flag b or f respectively
6183 --******************************************************************************************************
6184
6185
6186
6187
6188 UPDATE
6189 amw_fin_cert_ctrl_sum
6190 SET
6191 ineff_ctrl_attr_1= x_ineff_ctrl_attr_1
6192 ,ineff_ctrl_attr_2 = x_ineff_ctrl_attr_2
6193 ,ineff_ctrl_attr_3= x_ineff_ctrl_attr_3
6194 ,ineff_ctrl_attr_4= x_ineff_ctrl_attr_4
6195 ,ineff_ctrl_attr_5= x_ineff_ctrl_attr_5
6196 ,ineff_ctrl_attr_6= x_ineff_ctrl_attr_6
6197 ,ineff_ctrl_attr_7= x_ineff_ctrl_attr_7
6198 ,ineff_ctrl_attr_8= x_ineff_ctrl_attr_8
6199 ,ineff_ctrl_attr_9= x_ineff_ctrl_attr_9
6200 ,ineff_ctrl_attr_10= x_ineff_ctrl_attr_10
6201 ,ineff_ctrl_attr_11= x_ineff_ctrl_attr_11
6202 ,ineff_ctrl_attr_12= x_ineff_ctrl_attr_12
6203 ,ineff_ctrl_attr_13= x_ineff_ctrl_attr_13
6204 ,ineff_ctrl_attr_14= x_ineff_ctrl_attr_14
6205 ,ineff_ctrl_attr_15= x_ineff_ctrl_attr_15
6206 ,ineff_ctrl_attr_16= x_ineff_ctrl_attr_16
6207 ,ineff_ctrl_attr_17= x_ineff_ctrl_attr_17
6208 ,ineff_ctrl_attr_18= x_ineff_ctrl_attr_18
6209 ,ineff_ctrl_attr_19= x_ineff_ctrl_attr_19
6210 ,ineff_ctrl_attr_20= x_ineff_ctrl_attr_20
6211 ,ineff_ctrl_attr_21= x_ineff_ctrl_attr_21
6212 ,ineff_ctrl_attr_22= x_ineff_ctrl_attr_22
6213 ,ineff_ctrl_attr_23= x_ineff_ctrl_attr_23
6214 ,ineff_ctrl_attr_24= x_ineff_ctrl_attr_24
6215 ,ineff_ctrl_attr_25= x_ineff_ctrl_attr_25
6216 ,ineff_ctrl_attr_26= x_ineff_ctrl_attr_26
6217 ,ineff_ctrl_attr_27= x_ineff_ctrl_attr_27
6218 ,ineff_ctrl_attr_28= x_ineff_ctrl_attr_28
6219 ,ineff_ctrl_attr_29= x_ineff_ctrl_attr_29
6220 ,ineff_ctrl_attr_30= x_ineff_ctrl_attr_30,
6221 eval_ctrl_attr_1 = nvl(eval_ctrl_attr_1,0) + x_eval_ctrl_attr_1 ,
6222 eval_ctrl_attr_2 = nvl(eval_ctrl_attr_2,0) + x_eval_ctrl_attr_2 ,
6223 eval_ctrl_attr_3 = nvl(eval_ctrl_attr_3,0) + x_eval_ctrl_attr_3 ,
6224 eval_ctrl_attr_4 = nvl(eval_ctrl_attr_4,0) + x_eval_ctrl_attr_4 ,
6225 eval_ctrl_attr_5 = nvl(eval_ctrl_attr_5,0) + x_eval_ctrl_attr_5 ,
6226 eval_ctrl_attr_6 = nvl(eval_ctrl_attr_6,0) + x_eval_ctrl_attr_6 ,
6227 eval_ctrl_attr_7 = nvl(eval_ctrl_attr_7,0) + x_eval_ctrl_attr_7 ,
6228 eval_ctrl_attr_8 = nvl(eval_ctrl_attr_8,0) + x_eval_ctrl_attr_8 ,
6229 eval_ctrl_attr_9 = nvl(eval_ctrl_attr_9,0) + x_eval_ctrl_attr_9 ,
6230 eval_ctrl_attr_10 = nvl(eval_ctrl_attr_10,0) + x_eval_ctrl_attr_10 ,
6231 eval_ctrl_attr_11 = nvl(eval_ctrl_attr_11,0) + x_eval_ctrl_attr_11 ,
6232 eval_ctrl_attr_12 = nvl(eval_ctrl_attr_12,0) + x_eval_ctrl_attr_12 ,
6233 eval_ctrl_attr_13 = nvl(eval_ctrl_attr_13,0) + x_eval_ctrl_attr_13 ,
6234 eval_ctrl_attr_14 = nvl(eval_ctrl_attr_14,0) + x_eval_ctrl_attr_14 ,
6235 eval_ctrl_attr_15 = nvl(eval_ctrl_attr_15,0) + x_eval_ctrl_attr_15 ,
6236 eval_ctrl_attr_16 = nvl(eval_ctrl_attr_16,0) + x_eval_ctrl_attr_16 ,
6237 eval_ctrl_attr_17 = nvl(eval_ctrl_attr_17,0) + x_eval_ctrl_attr_17 ,
6238 eval_ctrl_attr_18 = nvl(eval_ctrl_attr_18,0) + x_eval_ctrl_attr_18 ,
6239 eval_ctrl_attr_19 = nvl(eval_ctrl_attr_19,0) + x_eval_ctrl_attr_19 ,
6240 eval_ctrl_attr_20 = nvl(eval_ctrl_attr_20,0) + x_eval_ctrl_attr_20 ,
6241 eval_ctrl_attr_21 = nvl(eval_ctrl_attr_21,0) + x_eval_ctrl_attr_21 ,
6242 eval_ctrl_attr_22 = nvl(eval_ctrl_attr_22,0) + x_eval_ctrl_attr_22 ,
6243 eval_ctrl_attr_23 = nvl(eval_ctrl_attr_23,0) + x_eval_ctrl_attr_23 ,
6244 eval_ctrl_attr_24 = nvl(eval_ctrl_attr_24,0) + x_eval_ctrl_attr_24 ,
6245 eval_ctrl_attr_25 = nvl(eval_ctrl_attr_25,0) + x_eval_ctrl_attr_25 ,
6246 eval_ctrl_attr_26 = nvl(eval_ctrl_attr_26,0) + x_eval_ctrl_attr_26 ,
6247 eval_ctrl_attr_27 = nvl(eval_ctrl_attr_27,0) + x_eval_ctrl_attr_27 ,
6248 eval_ctrl_attr_28 = nvl(eval_ctrl_attr_28,0) + x_eval_ctrl_attr_28 ,
6249 eval_ctrl_attr_29 = nvl(eval_ctrl_attr_29,0) + x_eval_ctrl_attr_29 ,
6250 eval_ctrl_attr_30 = nvl(eval_ctrl_attr_30,0) + x_eval_ctrl_attr_30
6251 ,ineff_ctrl_prcnt_1= round((x_ineff_ctrl_attr_1 / decode(total_ctrl_attr_1,null,1,0,1,total_ctrl_attr_1) ) * 100,0)
6252 ,ineff_ctrl_prcnt_2 = round((x_ineff_ctrl_attr_2 / decode(total_ctrl_attr_2,null,1,0,1,total_ctrl_attr_2) ) * 100,0)
6253 ,ineff_ctrl_prcnt_3= round((x_ineff_ctrl_attr_3 / decode(total_ctrl_attr_3,null,1,0,1,total_ctrl_attr_3) ) * 100,0)
6254 ,ineff_ctrl_prcnt_4= round((x_ineff_ctrl_attr_4 / decode(total_ctrl_attr_4,null,1,0,1,total_ctrl_attr_4) ) * 100,0)
6255 ,ineff_ctrl_prcnt_5= round((x_ineff_ctrl_attr_5 / decode(total_ctrl_attr_5,null,1,0,1,total_ctrl_attr_5) ) * 100,0)
6256 ,ineff_ctrl_prcnt_6= round((x_ineff_ctrl_attr_6 / decode(total_ctrl_attr_6,null,1,0,1,total_ctrl_attr_6) ) * 100,0)
6257 ,ineff_ctrl_prcnt_7= round((x_ineff_ctrl_attr_7 / decode(total_ctrl_attr_7,null,1,0,1,total_ctrl_attr_7) ) * 100,0)
6258 ,ineff_ctrl_prcnt_8= round((x_ineff_ctrl_attr_8 / decode(total_ctrl_attr_8,null,1,0,1,total_ctrl_attr_8) ) * 100,0)
6259 ,ineff_ctrl_prcnt_9= round((x_ineff_ctrl_attr_9 / decode(total_ctrl_attr_9,null,1,0,1,total_ctrl_attr_9) ) * 100,0)
6260 ,ineff_ctrl_prcnt_10= round((x_ineff_ctrl_attr_10 / decode(total_ctrl_attr_10,null,1,0,1,total_ctrl_attr_10) ) * 100,0)
6261 ,ineff_ctrl_prcnt_11= round((x_ineff_ctrl_attr_11 / decode(total_ctrl_attr_11,null,1,0,1,total_ctrl_attr_11) ) * 100,0)
6262 ,ineff_ctrl_prcnt_12= round((x_ineff_ctrl_attr_12 / decode(total_ctrl_attr_12,null,1,0,1,total_ctrl_attr_12) ) * 100,0)
6263 ,ineff_ctrl_prcnt_13= round((x_ineff_ctrl_attr_13 / decode(total_ctrl_attr_13,null,1,0,1,total_ctrl_attr_13) ) * 100,0)
6264 ,ineff_ctrl_prcnt_14= round((x_ineff_ctrl_attr_14 / decode(total_ctrl_attr_14,null,1,0,1,total_ctrl_attr_14) ) * 100,0)
6265 ,ineff_ctrl_prcnt_15= round((x_ineff_ctrl_attr_15 / decode(total_ctrl_attr_15,null,1,0,1,total_ctrl_attr_15) ) * 100,0)
6266 ,ineff_ctrl_prcnt_16= round((x_ineff_ctrl_attr_16 / decode(total_ctrl_attr_16,null,1,0,1,total_ctrl_attr_16) ) * 100,0)
6267 ,ineff_ctrl_prcnt_17= round((x_ineff_ctrl_attr_17 / decode(total_ctrl_attr_17,null,1,0,1,total_ctrl_attr_17) ) * 100,0)
6268 ,ineff_ctrl_prcnt_18= round((x_ineff_ctrl_attr_18 / decode(total_ctrl_attr_18,null,1,0,1,total_ctrl_attr_18) ) * 100,0)
6269 ,ineff_ctrl_prcnt_19= round((x_ineff_ctrl_attr_19 / decode(total_ctrl_attr_19,null,1,0,1,total_ctrl_attr_19) ) * 100,0)
6270 ,ineff_ctrl_prcnt_20= round((x_ineff_ctrl_attr_20 / decode(total_ctrl_attr_20,null,1,0,1,total_ctrl_attr_20) ) * 100,0)
6271 ,ineff_ctrl_prcnt_21= round((x_ineff_ctrl_attr_21 / decode(total_ctrl_attr_21,null,1,0,1,total_ctrl_attr_21) ) * 100,0)
6272 ,ineff_ctrl_prcnt_22= round((x_ineff_ctrl_attr_22 / decode(total_ctrl_attr_22,null,1,0,1,total_ctrl_attr_22) ) * 100,0)
6273 ,ineff_ctrl_prcnt_23= round((x_ineff_ctrl_attr_23 / decode(total_ctrl_attr_23,null,1,0,1,total_ctrl_attr_23) ) * 100,0)
6274 ,ineff_ctrl_prcnt_24= round((x_ineff_ctrl_attr_24 / decode(total_ctrl_attr_24,null,1,0,1,total_ctrl_attr_24) ) * 100,0)
6275 ,ineff_ctrl_prcnt_25= round((x_ineff_ctrl_attr_25 / decode(total_ctrl_attr_25,null,1,0,1,total_ctrl_attr_25) ) * 100,0)
6276 ,ineff_ctrl_prcnt_26= round((x_ineff_ctrl_attr_26 / decode(total_ctrl_attr_26,null,1,0,1,total_ctrl_attr_26) ) * 100,0)
6277 ,ineff_ctrl_prcnt_27= round((x_ineff_ctrl_attr_27 / decode(total_ctrl_attr_27,null,1,0,1,total_ctrl_attr_27) ) * 100,0)
6278 ,ineff_ctrl_prcnt_28= round((x_ineff_ctrl_attr_28 / decode(total_ctrl_attr_28,null,1,0,1,total_ctrl_attr_28) ) * 100,0)
6279 ,ineff_ctrl_prcnt_29= round((x_ineff_ctrl_attr_29 / decode(total_ctrl_attr_29,null,1,0,1,total_ctrl_attr_29) ) * 100,0)
6280 ,ineff_ctrl_prcnt_30= round((x_ineff_ctrl_attr_30 / decode(total_ctrl_attr_30,null,1,0,1,total_ctrl_attr_30) ) * 100,0)
6281 ,last_updated_by = x_last_updated_by ,
6282 last_update_date = x_last_update_date ,
6283 last_update_login = x_last_update_login
6284 ,object_version_number = object_version_number +1
6285 where
6286 fin_certification_id = x_fin_certification_id and
6287 account_group_id = x_account_group_id and
6288 natural_account_id = x_natural_account_id and
6289 CTRL_ATTRIBUTE_TYPE = x_ctrl_attribute_type and
6290 object_type = x_object_type ;
6291
6292 /* EXCEPTION
6293 WHEN OTHERS THEN
6294 fnd_file.put_line(fnd_file.LOG, SUBSTR (SQLERRM, 1, 2000));
6295 fnd_file.put_line(fnd_file.LOG, 'natural_account_id' || x_natural_account_id );
6296 fnd_file.put_line(fnd_file.LOG, 'financial_item_id' || x_financial_item_id);
6297 fnd_file.put_line(fnd_file.LOG, 'fin_certification_id ' || x_fin_certification_id );
6298
6299
6300 RAISE ;
6301 RETURN; */
6302
6303 end;
6304 end UPDATE_FIN_ACC_ROW;
6305
6306 -- ****************************************** Business Event Subscription for Account Assertion ---------------
6307 PROCEDURE update_acc_assert_flags
6308 ( P_ACCOUNT_ID number ) is
6309
6310
6311 begin
6312 declare
6313
6314
6315 ctr integer :=0;
6316 max_num_of_codes integer :=0;
6317 m_ctrl_attribute_type VARCHAR2(30) :='CTRL_ASSERTIONS';
6318
6319 m_assertions_code component_code_array;
6320 m_acc_assert_flag component_code_array;
6321 m_total_control total_control_array ;
6322
6323 m_cert_id number ;
6324
6325 m_ineff_control ineff_control_array ;
6326
6327 v_ASSERTION_CODE varchar2(30);
6328 m_display_flag varchar2(1) := 'N';
6329
6330 g_user_id NUMBER := fnd_global.user_id;
6331 g_login_id NUMBER := fnd_global.conc_login_id;
6332 g_errbuf VARCHAR2(2000) := null;
6333 g_retcode VARCHAR2(2) := '0';
6334
6335 -- *************** Currsor to get all Control for the account being Passed ********** --
6336 /*
6337 cursor ACC_ASSERT_CODES
6338 is
6339 select
6340 ASSERTION_CODE
6341 from
6342 amw_account_assertions
6343 where
6344 NATURAL_ACCOUNT_ID =P_ACCOUNT_ID ;
6345 */
6346
6347
6348 M_ACCOUNT_GROUP_ID number :=0;
6349
6350 cursor ACC_ASSERT_CODES
6351 is
6352 select
6353 distinct
6354 ASSERTION_CODE
6355 from
6356 amw_account_assertions
6357 where
6358 ((NATURAL_ACCOUNT_ID =P_ACCOUNT_ID) or (NATURAL_ACCOUNT_ID in (select CHILD_NATURAL_ACCOUNT_ID from amw_fin_key_acct_flat
6359 where PARENT_NATURAL_ACCOUNT_ID =P_ACCOUNT_ID and ACCOUNT_GROUP_ID=M_ACCOUNT_GROUP_ID)));
6360
6361 -----------------------------------------------------------------------------------------
6362
6363 M_STATEMENT_GROUP_ID NUMBER :=0;
6364 M_STATEMENT_ID NUMBER :=0;
6365
6366 cursor getAccGroupID IS
6367 select distinct ACCOUNT_GROUP_ID from AMW_FIN_ITEMS_KEY_ACC where STATEMENT_GROUP_ID = M_STATEMENT_GROUP_ID
6368 and FINANCIAL_STATEMENT_ID = M_STATEMENT_ID;
6369
6370 --------------------------------------------------------------------------------------------
6371 cursor existing_codes
6372 is
6373 select
6374 distinct
6375 cert.certification_id ,
6376 cert.STATEMENT_GROUP_ID,
6377 cert.FINANCIAL_STATEMENT_ID,
6378 ctrl_attr_code_1,
6379 ctrl_attr_code_2,
6380 ctrl_attr_code_3,
6381 ctrl_attr_code_4,
6382 ctrl_attr_code_5,
6383 ctrl_attr_code_6,
6384 ctrl_attr_code_7,
6385 ctrl_attr_code_8,
6386 ctrl_attr_code_9,
6387 ctrl_attr_code_10,
6388 ctrl_attr_code_11,
6389 ctrl_attr_code_12,
6390 ctrl_attr_code_13,
6391 ctrl_attr_code_14,
6392 ctrl_attr_code_15,
6393 ctrl_attr_code_16,
6394 ctrl_attr_code_17,
6395 ctrl_attr_code_18,
6396 ctrl_attr_code_19,
6397 ctrl_attr_code_20,
6398 ctrl_attr_code_21,
6399 ctrl_attr_code_22,
6400 ctrl_attr_code_23,
6401 ctrl_attr_code_24,
6402 ctrl_attr_code_25,
6403 ctrl_attr_code_26,
6404 ctrl_attr_code_27,
6405 ctrl_attr_code_28,
6406 ctrl_attr_code_29,
6407 ctrl_attr_code_30,
6408 ineff_ctrl_attr_1,
6409 ineff_ctrl_attr_2,
6410 ineff_ctrl_attr_3,
6411 ineff_ctrl_attr_4,
6412 ineff_ctrl_attr_5,
6413 ineff_ctrl_attr_6,
6414 ineff_ctrl_attr_7,
6415 ineff_ctrl_attr_8,
6416 ineff_ctrl_attr_9,
6417 ineff_ctrl_attr_10,
6418 ineff_ctrl_attr_11,
6419 ineff_ctrl_attr_12,
6420 ineff_ctrl_attr_13,
6421 ineff_ctrl_attr_14,
6422 ineff_ctrl_attr_15,
6423 ineff_ctrl_attr_16,
6424 ineff_ctrl_attr_17,
6425 ineff_ctrl_attr_18,
6426 ineff_ctrl_attr_19,
6427 ineff_ctrl_attr_20,
6428 ineff_ctrl_attr_21,
6429 ineff_ctrl_attr_22,
6430 ineff_ctrl_attr_23,
6431 ineff_ctrl_attr_24,
6432 ineff_ctrl_attr_25,
6433 ineff_ctrl_attr_26,
6434 ineff_ctrl_attr_27,
6435 ineff_ctrl_attr_28,
6436 ineff_ctrl_attr_29,
6437 ineff_ctrl_attr_30,
6438 total_ctrl_attr_1,
6439 total_ctrl_attr_2,
6440 total_ctrl_attr_3,
6441 total_ctrl_attr_4,
6442 total_ctrl_attr_5,
6443 total_ctrl_attr_6,
6444 total_ctrl_attr_7,
6445 total_ctrl_attr_8,
6446 total_ctrl_attr_9,
6447 total_ctrl_attr_10,
6448 total_ctrl_attr_11,
6449 total_ctrl_attr_12,
6450 total_ctrl_attr_13,
6451 total_ctrl_attr_14,
6452 total_ctrl_attr_15,
6453 total_ctrl_attr_16,
6454 total_ctrl_attr_17,
6455 total_ctrl_attr_18,
6456 total_ctrl_attr_19,
6457 total_ctrl_attr_20,
6458 total_ctrl_attr_21,
6459 total_ctrl_attr_22,
6460 total_ctrl_attr_23,
6461 total_ctrl_attr_24,
6462 total_ctrl_attr_25,
6463 total_ctrl_attr_26,
6464 total_ctrl_attr_27,
6465 total_ctrl_attr_28,
6466 total_ctrl_attr_29,
6467 total_ctrl_attr_30
6468 from
6469 amw_certification_vl cert,
6470 amw_fin_cert_ctrl_sum ctrlsum
6471 where
6472 cert.certification_id = ctrlsum.fin_certification_id and
6473 ctrl_attribute_type = 'CTRL_ASSERTIONS'
6474 and
6475 (CERTIFICATION_STATUS= 'ACTIVE' or CERTIFICATION_STATUS= 'DRAFT')
6476 and cert.OBJECT_TYPE ='FIN_STMT' AND
6477 ctrlsum.OBJECT_TYPE='ACCOUNT' AND
6478 ctrlsum.NATURAL_ACCOUNT_ID=P_ACCOUNT_ID ;
6479
6480
6481
6482
6483 BEGIN
6484
6485 --m_assertions_code := null;
6486 --ctr := 0;
6487
6488
6489 -- ************ Since the Table has 30 Fileds only initialize 30 Positios in the Array**************--
6490
6491 for load_current_codes in existing_codes
6492 loop
6493 exit when existing_codes%notfound;
6494
6495 ctr := 1;
6496
6497 loop -- for each certification initialize the array
6498 EXIT WHEN ctr > 30;
6499
6500 m_assertions_code(ctr) := null;
6501 m_acc_assert_flag(ctr) := 'I'; -- make ignore as the default and make it Y or N based on the interest of the Account on Assertion
6502 m_ineff_control(ctr) :=0;
6503 ctr := ctr + 1;
6504
6505 end loop; --end of initialization
6506
6507
6508 m_assertions_code(1) := load_current_codes.ctrl_attr_code_1;
6509 m_assertions_code(2) := load_current_codes.ctrl_attr_code_2;
6510 m_assertions_code(3) := load_current_codes.ctrl_attr_code_3;
6511 m_assertions_code(4) := load_current_codes.ctrl_attr_code_4;
6512 m_assertions_code(5) :=load_current_codes.ctrl_attr_code_5;
6513 m_assertions_code(6) :=load_current_codes.ctrl_attr_code_6;
6514 m_assertions_code(7) :=load_current_codes.ctrl_attr_code_7;
6515 m_assertions_code(8) :=load_current_codes.ctrl_attr_code_8;
6516 m_assertions_code(9) :=load_current_codes.ctrl_attr_code_9;
6517 m_assertions_code(10) :=load_current_codes.ctrl_attr_code_10;
6518 m_assertions_code(11) :=load_current_codes.ctrl_attr_code_11;
6519 m_assertions_code(12) :=load_current_codes.ctrl_attr_code_12;
6520 m_assertions_code(13) :=load_current_codes.ctrl_attr_code_13;
6521 m_assertions_code(14) :=load_current_codes.ctrl_attr_code_14;
6522 m_assertions_code(15) :=load_current_codes.ctrl_attr_code_15;
6523 m_assertions_code(16) :=load_current_codes.ctrl_attr_code_16;
6524 m_assertions_code(17) :=load_current_codes.ctrl_attr_code_17;
6525 m_assertions_code(18) :=load_current_codes.ctrl_attr_code_18;
6526 m_assertions_code(19) :=load_current_codes.ctrl_attr_code_19;
6527 m_assertions_code(20) :=load_current_codes.ctrl_attr_code_20;
6528 m_assertions_code(21) :=load_current_codes.ctrl_attr_code_21;
6529 m_assertions_code(22) :=load_current_codes.ctrl_attr_code_22;
6530 m_assertions_code(23) :=load_current_codes.ctrl_attr_code_23;
6531 m_assertions_code(24) :=load_current_codes.ctrl_attr_code_24;
6532 m_assertions_code(25) :=load_current_codes.ctrl_attr_code_25;
6533 m_assertions_code(26) :=load_current_codes.ctrl_attr_code_26;
6534 m_assertions_code(27) :=load_current_codes.ctrl_attr_code_27;
6535 m_assertions_code(28) :=load_current_codes.ctrl_attr_code_28;
6536 m_assertions_code(29) :=load_current_codes.ctrl_attr_code_29;
6537 m_assertions_code(30) :=load_current_codes.ctrl_attr_code_30;
6538
6539 m_ineff_control(1) := load_current_codes.ineff_ctrl_attr_1;
6540 m_ineff_control(2) := load_current_codes.ineff_ctrl_attr_2;
6541 m_ineff_control(3) := load_current_codes.ineff_ctrl_attr_3;
6542 m_ineff_control(4) := load_current_codes.ineff_ctrl_attr_4;
6543 m_ineff_control(5) :=load_current_codes.ineff_ctrl_attr_5;
6544 m_ineff_control(6) :=load_current_codes.ineff_ctrl_attr_6;
6545 m_ineff_control(7) :=load_current_codes.ineff_ctrl_attr_7;
6546 m_ineff_control(8) :=load_current_codes.ineff_ctrl_attr_8;
6547 m_ineff_control(9) :=load_current_codes.ineff_ctrl_attr_9;
6548 m_ineff_control(10) :=load_current_codes.ineff_ctrl_attr_10;
6549 m_ineff_control(11) :=load_current_codes.ineff_ctrl_attr_11;
6550 m_ineff_control(12) :=load_current_codes.ineff_ctrl_attr_12;
6551 m_ineff_control(13) :=load_current_codes.ineff_ctrl_attr_13;
6552 m_ineff_control(14) :=load_current_codes.ineff_ctrl_attr_14;
6553 m_ineff_control(15) :=load_current_codes.ineff_ctrl_attr_15;
6554 m_ineff_control(16) :=load_current_codes.ineff_ctrl_attr_16;
6555 m_ineff_control(17) :=load_current_codes.ineff_ctrl_attr_17;
6556 m_ineff_control(18) :=load_current_codes.ineff_ctrl_attr_18;
6557 m_ineff_control(19) :=load_current_codes.ineff_ctrl_attr_19;
6558 m_ineff_control(20) :=load_current_codes.ineff_ctrl_attr_20;
6559 m_ineff_control(21) :=load_current_codes.ineff_ctrl_attr_21;
6560 m_ineff_control(22) :=load_current_codes.ineff_ctrl_attr_22;
6561 m_ineff_control(23) :=load_current_codes.ineff_ctrl_attr_23;
6562 m_ineff_control(24) :=load_current_codes.ineff_ctrl_attr_24;
6563 m_ineff_control(25) :=load_current_codes.ineff_ctrl_attr_25;
6564 m_ineff_control(26) :=load_current_codes.ineff_ctrl_attr_26;
6565 m_ineff_control(27) :=load_current_codes.ineff_ctrl_attr_27;
6566 m_ineff_control(28) :=load_current_codes.ineff_ctrl_attr_28;
6567 m_ineff_control(29) :=load_current_codes.ineff_ctrl_attr_29;
6568 m_ineff_control(30) :=load_current_codes.ineff_ctrl_attr_30;
6569
6570 m_total_control(1) := load_current_codes.total_ctrl_attr_1;
6571 m_total_control(2) := load_current_codes.total_ctrl_attr_2;
6572 m_total_control(3) := load_current_codes.total_ctrl_attr_3;
6573 m_total_control(4) := load_current_codes.total_ctrl_attr_4;
6574 m_total_control(5) := load_current_codes.total_ctrl_attr_5;
6575 m_total_control(6) := load_current_codes.total_ctrl_attr_6;
6576 m_total_control(7) := load_current_codes.total_ctrl_attr_7;
6577 m_total_control(8) := load_current_codes.total_ctrl_attr_8;
6578 m_total_control(9) := load_current_codes.total_ctrl_attr_9;
6579 m_total_control(10) := load_current_codes.total_ctrl_attr_10;
6580 m_total_control(11) := load_current_codes.total_ctrl_attr_11;
6581 m_total_control(12) := load_current_codes.total_ctrl_attr_12;
6582 m_total_control(13) := load_current_codes.total_ctrl_attr_13;
6583 m_total_control(14) := load_current_codes.total_ctrl_attr_14;
6584 m_total_control(15) := load_current_codes.total_ctrl_attr_15;
6585 m_total_control(16) := load_current_codes.total_ctrl_attr_16;
6586 m_total_control(17) := load_current_codes.total_ctrl_attr_17;
6587 m_total_control(18) := load_current_codes.total_ctrl_attr_18;
6588 m_total_control(19) := load_current_codes.total_ctrl_attr_19;
6589 m_total_control(20) := load_current_codes.total_ctrl_attr_20;
6590 m_total_control(21) := load_current_codes.total_ctrl_attr_21;
6591 m_total_control(22) := load_current_codes.total_ctrl_attr_22;
6592 m_total_control(23) := load_current_codes.total_ctrl_attr_23;
6593 m_total_control(24) := load_current_codes.total_ctrl_attr_24;
6594 m_total_control(25) := load_current_codes.total_ctrl_attr_25;
6595 m_total_control(26) := load_current_codes.total_ctrl_attr_26;
6596 m_total_control(27) := load_current_codes.total_ctrl_attr_27;
6597 m_total_control(28) := load_current_codes.total_ctrl_attr_28;
6598 m_total_control(29) := load_current_codes.total_ctrl_attr_29;
6599 m_total_control(30) := load_current_codes.total_ctrl_attr_30;
6600
6601 m_cert_id :=load_current_codes.certification_id ;
6602 M_STATEMENT_GROUP_ID := load_current_codes.STATEMENT_GROUP_ID;
6603 M_STATEMENT_ID := load_current_codes.FINANCIAL_STATEMENT_ID;
6604 -------------------------------------------------------------------------------------
6605 -- JUST GET THE ACCOUNT GROUP FOR THE CERTIFICATION --
6606
6607 for acc_group in getAccGroupID
6608 loop
6609 exit when getAccGroupID%notfound;
6610 M_ACCOUNT_GROUP_ID := acc_group.ACCOUNT_GROUP_ID ;
6611
6612 end loop; --end of acc_group in getAccGroupID
6613
6614 -------------------------------------------------------------
6615
6616 for acc_assertions in ACC_ASSERT_CODES
6617 loop
6618 exit when ACC_ASSERT_CODES%notfound;
6619
6620 ctr := 1;
6621 while ctr <= 30
6622 loop
6623 if (m_assertions_code(ctr) = acc_assertions.ASSERTION_CODE ) then
6624
6625 if nvl(m_ineff_control(ctr),0) > 0 then
6626
6627 m_acc_assert_flag(ctr) := 'Y';
6628
6629 --************************************************************************************************** --
6630 -- else if the assertion is important for one of the accounts of fin. Item and No controls exist for the
6631 -- processes associated with the accounts then set the flag to 'Y', based on which an image will
6632 --- appear in UI
6633 --************************************************************************************************** --
6634
6635 elsif (nvl(m_total_control(ctr),0) = 0) then
6636
6637 m_acc_assert_flag(ctr) := 'Y';
6638
6639
6640 --- ********** ie assertion is Not important for any of the accounts of fin. Item and(nvl(m_total_control(ctr),0) > 0)
6641 else
6642 m_acc_assert_flag(ctr) := 'N';
6643
6644 end if;
6645
6646
6647 --m_acc_assert_flag(ctr) := 'Y';
6648 exit;
6649
6650 end if;
6651 ctr := ctr +1;
6652 end loop;
6653 end loop; --end of acc_assertions in ACC_ASSERT_CODES
6654 ---------------------------------------------------------------------------------------------
6655
6656 if set_flag_for_assertions( assert_acc_reln_exist=> m_acc_assert_flag) then
6657
6658 m_display_flag := 'Y';
6659 else
6660 m_display_flag := 'N';
6661 end if;
6662
6663
6664 ---------------------------------------------------------------------------------------------
6665
6666 amw_fin_coso_views_pvt.UPDATE_CTRLSUM_FLAG(
6667 x_fin_certification_id => m_cert_id ,
6668 x_natural_account_id => P_ACCOUNT_ID ,
6669 x_ctrl_attribute_type => m_ctrl_attribute_type ,
6670 x_created_by => g_user_id ,
6671 x_creation_date => SYSDATE ,
6672 x_last_updated_by => g_user_id ,
6673 x_last_update_date => SYSDATE ,
6674 x_last_update_login => g_login_id ,
6675 -- x_object_version_number => null,
6676 x_acc_assert_flag1 => m_acc_assert_flag(1),
6677 x_acc_assert_flag2 => m_acc_assert_flag(2),
6678 x_acc_assert_flag3 => m_acc_assert_flag(3),
6679 x_acc_assert_flag4 => m_acc_assert_flag(4),
6680 x_acc_assert_flag5 => m_acc_assert_flag(5),
6681 x_acc_assert_flag6 => m_acc_assert_flag(6),
6682 x_acc_assert_flag7 => m_acc_assert_flag(7),
6683 x_acc_assert_flag8 => m_acc_assert_flag(8),
6684 x_acc_assert_flag9 => m_acc_assert_flag(9),
6685 x_acc_assert_flag10 => m_acc_assert_flag(10),
6686 x_acc_assert_flag11 => m_acc_assert_flag(11),
6687 x_acc_assert_flag12 => m_acc_assert_flag(12),
6688 x_acc_assert_flag13 => m_acc_assert_flag(13),
6689 x_acc_assert_flag14 => m_acc_assert_flag(14),
6690 x_acc_assert_flag15 => m_acc_assert_flag(15),
6691 x_acc_assert_flag16 => m_acc_assert_flag(16),
6692 x_acc_assert_flag17 => m_acc_assert_flag(17),
6693 x_acc_assert_flag18 => m_acc_assert_flag(18),
6694 x_acc_assert_flag19 => m_acc_assert_flag(19),
6695 x_acc_assert_flag20 => m_acc_assert_flag(20),
6696 x_acc_assert_flag21 => m_acc_assert_flag(21),
6697 x_acc_assert_flag22 => m_acc_assert_flag(22),
6698 x_acc_assert_flag23 => m_acc_assert_flag(23),
6699 x_acc_assert_flag24 => m_acc_assert_flag(24),
6700 x_acc_assert_flag25 => m_acc_assert_flag(25),
6701 x_acc_assert_flag26 => m_acc_assert_flag(26),
6702 x_acc_assert_flag27 => m_acc_assert_flag(27),
6703 x_acc_assert_flag28 => m_acc_assert_flag(28),
6704 x_acc_assert_flag29 => m_acc_assert_flag(29),
6705 x_acc_assert_flag30 => m_acc_assert_flag(30),
6706 x_display_flag => m_display_flag );
6707
6708 -------------------------------------------------------------------------------------
6709
6710 amw_fin_coso_views_pvt.update_parentacc_assert_flags
6711 (P_ACCOUNT_ID =>P_ACCOUNT_ID ,
6712 P_CERTFICATION_ID => m_cert_id ,
6713 P_ACCOUNT_GROUP_ID => M_ACCOUNT_GROUP_ID);
6714
6715 -------------------------------------------------------------------------------------
6716
6717 amw_fin_coso_views_pvt.update_item_assert_flags
6718 ( P_NATRL_ACCOUNT_ID => P_ACCOUNT_ID );
6719
6720 ---------------------------------------------------------------------------------------
6721 end loop; -- end of load_current_codes loop
6722
6723 EXCEPTION
6724 WHEN NO_DATA_FOUND
6725 THEN
6726 fnd_file.put_line (fnd_file.LOG, SUBSTR ('No data found in Update_Next_Level_Proc_Info'
6727 || SUBSTR (SQLERRM, 1, 100), 1, 200));
6728
6729 WHEN OTHERS
6730 THEN
6731 fnd_file.put_line (fnd_file.LOG, SUBSTR ('Unexpected Error in Update_Next_Level_Proc_Info'
6732 || SUBSTR (SQLERRM, 1, 100), 1, 200));
6733
6734 ---COMMIT;
6735 end;
6736 end ; -- update_acc_assert_flags
6737
6738 -- ************************************************************************************************************* --
6739
6740
6741 PROCEDURE update_item_assert_flags
6742 ( P_NATRL_ACCOUNT_ID number ) is
6743
6744
6745 begin
6746 declare
6747
6748
6749 ctr integer :=0;
6750 max_num_of_codes integer :=0;
6751 m_ctrl_attribute_type VARCHAR2(30) :='CTRL_ASSERTIONS';
6752
6753 m_assertions_code component_code_array;
6754 m_acc_assert_flag component_code_array;
6755 m_total_control total_control_array ;
6756
6757 m_cert_id number ;
6758 m_fin_item_id number ;
6759 m_ineff_control ineff_control_array ;
6760 m_display_flag varchar2(1) := 'N';
6761
6762 v_ASSERTION_CODE varchar2(30);
6763
6764 g_user_id NUMBER := fnd_global.user_id;
6765 g_login_id NUMBER := fnd_global.conc_login_id;
6766 g_errbuf VARCHAR2(2000) := null;
6767 g_retcode VARCHAR2(2) := '0';
6768
6769
6770 ----------------------------------------------------------------------------------------------------------
6771 -- First find out all the Financial Certifications (Not Closed) and the Financial Items in that which are
6772 -- assoicated with the account (then in another cursor select all the accounts for the financial items and
6773 -- then get the Assertion Codes. (e.g an Assertion might have been removed from the Account but its parent
6774 -- financial item might still have anothe account which has mapped to that assertion, in which case the Image
6775 -- flags has to be maintened. If no Accounts mapped to the Item have association to the assertion then that
6776 -- column can be updated with ignore flag. For a Financial Item, this cannot be derived only by looking at
6777 -- the account - assertion being changed.
6778 ----------------------------------------------------------------------------------------------------------
6779 cursor existing_codes
6780 is
6781 select
6782 distinct
6783 cert.certification_id ,
6784 ctrlsum.financial_item_id,
6785 ctrl_attr_code_1,
6786 ctrl_attr_code_2,
6787 ctrl_attr_code_3,
6788 ctrl_attr_code_4,
6789 ctrl_attr_code_5,
6790 ctrl_attr_code_6,
6791 ctrl_attr_code_7,
6792 ctrl_attr_code_8,
6793 ctrl_attr_code_9,
6794 ctrl_attr_code_10,
6795 ctrl_attr_code_11,
6796 ctrl_attr_code_12,
6797 ctrl_attr_code_13,
6798 ctrl_attr_code_14,
6799 ctrl_attr_code_15,
6800 ctrl_attr_code_16,
6801 ctrl_attr_code_17,
6802 ctrl_attr_code_18,
6803 ctrl_attr_code_19,
6804 ctrl_attr_code_20,
6805 ctrl_attr_code_21,
6806 ctrl_attr_code_22,
6807 ctrl_attr_code_23,
6808 ctrl_attr_code_24,
6809 ctrl_attr_code_25,
6810 ctrl_attr_code_26,
6811 ctrl_attr_code_27,
6812 ctrl_attr_code_28,
6813 ctrl_attr_code_29,
6814 ctrl_attr_code_30,
6815 ineff_ctrl_attr_1,
6816 ineff_ctrl_attr_2,
6817 ineff_ctrl_attr_3,
6818 ineff_ctrl_attr_4,
6819 ineff_ctrl_attr_5,
6820 ineff_ctrl_attr_6,
6821 ineff_ctrl_attr_7,
6822 ineff_ctrl_attr_8,
6823 ineff_ctrl_attr_9,
6824 ineff_ctrl_attr_10,
6825 ineff_ctrl_attr_11,
6826 ineff_ctrl_attr_12,
6827 ineff_ctrl_attr_13,
6828 ineff_ctrl_attr_14,
6829 ineff_ctrl_attr_15,
6830 ineff_ctrl_attr_16,
6831 ineff_ctrl_attr_17,
6832 ineff_ctrl_attr_18,
6833 ineff_ctrl_attr_19,
6834 ineff_ctrl_attr_20,
6835 ineff_ctrl_attr_21,
6836 ineff_ctrl_attr_22,
6837 ineff_ctrl_attr_23,
6838 ineff_ctrl_attr_24,
6839 ineff_ctrl_attr_25,
6840 ineff_ctrl_attr_26,
6841 ineff_ctrl_attr_27,
6842 ineff_ctrl_attr_28,
6843 ineff_ctrl_attr_29,
6844 ineff_ctrl_attr_30,
6845 total_ctrl_attr_1,
6846 total_ctrl_attr_2,
6847 total_ctrl_attr_3,
6848 total_ctrl_attr_4,
6849 total_ctrl_attr_5,
6850 total_ctrl_attr_6,
6851 total_ctrl_attr_7,
6852 total_ctrl_attr_8,
6853 total_ctrl_attr_9,
6854 total_ctrl_attr_10,
6855 total_ctrl_attr_11,
6856 total_ctrl_attr_12,
6857 total_ctrl_attr_13,
6858 total_ctrl_attr_14,
6859 total_ctrl_attr_15,
6860 total_ctrl_attr_16,
6861 total_ctrl_attr_17,
6862 total_ctrl_attr_18,
6863 total_ctrl_attr_19,
6864 total_ctrl_attr_20,
6865 total_ctrl_attr_21,
6866 total_ctrl_attr_22,
6867 total_ctrl_attr_23,
6868 total_ctrl_attr_24,
6869 total_ctrl_attr_25,
6870 total_ctrl_attr_26,
6871 total_ctrl_attr_27,
6872 total_ctrl_attr_28,
6873 total_ctrl_attr_29,
6874 total_ctrl_attr_30
6875 from
6876 amw_certification_vl cert,
6877 amw_fin_cert_ctrl_sum ctrlsum,
6878 amw_fin_cert_scope scope
6879 where
6880 cert.certification_id = ctrlsum.fin_certification_id and
6881 ctrl_attribute_type = 'CTRL_ASSERTIONS'
6882 and
6883 (CERTIFICATION_STATUS= 'ACTIVE' or CERTIFICATION_STATUS= 'DRAFT')
6884 and cert.OBJECT_TYPE ='FIN_STMT'
6885 and ctrlsum.object_type='FINANCIAL ITEM'
6886 and scope.fin_certification_id = ctrlsum.fin_certification_id
6887 and scope.NATURAL_ACCOUNT_ID = P_NATRL_ACCOUNT_ID
6888 AND SCOPE.financial_item_id = ctrlsum.financial_item_id ;
6889
6890 -- *************** Currsor to get all Control for the Fianancial Item being Passed ********** --
6891
6892
6893 cursor ACC_ASSERT_FOR_FIN_ITEM(P_CERTIFICATION_ID NUMBER, P_FINANCIAL_ITEM_ID NUMBER)
6894 is
6895 select DISTINCT
6896 ASSERTION_CODE
6897 from
6898 amw_account_assertions
6899 where
6900 NATURAL_ACCOUNT_ID IN
6901 (select DISTINCT NATURAL_ACCOUNT_ID from amw_fin_cert_scope where fin_certification_id = P_CERTIFICATION_ID and
6902 financial_item_id = P_FINANCIAL_ITEM_ID );
6903 ----------------------------------------------------------------------------------------------
6904 BEGIN
6905
6906 --m_assertions_code := null;
6907 --ctr := 0;
6908
6909
6910 -- ************ Since the Table has 30 Fileds only initialize 30 Positios in the Array**************--
6911
6912 for load_current_codes in existing_codes
6913 loop
6914 exit when existing_codes%notfound;
6915
6916 ctr := 1;
6917
6918 loop -- for each certification initialize the array
6919 EXIT WHEN ctr > 30;
6920
6921 m_assertions_code(ctr) := null;
6922 m_acc_assert_flag(ctr) := 'I'; -- make ignore as the default and make it Y or N based on the interest of the Account on Assertion
6923 m_ineff_control(ctr) :=0;
6924 ctr := ctr + 1;
6925
6926 end loop; --end of initialization
6927
6928
6929 m_assertions_code(1) := load_current_codes.ctrl_attr_code_1;
6930 m_assertions_code(2) := load_current_codes.ctrl_attr_code_2;
6931 m_assertions_code(3) := load_current_codes.ctrl_attr_code_3;
6932 m_assertions_code(4) := load_current_codes.ctrl_attr_code_4;
6933 m_assertions_code(5) :=load_current_codes.ctrl_attr_code_5;
6934 m_assertions_code(6) :=load_current_codes.ctrl_attr_code_6;
6935 m_assertions_code(7) :=load_current_codes.ctrl_attr_code_7;
6936 m_assertions_code(8) :=load_current_codes.ctrl_attr_code_8;
6937 m_assertions_code(9) :=load_current_codes.ctrl_attr_code_9;
6938 m_assertions_code(10) :=load_current_codes.ctrl_attr_code_10;
6939 m_assertions_code(11) :=load_current_codes.ctrl_attr_code_11;
6940 m_assertions_code(12) :=load_current_codes.ctrl_attr_code_12;
6941 m_assertions_code(13) :=load_current_codes.ctrl_attr_code_13;
6942 m_assertions_code(14) :=load_current_codes.ctrl_attr_code_14;
6943 m_assertions_code(15) :=load_current_codes.ctrl_attr_code_15;
6944 m_assertions_code(16) :=load_current_codes.ctrl_attr_code_16;
6945 m_assertions_code(17) :=load_current_codes.ctrl_attr_code_17;
6946 m_assertions_code(18) :=load_current_codes.ctrl_attr_code_18;
6947 m_assertions_code(19) :=load_current_codes.ctrl_attr_code_19;
6948 m_assertions_code(20) :=load_current_codes.ctrl_attr_code_20;
6949 m_assertions_code(21) :=load_current_codes.ctrl_attr_code_21;
6950 m_assertions_code(22) :=load_current_codes.ctrl_attr_code_22;
6951 m_assertions_code(23) :=load_current_codes.ctrl_attr_code_23;
6952 m_assertions_code(24) :=load_current_codes.ctrl_attr_code_24;
6953 m_assertions_code(25) :=load_current_codes.ctrl_attr_code_25;
6954 m_assertions_code(26) :=load_current_codes.ctrl_attr_code_26;
6955 m_assertions_code(27) :=load_current_codes.ctrl_attr_code_27;
6956 m_assertions_code(28) :=load_current_codes.ctrl_attr_code_28;
6957 m_assertions_code(29) :=load_current_codes.ctrl_attr_code_29;
6958 m_assertions_code(30) :=load_current_codes.ctrl_attr_code_30;
6959
6960 m_ineff_control(1) := load_current_codes.ineff_ctrl_attr_1;
6961 m_ineff_control(2) := load_current_codes.ineff_ctrl_attr_2;
6962 m_ineff_control(3) := load_current_codes.ineff_ctrl_attr_3;
6963 m_ineff_control(4) := load_current_codes.ineff_ctrl_attr_4;
6964 m_ineff_control(5) :=load_current_codes.ineff_ctrl_attr_5;
6965 m_ineff_control(6) :=load_current_codes.ineff_ctrl_attr_6;
6966 m_ineff_control(7) :=load_current_codes.ineff_ctrl_attr_7;
6967 m_ineff_control(8) :=load_current_codes.ineff_ctrl_attr_8;
6968 m_ineff_control(9) :=load_current_codes.ineff_ctrl_attr_9;
6969 m_ineff_control(10) :=load_current_codes.ineff_ctrl_attr_10;
6970 m_ineff_control(11) :=load_current_codes.ineff_ctrl_attr_11;
6971 m_ineff_control(12) :=load_current_codes.ineff_ctrl_attr_12;
6972 m_ineff_control(13) :=load_current_codes.ineff_ctrl_attr_13;
6973 m_ineff_control(14) :=load_current_codes.ineff_ctrl_attr_14;
6974 m_ineff_control(15) :=load_current_codes.ineff_ctrl_attr_15;
6975 m_ineff_control(16) :=load_current_codes.ineff_ctrl_attr_16;
6976 m_ineff_control(17) :=load_current_codes.ineff_ctrl_attr_17;
6977 m_ineff_control(18) :=load_current_codes.ineff_ctrl_attr_18;
6978 m_ineff_control(19) :=load_current_codes.ineff_ctrl_attr_19;
6979 m_ineff_control(20) :=load_current_codes.ineff_ctrl_attr_20;
6980 m_ineff_control(21) :=load_current_codes.ineff_ctrl_attr_21;
6981 m_ineff_control(22) :=load_current_codes.ineff_ctrl_attr_22;
6982 m_ineff_control(23) :=load_current_codes.ineff_ctrl_attr_23;
6983 m_ineff_control(24) :=load_current_codes.ineff_ctrl_attr_24;
6984 m_ineff_control(25) :=load_current_codes.ineff_ctrl_attr_25;
6985 m_ineff_control(26) :=load_current_codes.ineff_ctrl_attr_26;
6986 m_ineff_control(27) :=load_current_codes.ineff_ctrl_attr_27;
6987 m_ineff_control(28) :=load_current_codes.ineff_ctrl_attr_28;
6988 m_ineff_control(29) :=load_current_codes.ineff_ctrl_attr_29;
6989 m_ineff_control(30) :=load_current_codes.ineff_ctrl_attr_30;
6990
6991 m_total_control(1) := load_current_codes.total_ctrl_attr_1;
6992 m_total_control(2) := load_current_codes.total_ctrl_attr_2;
6993 m_total_control(3) := load_current_codes.total_ctrl_attr_3;
6994 m_total_control(4) := load_current_codes.total_ctrl_attr_4;
6995 m_total_control(5) := load_current_codes.total_ctrl_attr_5;
6996 m_total_control(6) := load_current_codes.total_ctrl_attr_6;
6997 m_total_control(7) := load_current_codes.total_ctrl_attr_7;
6998 m_total_control(8) := load_current_codes.total_ctrl_attr_8;
6999 m_total_control(9) := load_current_codes.total_ctrl_attr_9;
7000 m_total_control(10) := load_current_codes.total_ctrl_attr_10;
7001 m_total_control(11) := load_current_codes.total_ctrl_attr_11;
7002 m_total_control(12) := load_current_codes.total_ctrl_attr_12;
7003 m_total_control(13) := load_current_codes.total_ctrl_attr_13;
7004 m_total_control(14) := load_current_codes.total_ctrl_attr_14;
7005 m_total_control(15) := load_current_codes.total_ctrl_attr_15;
7006 m_total_control(16) := load_current_codes.total_ctrl_attr_16;
7007 m_total_control(17) := load_current_codes.total_ctrl_attr_17;
7008 m_total_control(18) := load_current_codes.total_ctrl_attr_18;
7009 m_total_control(19) := load_current_codes.total_ctrl_attr_19;
7010 m_total_control(20) := load_current_codes.total_ctrl_attr_20;
7011 m_total_control(21) := load_current_codes.total_ctrl_attr_21;
7012 m_total_control(22) := load_current_codes.total_ctrl_attr_22;
7013 m_total_control(23) := load_current_codes.total_ctrl_attr_23;
7014 m_total_control(24) := load_current_codes.total_ctrl_attr_24;
7015 m_total_control(25) := load_current_codes.total_ctrl_attr_25;
7016 m_total_control(26) := load_current_codes.total_ctrl_attr_26;
7017 m_total_control(27) := load_current_codes.total_ctrl_attr_27;
7018 m_total_control(28) := load_current_codes.total_ctrl_attr_28;
7019 m_total_control(29) := load_current_codes.total_ctrl_attr_29;
7020 m_total_control(30) := load_current_codes.total_ctrl_attr_30;
7021
7022
7023 m_cert_id :=load_current_codes.certification_id ;
7024 m_fin_item_id := load_current_codes.financial_item_id;
7025
7026
7027 -------------------------------------------------------------------------------------
7028
7029 end loop; -- end of load_current_codes loop
7030
7031
7032 for acc_assertions in ACC_ASSERT_FOR_FIN_ITEM(m_cert_id , m_fin_item_id )
7033 loop
7034 exit when ACC_ASSERT_FOR_FIN_ITEM%notfound;
7035 ctr := 1;
7036 while ctr <= 30
7037 loop
7038 if (m_assertions_code(ctr) = acc_assertions.ASSERTION_CODE ) then
7039
7040 if nvl(m_ineff_control(ctr),0) > 0 then
7041
7042 m_acc_assert_flag(ctr) := 'Y';
7043
7044 --************************************************************************************************** --
7045 -- else if the assertion is important for one of the accounts of fin. Item and No controls exist for the
7046 -- processes associated with the accounts then set the flag to 'Y', based on which an image will
7047 --- appear in UI
7048 --************************************************************************************************** --
7049
7050 elsif (nvl(m_total_control(ctr),0) = 0) then
7051
7052 m_acc_assert_flag(ctr) := 'Y';
7053
7054
7055 --- ********** ie assertion is Not important for any of the accounts of fin. Item and(nvl(m_total_control(ctr),0) > 0)
7056 else
7057 m_acc_assert_flag(ctr) := 'N';
7058
7059 end if;
7060
7061
7062 --m_acc_assert_flag(ctr) := 'Y';
7063 exit;
7064
7065 end if;
7066 ctr := ctr +1;
7067 end loop;
7068 end loop; --end of acc_assertions in ACC_ASSERT_FOR_FIN_ITEM
7069 ---------------------------------------------------------------------------------------------
7070
7071 if set_flag_for_assertions( assert_acc_reln_exist=> m_acc_assert_flag) then
7072
7073 m_display_flag := 'Y';
7074 else
7075 m_display_flag := 'N';
7076 end if;
7077
7078
7079 ---------------------------------------------------------------------------------------------
7080 amw_fin_coso_views_pvt.UPDATE_CTRLSUM_ITEM_FLAG(
7081 x_fin_certification_id => m_cert_id ,
7082 x_financial_item_id => m_fin_item_id ,
7083 x_ctrl_attribute_type => m_ctrl_attribute_type ,
7084 x_created_by => g_user_id ,
7085 x_creation_date => SYSDATE ,
7086 x_last_updated_by => g_user_id ,
7087 x_last_update_date => SYSDATE ,
7088 x_last_update_login => g_login_id ,
7089 -- x_object_version_number => null,
7090 x_acc_assert_flag1 => m_acc_assert_flag(1),
7091 x_acc_assert_flag2 => m_acc_assert_flag(2),
7092 x_acc_assert_flag3 => m_acc_assert_flag(3),
7093 x_acc_assert_flag4 => m_acc_assert_flag(4),
7094 x_acc_assert_flag5 => m_acc_assert_flag(5),
7095 x_acc_assert_flag6 => m_acc_assert_flag(6),
7096 x_acc_assert_flag7 => m_acc_assert_flag(7),
7097 x_acc_assert_flag8 => m_acc_assert_flag(8),
7098 x_acc_assert_flag9 => m_acc_assert_flag(9),
7099 x_acc_assert_flag10 => m_acc_assert_flag(10),
7100 x_acc_assert_flag11 => m_acc_assert_flag(11),
7101 x_acc_assert_flag12 => m_acc_assert_flag(12),
7102 x_acc_assert_flag13 => m_acc_assert_flag(13),
7103 x_acc_assert_flag14 => m_acc_assert_flag(14),
7104 x_acc_assert_flag15 => m_acc_assert_flag(15),
7105 x_acc_assert_flag16 => m_acc_assert_flag(16),
7106 x_acc_assert_flag17 => m_acc_assert_flag(17),
7107 x_acc_assert_flag18 => m_acc_assert_flag(18),
7108 x_acc_assert_flag19 => m_acc_assert_flag(19),
7109 x_acc_assert_flag20 => m_acc_assert_flag(20),
7110 x_acc_assert_flag21 => m_acc_assert_flag(21),
7111 x_acc_assert_flag22 => m_acc_assert_flag(22),
7112 x_acc_assert_flag23 => m_acc_assert_flag(23),
7113 x_acc_assert_flag24 => m_acc_assert_flag(24),
7114 x_acc_assert_flag25 => m_acc_assert_flag(25),
7115 x_acc_assert_flag26 => m_acc_assert_flag(26),
7116 x_acc_assert_flag27 => m_acc_assert_flag(27),
7117 x_acc_assert_flag28 => m_acc_assert_flag(28),
7118 x_acc_assert_flag29 => m_acc_assert_flag(29),
7119 x_acc_assert_flag30 => m_acc_assert_flag(30),
7120 x_display_flag => m_display_flag );
7121
7122
7123 EXCEPTION
7124 WHEN NO_DATA_FOUND
7125 THEN
7126 fnd_file.put_line (fnd_file.LOG, SUBSTR ('No data found in Update_Next_Level_Proc_Info'
7127 || SUBSTR (SQLERRM, 1, 100), 1, 200));
7128
7129 WHEN OTHERS
7130 THEN
7131 fnd_file.put_line (fnd_file.LOG, SUBSTR ('Unexpected Error in Update_Next_Level_Proc_Info'
7132 || SUBSTR (SQLERRM, 1, 100), 1, 200));
7133
7134 ---COMMIT;
7135 end;
7136 end ; -- update_item_assert_flags
7137 /* ******************************************* UPDATE_ACC_ASSERT_FLAG ************************************************************* */
7138
7139 procedure UPDATE_CTRLSUM_ITEM_FLAG(
7140
7141 x_fin_certification_id NUMBER ,
7142 x_financial_item_id NUMBER ,
7143 x_ctrl_attribute_type varchar2,
7144 x_created_by number ,
7145 x_creation_date date ,
7146 x_last_updated_by number ,
7147 x_last_update_date date,
7148 x_last_update_login number ,
7149 x_acc_assert_flag1 VARCHAR2,
7150 x_acc_assert_flag2 VARCHAR2,
7151 x_acc_assert_flag3 VARCHAR2,
7152 x_acc_assert_flag4 VARCHAR2,
7153 x_acc_assert_flag5 VARCHAR2,
7154 x_acc_assert_flag6 VARCHAR2,
7155 x_acc_assert_flag7 VARCHAR2,
7156 x_acc_assert_flag8 VARCHAR2,
7157 x_acc_assert_flag9 VARCHAR2,
7158 x_acc_assert_flag10 VARCHAR2,
7159 x_acc_assert_flag11 VARCHAR2,
7160 x_acc_assert_flag12 VARCHAR2,
7161 x_acc_assert_flag13 VARCHAR2,
7162 x_acc_assert_flag14 VARCHAR2,
7163 x_acc_assert_flag15 VARCHAR2,
7164 x_acc_assert_flag16 VARCHAR2,
7165 x_acc_assert_flag17 VARCHAR2,
7166 x_acc_assert_flag18 VARCHAR2,
7167 x_acc_assert_flag19 VARCHAR2,
7168 x_acc_assert_flag20 VARCHAR2,
7169 x_acc_assert_flag21 VARCHAR2,
7170 x_acc_assert_flag22 VARCHAR2,
7171 x_acc_assert_flag23 VARCHAR2,
7172 x_acc_assert_flag24 VARCHAR2,
7173 x_acc_assert_flag25 VARCHAR2,
7174 x_acc_assert_flag26 VARCHAR2,
7175 x_acc_assert_flag27 VARCHAR2,
7176 x_acc_assert_flag28 VARCHAR2,
7177 x_acc_assert_flag29 VARCHAR2,
7178 x_acc_assert_flag30 VARCHAR2,
7179 x_display_flag VARCHAR2
7180 ) is
7181
7182 begin
7183 UPDATE
7184 amw_fin_cert_ctrl_sum
7185 SET
7186 acc_assert_flag_1= x_acc_assert_flag1
7187 ,acc_assert_flag_2 = x_acc_assert_flag2
7188 ,acc_assert_flag_3= x_acc_assert_flag3
7189 ,acc_assert_flag_4= x_acc_assert_flag4
7190 ,acc_assert_flag_5= x_acc_assert_flag5
7191 ,acc_assert_flag_6= x_acc_assert_flag6
7192 ,acc_assert_flag_7= x_acc_assert_flag7
7193 ,acc_assert_flag_8= x_acc_assert_flag8
7194 ,acc_assert_flag_9= x_acc_assert_flag9
7195 ,acc_assert_flag_10= x_acc_assert_flag10
7196 ,acc_assert_flag_11= x_acc_assert_flag11
7197 ,acc_assert_flag_12= x_acc_assert_flag12
7198 ,acc_assert_flag_13= x_acc_assert_flag13
7199 ,acc_assert_flag_14= x_acc_assert_flag14
7200 ,acc_assert_flag_15= x_acc_assert_flag15
7201 ,acc_assert_flag_16= x_acc_assert_flag16
7202 ,acc_assert_flag_17= x_acc_assert_flag17
7203 ,acc_assert_flag_18= x_acc_assert_flag18
7204 ,acc_assert_flag_19= x_acc_assert_flag19
7205 ,acc_assert_flag_20= x_acc_assert_flag20
7206 ,acc_assert_flag_21= x_acc_assert_flag21
7207 ,acc_assert_flag_22= x_acc_assert_flag22
7208 ,acc_assert_flag_23= x_acc_assert_flag23
7209 ,acc_assert_flag_24= x_acc_assert_flag24
7210 ,acc_assert_flag_25= x_acc_assert_flag25
7211 ,acc_assert_flag_26= x_acc_assert_flag26
7212 ,acc_assert_flag_27= x_acc_assert_flag27
7213 ,acc_assert_flag_28= x_acc_assert_flag28
7214 ,acc_assert_flag_29= x_acc_assert_flag29
7215 ,acc_assert_flag_30= x_acc_assert_flag30
7216 ,CONTROLS_EXIST_FLAG =x_display_flag
7217 ,last_updated_by = x_last_updated_by
7218 ,last_update_date = x_last_update_date
7219 ,last_update_login = x_last_update_login
7220 ,object_version_number = object_version_number +1
7221 where
7222 fin_certification_id = x_fin_certification_id and
7223 financial_item_id = x_financial_item_id and
7224 NVL(account_group_id, -1) = '-1' and
7225 nvl(natural_account_id, -1) = '-1' and
7226 CTRL_ATTRIBUTE_TYPE = x_ctrl_attribute_type and
7227 object_type = 'FINANCIAL ITEM' ;
7228
7229
7230
7231 end UPDATE_CTRLSUM_ITEM_FLAG;
7232
7233
7234
7235 /* ******************************************* UPDATE_ACC_ASSERT_FLAG ***************************************** */
7236
7237 procedure UPDATE_CTRLSUM_FLAG(
7238 x_fin_certification_id NUMBER ,
7239 x_natural_account_id NUMBER,
7240 x_ctrl_attribute_type varchar2,
7241 x_created_by number ,
7242 x_creation_date date ,
7243 x_last_updated_by number ,
7244 x_last_update_date date,
7245 x_last_update_login number ,
7246 x_acc_assert_flag1 VARCHAR2,
7247 x_acc_assert_flag2 VARCHAR2,
7248 x_acc_assert_flag3 VARCHAR2,
7249 x_acc_assert_flag4 VARCHAR2,
7250 x_acc_assert_flag5 VARCHAR2,
7251 x_acc_assert_flag6 VARCHAR2,
7252 x_acc_assert_flag7 VARCHAR2,
7253 x_acc_assert_flag8 VARCHAR2,
7254 x_acc_assert_flag9 VARCHAR2,
7255 x_acc_assert_flag10 VARCHAR2,
7256 x_acc_assert_flag11 VARCHAR2,
7257 x_acc_assert_flag12 VARCHAR2,
7258 x_acc_assert_flag13 VARCHAR2,
7259 x_acc_assert_flag14 VARCHAR2,
7260 x_acc_assert_flag15 VARCHAR2,
7261 x_acc_assert_flag16 VARCHAR2,
7262 x_acc_assert_flag17 VARCHAR2,
7263 x_acc_assert_flag18 VARCHAR2,
7264 x_acc_assert_flag19 VARCHAR2,
7265 x_acc_assert_flag20 VARCHAR2,
7266 x_acc_assert_flag21 VARCHAR2,
7267 x_acc_assert_flag22 VARCHAR2,
7268 x_acc_assert_flag23 VARCHAR2,
7269 x_acc_assert_flag24 VARCHAR2,
7270 x_acc_assert_flag25 VARCHAR2,
7271 x_acc_assert_flag26 VARCHAR2,
7272 x_acc_assert_flag27 VARCHAR2,
7273 x_acc_assert_flag28 VARCHAR2,
7274 x_acc_assert_flag29 VARCHAR2,
7275 x_acc_assert_flag30 VARCHAR2,
7276 x_display_flag VARCHAR2
7277
7278 ) is
7279
7280 begin
7281 UPDATE
7282 amw_fin_cert_ctrl_sum
7283 SET
7284 acc_assert_flag_1= x_acc_assert_flag1
7285 ,acc_assert_flag_2 = x_acc_assert_flag2
7286 ,acc_assert_flag_3= x_acc_assert_flag3
7287 ,acc_assert_flag_4= x_acc_assert_flag4
7288 ,acc_assert_flag_5= x_acc_assert_flag5
7289 ,acc_assert_flag_6= x_acc_assert_flag6
7290 ,acc_assert_flag_7= x_acc_assert_flag7
7291 ,acc_assert_flag_8= x_acc_assert_flag8
7292 ,acc_assert_flag_9= x_acc_assert_flag9
7293 ,acc_assert_flag_10= x_acc_assert_flag10
7294 ,acc_assert_flag_11= x_acc_assert_flag11
7295 ,acc_assert_flag_12= x_acc_assert_flag12
7296 ,acc_assert_flag_13= x_acc_assert_flag13
7297 ,acc_assert_flag_14= x_acc_assert_flag14
7298 ,acc_assert_flag_15= x_acc_assert_flag15
7299 ,acc_assert_flag_16= x_acc_assert_flag16
7300 ,acc_assert_flag_17= x_acc_assert_flag17
7301 ,acc_assert_flag_18= x_acc_assert_flag18
7302 ,acc_assert_flag_19= x_acc_assert_flag19
7303 ,acc_assert_flag_20= x_acc_assert_flag20
7304 ,acc_assert_flag_21= x_acc_assert_flag21
7305 ,acc_assert_flag_22= x_acc_assert_flag22
7306 ,acc_assert_flag_23= x_acc_assert_flag23
7307 ,acc_assert_flag_24= x_acc_assert_flag24
7308 ,acc_assert_flag_25= x_acc_assert_flag25
7309 ,acc_assert_flag_26= x_acc_assert_flag26
7310 ,acc_assert_flag_27= x_acc_assert_flag27
7311 ,acc_assert_flag_28= x_acc_assert_flag28
7312 ,acc_assert_flag_29= x_acc_assert_flag29
7313 ,acc_assert_flag_30= x_acc_assert_flag30
7314 ,CONTROLS_EXIST_FLAG =x_display_flag
7315 ,last_updated_by = x_last_updated_by
7316 ,last_update_date = x_last_update_date
7317 ,last_update_login = x_last_update_login
7318 ,object_version_number = object_version_number +1
7319 where
7320 fin_certification_id = x_fin_certification_id and
7321 natural_account_id = x_natural_account_id and
7322 object_type = 'ACCOUNT' and
7323 CTRL_ATTRIBUTE_TYPE = 'CTRL_ASSERTIONS';
7324
7325 end UPDATE_CTRLSUM_FLAG;
7326
7327
7328 --*************************************************************************************************************
7329 FUNCTION take_new_acc_assertions
7330 ( p_subscription_guid in raw,
7331 p_event in out NOCOPY wf_event_t)
7332 return varchar2
7333 IS
7334
7335 l_key varchar2(240) := p_event.GetEventKey();
7336 l_acccount_id NUMBER;
7337 l_user_id NUMBER;
7338 l_resp_id NUMBER;
7339 l_resp_appl_id NUMBER;
7340 l_security_group_id NUMBER;
7341
7342
7343 BEGIN
7344
7345
7346 l_acccount_id := p_event.GetValueForParameter('ACCOUNT_ID');
7347 l_user_id := p_event.GetValueForParameter('USER_ID');
7348 l_resp_id := p_event.GetValueForParameter('RESP_ID');
7349 l_resp_appl_id := p_event.GetValueForParameter('RESP_APPL_ID');
7350 l_security_group_id := null;
7351
7352 --p_event.GetValueForParameter('SECURITY_GROUP_ID');
7353
7354 -- fnd_global.apps_initialize (l_user_id, l_resp_id, l_resp_appl_id, l_security_group_id);
7355
7356 amw_fin_coso_views_pvt.update_acc_assert_flags(l_acccount_id);
7357
7358
7359 RETURN 'SUCCESS';
7360 EXCEPTION
7361 WHEN OTHERS THEN
7362 WF_CORE.CONTEXT('amw_fin_coso_views_pvt', 'update_acc_assert_flags', p_event.getEventName(), p_subscription_guid);
7363 WF_EVENT.setErrorInfo(p_event, 'ERROR');
7364 RETURN 'ERROR';
7365
7366 end take_new_acc_assertions;
7367 --*************************************************************************************************************
7368
7369 ------------------------------------------
7370 PROCEDURE update_parentacc_assert_flags
7371 ( P_ACCOUNT_ID number,
7372 P_CERTFICATION_ID number,
7373 P_ACCOUNT_GROUP_ID number) is
7374
7375
7376 begin
7377 declare
7378
7379
7380 ctr integer :=0;
7381 max_num_of_codes integer :=0;
7382 m_ctrl_attribute_type VARCHAR2(30) :='CTRL_ASSERTIONS';
7383
7384 m_assertions_code component_code_array;
7385 m_acc_assert_flag component_code_array;
7386 m_total_control total_control_array ;
7387
7388 m_cert_id number ;
7389
7390 m_ineff_control ineff_control_array ;
7391
7392 v_ASSERTION_CODE varchar2(30);
7393 m_display_flag varchar2(1) := 'N';
7394
7395 g_user_id NUMBER := fnd_global.user_id;
7396 g_login_id NUMBER := fnd_global.conc_login_id;
7397 g_errbuf VARCHAR2(2000) := null;
7398 g_retcode VARCHAR2(2) := '0';
7399
7400 -- *************** Currsor to get all Control for the account being Passed ********** --
7401
7402
7403 --M_ACCOUNT_GROUP_ID number :=0;
7404 -----------------------------------------------------------------------------------------
7405
7406 M_PARENT_ACCOUNT_ID number :=0;
7407
7408 cursor ACC_ASSERT_CODES
7409 is
7410 select
7411 distinct
7412 ASSERTION_CODE
7413 from
7414 amw_account_assertions
7415 where
7416 ((NATURAL_ACCOUNT_ID =M_PARENT_ACCOUNT_ID) or (NATURAL_ACCOUNT_ID in (select CHILD_NATURAL_ACCOUNT_ID from amw_fin_key_acct_flat
7417 where PARENT_NATURAL_ACCOUNT_ID =M_PARENT_ACCOUNT_ID and ACCOUNT_GROUP_ID=P_ACCOUNT_GROUP_ID)));
7418
7419 -----------------------------------------------------------------------------------------
7420
7421 M_STATEMENT_GROUP_ID NUMBER :=0;
7422 M_STATEMENT_ID NUMBER :=0;
7423
7424 cursor getParentAcc IS
7425 select PARENT_NATURAL_ACCOUNT_ID from amw_fin_key_acct_flat
7426 where CHILD_NATURAL_ACCOUNT_ID =P_ACCOUNT_ID and ACCOUNT_GROUP_ID=p_ACCOUNT_GROUP_ID;
7427
7428 --------------------------------------------------------------------------------------------
7429 cursor existing_codes
7430 is
7431 select
7432 distinct
7433 FIN_CERTIFICATION_ID,
7434 FINANCIAL_STATEMENT_ID,
7435 ctrl_attr_code_1,
7436 ctrl_attr_code_2,
7437 ctrl_attr_code_3,
7438 ctrl_attr_code_4,
7439 ctrl_attr_code_5,
7440 ctrl_attr_code_6,
7441 ctrl_attr_code_7,
7442 ctrl_attr_code_8,
7443 ctrl_attr_code_9,
7444 ctrl_attr_code_10,
7445 ctrl_attr_code_11,
7446 ctrl_attr_code_12,
7447 ctrl_attr_code_13,
7448 ctrl_attr_code_14,
7449 ctrl_attr_code_15,
7450 ctrl_attr_code_16,
7451 ctrl_attr_code_17,
7452 ctrl_attr_code_18,
7453 ctrl_attr_code_19,
7454 ctrl_attr_code_20,
7455 ctrl_attr_code_21,
7456 ctrl_attr_code_22,
7457 ctrl_attr_code_23,
7458 ctrl_attr_code_24,
7459 ctrl_attr_code_25,
7460 ctrl_attr_code_26,
7461 ctrl_attr_code_27,
7462 ctrl_attr_code_28,
7463 ctrl_attr_code_29,
7464 ctrl_attr_code_30,
7465 ineff_ctrl_attr_1,
7466 ineff_ctrl_attr_2,
7467 ineff_ctrl_attr_3,
7468 ineff_ctrl_attr_4,
7469 ineff_ctrl_attr_5,
7470 ineff_ctrl_attr_6,
7471 ineff_ctrl_attr_7,
7472 ineff_ctrl_attr_8,
7473 ineff_ctrl_attr_9,
7474 ineff_ctrl_attr_10,
7475 ineff_ctrl_attr_11,
7476 ineff_ctrl_attr_12,
7477 ineff_ctrl_attr_13,
7478 ineff_ctrl_attr_14,
7479 ineff_ctrl_attr_15,
7480 ineff_ctrl_attr_16,
7481 ineff_ctrl_attr_17,
7482 ineff_ctrl_attr_18,
7483 ineff_ctrl_attr_19,
7484 ineff_ctrl_attr_20,
7485 ineff_ctrl_attr_21,
7486 ineff_ctrl_attr_22,
7487 ineff_ctrl_attr_23,
7488 ineff_ctrl_attr_24,
7489 ineff_ctrl_attr_25,
7490 ineff_ctrl_attr_26,
7491 ineff_ctrl_attr_27,
7492 ineff_ctrl_attr_28,
7493 ineff_ctrl_attr_29,
7494 ineff_ctrl_attr_30,
7495 total_ctrl_attr_1,
7496 total_ctrl_attr_2,
7497 total_ctrl_attr_3,
7498 total_ctrl_attr_4,
7499 total_ctrl_attr_5,
7500 total_ctrl_attr_6,
7501 total_ctrl_attr_7,
7502 total_ctrl_attr_8,
7503 total_ctrl_attr_9,
7504 total_ctrl_attr_10,
7505 total_ctrl_attr_11,
7506 total_ctrl_attr_12,
7507 total_ctrl_attr_13,
7508 total_ctrl_attr_14,
7509 total_ctrl_attr_15,
7510 total_ctrl_attr_16,
7511 total_ctrl_attr_17,
7512 total_ctrl_attr_18,
7513 total_ctrl_attr_19,
7514 total_ctrl_attr_20,
7515 total_ctrl_attr_21,
7516 total_ctrl_attr_22,
7517 total_ctrl_attr_23,
7518 total_ctrl_attr_24,
7519 total_ctrl_attr_25,
7520 total_ctrl_attr_26,
7521 total_ctrl_attr_27,
7522 total_ctrl_attr_28,
7523 total_ctrl_attr_29,
7524 total_ctrl_attr_30
7525 from
7526 amw_fin_cert_ctrl_sum ctrlsum
7527 where
7528 FIN_CERTIFICATION_ID= P_CERTFICATION_ID
7529 and ctrl_attribute_type = 'CTRL_ASSERTIONS'
7530 AND OBJECT_TYPE='ACCOUNT' AND
7531 NATURAL_ACCOUNT_ID=M_PARENT_ACCOUNT_ID AND
7532 ACCOUNT_GROUP_ID =P_ACCOUNT_GROUP_ID ;
7533
7534
7535
7536
7537 BEGIN
7538
7539 --m_assertions_code := null;
7540 --ctr := 0;
7541
7542
7543 for parentAccounts in getParentAcc
7544 loop
7545 exit when getParentAcc %notfound;
7546 M_PARENT_ACCOUNT_ID := parentAccounts.PARENT_NATURAL_ACCOUNT_ID ;
7547
7548
7549 -- ************ Since the Table has 30 Fileds only initialize 30 Positios in the Array**************--
7550
7551 for load_current_codes in existing_codes
7552 loop
7553 exit when existing_codes%notfound;
7554
7555 ctr := 1;
7556
7557 loop -- for each certification initialize the array
7558 EXIT WHEN ctr > 30;
7559
7560 m_assertions_code(ctr) := null;
7561 m_acc_assert_flag(ctr) := 'I'; -- make ignore as the default and make it Y or N based on the interest of the Account on Assertion
7562 m_ineff_control(ctr) :=0;
7563 ctr := ctr + 1;
7564
7565 end loop; --end of initialization
7566
7567
7568 m_assertions_code(1) := load_current_codes.ctrl_attr_code_1;
7569 m_assertions_code(2) := load_current_codes.ctrl_attr_code_2;
7570 m_assertions_code(3) := load_current_codes.ctrl_attr_code_3;
7571 m_assertions_code(4) := load_current_codes.ctrl_attr_code_4;
7572 m_assertions_code(5) :=load_current_codes.ctrl_attr_code_5;
7573 m_assertions_code(6) :=load_current_codes.ctrl_attr_code_6;
7574 m_assertions_code(7) :=load_current_codes.ctrl_attr_code_7;
7575 m_assertions_code(8) :=load_current_codes.ctrl_attr_code_8;
7576 m_assertions_code(9) :=load_current_codes.ctrl_attr_code_9;
7577 m_assertions_code(10) :=load_current_codes.ctrl_attr_code_10;
7578 m_assertions_code(11) :=load_current_codes.ctrl_attr_code_11;
7579 m_assertions_code(12) :=load_current_codes.ctrl_attr_code_12;
7580 m_assertions_code(13) :=load_current_codes.ctrl_attr_code_13;
7581 m_assertions_code(14) :=load_current_codes.ctrl_attr_code_14;
7582 m_assertions_code(15) :=load_current_codes.ctrl_attr_code_15;
7583 m_assertions_code(16) :=load_current_codes.ctrl_attr_code_16;
7584 m_assertions_code(17) :=load_current_codes.ctrl_attr_code_17;
7585 m_assertions_code(18) :=load_current_codes.ctrl_attr_code_18;
7586 m_assertions_code(19) :=load_current_codes.ctrl_attr_code_19;
7587 m_assertions_code(20) :=load_current_codes.ctrl_attr_code_20;
7588 m_assertions_code(21) :=load_current_codes.ctrl_attr_code_21;
7589 m_assertions_code(22) :=load_current_codes.ctrl_attr_code_22;
7590 m_assertions_code(23) :=load_current_codes.ctrl_attr_code_23;
7591 m_assertions_code(24) :=load_current_codes.ctrl_attr_code_24;
7592 m_assertions_code(25) :=load_current_codes.ctrl_attr_code_25;
7593 m_assertions_code(26) :=load_current_codes.ctrl_attr_code_26;
7594 m_assertions_code(27) :=load_current_codes.ctrl_attr_code_27;
7595 m_assertions_code(28) :=load_current_codes.ctrl_attr_code_28;
7596 m_assertions_code(29) :=load_current_codes.ctrl_attr_code_29;
7597 m_assertions_code(30) :=load_current_codes.ctrl_attr_code_30;
7598
7599 m_ineff_control(1) := load_current_codes.ineff_ctrl_attr_1;
7600 m_ineff_control(2) := load_current_codes.ineff_ctrl_attr_2;
7601 m_ineff_control(3) := load_current_codes.ineff_ctrl_attr_3;
7602 m_ineff_control(4) := load_current_codes.ineff_ctrl_attr_4;
7603 m_ineff_control(5) :=load_current_codes.ineff_ctrl_attr_5;
7604 m_ineff_control(6) :=load_current_codes.ineff_ctrl_attr_6;
7605 m_ineff_control(7) :=load_current_codes.ineff_ctrl_attr_7;
7606 m_ineff_control(8) :=load_current_codes.ineff_ctrl_attr_8;
7607 m_ineff_control(9) :=load_current_codes.ineff_ctrl_attr_9;
7608 m_ineff_control(10) :=load_current_codes.ineff_ctrl_attr_10;
7609 m_ineff_control(11) :=load_current_codes.ineff_ctrl_attr_11;
7610 m_ineff_control(12) :=load_current_codes.ineff_ctrl_attr_12;
7611 m_ineff_control(13) :=load_current_codes.ineff_ctrl_attr_13;
7612 m_ineff_control(14) :=load_current_codes.ineff_ctrl_attr_14;
7613 m_ineff_control(15) :=load_current_codes.ineff_ctrl_attr_15;
7614 m_ineff_control(16) :=load_current_codes.ineff_ctrl_attr_16;
7615 m_ineff_control(17) :=load_current_codes.ineff_ctrl_attr_17;
7616 m_ineff_control(18) :=load_current_codes.ineff_ctrl_attr_18;
7617 m_ineff_control(19) :=load_current_codes.ineff_ctrl_attr_19;
7618 m_ineff_control(20) :=load_current_codes.ineff_ctrl_attr_20;
7619 m_ineff_control(21) :=load_current_codes.ineff_ctrl_attr_21;
7620 m_ineff_control(22) :=load_current_codes.ineff_ctrl_attr_22;
7621 m_ineff_control(23) :=load_current_codes.ineff_ctrl_attr_23;
7622 m_ineff_control(24) :=load_current_codes.ineff_ctrl_attr_24;
7623 m_ineff_control(25) :=load_current_codes.ineff_ctrl_attr_25;
7624 m_ineff_control(26) :=load_current_codes.ineff_ctrl_attr_26;
7625 m_ineff_control(27) :=load_current_codes.ineff_ctrl_attr_27;
7626 m_ineff_control(28) :=load_current_codes.ineff_ctrl_attr_28;
7627 m_ineff_control(29) :=load_current_codes.ineff_ctrl_attr_29;
7628 m_ineff_control(30) :=load_current_codes.ineff_ctrl_attr_30;
7629
7630 m_total_control(1) := load_current_codes.total_ctrl_attr_1;
7631 m_total_control(2) := load_current_codes.total_ctrl_attr_2;
7632 m_total_control(3) := load_current_codes.total_ctrl_attr_3;
7633 m_total_control(4) := load_current_codes.total_ctrl_attr_4;
7634 m_total_control(5) := load_current_codes.total_ctrl_attr_5;
7635 m_total_control(6) := load_current_codes.total_ctrl_attr_6;
7636 m_total_control(7) := load_current_codes.total_ctrl_attr_7;
7637 m_total_control(8) := load_current_codes.total_ctrl_attr_8;
7638 m_total_control(9) := load_current_codes.total_ctrl_attr_9;
7639 m_total_control(10) := load_current_codes.total_ctrl_attr_10;
7640 m_total_control(11) := load_current_codes.total_ctrl_attr_11;
7641 m_total_control(12) := load_current_codes.total_ctrl_attr_12;
7642 m_total_control(13) := load_current_codes.total_ctrl_attr_13;
7643 m_total_control(14) := load_current_codes.total_ctrl_attr_14;
7644 m_total_control(15) := load_current_codes.total_ctrl_attr_15;
7645 m_total_control(16) := load_current_codes.total_ctrl_attr_16;
7646 m_total_control(17) := load_current_codes.total_ctrl_attr_17;
7647 m_total_control(18) := load_current_codes.total_ctrl_attr_18;
7648 m_total_control(19) := load_current_codes.total_ctrl_attr_19;
7649 m_total_control(20) := load_current_codes.total_ctrl_attr_20;
7650 m_total_control(21) := load_current_codes.total_ctrl_attr_21;
7651 m_total_control(22) := load_current_codes.total_ctrl_attr_22;
7652 m_total_control(23) := load_current_codes.total_ctrl_attr_23;
7653 m_total_control(24) := load_current_codes.total_ctrl_attr_24;
7654 m_total_control(25) := load_current_codes.total_ctrl_attr_25;
7655 m_total_control(26) := load_current_codes.total_ctrl_attr_26;
7656 m_total_control(27) := load_current_codes.total_ctrl_attr_27;
7657 m_total_control(28) := load_current_codes.total_ctrl_attr_28;
7658 m_total_control(29) := load_current_codes.total_ctrl_attr_29;
7659 m_total_control(30) := load_current_codes.total_ctrl_attr_30;
7660
7661 m_cert_id :=load_current_codes.FIN_CERTIFICATION_ID ;
7662 -- M_STATEMENT_GROUP_ID := load_current_codes.STATEMENT_GROUP_ID;
7663 M_STATEMENT_ID := load_current_codes.FINANCIAL_STATEMENT_ID;
7664
7665 for acc_assertions in ACC_ASSERT_CODES
7666 loop
7667 exit when ACC_ASSERT_CODES%notfound;
7668
7669 ctr := 1;
7670 while ctr <= 30
7671 loop
7672 if (m_assertions_code(ctr) = acc_assertions.ASSERTION_CODE ) then
7673
7674 if nvl(m_ineff_control(ctr),0) > 0 then
7675
7676 m_acc_assert_flag(ctr) := 'Y';
7677
7678 --************************************************************************************************** --
7679 -- else if the assertion is important for one of the accounts of fin. Item and No controls exist for the
7680 -- processes associated with the accounts then set the flag to 'Y', based on which an image will
7681 --- appear in UI
7682 --************************************************************************************************** --
7683
7684 elsif (nvl(m_total_control(ctr),0) = 0) then
7685
7686 m_acc_assert_flag(ctr) := 'Y';
7687
7688
7689 --- ********** ie assertion is Not important for any of the accounts of fin. Item and(nvl(m_total_control(ctr),0) > 0)
7690 else
7691 m_acc_assert_flag(ctr) := 'N';
7692
7693 end if;
7694
7695
7696 --m_acc_assert_flag(ctr) := 'Y';
7697 exit;
7698
7699 end if;
7700 ctr := ctr +1;
7701 end loop;
7702 end loop; --end of acc_assertions in ACC_ASSERT_CODES
7703 ---------------------------------------------------------------------------------------------
7704
7705 if set_flag_for_assertions( assert_acc_reln_exist=> m_acc_assert_flag) then
7706
7707 m_display_flag := 'Y';
7708 else
7709 m_display_flag := 'N';
7710 end if;
7711
7712
7713 ---------------------------------------------------------------------------------------------
7714
7715 amw_fin_coso_views_pvt.UPDATE_CTRLSUM_FLAG(
7716 x_fin_certification_id => m_cert_id ,
7717 x_natural_account_id => M_PARENT_ACCOUNT_ID ,
7718 x_ctrl_attribute_type => m_ctrl_attribute_type ,
7719 x_created_by => g_user_id ,
7720 x_creation_date => SYSDATE ,
7721 x_last_updated_by => g_user_id ,
7722 x_last_update_date => SYSDATE ,
7723 x_last_update_login => g_login_id ,
7724 -- x_object_version_number => null,
7725 x_acc_assert_flag1 => m_acc_assert_flag(1),
7726 x_acc_assert_flag2 => m_acc_assert_flag(2),
7727 x_acc_assert_flag3 => m_acc_assert_flag(3),
7728 x_acc_assert_flag4 => m_acc_assert_flag(4),
7729 x_acc_assert_flag5 => m_acc_assert_flag(5),
7730 x_acc_assert_flag6 => m_acc_assert_flag(6),
7731 x_acc_assert_flag7 => m_acc_assert_flag(7),
7732 x_acc_assert_flag8 => m_acc_assert_flag(8),
7733 x_acc_assert_flag9 => m_acc_assert_flag(9),
7734 x_acc_assert_flag10 => m_acc_assert_flag(10),
7735 x_acc_assert_flag11 => m_acc_assert_flag(11),
7736 x_acc_assert_flag12 => m_acc_assert_flag(12),
7737 x_acc_assert_flag13 => m_acc_assert_flag(13),
7738 x_acc_assert_flag14 => m_acc_assert_flag(14),
7739 x_acc_assert_flag15 => m_acc_assert_flag(15),
7740 x_acc_assert_flag16 => m_acc_assert_flag(16),
7741 x_acc_assert_flag17 => m_acc_assert_flag(17),
7742 x_acc_assert_flag18 => m_acc_assert_flag(18),
7743 x_acc_assert_flag19 => m_acc_assert_flag(19),
7744 x_acc_assert_flag20 => m_acc_assert_flag(20),
7745 x_acc_assert_flag21 => m_acc_assert_flag(21),
7746 x_acc_assert_flag22 => m_acc_assert_flag(22),
7747 x_acc_assert_flag23 => m_acc_assert_flag(23),
7748 x_acc_assert_flag24 => m_acc_assert_flag(24),
7749 x_acc_assert_flag25 => m_acc_assert_flag(25),
7750 x_acc_assert_flag26 => m_acc_assert_flag(26),
7751 x_acc_assert_flag27 => m_acc_assert_flag(27),
7752 x_acc_assert_flag28 => m_acc_assert_flag(28),
7753 x_acc_assert_flag29 => m_acc_assert_flag(29),
7754 x_acc_assert_flag30 => m_acc_assert_flag(30),
7755 x_display_flag => m_display_flag );
7756
7757
7758
7759 end loop; -- end of load_current_codes loop
7760
7761 end loop; -- parent account loop
7762
7763 EXCEPTION
7764 WHEN NO_DATA_FOUND
7765 THEN
7766 fnd_file.put_line (fnd_file.LOG, SUBSTR ('No data found in Update_Next_Level_Proc_Info'
7767 || SUBSTR (SQLERRM, 1, 100), 1, 200));
7768
7769 WHEN OTHERS
7770 THEN
7771 fnd_file.put_line (fnd_file.LOG, SUBSTR ('Unexpected Error in Update_Next_Level_Proc_Info'
7772 || SUBSTR (SQLERRM, 1, 100), 1, 200));
7773
7774 ---COMMIT;
7775 end;
7776 end ; -- update_parentacc_assert_flags
7777
7778 -- ************************************************************************************************************* --
7779
7780
7781
7782 END amw_fin_coso_views_pvt;