221: WHEN FND_API.G_EXC_UNEXPECTED_ERROR
222: THEN
223: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
224:
225: When pa_event_utils.pvt_excp
226: then
227: PA_EVENT_PUB.PACKAGE_NAME:=PA_EVENT_PUB.PACKAGE_NAME||'PRIVATE->';
228: PA_EVENT_PUB.PROCEDURE_NAME:=PA_EVENT_PUB.PROCEDURE_NAME||'check_mdty_params1->';
229: Raise pub_excp;--raising exception to be handled in public package
443: WHEN FND_API.G_EXC_ERROR
444: THEN
445: RAISE FND_API.G_EXC_ERROR;
446:
447: When pa_event_utils.pvt_excp
448: then
449: PA_EVENT_PUB.PACKAGE_NAME:=PA_EVENT_PUB.PACKAGE_NAME||'PRIVATE->';
450: PA_EVENT_PUB.PROCEDURE_NAME:=PA_EVENT_PUB.PROCEDURE_NAME||'CHECK_MDTY_PARAMS2->';
451: Raise pub_excp;--raising exception to be handled in public package
465: --Type: function
466: --Description: This function validates if the event is valid and can be created.
467: --
468: --Called subprograms:
469: -- PA_EVENT_UTILS.CHECK_VALID_TASK
470: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_TYPE
471: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_ORG
472: -- PA_EVENT_UTILS.CHECK_VALID_REV_AMT
473: -- PA_EVENT_UTILS.CHECK_VALID_BILL_AMT
466: --Description: This function validates if the event is valid and can be created.
467: --
468: --Called subprograms:
469: -- PA_EVENT_UTILS.CHECK_VALID_TASK
470: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_TYPE
471: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_ORG
472: -- PA_EVENT_UTILS.CHECK_VALID_REV_AMT
473: -- PA_EVENT_UTILS.CHECK_VALID_BILL_AMT
474: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_NUM
467: --
468: --Called subprograms:
469: -- PA_EVENT_UTILS.CHECK_VALID_TASK
470: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_TYPE
471: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_ORG
472: -- PA_EVENT_UTILS.CHECK_VALID_REV_AMT
473: -- PA_EVENT_UTILS.CHECK_VALID_BILL_AMT
474: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_NUM
475: -- PA_EVENT_UTILS.CHECK_VALID_INV_ORG
468: --Called subprograms:
469: -- PA_EVENT_UTILS.CHECK_VALID_TASK
470: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_TYPE
471: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_ORG
472: -- PA_EVENT_UTILS.CHECK_VALID_REV_AMT
473: -- PA_EVENT_UTILS.CHECK_VALID_BILL_AMT
474: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_NUM
475: -- PA_EVENT_UTILS.CHECK_VALID_INV_ORG
476: -- PA_EVENT_UTILS.CHECK_VALID_INV_ITEM
469: -- PA_EVENT_UTILS.CHECK_VALID_TASK
470: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_TYPE
471: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_ORG
472: -- PA_EVENT_UTILS.CHECK_VALID_REV_AMT
473: -- PA_EVENT_UTILS.CHECK_VALID_BILL_AMT
474: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_NUM
475: -- PA_EVENT_UTILS.CHECK_VALID_INV_ORG
476: -- PA_EVENT_UTILS.CHECK_VALID_INV_ITEM
477: -- PA_EVENT_UTILS.CHECK_VALID_CURR
470: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_TYPE
471: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_ORG
472: -- PA_EVENT_UTILS.CHECK_VALID_REV_AMT
473: -- PA_EVENT_UTILS.CHECK_VALID_BILL_AMT
474: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_NUM
475: -- PA_EVENT_UTILS.CHECK_VALID_INV_ORG
476: -- PA_EVENT_UTILS.CHECK_VALID_INV_ITEM
477: -- PA_EVENT_UTILS.CHECK_VALID_CURR
478: -- PA_EVENT_UTILS.CHECK_VALID_FUND_RATE_TYPE
471: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_ORG
472: -- PA_EVENT_UTILS.CHECK_VALID_REV_AMT
473: -- PA_EVENT_UTILS.CHECK_VALID_BILL_AMT
474: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_NUM
475: -- PA_EVENT_UTILS.CHECK_VALID_INV_ORG
476: -- PA_EVENT_UTILS.CHECK_VALID_INV_ITEM
477: -- PA_EVENT_UTILS.CHECK_VALID_CURR
478: -- PA_EVENT_UTILS.CHECK_VALID_FUND_RATE_TYPE
479: -- PA_EVENT_UTILS.CHECK_VALID_PROJ_RATE_TYPE
472: -- PA_EVENT_UTILS.CHECK_VALID_REV_AMT
473: -- PA_EVENT_UTILS.CHECK_VALID_BILL_AMT
474: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_NUM
475: -- PA_EVENT_UTILS.CHECK_VALID_INV_ORG
476: -- PA_EVENT_UTILS.CHECK_VALID_INV_ITEM
477: -- PA_EVENT_UTILS.CHECK_VALID_CURR
478: -- PA_EVENT_UTILS.CHECK_VALID_FUND_RATE_TYPE
479: -- PA_EVENT_UTILS.CHECK_VALID_PROJ_RATE_TYPE
480: -- PA_EVENT_UTILS.CHECK_VALID_PFC_RATE_TYPE
473: -- PA_EVENT_UTILS.CHECK_VALID_BILL_AMT
474: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_NUM
475: -- PA_EVENT_UTILS.CHECK_VALID_INV_ORG
476: -- PA_EVENT_UTILS.CHECK_VALID_INV_ITEM
477: -- PA_EVENT_UTILS.CHECK_VALID_CURR
478: -- PA_EVENT_UTILS.CHECK_VALID_FUND_RATE_TYPE
479: -- PA_EVENT_UTILS.CHECK_VALID_PROJ_RATE_TYPE
480: -- PA_EVENT_UTILS.CHECK_VALID_PFC_RATE_TYPE
481: -- PA_EVENT_UTILS.CHECK_VALID_AGREEMENT
474: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_NUM
475: -- PA_EVENT_UTILS.CHECK_VALID_INV_ORG
476: -- PA_EVENT_UTILS.CHECK_VALID_INV_ITEM
477: -- PA_EVENT_UTILS.CHECK_VALID_CURR
478: -- PA_EVENT_UTILS.CHECK_VALID_FUND_RATE_TYPE
479: -- PA_EVENT_UTILS.CHECK_VALID_PROJ_RATE_TYPE
480: -- PA_EVENT_UTILS.CHECK_VALID_PFC_RATE_TYPE
481: -- PA_EVENT_UTILS.CHECK_VALID_AGREEMENT
482: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_DATE
475: -- PA_EVENT_UTILS.CHECK_VALID_INV_ORG
476: -- PA_EVENT_UTILS.CHECK_VALID_INV_ITEM
477: -- PA_EVENT_UTILS.CHECK_VALID_CURR
478: -- PA_EVENT_UTILS.CHECK_VALID_FUND_RATE_TYPE
479: -- PA_EVENT_UTILS.CHECK_VALID_PROJ_RATE_TYPE
480: -- PA_EVENT_UTILS.CHECK_VALID_PFC_RATE_TYPE
481: -- PA_EVENT_UTILS.CHECK_VALID_AGREEMENT
482: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_DATE
483: -- ============================================================================
476: -- PA_EVENT_UTILS.CHECK_VALID_INV_ITEM
477: -- PA_EVENT_UTILS.CHECK_VALID_CURR
478: -- PA_EVENT_UTILS.CHECK_VALID_FUND_RATE_TYPE
479: -- PA_EVENT_UTILS.CHECK_VALID_PROJ_RATE_TYPE
480: -- PA_EVENT_UTILS.CHECK_VALID_PFC_RATE_TYPE
481: -- PA_EVENT_UTILS.CHECK_VALID_AGREEMENT
482: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_DATE
483: -- ============================================================================
484: FUNCTION CHECK_CREATE_EVENT_OK
477: -- PA_EVENT_UTILS.CHECK_VALID_CURR
478: -- PA_EVENT_UTILS.CHECK_VALID_FUND_RATE_TYPE
479: -- PA_EVENT_UTILS.CHECK_VALID_PROJ_RATE_TYPE
480: -- PA_EVENT_UTILS.CHECK_VALID_PFC_RATE_TYPE
481: -- PA_EVENT_UTILS.CHECK_VALID_AGREEMENT
482: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_DATE
483: -- ============================================================================
484: FUNCTION CHECK_CREATE_EVENT_OK
485: (P_pm_product_code IN VARCHAR2
478: -- PA_EVENT_UTILS.CHECK_VALID_FUND_RATE_TYPE
479: -- PA_EVENT_UTILS.CHECK_VALID_PROJ_RATE_TYPE
480: -- PA_EVENT_UTILS.CHECK_VALID_PFC_RATE_TYPE
481: -- PA_EVENT_UTILS.CHECK_VALID_AGREEMENT
482: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_DATE
483: -- ============================================================================
484: FUNCTION CHECK_CREATE_EVENT_OK
485: (P_pm_product_code IN VARCHAR2
486: ,P_event_in_rec IN pa_event_pub.Event_rec_in_type
534: --validating the task
535: If (P_event_in_rec.P_task_number Is NOT NULL
536: AND P_event_in_rec.P_task_number <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
537: Then
538: If PA_EVENT_UTILS.check_valid_task
539: (P_project_id =>P_project_id
540: ,P_task_id =>x_task_id
541: ,P_task_num =>P_event_in_rec.P_task_number)='N'
542: Then
566: x_task_id:=NULL;
567: End If;
568:
569: --validating the funding level of the project.
570: If PA_EVENT_UTILS.check_funding
571: (P_project_id =>P_project_id
572: ,P_task_id =>x_task_id)='N'
573: Then
574: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
600: P_event_in_rec.P_agreement_type IS NOT NULL OR
601: P_event_in_rec.P_customer_number IS NOT NULL )
602: AND( P_event_in_rec.P_agreement_number <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR))
603: Then
604: If PA_EVENT_UTILS.CHECK_VALID_AGREEMENT (
605: P_project_id => P_project_id
606: ,P_task_id => x_task_id
607: ,P_agreement_number => P_event_in_rec.P_agreement_number
608: ,P_agreement_type => P_event_in_rec.P_agreement_type
637: --validating event date
638: If ( P_event_in_rec.P_completion_date Is NOT NULL
639: AND P_event_in_rec.P_completion_date <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE )
640: Then
641: If PA_EVENT_UTILS.CHECK_VALID_EVENT_DATE (
642: P_event_date => P_event_in_rec.P_completion_date
643: ,P_agreement_id => x_agreement_id ) ='N'
644: Then
645: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
709: END If;
710: End If;
711:
712: --validating the event_type
713: If PA_EVENT_UTILS.check_valid_event_type
714: (P_event_type =>P_event_in_rec.P_event_type
715: ,P_context =>P_event_in_rec.P_context
716: ,X_event_type_classification =>p_event_type_classification)='N'
717: Then
822: pa_debug.write_log (x_module => 'pa.plsql.PA_EVENT_PVT.CHECK_CREATE_EVENT_OK.begin'
823: ,x_msg => 'Validating organisation name and deriving organisation_id'
824: ,x_log_level => 5);
825: END IF;
826: --calls PA_EVENT_UTILS.CHECK_VALID_EVENT_ORG to validate and
827: --derive the organisation_id from organisation name
828: If PA_EVENT_UTILS.check_valid_event_org
829: (P_event_org_name =>p_event_in_rec.P_organization_name
830: ,P_event_org_id =>x_Organization_Id)='N'
824: ,x_log_level => 5);
825: END IF;
826: --calls PA_EVENT_UTILS.CHECK_VALID_EVENT_ORG to validate and
827: --derive the organisation_id from organisation name
828: If PA_EVENT_UTILS.check_valid_event_org
829: (P_event_org_name =>p_event_in_rec.P_organization_name
830: ,P_event_org_id =>x_Organization_Id)='N'
831: Then
832: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
868: --then the default value is used for further validation.
869: If (p_event_in_rec.P_bill_trans_currency_code Is NULL)
870: Then
871: l_proj_func_currency_code:=P_proj_func_currency_code;
872: ElsIf PA_EVENT_UTILS.check_valid_curr
873: (P_bill_trans_curr =>p_event_in_rec.P_bill_trans_currency_code)='N'
874: Then
875: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
876: THEN
901: --If funding rate type is null or '^' then the default value is used for other validations.
902: If (P_event_in_rec.P_funding_rate_type Is NOT NULL
903: AND P_event_in_rec.P_funding_rate_type <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
904: Then
905: If PA_EVENT_UTILS.check_valid_fund_rate_type
906: (P_fund_rate_type =>P_event_in_rec.P_funding_rate_type,
907: x_fund_rate_type =>l_funding_rate_type)='N'
908: Then
909: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
995:
996: If (p_event_in_rec.P_project_rate_type Is NOT NULL
997: AND p_event_in_rec.P_project_rate_type <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
998: Then
999: If PA_EVENT_UTILS.check_valid_proj_rate_type
1000: (
1001: P_proj_rate_type =>p_event_in_rec.P_project_rate_type
1002: ,P_bill_trans_currency_code =>l_proj_func_currency_code
1003: ,P_project_currency_code =>P_project_currency_code
1100:
1101: If (p_event_in_rec.P_projfunc_rate_type Is NOT NULL
1102: AND p_event_in_rec.P_projfunc_rate_type <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
1103: Then
1104: If PA_EVENT_UTILS.check_valid_pfc_rate_type
1105: (P_pfc_rate_type =>P_event_in_rec.P_projfunc_rate_type
1106: ,P_bill_trans_currency_code =>l_proj_func_currency_code
1107: ,P_proj_func_currency_code =>P_proj_func_currency_code
1108: ,P_proj_level_func_rt_dt_code =>P_projfunc_bil_rate_date_code
1275: --For revenue events like Write-on And Write-off events,
1276: --revenue amount is mandatory and a +ve value.
1277: If (p_event_type_classification In('WRITE ON','WRITE OFF'))
1278: Then
1279: If PA_EVENT_UTILS.CHECK_VALID_REV_AMT
1280: (P_event_type_classification =>P_event_type_classification
1281: ,P_rev_amt =>p_event_in_rec.P_bill_trans_rev_amount)='N'
1282: Then
1283: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1300: ElsIf (p_event_type_classification = 'WRITE OFF'AND P_event_in_rec.p_completion_date is not NULL
1301: AND P_event_in_rec.p_completion_date <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE )
1302: Then
1303:
1304: l_ret_status:=PA_EVENT_UTILS.check_write_off_amt
1305: (P_project_id =>P_project_id
1306: ,P_task_id =>x_task_id
1307: ,P_event_id =>p_event_in_rec.P_event_id
1308: ,P_rev_amt =>p_event_in_rec.P_bill_trans_rev_amount
1380: ,x_log_level => 5);
1381: END IF;
1382:
1383: --validating the bill amount
1384: If PA_EVENT_UTILS.CHECK_VALID_BILL_AMT
1385: (P_event_type_classification =>P_event_type_classification
1386: ,P_bill_amt =>p_event_in_rec.P_bill_trans_bill_amount)='N'
1387: Then
1388: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1459:
1460: --validating the event number
1461: If (p_event_in_rec.P_event_number Is NOT NULL
1462: AND p_event_in_rec.P_event_number <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
1463: AND PA_EVENT_UTILS.CHECK_VALID_EVENT_NUM
1464: (P_project_id =>P_project_id
1465: ,P_task_id =>x_task_id
1466: ,P_event_num =>p_event_in_rec.P_event_number)='N')
1467: Then
1491:
1492: --validating the inventory organization name should be valid and active
1493: If (p_event_in_rec.P_inventory_org_name Is NOT NULL
1494: AND p_event_in_rec.P_inventory_org_name <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
1495: AND PA_EVENT_UTILS.CHECK_VALID_INV_ORG
1496: (P_inv_org_name =>p_event_in_rec.P_inventory_org_name
1497: ,P_inv_org_id =>x_inv_org_id)='N')
1498: Then
1499: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1521:
1522: --validating the inventory item_id
1523: If (p_event_in_rec.P_inventory_item_id Is NOT NULL
1524: AND p_event_in_rec.P_inventory_item_id <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
1525: AND PA_EVENT_UTILS.CHECK_VALID_INV_ITEM
1526: (P_inv_item_id =>p_event_in_rec.P_inventory_item_id)='N')
1527: Then
1528: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1529: THEN
1551: RETURN(l_return_status);
1552:
1553: --handling exceptions
1554: Exception
1555: When pa_event_utils.pvt_excp
1556: then
1557: x_task_id := NULL; -- NOCOPY
1558: x_organization_id := NULL; --NOCOPY
1559: x_inv_org_id := NULL; --NOCOPY
1580: --Type: function
1581: --Description: This function validates if the event is updateable.
1582: --
1583: --Called subprograms:
1584: -- PA_EVENT_UTILS.CHECK_VALID_TASK
1585: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_TYPE
1586: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_ORG
1587: -- PA_EVENT_UTILS.CHECK_VALID_REV_AMT
1588: -- PA_EVENT_UTILS.CHECK_VALID_BILL_AMT
1581: --Description: This function validates if the event is updateable.
1582: --
1583: --Called subprograms:
1584: -- PA_EVENT_UTILS.CHECK_VALID_TASK
1585: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_TYPE
1586: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_ORG
1587: -- PA_EVENT_UTILS.CHECK_VALID_REV_AMT
1588: -- PA_EVENT_UTILS.CHECK_VALID_BILL_AMT
1589: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_NUM
1582: --
1583: --Called subprograms:
1584: -- PA_EVENT_UTILS.CHECK_VALID_TASK
1585: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_TYPE
1586: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_ORG
1587: -- PA_EVENT_UTILS.CHECK_VALID_REV_AMT
1588: -- PA_EVENT_UTILS.CHECK_VALID_BILL_AMT
1589: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_NUM
1590: -- PA_EVENT_UTILS.CHECK_VALID_INV_ORG
1583: --Called subprograms:
1584: -- PA_EVENT_UTILS.CHECK_VALID_TASK
1585: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_TYPE
1586: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_ORG
1587: -- PA_EVENT_UTILS.CHECK_VALID_REV_AMT
1588: -- PA_EVENT_UTILS.CHECK_VALID_BILL_AMT
1589: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_NUM
1590: -- PA_EVENT_UTILS.CHECK_VALID_INV_ORG
1591: -- PA_EVENT_UTILS.CHECK_VALID_INV_ITEM
1584: -- PA_EVENT_UTILS.CHECK_VALID_TASK
1585: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_TYPE
1586: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_ORG
1587: -- PA_EVENT_UTILS.CHECK_VALID_REV_AMT
1588: -- PA_EVENT_UTILS.CHECK_VALID_BILL_AMT
1589: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_NUM
1590: -- PA_EVENT_UTILS.CHECK_VALID_INV_ORG
1591: -- PA_EVENT_UTILS.CHECK_VALID_INV_ITEM
1592: -- PA_EVENT_UTILS.CHECK_VALID_CURR
1585: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_TYPE
1586: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_ORG
1587: -- PA_EVENT_UTILS.CHECK_VALID_REV_AMT
1588: -- PA_EVENT_UTILS.CHECK_VALID_BILL_AMT
1589: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_NUM
1590: -- PA_EVENT_UTILS.CHECK_VALID_INV_ORG
1591: -- PA_EVENT_UTILS.CHECK_VALID_INV_ITEM
1592: -- PA_EVENT_UTILS.CHECK_VALID_CURR
1593: -- PA_EVENT_UTILS.CHECK_VALID_FUND_RATE_TYPE
1586: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_ORG
1587: -- PA_EVENT_UTILS.CHECK_VALID_REV_AMT
1588: -- PA_EVENT_UTILS.CHECK_VALID_BILL_AMT
1589: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_NUM
1590: -- PA_EVENT_UTILS.CHECK_VALID_INV_ORG
1591: -- PA_EVENT_UTILS.CHECK_VALID_INV_ITEM
1592: -- PA_EVENT_UTILS.CHECK_VALID_CURR
1593: -- PA_EVENT_UTILS.CHECK_VALID_FUND_RATE_TYPE
1594: -- PA_EVENT_UTILS.CHECK_VALID_PROJ_RATE_TYPE
1587: -- PA_EVENT_UTILS.CHECK_VALID_REV_AMT
1588: -- PA_EVENT_UTILS.CHECK_VALID_BILL_AMT
1589: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_NUM
1590: -- PA_EVENT_UTILS.CHECK_VALID_INV_ORG
1591: -- PA_EVENT_UTILS.CHECK_VALID_INV_ITEM
1592: -- PA_EVENT_UTILS.CHECK_VALID_CURR
1593: -- PA_EVENT_UTILS.CHECK_VALID_FUND_RATE_TYPE
1594: -- PA_EVENT_UTILS.CHECK_VALID_PROJ_RATE_TYPE
1595: -- PA_EVENT_UTILS.CHECK_VALID_PFC_RATE_TYPE
1588: -- PA_EVENT_UTILS.CHECK_VALID_BILL_AMT
1589: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_NUM
1590: -- PA_EVENT_UTILS.CHECK_VALID_INV_ORG
1591: -- PA_EVENT_UTILS.CHECK_VALID_INV_ITEM
1592: -- PA_EVENT_UTILS.CHECK_VALID_CURR
1593: -- PA_EVENT_UTILS.CHECK_VALID_FUND_RATE_TYPE
1594: -- PA_EVENT_UTILS.CHECK_VALID_PROJ_RATE_TYPE
1595: -- PA_EVENT_UTILS.CHECK_VALID_PFC_RATE_TYPE
1596: -- PA_EVENT_UTILS.CHECK_VALID_AGREEMENT
1589: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_NUM
1590: -- PA_EVENT_UTILS.CHECK_VALID_INV_ORG
1591: -- PA_EVENT_UTILS.CHECK_VALID_INV_ITEM
1592: -- PA_EVENT_UTILS.CHECK_VALID_CURR
1593: -- PA_EVENT_UTILS.CHECK_VALID_FUND_RATE_TYPE
1594: -- PA_EVENT_UTILS.CHECK_VALID_PROJ_RATE_TYPE
1595: -- PA_EVENT_UTILS.CHECK_VALID_PFC_RATE_TYPE
1596: -- PA_EVENT_UTILS.CHECK_VALID_AGREEMENT
1597: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_DATE
1590: -- PA_EVENT_UTILS.CHECK_VALID_INV_ORG
1591: -- PA_EVENT_UTILS.CHECK_VALID_INV_ITEM
1592: -- PA_EVENT_UTILS.CHECK_VALID_CURR
1593: -- PA_EVENT_UTILS.CHECK_VALID_FUND_RATE_TYPE
1594: -- PA_EVENT_UTILS.CHECK_VALID_PROJ_RATE_TYPE
1595: -- PA_EVENT_UTILS.CHECK_VALID_PFC_RATE_TYPE
1596: -- PA_EVENT_UTILS.CHECK_VALID_AGREEMENT
1597: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_DATE
1598: -- ============================================================================
1591: -- PA_EVENT_UTILS.CHECK_VALID_INV_ITEM
1592: -- PA_EVENT_UTILS.CHECK_VALID_CURR
1593: -- PA_EVENT_UTILS.CHECK_VALID_FUND_RATE_TYPE
1594: -- PA_EVENT_UTILS.CHECK_VALID_PROJ_RATE_TYPE
1595: -- PA_EVENT_UTILS.CHECK_VALID_PFC_RATE_TYPE
1596: -- PA_EVENT_UTILS.CHECK_VALID_AGREEMENT
1597: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_DATE
1598: -- ============================================================================
1599: FUNCTION CHECK_UPDATE_EVENT_OK
1592: -- PA_EVENT_UTILS.CHECK_VALID_CURR
1593: -- PA_EVENT_UTILS.CHECK_VALID_FUND_RATE_TYPE
1594: -- PA_EVENT_UTILS.CHECK_VALID_PROJ_RATE_TYPE
1595: -- PA_EVENT_UTILS.CHECK_VALID_PFC_RATE_TYPE
1596: -- PA_EVENT_UTILS.CHECK_VALID_AGREEMENT
1597: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_DATE
1598: -- ============================================================================
1599: FUNCTION CHECK_UPDATE_EVENT_OK
1600: (P_pm_product_code IN VARCHAR2
1593: -- PA_EVENT_UTILS.CHECK_VALID_FUND_RATE_TYPE
1594: -- PA_EVENT_UTILS.CHECK_VALID_PROJ_RATE_TYPE
1595: -- PA_EVENT_UTILS.CHECK_VALID_PFC_RATE_TYPE
1596: -- PA_EVENT_UTILS.CHECK_VALID_AGREEMENT
1597: -- PA_EVENT_UTILS.CHECK_VALID_EVENT_DATE
1598: -- ============================================================================
1599: FUNCTION CHECK_UPDATE_EVENT_OK
1600: (P_pm_product_code IN VARCHAR2
1601: ,P_event_in_rec IN pa_event_pub.Event_rec_in_type
1665: /*We are getting the processed status of the event and store it in the variable l_event_processed for future
1666: processing for bug 3205120 */
1667:
1668: P_event_processed := 'N'; /* Added for bug 7110782 */
1669: l_event_processed :=PA_EVENT_UTILS.CHECK_EVENT_PROCESSED
1670: (P_event_id =>P_event_in_rec.P_event_id);
1671: --Check if the event is processed.If processed then it cannot be updated.
1672: --The folowing code is added to supoort events created in Deliverables in amg .
1673: If l_event_processed = 'Y' AND nvl(p_event_in_rec.p_context,'Z') <> 'D'
1822: --validating the task
1823: If (P_event_in_rec.P_task_number Is NOT NULL
1824: AND P_event_in_rec.P_task_number <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
1825: Then
1826: If PA_EVENT_UTILS.CHECK_VALID_TASK
1827: (P_project_id =>P_project_id
1828: ,P_task_id =>x_task_id
1829: ,P_task_num =>P_event_in_rec.P_task_number)='N'
1830: Then
1859: ,x_log_level => 5);
1860: END IF;
1861:
1862: --validating the funding level of the project.
1863: If PA_EVENT_UTILS.CHECK_FUNDING
1864: (P_project_id =>P_project_id
1865: ,P_task_id =>x_task_id)='N'
1866: Then
1867: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1906: (P_event_in_rec.P_customer_number = PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
1907: Then
1908: x_agreement_id := NULL;
1909: else
1910: if PA_EVENT_UTILS.CHECK_VALID_AGREEMENT (
1911: P_project_id => P_project_id
1912: ,P_task_id => x_task_id
1913: ,P_agreement_number => P_event_in_rec.P_agreement_number
1914: ,P_agreement_type => P_event_in_rec.P_agreement_type
1954: END IF;
1955:
1956: IF l_event_date <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
1957: Then
1958: If PA_EVENT_UTILS.CHECK_VALID_EVENT_DATE (
1959: P_event_date => l_event_date
1960: ,P_agreement_id => x_agreement_id ) ='N'
1961: Then
1962: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1989: --validating the event_type
1990: If (P_event_in_rec.P_event_type Is NOT NULL
1991: AND P_event_in_rec.P_event_type <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
1992: Then
1993: If PA_EVENT_UTILS.CHECK_VALID_EVENT_TYPE
1994: (P_event_type =>P_event_in_rec.P_event_type
1995: ,P_context =>P_event_in_rec.P_context
1996: ,X_event_type_classification =>p_event_type_classification)='N'
1997: Then
2116: ,x_msg => 'Validating organisation name and deriving organisation_id'
2117: ,x_log_level => 5);
2118: END IF;
2119:
2120: --calls PA_EVENT_UTILS.CHECK_VALID_EVENT_ORG to validate and
2121: --derive the organisation_id from organisation name
2122: If (p_event_in_rec.P_organization_name Is NOT NULL
2123: AND p_event_in_rec.P_organization_name <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
2124: AND PA_EVENT_UTILS.CHECK_VALID_EVENT_ORG
2120: --calls PA_EVENT_UTILS.CHECK_VALID_EVENT_ORG to validate and
2121: --derive the organisation_id from organisation name
2122: If (p_event_in_rec.P_organization_name Is NOT NULL
2123: AND p_event_in_rec.P_organization_name <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
2124: AND PA_EVENT_UTILS.CHECK_VALID_EVENT_ORG
2125: (P_event_org_name =>p_event_in_rec.P_organization_name
2126: ,P_event_org_id =>x_Organization_Id)='N')
2127: Then
2128: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2200: INTO l_proj_func_currency_code
2201: FROM pa_events
2202: WHERE event_id = P_event_in_rec.P_event_id;
2203:
2204: ElsIf PA_EVENT_UTILS.CHECK_VALID_CURR
2205: (P_bill_trans_curr =>p_event_in_rec.P_bill_trans_currency_code)='N'
2206: Then
2207: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2208: THEN
2234: --other validations.
2235: If (P_event_in_rec.P_funding_rate_type Is NOT NULL
2236: AND P_event_in_rec.P_funding_rate_type <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
2237: Then
2238: If PA_EVENT_UTILS.CHECK_VALID_FUND_RATE_TYPE
2239: (P_fund_rate_type =>P_event_in_rec.P_funding_rate_type
2240: ,x_fund_rate_type =>l_funding_rate_type)='N'
2241:
2242: Then
2328:
2329: If (p_event_in_rec.P_project_rate_type Is NOT NULL
2330: AND p_event_in_rec.P_project_rate_type <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
2331: Then
2332: If PA_EVENT_UTILS.check_valid_proj_rate_type
2333: (P_proj_rate_type =>p_event_in_rec.P_project_rate_type
2334: ,P_bill_trans_currency_code =>l_proj_func_currency_code
2335: ,P_project_currency_code =>P_project_currency_code
2336: ,P_proj_level_rt_dt_code =>P_project_bil_rate_date_code
2434:
2435: If (p_event_in_rec.P_projfunc_rate_type Is NOT NULL
2436: AND p_event_in_rec.P_projfunc_rate_type <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
2437: Then
2438: If PA_EVENT_UTILS.check_valid_pfc_rate_type
2439: (P_pfc_rate_type =>P_event_in_rec.P_projfunc_rate_type
2440: ,P_bill_trans_currency_code =>l_proj_func_currency_code
2441: ,P_proj_func_currency_code =>P_proj_func_currency_code -- Modified
2442: ,P_proj_level_func_rt_dt_code =>P_projfunc_bil_rate_date_code
2630: AND l_revenue_amount <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM)
2631: Then
2632: If (p_event_type_classification In('WRITE ON','WRITE OFF'))
2633: Then
2634: If PA_EVENT_UTILS.check_valid_rev_amt
2635: (P_event_type_classification =>P_event_type_classification
2636: ,P_rev_amt =>l_revenue_amount)='N'
2637: Then
2638: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2654: Then
2655: /* Added for bug 3053669 */
2656: IF (l_completion_date IS NOT NULL AND l_completion_date <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE )
2657: THEN
2658: l_ret_status:=PA_EVENT_UTILS.check_write_off_amt
2659: (P_project_id =>P_project_id
2660: ,P_task_id =>x_task_id
2661: ,P_event_id =>p_event_in_rec.P_event_id
2662: ,P_rev_amt =>l_revenue_amount
2738:
2739: --validating the bill amount. Changed the variable name for bug 3013226.
2740: If (l_bill_amount Is NOT NULL
2741: AND l_bill_amount <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
2742: AND PA_EVENT_UTILS.CHECK_VALID_BILL_AMT
2743: (P_event_type_classification =>P_event_type_classification
2744: ,P_bill_amt =>l_bill_amount)='N')
2745: Then
2746: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2815:
2816: --validating the event number
2817: If ((p_event_in_rec.P_event_number Is NOT NULL
2818: AND p_event_in_rec.P_event_number <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
2819: AND PA_EVENT_UTILS.CHECK_VALID_EVENT_NUM
2820: (P_project_id =>P_project_id
2821: ,P_task_id =>x_task_id
2822: ,P_event_num =>p_event_in_rec.P_event_number)='Y')
2823: OR p_event_in_rec.P_event_number <=0 ) -- Added the OR condition for bug 5697448
2847:
2848: --validating the inventory organization name should be valid and active
2849: If (p_event_in_rec.P_inventory_org_name Is NOT NULL
2850: AND p_event_in_rec.P_inventory_org_name <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
2851: AND PA_EVENT_UTILS.CHECK_VALID_INV_ORG
2852: (P_inv_org_name =>p_event_in_rec.P_inventory_org_name
2853: ,P_inv_org_id =>x_inv_org_id)='N')
2854: Then
2855: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2877:
2878: --validating the inventory item_id
2879: If (p_event_in_rec.P_inventory_item_id Is NOT NULL
2880: AND p_event_in_rec.P_inventory_item_id <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
2881: AND PA_EVENT_UTILS.CHECK_VALID_INV_ITEM
2882: (P_inv_item_id =>p_event_in_rec.P_inventory_item_id)='N')
2883: Then
2884: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2885: THEN
2907: RETURN(l_return_status);
2908:
2909: --handling exceptions
2910: Exception
2911: When pa_event_utils.pvt_excp
2912: then
2913: x_task_id := NULL; --NOCOPY
2914: x_organization_id := NULL; --NOCOPY
2915: x_inv_org_id := NULL; --NOCOPY
2985: END IF;
2986:
2987: --handling exceptions
2988: Exception
2989: When pa_event_utils.pvt_excp
2990: then
2991: PA_EVENT_PUB.PACKAGE_NAME:=PA_EVENT_PUB.PACKAGE_NAME||'PRIVATE->';
2992: PA_EVENT_PUB.PROCEDURE_NAME:=PA_EVENT_PUB.PROCEDURE_NAME||'VALIDATE_FLEXFIELD->';
2993: Raise pub_excp;--raising exception to be handled in public package
3175: Return(l_return_status);
3176:
3177: --handling exceptions
3178: Exception
3179: When pa_event_utils.pvt_excp
3180: then
3181: p_pm_event_reference := l_pm_event_reference ; -- NOCOPY
3182: p_event_id := l1_event_id; -- NOCOPY
3183: PA_EVENT_PUB.PACKAGE_NAME:=PA_EVENT_PUB.PACKAGE_NAME||'PRIVATE->';
3228: --If the event is billed or revenue distributed then it cannot be deleted.
3229: -- Now the function can return more than two statuses and
3230: -- only if the return status='Y' we should continue with furthure processing
3231: -- For bug 3205120.We get the processed status of the event and store it in a local variable
3232: l_event_processed := PA_EVENT_UTILS.CHECK_EVENT_PROCESSED
3233: (P_event_id =>P_event_id);
3234:
3235: --The folowing code is added to supoort events created in Deliverables in amg .
3236: If l_event_processed = 'Y'
3402: Return(p_return_status);
3403:
3404: --handling exceptions
3405: Exception
3406: When pa_event_utils.pvt_excp
3407: then
3408: PA_EVENT_PUB.PACKAGE_NAME:=PA_EVENT_PUB.PACKAGE_NAME||'PRIVATE->';
3409: PA_EVENT_PUB.PROCEDURE_NAME:=PA_EVENT_PUB.PROCEDURE_NAME||'CHECK_DELETE_EVENT_OK->';
3410: Raise pub_excp;--raising exception to be handled in public package
3472: End If;
3473:
3474: --handling exceptions
3475: Exception
3476: When pa_event_utils.pvt_excp
3477: then
3478: PA_EVENT_PUB.PACKAGE_NAME:=PA_EVENT_PUB.PACKAGE_NAME||'PRIVATE->';
3479: PA_EVENT_PUB.PROCEDURE_NAME:=PA_EVENT_PUB.PROCEDURE_NAME||'CHECK_EVENT_REF_UNQ->';
3480: Raise pub_excp;--raising exception to be handled in public package
3514: End If;
3515:
3516: --handling exceptions
3517: Exception
3518: When pa_event_utils.pvt_excp
3519: then
3520: PA_EVENT_PUB.PACKAGE_NAME:=PA_EVENT_PUB.PACKAGE_NAME||'PRIVATE->';
3521: PA_EVENT_PUB.PROCEDURE_NAME:=PA_EVENT_PUB.PROCEDURE_NAME||'CHECK_YES_NO->';
3522: Raise pub_excp;--raising exception to be handled in public package
3568: End If;
3569:
3570: --handling exceptions
3571: Exception
3572: When pa_event_utils.pvt_excp
3573: then
3574: PA_EVENT_PUB.PACKAGE_NAME:=PA_EVENT_PUB.PACKAGE_NAME||'PRIVATE->';
3575: PA_EVENT_PUB.PROCEDURE_NAME:=PA_EVENT_PUB.PROCEDURE_NAME||'FETCH_EVENT_ID->';
3576: Raise pub_excp;--raising exception to be handled in public package