49: --dbms_output.put_line('Inside:PA_FUNDING_CORE.CHECK_FUND_ALLOCATED');
50: --dbms_output.put_line('Agreement_id = '||nvl(to_char(p_agreement_id),'NULL'));
51: Select sum(total_unbaselined_amount) , sum(total_baselined_amount)
52: Into l_total_unbaselined_amount, l_total_baselined_amount
53: From Pa_summary_project_fundings
54: Where agreement_id = p_agreement_id;
55: IF (nvl(l_total_unbaselined_amount, 0) = 0 AND
56: nvl(l_total_baselined_amount, 0) = 0) THEN
57: BEGIN
101: greatest(nvl(total_accrued_amount, 0),
102: nvl(total_billed_amount, 0),
103: nvl(total_baselined_amount, 0) +
104: nvl(total_unbaselined_amount, 0)))
105: From pa_summary_project_fundings
106: Where project_id = p_project_id
107: And agreement_id = p_agreement_id
108: And nvl(task_id, 0) = nvl(p_task_id, 0);
109: mflag number;
591: AND (P.multi_currency_billing_flag = 'Y'
592: OR (p.multi_currency_billing_flag = 'N'
593: AND p.projfunc_currency_code = a.agreement_currency_code))
594: AND not exists ( SELECT null
595: FROM PA_SUMMARY_PROJECT_FUNDINGS spf
596: WHERE spf.project_id = p.project_id
597: AND p.invproc_currency_type = 'FUNDING_CURRENCY'
598: AND spf.funding_currency_code <> a.agreement_currency_code
599: AND (spf.total_baselined_amount <> 0
600: OR spf.total_unbaselined_amount <> 0))
601: AND (nvl(p.template_flag,'N') = 'N'
602: OR ( p.template_flag = 'Y'
603: AND not exists ( select null
604: FROM PA_SUMMARY_PROJECT_FUNDINGS spf
605: where spf.project_id=p.project_id
606: and spf.agreement_id <> a.agreement_id))
607: )
608: AND (nvl(a.template_flag,'N') = 'N'
607: )
608: AND (nvl(a.template_flag,'N') = 'N'
609: OR ( a.template_flag = 'Y'
610: AND not exists ( select null
611: FROM PA_SUMMARY_PROJECT_FUNDINGS spf
612: where spf.project_id <> p.project_id
613: and spf.agreement_id = a.agreement_id))
614: ) ;
615:
1317: END lock_funding;
1318: --
1319: --Name: summary_funding_insert_row
1320: --Type: Procedure
1321: --Description: This procedure inserts row(s) in to PA_SUMMARY_PROJECT_FUNDINGS.
1322: --
1323: --Called subprograms: summary_fundings_update_row
1324: --
1325: --
1342: BEGIN
1343: declare
1344: cursor c1 is
1345: select 1
1346: from pa_summary_project_fundings
1347: where project_id = p_project_id
1348: and agreement_id = p_agreement_id
1349: and nvl(task_id, 0) = nvl(p_task_id, 0);
1350: dummy number;
1365:
1366:
1367: ELSE
1368:
1369: INSERT INTO PA_SUMMARY_PROJECT_FUNDINGS
1370: (AGREEMENT_ID, PROJECT_ID, TASK_ID,
1371: TOTAL_BASELINED_AMOUNT, TOTAL_UNBASELINED_AMOUNT,
1372: TOTAL_ACCRUED_AMOUNT, TOTAL_BILLED_AMOUNT,
1373: LAST_UPDATE_LOGIN, LAST_UPDATE_DATE, LAST_UPDATED_BY,
1419: AND PROJECT_ID = p_project_id
1420: AND AGREEMENT_ID = p_agreement_id
1421: AND NVL(TASK_ID,0) = NVL(p_task_id,0)
1422: AND NOT EXISTS
1423: (select NULL from PA_SUMMARY_PROJECT_FUNDINGS S
1424: WHERE s.PROJECT_ID = p_project_id
1425: AND s.AGREEMENT_ID = p_agreement_id
1426: AND NVL(s.TASK_ID,0) = NVL(p_task_id,0))
1427: GROUP BY AGREEMENT_ID,PROJECT_ID,TASK_ID,FUNDING_CURRENCY_CODE,
1448:
1449: --
1450: --Name: summary_fundings_update_row
1451: --Type: Procedure
1452: --Description: This procedure updates row(s) in to PA_SUMMARY_PROJECT_FUNDINGS.
1453: --
1454: --Called subprograms: pa_agreement_utils.summary_fundings_insert_row
1455: --
1456: --
1472: BEGIN
1473: --dbms_output.put_line('Inside: PA_AGREEMENT_CORE.SUMMARY_FUNDING_UPDATE_ROW');
1474: IF (p_budget_type_code = 'DRAFT') THEN
1475:
1476: UPDATE PA_SUMMARY_PROJECT_FUNDINGS S
1477: SET (S.TOTAL_UNBASELINED_AMOUNT, S.PROJECT_UNBASELINED_AMOUNT,
1478: S.PROJFUNC_UNBASELINED_AMOUNT,
1479: S.INVPROC_UNBASELINED_AMOUNT, S.REVPROC_UNBASELINED_AMOUNT) =
1480: (SELECT SUM(DECODE(F.BUDGET_TYPE_CODE, 'BASELINE',0,
1513:
1514: --
1515: --Name: summary_funding_delete_row
1516: --Type: Procedure
1517: --Description: This procedure deletes row(s) in to PA_SUMMARY_PROJECT_FUNDINGS.
1518: --
1519: --Called subprograms: summary_fundings_insert_row
1520: --
1521: --
1555: ,p_budget_type_code
1556: );
1557:
1558: ELSE
1559: DELETE FROM PA_SUMMARY_PROJECT_FUNDINGS S
1560: WHERE S.PROJECT_ID = p_project_id
1561: AND S.AGREEMENT_ID = p_agreement_id
1562: AND NVL(S.TASK_ID,0) = NVL(p_task_id,0);
1563: END IF;
1804:
1805: SELECT 'Y' into l_mult_funding_flag
1806: FROM dual
1807: WHERE exists ( select null
1808: FROM PA_SUMMARY_PROJECT_FUNDINGS spf
1809: WHERE spf.project_id = p_project_id
1810: AND spf.funding_currency_code <> p_funding_currency_code
1811: AND spf.total_baselined_amount <> 0
1812: AND spf.total_unbaselined_amount <> 0);