The following lines contain the word 'select', 'insert', 'update' or 'delete':
SELECT *
FROM pa_project_types
WHERE project_type = p_project_type;
SELECT *
FROM pa_projects p
WHERE p.project_id = p_pa_project_id;
Select 'X'
from pa_lookups
where lookup_type='PM_PRODUCT_CODE'
and lookup_code = p_pm_product_code;
SELECT
allTasks.record_version_number
FROM
PA_TASKS allTasks,
pa_proj_element_versions elever
WHERE
elever.element_version_id = l_task_version_id
AND
elever.project_id = l_project_id
AND elever.proj_element_id = allTasks.task_id
AND allTasks.project_id = elever.project_id;
SELECT DISTINCT *
FROM pa_override_fields_v pof
WHERE pof.pa_source_template_id = p_pa_source_template_id;
SELECT a.address_id
FROM ra_addresses a
, ra_site_uses su
WHERE a.customer_id = p_customer_id
AND a.address_id = su.address_id
AND nvl(su.status,'A') = 'A'
AND su.site_use_code = 'SHIP_TO'
AND su.primary_flag = 'Y';
SELECT project_type
FROM pa_projects
WHERE project_id = p_source_template_id;
SELECT wf_status_code
FROM pa_projects
WHERE project_id = l_project_id;
Select inv_currency_code,
inv_rate_type,
inv_rate_date,
inv_exchange_rate,
allow_inv_user_rate_type_flag,
bill_another_project_flag,
receiver_task_id
From pa_project_customers
Where customer_id = p_customer_id;
select NVL(template_flag,'N')
from pa_projects
where project_id = p_proj_id;
select 'N'
from pa_projects_all
where project_id = p_proj_id
and template_flag = 'Y'
and ((nvl(trunc(template_start_date_active), trunc(sysdate)) > trunc(sysdate)) or
(nvl(trunc(template_end_date_active), trunc(sysdate)) < trunc(sysdate)));
SELECT default_rate_type
FROM pa_implementations;
SELECT PARTY_ID
FROM PA_CUSTOMERS_V
WHERE CUSTOMER_ID = c_customer_id
AND PARTY_TYPE = 'ORGANIZATION';
Select cust_acc_rel_code
From pa_implementations;
SELECT enable_top_task_customer_flag
FROM pa_projects_all
WHERE project_id = c_project_id ;
select PROJECT_SYSTEM_STATUS_CODE , PROJECT_TYPE_CLASS_CODE
from pa_projects_all ppa,pa_project_statuses pps,pa_project_types ppt
where ppa.project_id = c_project_id
and ppa.PROJECT_STATUS_CODE = pps.PROJECT_STATUS_CODE
and ppa.PROJECT_TYPE = ppt.PROJECT_TYPE
and pps.STATUS_TYPE = 'PROJECT'
and ppt.ORG_ID= ppa.ORG_ID ;
select count(*)
from pa_project_players
where project_id = c_project_id
and project_role_type='PROJECT MANAGER';
Select
'Y'
from
pa_lookups
where
lookup_type = 'PA_PROJECT_PRIORITY_CODE'
and lookup_code = p_priority_code ;
SELECT 'Y' FROM
dual
WHERE EXISTS
(SELECT NULL FROM pa_lookups
WHERE
lookup_type = 'PA_PROJECT_ACCESS_LEVEL' AND
lookup_code = p_proj_sec_level
);
SELECT 'Y' FROM dual
WHERE EXISTS
(
SELECT
NULL
FROM
pa_probability_members ppm,
pa_projects pp,
pa_project_types ppt
WHERE
pp.project_type = ppt.project_type AND
pp.org_id = ppt.org_id AND
ppt.probability_list_id = ppm.probability_list_id AND
pp.project_id = p_project_id AND
ppm.probability_member_id = p_probability_member_id AND
trunc(sysdate) BETWEEN ppm.start_date_active AND nvl(ppm.end_date_active,trunc(sysdate))
);
SELECT
nvl(DATE_EFF_FUNDS_CONSUMPTION,'N')
FROM
pa_projects_all
WHERE project_id = c_project_id ;
SELECT
nvl(AR_REC_NOTIFY_FLAG,'N')
FROM
pa_projects_all
WHERE project_id = c_project_id ;
SELECT
nvl(AUTO_RELEASE_PWP_INV,'Y')
FROM
pa_projects_all
WHERE project_id = c_project_id ;
SELECT 'Y'
FROM
pa_projects_all p,
pa_project_types_all pt
WHERE
p.project_id = p_project_id AND
pt.project_type_class_code = 'CONTRACT' AND
p.project_type = pt.project_type AND
pt.CC_PRVDR_FLAG = 'N' AND
p.org_id = pt.org_id;
SELECT 'Y'
FROM dual
WHERE EXISTS
(SELECT NULL
FROM
pa_draft_revenues r
WHERE
r.project_id = p_project_id
)
OR EXISTS
(SELECT NULL
FROM
pa_draft_invoices i
WHERE
i.project_id = p_project_id
);
SELECT 'Y'
FROM sys.dual
WHERE exists
( select 1
from pa_summary_project_fundings
where project_id = p_project_id
and task_id is not null
);
SELECT count(*)
FROM pa_project_customers
WHERE project_id = p_project_id;
select project_role_type
from pa_project_role_types_vl
where meaning like c_key_role_meaning;
select org_id
from pa_projects_all
where project_id = c_project_id;
select created_from_project_id into l_created_from_proj_id
from pa_projects_all
where project_id = l_project_in_rec.created_from_project_id;
/* Code below is added for Customer Issue tracking bug. Customer Can still continue to project_in_rec_type to insert customers
or can use the new record type for the same. However he cannot use both together in the same script*/
----dbms_output.put_line('Checking for Customer Overridability -- print till here ');
UPDATE pa_projects
SET pm_project_reference = l_project_in_rec.pm_project_reference
, pm_product_code = p_pm_product_code
WHERE project_id = l_project_id;
UPDATE PA_PROJECT_CUSTOMERS
SET project_party_id = l_project_party_id
WHERE project_id = l_project_id
AND customer_id = l_in_customer_id; -- l_project_in_rec.customer_id; Tracking
,p_structure_updates_flag IN VARCHAR2 := 'Y' --Added for Bug 7264422
)
IS
l_api_name CONSTANT VARCHAR2(30) := 'add_task';
l_update_wbs_flag VARCHAR2(1) ;
SELECT segment1
FROM pa_projects p
WHERE p.project_id = p_pa_project_id;
SELECT t.task_id
FROM pa_tasks t
WHERE t.project_id = cp_project_id
AND t.pm_task_reference = cp_pm_task_reference;
SELECT enable_top_task_customer_flag, enable_top_task_inv_mth_flag,
revenue_accrual_method, invoice_method, project_type
FROM pa_projects_all
WHERE project_id = p_pa_project_id;
SELECT 'Y'
FROM pa_project_customers
WHERE project_id = p_pa_project_id
AND customer_id = c_customer_id ;
SELECT pst.structure_type
FROM pa_proj_element_versions ppev
,pa_proj_structure_types ppst
,pa_structure_types pst
WHERE ppev.element_version_id = c_structure_version_id
AND ppev.proj_element_id = ppst.proj_element_id
AND ppst.structure_type_id = pst.structure_type_id ;
SELECT customer_name from PA_CUSTOMERS_V
WHERE customer_id = l_customer_id;
SELECT allow_cross_charge_flag,
cc_process_labor_flag,
labor_tp_schedule_id,
labor_tp_fixed_date,
cc_process_nl_flag,
nl_tp_schedule_id,
nl_tp_fixed_date
FROM pa_tasks
WHERE task_id = c_pa_parent_task_id;
, p_context => 'UPDATE_AMG'
, x_message_name => l_message_name
, x_message_type => l_message_type
, x_structure_version_id => l_str_ver_id
, x_conc_request_id => l_conc_request_id);
IF pa_security.allow_update (x_project_id => l_project_id ) = 'N' THEN
-- The user does not have update privileges on this project
-- Hence , raise error
pa_interface_utils_pub.map_new_amg_msg
( p_old_message_code => 'PA_PROJECT_SECURITY_ENFORCED'
,p_msg_attribute => 'CHANGE'
,p_resize_flag => 'Y'
,p_msg_context => 'GENERAL'
,p_attribute1 => ''
,p_attribute2 => ''
,p_attribute3 => ''
,p_attribute4 => ''
,p_attribute5 => '');
UPDATE pa_tasks
SET pm_product_code = p_pm_product_code
WHERE task_id = l_task_id;
( p_old_message_code => 'PA_STRUCT_VER_NO_UPDATE'
,p_msg_attribute => 'CHANGE'
,p_resize_flag => 'N'
,p_msg_context => 'GENERAL'
,p_attribute1 => ''
,p_attribute2 => ''
,p_attribute3 => ''
,p_attribute4 => ''
,p_attribute5 => '');
select parent_structure_version_id
from pa_proj_element_versions
where element_version_id = c_task_version_id;
IF (nvl(p_structure_updates_flag, 'Y') = 'N') THEN
PA_PROJ_TASK_STRUC_PUB.SET_UPDATE_WBS_FLAG
( p_calling_context => 'AMG'
,p_project_id => l_project_id
,p_structure_version_id => l_structure_version_id
,p_update_wbs_flag => 'Y'
,x_return_status => l_return_status
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data);
l_update_wbs_flag := PA_PROJECT_STRUCTURE_UTILS.GET_UPDATE_WBS_FLAG(p_project_id => l_project_id -- bug 3106457 p_pa_project_id
,p_structure_version_id => l_structure_version_id); -- bug 3106457 p_structure_version_id ) ;
IF nvl(l_update_wbs_flag,'N') = 'Y' THEN
IF p_process_mode = 'ONLINE' THEN
PA_PROJ_TASK_STRUC_PUB.PROCESS_WBS_UPDATES(p_calling_context => 'ONLINE_UPDATE'
,p_project_id => l_project_id -- bug 3106457 p_pa_project_id
,p_structure_version_id => l_structure_version_id -- bug 3106457 p_structure_version_id
,x_return_status => l_return_status
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data ) ;
PA_PROJ_TASK_STRUC_PUB. PROCESS_WBS_UPDATES_CONC_WRP(p_calling_context => 'CONC_UPDATE' -- Bug 6842218 'CON_UPDATE'
,p_project_id => l_project_id -- bug 3106457 p_pa_project_id
,p_structure_version_id => l_structure_version_id -- bug 3106457 p_structure_version_id
,x_return_status => l_return_status
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data ) ;
PROCEDURE delete_task ( p_api_version_number IN NUMBER := 1.0 -- for bug# 3802319
,p_commit IN VARCHAR2 := FND_API.G_FALSE
,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
,p_msg_count OUT NOCOPY NUMBER /*Added the nocopy check for 4537865 */
,p_msg_data OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
,p_return_status OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
,p_pm_product_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,p_pm_project_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,p_pa_project_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
,p_pm_task_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,p_pa_task_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
,p_cascaded_delete_flag IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,p_project_id OUT NOCOPY NUMBER /*Added the nocopy check for 4537865 */
,p_task_id OUT NOCOPY NUMBER /*Added the nocopy check for 4537865 */
,p_task_version_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
,p_structure_type IN VARCHAR2 := 'FINANCIAL'
,p_process_mode IN VARCHAR2 := 'ONLINE'
,p_structure_updates_flag IN VARCHAR2 := 'Y'
)
IS
l_return_status VARCHAR2(1); --bug 2471668
l_update_wbs_flag VARCHAR2(1) ;
select parent_structure_version_id
from pa_proj_element_versions
where element_version_id = c_task_version_id;
PA_PROJ_TASK_STRUC_PUB.IS_WP_SEPARATE_FROM_FN( l_project_id ) = 'N' -- 2876703 --delete_task
THEN
IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
THEN
pa_interface_utils_pub.map_new_amg_msg
( p_old_message_code => 'PA_PS_WP_NOT_SEP_FN'
,p_msg_attribute => 'CHANGE'
,p_resize_flag => 'N'
,p_msg_context => 'GENERAL'
,p_attribute1 => ''
,p_attribute2 => ''
,p_attribute3 => ''
,p_attribute4 => ''
,p_attribute5 => '');
, p_context => 'UPDATE_AMG'
, x_message_name => l_message_name
, x_message_type => l_message_type
, x_structure_version_id => l_str_ver_id
, x_conc_request_id => l_conc_request_id);
SELECT parent_structure_version_id
INTO l_structure_version_id
FROM pa_proj_element_versions
WHERE element_version_id = p_task_version_id ;
pa_project_pvt.delete_task1
( p_api_version_number => p_api_version_number
,p_commit => FND_API.G_FALSE--bug 3766967
,p_init_msg_list => p_init_msg_list
,p_msg_count => p_msg_count
,p_msg_data => p_msg_data
,p_return_status => p_return_status
,p_pm_product_code => p_pm_product_code
,p_pm_project_reference => p_pm_project_reference
,p_pa_project_id => p_pa_project_id
,p_pm_task_reference => p_pm_task_reference
,p_pa_task_id => p_pa_task_id
,p_cascaded_delete_flag => p_cascaded_delete_flag
,p_project_id => p_project_id
,p_task_id => p_task_id
,p_task_version_id => p_task_version_id
,p_structure_type => l_structure_type --
);
IF (nvl(p_structure_updates_flag, 'Y') = 'Y') THEN
l_update_wbs_flag := PA_PROJECT_STRUCTURE_UTILS.GET_UPDATE_WBS_FLAG(p_project_id => l_project_id --Bug 3106457 p_pa_project_id
,p_structure_version_id => l_structure_version_id ) ;
IF nvl(l_update_wbs_flag,'N') = 'Y' THEN
IF p_process_mode = 'ONLINE' THEN
PA_PROJ_TASK_STRUC_PUB.PROCESS_WBS_UPDATES(p_calling_context => 'ONLINE_UPDATE'
,p_project_id => l_project_id --Bug 3106457 p_pa_project_id
,p_structure_version_id => l_structure_version_id
,x_return_status => p_return_status
,x_msg_count => p_msg_count
,x_msg_data => p_msg_data ) ;
PA_PROJ_TASK_STRUC_PUB. PROCESS_WBS_UPDATES_CONC_WRP(p_calling_context => 'CONC_UPDATE'
,p_project_id => l_project_id -- Bug 3106457 p_pa_project_id
,p_structure_version_id => l_structure_version_id
,x_return_status => p_return_status
,x_msg_count => p_msg_count
,x_msg_data => p_msg_data ) ;
END delete_task;
G_key_members_in_tbl.delete;
G_deliverables_in_tbl.delete;
G_deliverable_actions_in_tbl.delete; --bug 343590
G_class_categories_in_tbl.delete; --bug 343590
G_tasks_in_tbl.delete;
G_org_roles_in_tbl.delete;
G_tasks_out_tbl.delete;
G_struc_out_tbl.delete;
G_ext_attr_in_tbl.delete;
/* Commented the code for bug 2982057 and handling it in create_project and update_project
IF p_long_task_name IS NULL OR p_long_task_name = PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
THEN
G_tasks_in_tbl(G_tasks_tbl_count).long_task_name := p_task_name;
PROCEDURE Update_Project
( p_api_version_number IN NUMBER
,p_commit IN VARCHAR2 := FND_API.G_FALSE
,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
,p_msg_count OUT NOCOPY NUMBER /*Added the nocopy check for 4537865 */
,p_msg_data OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
,p_return_status OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
,p_workflow_started OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
,p_pm_product_code IN VARCHAR2
,p_op_validate_flag IN varchar2 := 'Y'
,p_project_in IN pa_project_pub.project_in_rec_type
,p_project_out OUT NOCOPY pa_project_pub.project_out_rec_type /*added the nocopy check for the 2674619*/
/* Added for tracking bug - add customers */
,p_customers_in IN pa_project_pub.customer_tbl_type := G_customers_in_tbl
/* Added Default Value for p_key_members and p_class_categories*/
,p_key_members IN pa_project_pub.project_role_tbl_type := G_key_members_in_tbl
,p_class_categories IN pa_project_pub.class_category_tbl_type := G_class_categories_in_tbl
,p_tasks_in IN pa_project_pub.task_in_tbl_type
,p_tasks_out OUT NOCOPY pa_project_pub.task_out_tbl_type /*added the nocopy check for the bug 2674619*/
-- anlee org role changes
,p_org_roles IN pa_project_pub.project_role_tbl_type := G_org_roles_in_tbl
--project structures
,p_structure_in IN structure_in_rec_type := G_structure_in_rec
,p_ext_attr_tbl_in IN PA_EXT_ATTR_TABLE_TYPE := G_ext_attr_in_tbl
-- ,p_structure_out OUT structure_out_rec_type
,p_pass_entire_structure IN VARCHAR2 := 'N' -- Added for bug 3548473 : Bug 3627124
-- If user passes entire strucutre in p_structure_in rec type, p_pass_entire_structure should be set to 'Y'.
--project structures
--FP M : deliverables
,p_deliverables_in IN deliverable_in_tbl_type := G_deliverables_in_tbl -- 3435905 passing default
-- ,p_deliverables_out OUT NOCOPY deliverable_out_tbl_type -- 3435905 removed out parameter
,p_deliverable_actions_in IN action_in_tbl_type := G_deliverable_actions_in_tbl -- 3435905 passing default
-- ,p_deliverable_actions_out OUT NOCOPY action_out_tbl_type -- 3435905 removed out parameter
--FP M : deliverables
,p_update_mode IN VARCHAR2 := 'PA_UPD_WBS_ATTR' --rtarway, for DHI ER, BUG 4413568 --bug 4534919
) IS
-- Added for bug 5222506
CURSOR l_cur_calendar_id(l_calendar_id NUMBER) IS
SELECT 'Y' FROM jtf_calendars_vl WHERE
trunc(nvl(end_date_active, sysdate)) >= trunc(sysdate)
AND calendar_id= l_calendar_id;
SELECT 'Y' FROM pa_conversion_types_v
WHERE conversion_type <> 'User' AND user_conversion_type = l_project_rate_type;
SELECT 'Y' FROM pa_output_tax_code_setup_v
WHERE tax_code = l_retention_tax_code;
SELECT *
FROM pa_projects p
WHERE p.project_id = l_pa_project_id;
SELECT organization_id
FROM pa_organizations_project_v
WHERE organization_id = l_org_id
AND active_flag = 'N';
SELECT 'x'
FROM pa_project_type_distributions d
WHERE d.project_type = l_project_type
AND d.distribution_rule = l_dist_rule;
SELECT MIN(start_date)
FROM pa_tasks
WHERE project_id = l_project_id
AND start_date IS NOT NULL;
SELECT MAX(completion_date)
FROM pa_tasks
WHERE project_id = l_project_id
AND completion_date IS NOT NULL;
SELECT pt.project_type_class_code
, pt.service_type_code
, pt.revaluate_funding_flag /*Bug 2891513 : selecting the columns revaluate_funding_flag and include_gains_losses_flag*/
, pt.include_gains_losses_flag
FROM pa_project_types pt
, pa_projects p
WHERE p.project_type = pt.project_type
AND p.project_id = p_pa_project_id;
SELECT 'x'
FROM pa_projects_all
WHERE segment1 = p_project_number;
SELECT 'x'
FROM pa_projects_all
WHERE name = p_project_name;
SELECT 'x'
FROM pa_projects_all
WHERE long_name = p_long_name;
SELECT pa_project_players.* --,rowid /*rowid id commented for bug 1939295 */
FROM pa_project_players
WHERE project_id = l_project_id
AND person_id = l_person_id
AND project_role_type = l_role_type
AND start_date_active = l_start_date_active;
Select pa_project_customers.*
From pa_project_customers
where project_id=x_project_id
and customer_id=l_customer_id;
SELECT class_code
FROM pa_project_classes
WHERE project_id = l_project_id
AND class_category = l_class_category;
SELECT task_id FROM
pa_tasks
WHERE project_id = l_project_id
AND pm_task_reference = l_pm_task_reference;
SELECT person_id,
start_date_active,
end_date_active
FROM pa_project_players
WHERE project_id = p_project_id
AND project_role_type = 'PROJECT MANAGER'
AND nvl(end_date_active,p_start_date) >= p_start_date;
SELECT 'x'
FROM pa_projects p
WHERE p.project_id = p_project_id
FOR UPDATE OF p.project_id NOWAIT;
SELECT *
FROM pa_project_parties_v
WHERE project_id = l_project_id
AND resource_source_id = l_resource_source_id
AND project_role_type = l_role_type
AND party_type = 'ORGANIZATION';
SELECT
ppp.project_party_id PROJECT_PARTY_ID,
ppp.object_id OBJECT_ID,
ppp.object_type OBJECT_TYPE,
ppp.project_id PROJECT_ID,
ppp.resource_id RESOURCE_ID,
ppp.resource_type_id RESOURCE_TYPE_ID,
ppp.resource_source_id RESOURCE_SOURCE_ID,
hzo.party_name RESOURCE_SOURCE_NAME,
ppp.project_role_id PROJECT_ROLE_ID,
pprt.project_role_type PROJECT_ROLE_TYPE,
pprt.meaning PROJECT_ROLE_MEANING,
pprt.role_party_class ROLE_PARTY_CLASS,
ppp.start_date_active START_DATE_ACTIVE,
ppp.end_date_active END_DATE_ACTIVE,
ppp.scheduled_flag SCHEDULED_FLAG,
ppp.record_version_number RECORD_VERSION_NUMBER,
ppa.start_date PROJECT_START_DATE,
ppa.completion_date PROJECT_END_DATE,
ppp.grant_id GRANT_ID,
-999 ASSIGNMENT_ID,
-999 ASSIGN_RECORD_VERSION_NUMBER,
'N' PENDING_APPROVAL,
-999 ORGANIZATION_ID,
NULL ORGANIZATION_NAME,
hzcp.phone_area_code || decode(hzcp.phone_number,NULL,NULL,decode(hzcp.phone_area_code,NULL,hzcp.phone_number,'-' || hzcp.phone_number) ) || decode(hzcp.phone_extension,NULL,NULL,'+' || hzcp.phone_extension) PHONE_NUMBER,
hzo.email_address EMAIL_ADDRESS,
NULL JOB_TITLE,
'ORGANIZATION' PARTY_TYPE,
PA_PROJECT_PARTIES_UTILS.ACTIVE_PARTY(PPP.START_DATE_ACTIVE,PPP.END_DATE_ACTIVE) ACTIVE,
NULL USER_NAME,
-999 USER_ID,
ppp.resource_source_id RESOURCE_PARTY_ID
FROM pa_project_parties ppp,
pa_projects_all ppa,
pa_project_role_types_vl pprt,
hz_parties hzo,
hz_contact_points hzcp
WHERE ppp.resource_type_id = 112
AND ppp.project_id = ppa.project_id
AND ppp.project_role_id = pprt.project_role_id
AND ppp.resource_source_id = hzo.party_id
AND hzo.party_type = 'ORGANIZATION'
AND hzcp.owner_table_name (+)= 'HZ_PARTIES'
AND hzcp.owner_table_id (+)= hzo.party_id
AND hzcp.contact_point_type (+)= 'PHONE'
AND hzcp.phone_line_type (+)= 'GEN'
AND hzcp.primary_flag (+)= 'Y'
and PPA.project_id = l_project_id
AND PPP.resource_source_id = l_resource_source_id
AND PPRT.project_role_type = l_role_type;
SELECT
ppp.project_party_id PROJECT_PARTY_ID,
ppp.object_id OBJECT_ID,
ppp.object_type OBJECT_TYPE,
ppp.project_id PROJECT_ID,
ppp.resource_id RESOURCE_ID,
ppp.resource_type_id RESOURCE_TYPE_ID,
ppp.resource_source_id RESOURCE_SOURCE_ID,
hzo.party_name RESOURCE_SOURCE_NAME,
ppp.project_role_id PROJECT_ROLE_ID,
pprt.project_role_type PROJECT_ROLE_TYPE,
pprt.meaning PROJECT_ROLE_MEANING,
pprt.role_party_class ROLE_PARTY_CLASS,
ppp.start_date_active START_DATE_ACTIVE,
ppp.end_date_active END_DATE_ACTIVE,
ppp.scheduled_flag SCHEDULED_FLAG,
ppp.record_version_number RECORD_VERSION_NUMBER,
ppa.start_date PROJECT_START_DATE,
ppa.completion_date PROJECT_END_DATE,
ppp.grant_id GRANT_ID,
-999 ASSIGNMENT_ID,
-999 ASSIGN_RECORD_VERSION_NUMBER,
'N' PENDING_APPROVAL,
-999 ORGANIZATION_ID,
NULL ORGANIZATION_NAME,
hzo.primary_phone_area_code || decode(hzo.primary_phone_number,NULL,NULL,decode(hzo.primary_phone_area_code,NULL,hzo.primary_phone_number,'-' || hzo.primary_phone_number) )
|| decode(hzo.primary_phone_extension,NULL,NULL,'+' || hzo.primary_phone_extension) PHONE_NUMBER,
hzo.email_address EMAIL_ADDRESS,
NULL JOB_TITLE,
'ORGANIZATION' PARTY_TYPE,
PA_PROJECT_PARTIES_UTILS.ACTIVE_PARTY(PPP.START_DATE_ACTIVE,PPP.END_DATE_ACTIVE) ACTIVE,
NULL USER_NAME,
-999 USER_ID,
ppp.resource_source_id RESOURCE_PARTY_ID
FROM pa_project_parties ppp,
pa_projects_all ppa,
pa_project_role_types_vl pprt,
hz_parties hzo
WHERE ppp.resource_type_id = 112
AND ppp.project_id = ppa.project_id
AND ppp.project_role_id = pprt.project_role_id
AND ppp.resource_source_id = hzo.party_id
AND hzo.party_type = 'ORGANIZATION'
and PPA.project_id = l_project_id
AND PPP.resource_source_id = l_resource_source_id
AND PPRT.project_role_type = l_role_type;
SELECT c.element_version_id
FROM pa_proj_element_versions c, pa_structure_types a, pa_proj_structure_types b
,pa_proj_elem_ver_structure d
WHERE c.project_id = c_project_id
AND a.structure_type_id = b.structure_type_id
AND b.proj_element_id = c.proj_element_id
AND a.structure_type = c_structure_type
AND d.project_id = c.project_id
AND d.element_version_id = c.element_version_id
AND d.status_code = 'STRUCTURE_PUBLISHED'
AND d.latest_eff_published_flag = 'Y';
SELECT c.element_version_id
FROM pa_proj_element_versions c, pa_structure_types a, pa_proj_structure_types b
,pa_proj_elem_ver_structure d
WHERE c.project_id = c_project_id
AND a.structure_type_id = b.structure_type_id
AND b.proj_element_id = c.proj_element_id
AND a.structure_type = c_structure_type
AND d.project_id = c.project_id
AND d.element_version_id = c.element_version_id
AND d.status_code = 'STRUCTURE_WORKING';
SELECT project_system_status_code
FROM PA_PROJECT_STATUSES sta,PA_PROJECTS_ALL pa
WHERE pa.project_id = p_project_in.pa_project_id
AND sta.project_status_code = pa.project_status_code;
l_api_name CONSTANT VARCHAR2(30):= 'update_project';
l_update_yes_flag VARCHAR2(1) := 'N';
l_update_start_date_flag VARCHAR2(1);
l_update_end_date_flag VARCHAR2(1);
l_module_name VARCHAR2(80) := 'PA_PM_UPDATE_PROJECT';
l_proceed_with_update_flag VARCHAR2(1);
SELECT segment1
FROM pa_projects p
WHERE p.project_id = p_pa_project_id;
l_ctx_update_flag VARCHAR2(1);
l_update_structure_version_id pa_proj_element_versions.element_version_id%TYPE;
l_update_task_structure VARCHAR2(1) := 'N'; -- Added for Bug 3548473 : 3627124
l_update_wbs_flag VARCHAR2(1) := 'N'; -- Added for Bug #3931805
Select cust_acc_rel_code
From pa_implementations;
select PROJECT_SYSTEM_STATUS_CODE , PROJECT_TYPE_CLASS_CODE
from pa_projects_all ppa,pa_project_statuses pps,pa_project_types ppt
where ppa.project_id = c_project_id
and ppa.PROJECT_STATUS_CODE = pps.PROJECT_STATUS_CODE
and ppa.PROJECT_TYPE = ppt.PROJECT_TYPE
and pps.STATUS_TYPE = 'PROJECT'
and ppt.ORG_ID= ppa.ORG_ID ;
select count(*)
from pa_project_players
where project_id = c_project_id
and project_role_type='PROJECT MANAGER';
SELECT code_percentage
FROM pa_project_classes
WHERE project_id = l_project_id
AND class_category = l_class_category
AND class_code = l_class_code;
SELECT class_code_id
FROM PA_CLASS_CODES
WHERE class_category = l_class_category
AND class_code = l_class_code;
SELECT expected_approval_date, projfunc_currency_code, project_currency_code
FROM pa_projects
WHERE project_id = c_project_id;
SELECT opportunity_value, opp_value_currency_code
FROM pa_project_opp_attrs
WHERE project_id = c_project_id;
select ppa.name
from pa_projects_all ppa
where ppa.project_id = c_project_id;
select ppa.name
from pa_projects_all ppa, pa_object_relationships por
where ppa.project_id = por.object_id_to2
and por.object_id_to2 = c_project_id
and por.relationship_type in ('LW','LF')
union all
select ppa.name
from pa_projects_all ppa, pa_object_relationships por
where ppa.project_id = por.object_id_from2
and por.object_id_from2 = c_project_id
and por.relationship_type in ('LW','LF');
SELECT Nvl(cust_acct.status,'A')
FROM hz_parties party,
hz_cust_accounts cust_acct
WHERE
cust_acct.party_id = party.party_id AND
cust_acct.cust_account_id = l_customer_id;
Select
'Y'
from
pa_lookups
where
lookup_type = 'PA_PROJECT_PRIORITY_CODE'
and lookup_code = p_priority_code ;
SELECT 'Y' FROM
dual
WHERE EXISTS
(SELECT NULL FROM pa_lookups
WHERE
lookup_type = 'PA_PROJECT_ACCESS_LEVEL' AND
lookup_code = p_proj_sec_level
);
SELECT 'Y' FROM dual
WHERE EXISTS
(
SELECT
NULL
FROM
pa_probability_members ppm,
pa_projects pp,
pa_project_types ppt
WHERE
pp.project_type = ppt.project_type AND
pp.org_id = ppt.org_id AND
ppt.probability_list_id = ppm.probability_list_id AND
pp.project_id = p_project_id AND
ppm.probability_member_id = p_probability_member_id AND
trunc(sysdate) BETWEEN ppm.start_date_active AND nvl(ppm.end_date_active,trunc(sysdate))
);
SELECT
'Y'
FROM
pa_work_types_vl pwt,
pa_projects pp,
pa_project_types ppt
WHERE
trunc(sysdate) BETWEEN pwt.start_date_active AND nvl(pwt.end_date_active,trunc(SYSDATE)) AND
pp.project_type = ppt.project_type AND
pp.org_id = ppt.org_id AND
pwt.billable_capitalizable_flag = Decode(ppt.project_type_class_code,'INDIRECT', 'N', pwt.billable_capitalizable_flag) AND
pp.project_id = p_project_id AND
pwt.work_type_id = p_work_type_id;
SELECT
'Y'
FROM
fnd_currencies_vl
WHERE
NVL(enabled_flag, 'Y') = 'Y' AND
SYSDATE BETWEEN NVL(start_date_active,SYSDATE) AND
NVL(end_date_active, SYSDATE) AND
currency_code = p_currency_code;
SELECT
ppt.cc_prvdr_flag
FROM
pa_projects pp,
pa_project_types ppt
WHERE
pp.project_type = ppt.project_type AND
pp.org_id = ppt.org_id AND --this condition is not mandatory
pp.project_id = p_project_id;
l_allow_update_flag VARCHAR2(1) := 'Y';
select 'x'
from pa_project_role_types_v roles,
pa_role_controls controls,
pa_projects_all proj
where proj.project_id=p_project_id
and proj.ROLE_LIST_ID is null
and roles.project_role_id=controls.project_role_id
and roles.PROJECT_ROLE_TYPE=p_role_type
and controls.role_control_code='ALLOW_AS_PROJ_MEMBER'
and trunc(sysdate) between start_date_active and nvl(end_date_active,sysdate)
union all
select 'x'
from pa_project_role_types_v roles,
pa_role_controls controls,
pa_projects_all proj,
pa_role_list_members prlm
where proj.project_id=p_project_id
and proj.ROLE_LIST_ID =prlm.role_list_id
and prlm.project_role_id = roles.project_role_id
and roles.project_role_id=controls.project_role_id
and roles.PROJECT_ROLE_TYPE=p_role_type
and controls.role_control_code='ALLOW_AS_PROJ_MEMBER'
and trunc(sysdate) between start_date_active and nvl(end_date_active,sysdate);
SELECT 'Y'
FROM
pa_projects_all p,
pa_project_types_all pt
WHERE
p.project_id = p_project_id AND
pt.project_type_class_code = 'CONTRACT' AND
p.project_type = pt.project_type AND
pt.CC_PRVDR_FLAG = 'N' AND
pt.org_id = p.org_id;
SELECT 'Y'
FROM dual
WHERE EXISTS
(SELECT NULL
FROM
pa_draft_revenues r
WHERE
r.project_id = p_project_id
)
OR EXISTS
(SELECT NULL
FROM
pa_draft_invoices i
WHERE
i.project_id = p_project_id
);
SELECT 'Y'
FROM dual
WHERE exists
( select 1
from pa_summary_project_fundings
where project_id = p_project_id
and task_id is not null
);
SELECT count(*)
FROM pa_project_customers
WHERE project_id = p_project_id;
SELECT default_rate_type
FROM pa_implementations;
SAVEPOINT Update_project_pub;
G_TASK_STR_UPDATE_MODE := p_update_mode ; -- DHI ER , rtarway BUG 4413568
p_msg_name => 'PA_PS_CANT_UPDATE_PROG_PRJ');
if (p_update_mode = 'PA_UPD_WBS_ATTR') and (p_pm_product_code <> 'WORKPLAN') then -- Bug # 4758888.
IF l_debug_mode = 'Y' THEN
pa_debug.g_err_stage := 'Before calling pa_project_structure_utils.lock_unlock_wp_str_autonomous for LOCKING'||
'p_project_in.pa_project_id='||p_project_in.pa_project_id||
'-l_structure_version_id='||l_structure_version_id;
( p_old_message_code => 'PA_STRUCT_VER_NO_UPDATE'
,p_msg_attribute => 'CHANGE'
,p_resize_flag => 'N'
,p_msg_context => 'GENERAL'
,p_attribute1 => ''
,p_attribute2 => ''
,p_attribute3 => ''
,p_attribute4 => ''
,p_attribute5 => '');
l_module_name := 'PA_PM_UPDATE_PROJECT';
p_function_name => 'PA_PM_UPDATE_PROJECT',
p_msg_count => l_msg_count,
p_msg_data => l_msg_data,
p_return_status => l_return_status,
p_function_allowed => l_function_allowed );
IF pa_security.allow_update (x_project_id => l_project_id ) = 'N' THEN
-- The user does not have update privileges on this project
-- Hence , raise error
pa_interface_utils_pub.map_new_amg_msg
( p_old_message_code => 'PA_PROJECT_SECURITY_ENFORCED'
,p_msg_attribute => 'CHANGE'
,p_resize_flag => 'Y'
,p_msg_context => 'GENERAL'
,p_attribute1 => ''
,p_attribute2 => ''
,p_attribute3 => ''
,p_attribute4 => ''
,p_attribute5 => '');
l_ctx_update_flag := 'N';
pa_debug.g_err_stage := 'Preparing to update project level data...';
l_update_yes_flag := 'N';
l_statement := 'UPDATE PA_PROJECTS SET ';
l_update_yes_flag := 'Y';
l_ctx_update_flag := 'Y';
l_update_yes_flag := 'Y';
l_ctx_update_flag := 'Y';
l_update_yes_flag := 'Y';
l_ctx_update_flag := 'Y';
l_update_yes_flag := 'Y';
IF (fnd_function.test('PA_PAXPREPR_UPDATE_ORG') = TRUE) THEN
l_org_func_security := 'Y';
,X_insert_update_mode => NULL
,X_calling_module => 'UPDATE_PROJECT'
,X_project_id => l_project_id
,X_task_id => NULL
,X_old_value =>
To_char(l_project_rec.carrying_out_organization_id)
,X_new_value =>
To_char(p_project_in.carrying_out_organization_id)
,X_project_type => l_project_rec.project_type
,X_project_start_date => l_project_rec.start_date
,X_project_end_date => l_project_rec.completion_date
,X_public_sector_flag => l_project_rec.public_sector_flag
,X_task_manager_person_id => NULL
,X_Service_type => NULL
,X_task_start_date => NULL
,X_task_end_date => NULL
,X_entered_by_user_id => FND_GLOBAL.USER_ID
,X_attribute_category => l_project_rec.attribute_category
,X_attribute1 => l_project_rec.attribute1
,X_attribute2 => l_project_rec.attribute2
,X_attribute3 => l_project_rec.attribute3
,X_attribute4 => l_project_rec.attribute4
,X_attribute5 => l_project_rec.attribute5
,X_attribute6 => l_project_rec.attribute6
,X_attribute7 => l_project_rec.attribute7
,X_attribute8 => l_project_rec.attribute8
,X_attribute9 => l_project_rec.attribute9
,X_attribute10 => l_project_rec.attribute10
,X_pm_product_code => l_project_rec.pm_product_code
,X_pm_project_reference => l_project_rec.pm_project_reference
,X_pm_task_reference => NULL
-- ,X_functional_security_flag => NULL /*bug#1968394 */
,X_functional_security_flag => l_org_func_security /*bug#1968394 */
,x_warnings_only_flag => l_warnings_only_flag --bug3134205
,X_err_code => l_err_code
,X_err_stage => l_err_stage
,X_err_stack => l_err_stack );
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_ctx_update_flag := 'Y';
,p_update_start_date_flag => l_update_start_date_flag
,p_update_end_date_flag => l_update_end_date_flag
,p_return_status => l_return_status );
IF l_update_start_date_flag = 'Y'
THEN
--bug 2955326
/*
l_statement := l_statement ||
' START_DATE = to_date('''||
to_char(l_project_start_date,'YYYY/MM/DD')||
''', ''YYYY/MM/DD''),';
l_update_yes_flag := 'Y';
IF l_update_end_date_flag = 'Y'
THEN
--bug 2955326
/*
l_statement := l_statement ||
' COMPLETION_DATE = to_date('''||
to_char(l_project_completion_date,'YYYY/MM/DD')||
''', ''YYYY/MM/DD''),';
l_update_yes_flag := 'Y';
/* Task progress changes : Actual start date should be updated from task progress and ignored from AMG
IF (p_project_in.actual_start_date IS NOT NULL AND
p_project_in.actual_start_date <>
PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE ) AND
NVL(l_project_rec.actual_start_date,
PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE) <>
p_project_in.actual_start_date THEN
l_statement := l_statement ||
' ACTUAL_START_DATE = to_date('''||
to_char(p_project_in.actual_start_date,'YYYY/MM/DD')||
''', ''YYYY/MM/DD''),';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_allow_update_flag := 'N';
l_allow_update_flag := 'N';
IF l_allow_update_flag = 'N' THEN
IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
pa_utils.add_message
(
p_app_short_name => 'PA'
,p_msg_name => 'PA_CURR_CODE_NOT_UPDATBL'
);
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
--Added the following logic to update the work type id.Bug#5222248
OPEN cur_check_work_type(p_project_in.pa_project_id,p_project_in.work_type_id);
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
/* Should be able to update null since this is not mandatory*/
IF ((p_project_in.emp_bill_rate_schedule_id <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
AND p_project_in.emp_bill_rate_schedule_id IS NOT NULL) OR (p_project_in.emp_bill_rate_schedule_id IS NULL))
THEN
IF ((p_project_in.emp_bill_rate_schedule_id <>
NVL(l_project_rec.emp_bill_rate_schedule_id,PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM))
OR (p_project_in.emp_bill_rate_schedule_id IS NULL))
THEN
--bug 2955326
/*
l_statement := l_statement || ' EMP_BILL_RATE_SCHEDULE_ID = ' ||
TO_CHAR(p_project_in.emp_bill_rate_schedule_id)||',';
l_update_yes_flag := 'Y';
1)Should be able to update null when prm is not licensed.
2) When prm is licensed then it is mandatory.
*/
IF ((p_project_in.job_bill_rate_schedule_id <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
AND p_project_in.job_bill_rate_schedule_id IS NOT NULL)
OR (p_project_in.job_bill_rate_schedule_id is NULL and pa_install.is_prm_licensed = 'N'))
THEN
IF (p_project_in.job_bill_rate_schedule_id <> NVL(l_project_rec.job_bill_rate_schedule_id,PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM)
OR (p_project_in.job_bill_rate_schedule_id IS NULL))
THEN
--bug 2955326
/*
l_statement := l_statement || ' JOB_BILL_RATE_SCHEDULE_ID = ' ||
TO_CHAR(p_project_in.job_bill_rate_schedule_id)||',';
l_update_yes_flag := 'Y';
/* Should be able to update null*/
IF ((p_project_in.labor_schedule_fixed_date <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
AND p_project_in.labor_schedule_fixed_date IS NOT NULL) OR (p_project_in.labor_schedule_fixed_date IS NULL))
THEN
IF (p_project_in.labor_schedule_fixed_date <>
NVL(l_project_rec.labor_schedule_fixed_date,PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE)
OR (l_project_rec.labor_schedule_fixed_date IS NULL))
THEN
--bug 2955326
/*
l_statement := l_statement ||
' LABOR_SCHEDULE_FIXED_DATE = to_date('''||
to_char(p_project_in.labor_schedule_fixed_date,'YYYY/MM/DD')||
''', ''YYYY/MM/DD''),';
l_update_yes_flag := 'Y';
/* Should be able to update null*/
IF ((p_project_in.labor_schedule_discount <>PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
AND p_project_in.labor_schedule_discount IS NOT NULL)
OR (p_project_in.labor_schedule_discount IS NULL)) THEN
IF ((p_project_in.labor_schedule_discount
<> NVL(l_project_rec.labor_schedule_discount,
PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM)) OR (p_project_in.labor_schedule_discount IS NULL))
THEN
--bug 2955326
/*
l_statement := l_statement ||
' LABOR_SCHEDULE_DISCOUNT = '||''''||
TO_NUMBER(p_project_in.labor_schedule_discount)||''''||',';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
SELECT ind_rate_schedule_type INTO l_rev_rate_sch_type
FROM pa_ind_rate_schedules
WHERE ind_rate_sch_id = p_project_in.REV_IND_RATE_SCH_ID
AND trunc(sysdate) between trunc(start_date_active) and nvl(end_date_active,trunc(sysdate));
SELECT ind_rate_schedule_type INTO l_rev_rate_sch_type
FROM pa_ind_rate_schedules
WHERE ind_rate_sch_id = l_project_rec.REV_IND_RATE_SCH_ID;
SELECT ind_rate_schedule_type INTO l_inv_rate_sch_type
FROM pa_ind_rate_schedules
WHERE ind_rate_sch_id = p_project_in.INV_IND_RATE_SCH_ID
AND trunc(sysdate) between trunc(start_date_active) and nvl(end_date_active,trunc(sysdate));
SELECT ind_rate_schedule_type INTO l_inv_rate_sch_type
FROM pa_ind_rate_schedules
WHERE ind_rate_sch_id = l_project_rec.INV_IND_RATE_SCH_ID;
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
SELECT std_bill_rate_schedule INTO l_std_bill_rate_schedule
FROM pa_std_bill_rate_schedules_all
WHERE bill_rate_sch_id = p_project_in.non_lab_std_bill_rt_sch_id;
l_update_yes_flag := 'Y';
/* Should be able to update null*/
IF ((p_project_in.non_labor_schedule_fixed_date <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
AND p_project_in.non_labor_schedule_fixed_date IS NOT NULL) OR (p_project_in.non_labor_schedule_fixed_date IS NULL))
THEN
IF ((p_project_in.non_labor_schedule_fixed_date
<> NVL(l_project_rec.non_labor_schedule_fixed_date,
PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE)) OR (p_project_in.non_labor_schedule_fixed_date IS NULL))
THEN
--bug 2955326
/*
l_statement := l_statement ||
' NON_LABOR_SCHEDULE_FIXED_DATE = to_date('''||
to_char(p_project_in.non_labor_schedule_fixed_date,'YYYY/MM/DD')||
''', ''YYYY/MM/DD''),';
l_update_yes_flag := 'Y';
/* Should be able to update null*/
IF ((p_project_in.non_labor_schedule_discount <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
AND p_project_in.non_labor_schedule_discount IS NOT NULL) OR (p_project_in.non_labor_schedule_discount IS NULL))
THEN
IF (p_project_in.non_labor_schedule_discount <> NVL(l_project_rec.non_labor_disc_reason_code,
PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM) OR (p_project_in.non_labor_schedule_discount IS NULL))
THEN
--bug 2955326
/*
l_statement := l_statement ||
' NON_LABOR_SCHEDULE_DISCOUNT = '||''''||
TO_CHAR(p_project_in.non_labor_schedule_discount)||''''||',';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
is getting updated in the code added as part of the fix for the bug 2802984 and the below
code is causing duplicate column updation error.
IF p_project_in.non_lab_std_bill_rt_sch_id <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
AND p_project_in.non_lab_std_bill_rt_sch_id IS NOT NULL THEN
IF p_project_in.non_lab_std_bill_rt_sch_id <> l_project_rec.non_lab_std_bill_rt_sch_id
THEN
--bug 2955326
--
-- l_statement := l_statement || ' NON_LAB_STD_BILL_RT_SCH_ID = ' ||
-- TO_CHAR(p_project_in.non_lab_std_bill_rt_sch_id)||',';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
( p_old_message_code => 'PA_CANT_UPDATE_REV_FUN'
,p_msg_attribute => 'CHANGE'
,p_resize_flag => 'Y'
,p_msg_context => 'PROJ'
,p_attribute1 => l_project_rec.segment1
,p_attribute2 => ''
,p_attribute3 => ''
,p_attribute4 => ''
,p_attribute5 => '');
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
( p_old_message_code => 'PA_CANT_UPDATE_GAIN_LOSSES'
,p_msg_attribute => 'CHANGE'
,p_resize_flag => 'Y'
,p_msg_context => 'PROJ'
,p_attribute1 => l_project_rec.segment1
,p_attribute2 => ''
,p_attribute3 => ''
,p_attribute4 => ''
,p_attribute5 => '');
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
pa_debug.write(l_module_name,'Before Calling SETUP_PROJECT_AS_PROGRAM in Update_Project flow' ,3);
pa_debug.write(l_module_name,'After Calling SETUP_PROJECT_AS_PROGRAM in Update_Project flow' ,3);
IF ( PA_BILLING_CORE.Update_Top_Task_Cust_Flag( l_project_id ) = 'Y' ) THEN
l_statement := l_statement || ' enable_top_task_customer_flag = :enable_top_task_cust_flg ,';
l_update_yes_flag := 'Y';
IF ( PA_BILLING_CORE.Update_Top_Task_Inv_Mthd_Flag( l_project_id ) = 'Y'
AND l_project_rec.invoice_method <> 'COST' ) THEN
l_statement := l_statement || ' enable_top_task_inv_mth_flag = :enable_top_task_inv_mth_flg ,';
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
/* Added the following code for Bug 6248841 to update the cc_tax_task_id */
IF (p_project_in.cc_tax_task_id <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
AND p_project_in.cc_tax_task_id IS NOT NULL)
THEN
BEGIN
SELECT task_number INTO l_cc_tax_task_numb
FROM pa_tasks
WHERE project_id = l_project_id
AND task_id = p_project_in.cc_tax_task_id;
l_update_yes_flag := 'Y';
l_update_yes_flag := 'Y';
IF l_update_yes_flag = 'Y'
THEN
/* Code commented and added for the bug#1752494, starts here */
/*
l_statement := l_statement ||
' LAST_UPDATE_DATE = '||''''||
SYSDATE||''''||',';
' LAST_UPDATE_DATE = SYSDATE'||',';
' LAST_UPDATED_BY = :g_usr_id ,'; --bug 2955326
' LAST_UPDATE_LOGIN = :g_login_id'; --bug 2955326
if l_ctx_update_flag = 'Y' then
PA_PROJECT_CTX_SEARCH_PVT.UPDATE_ROW (
p_project_id => l_project_id
,p_template_flag => l_project_rec.template_flag
,p_project_name => l_ctx_proj_name
,p_project_number => l_ctx_proj_number
,p_project_long_name => l_ctx_long_name
,p_project_description => l_ctx_desc
,x_return_status => l_return_status );
pa_debug.g_err_stage := 'After calling PA_PROJECT_CTX_SEARCH_PVT.UPDATE_ROW l_return_status='||l_return_status;
UPDATE pa_projects_all
SET distribution_rule =
substr(distribution_rule,1,instr(distribution_rule,'/')-1)||'/'||l_proj_invoice_method
WHERE project_id = l_project_id;
UPDATE pa_projects_all
SET distribution_rule =
substr(distribution_rule,1,instr(distribution_rule,'/')-1)||'/'||'WORK'
WHERE project_id = l_project_id;
if (p_update_mode = 'PA_UPD_TASK_ATTR'
and p_pass_entire_structure = 'N'
and (( G_WP_STR_EXISTS = 'Y' AND G_IS_WP_SEPARATE_FROM_FN = 'N' )
OR ( G_WP_STR_EXISTS = 'Y' AND G_IS_WP_SEPARATE_FROM_FN = 'Y' AND p_structure_in.structure_type = 'WORKPLAN' ))) then
i:= p_tasks_in.first;
(p_pass_entire_structure = 'N' AND l_structure_type = 'WORKPLAN' and p_update_mode <> 'PA_UPD_TASK_ATTR') OR -- bhaskar
(p_pass_entire_structure = 'N' AND G_IS_WP_SEPARATE_FROM_FN = 'N' and p_update_mode <> 'PA_UPD_TASK_ATTR') THEN
-- Bug # 5077599.
IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
THEN
pa_interface_utils_pub.map_new_amg_msg
( p_old_message_code => 'PA_TASK_STRUCT_NOT_ORDRD'-- new message for bug 3548473: 3627124
,p_msg_attribute => 'CHANGE'
,p_resize_flag => 'N'
,p_msg_context => 'PROJ'
,p_attribute1 => l_project_rec.segment1
,p_attribute2 => ''
,p_attribute3 => ''
,p_attribute4 => ''
,p_attribute5 => '');
l_update_task_structure := 'Y';
l_update_task_structure := 'N';
PA_PROJ_TASK_STRUC_PUB.create_update_struct_ver(
p_project_id => l_project_id
,p_structure_type => p_structure_in.structure_type --no need to change this actual parameter for bug 2738747. The API takes care of financial stuff.
,p_structure_version_name => p_structure_in.structure_version_name
,p_structure_version_id => p_structure_in.structure_version_id
,p_description => p_structure_in.description
,x_structure_version_id => l_structure_version_id
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data
,x_return_status => l_return_status
);
pa_debug.g_err_stage := 'After calling PA_PROJ_TASK_STRUC_PUB.create_update_struct_ver l_return_status='||l_return_status;
FETCH cur_struc_ver_fin INTO l_update_structure_version_id;
FETCH cur_struc_ver_wp INTO l_update_structure_version_id;
l_update_structure_version_id := p_structure_in.structure_version_id;
l_update_structure_version_id := l_structure_version_id;
pa_debug.g_err_stage := ' the value of l_update_structure_version_id' || l_update_structure_version_id;
pa_project_check_pvt.G_task_num_updated_index_tbl.delete;
l_deferred_new_tasks_tbl.delete;
IF ( p_update_mode = 'PA_UPD_TASK_ATTR') THEN
PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
p_msg_name => 'PA_WBS_CANT_CHANGE');
l_proceed_with_update_flag := 'Y';
p_proceed_with_update_flag => l_proceed_with_update_flag,
p_return_status => l_return_status);
IF l_proceed_with_update_flag = 'Y' THEN
--Project Structures
/** COMMENTED FOR BUG 3841742 :3832333 : This code was assuming that the tasks will
be passed in the correct heirarchy and that the reference task id of the new task being
created was set to the task_id of the most recently created task. This was leading to
the error while updating tasks if the new task had a different top task than the one just
created */
/** v_first_index := p_tasks_in.first;
pa_debug.write(l_module_name,'Calling update Task',3);
pa_debug.write(l_module_name,'Calling update Task'||p_tasks_in(i).etc_effort,3);
pa_debug.write(l_module_name,'Calling update Task'||p_tasks_in(i).percent_complete,3);
Update_Task (
p_api_version_number => p_api_version_number,
p_commit => FND_API.G_FALSE,
p_msg_count => p_msg_count,
p_msg_data => p_msg_data,
p_return_status => l_return_status,
p_pm_product_code => p_pm_product_code,
p_pa_project_id => l_project_id,
p_pa_task_id => l_task_id,
--Project Structures
p_ref_task_id => v_ref_task_id,
--Project Structures
p_pm_task_reference => p_tasks_in(i).pm_task_reference,
p_task_number => p_tasks_in(i).pa_task_number,
p_task_name => p_tasks_in(i).task_name,
p_long_task_name => p_tasks_in(i).long_task_name,
p_task_description => p_tasks_in(i).task_description,
p_task_start_date => p_tasks_in(i).task_start_date,
p_task_completion_date => p_tasks_in(i).task_completion_date,
-- Start Fix for Bug # 1289156
p_early_start_date => p_tasks_in(i).early_start_date,
p_early_finish_date => p_tasks_in(i).early_finish_date,
p_late_start_date => p_tasks_in(i).late_start_date,
p_late_finish_date => p_tasks_in(i).late_finish_date,
p_actual_start_date => p_tasks_in(i).actual_start_date,
p_actual_finish_date => p_tasks_in(i).actual_finish_date,
-- End Fix for Bug # 1289156
p_pm_parent_task_reference => p_tasks_in(i).pm_parent_task_reference,
p_pa_parent_task_id => p_tasks_in(i).pa_parent_task_id,
p_address_id => p_tasks_in(i).address_id,
p_carrying_out_organization_id => p_tasks_in(i).carrying_out_organization_id,
p_service_type_code => p_tasks_in(i).service_type_code,
p_task_manager_person_id => p_tasks_in(i).task_manager_person_id,
p_billable_flag => p_tasks_in(i).billable_flag,
p_chargeable_flag => p_tasks_in(i).chargeable_flag,
p_ready_to_bill_flag => p_tasks_in(i).ready_to_bill_flag,
p_ready_to_distribute_flag => p_tasks_in(i).ready_to_distribute_flag,
p_limit_to_txn_controls_flag => p_tasks_in(i).limit_to_txn_controls_flag,
p_labor_bill_rate_org_id => p_tasks_in(i).labor_bill_rate_org_id,
p_labor_std_bill_rate_schdl => p_tasks_in(i).labor_std_bill_rate_schdl,
p_labor_schedule_fixed_date => p_tasks_in(i).labor_schedule_fixed_date,
p_labor_schedule_discount => p_tasks_in(i).labor_schedule_discount,
p_nl_bill_rate_org_id => p_tasks_in(i).non_labor_bill_rate_org_id,
p_nl_std_bill_rate_schdl => p_tasks_in(i).non_labor_std_bill_rate_schdl,
p_nl_schedule_fixed_date => p_tasks_in(i).non_labor_schedule_fixed_date,
p_nl_schedule_discount => p_tasks_in(i).non_labor_schedule_discount,
p_labor_cost_multiplier_name => p_tasks_in(i).labor_cost_multiplier_name,
p_cost_ind_rate_sch_id => p_tasks_in(i).cost_ind_rate_sch_id,
p_rev_ind_rate_sch_id => p_tasks_in(i).rev_ind_rate_sch_id,
p_inv_ind_rate_sch_id => p_tasks_in(i).inv_ind_rate_sch_id,
p_cost_ind_sch_fixed_date => p_tasks_in(i).cost_ind_sch_fixed_date,
p_rev_ind_sch_fixed_date => p_tasks_in(i).rev_ind_sch_fixed_date,
p_inv_ind_sch_fixed_date => p_tasks_in(i).inv_ind_sch_fixed_date,
p_labor_sch_type => p_tasks_in(i).labor_sch_type,
p_nl_sch_type => p_tasks_in(i).non_labor_sch_type,
p_tasks_dff => p_tasks_in(i).tasks_dff, --bug 6153503
p_attribute_category => p_tasks_in(i).attribute_category,
p_attribute1 => p_tasks_in(i).attribute1,
p_attribute2 => p_tasks_in(i).attribute2,
p_attribute3 => p_tasks_in(i).attribute3,
p_attribute4 => p_tasks_in(i).attribute4,
p_attribute5 => p_tasks_in(i).attribute5,
p_attribute6 => p_tasks_in(i).attribute6,
p_attribute7 => p_tasks_in(i).attribute7,
p_attribute8 => p_tasks_in(i).attribute8,
p_attribute9 => p_tasks_in(i).attribute9,
p_attribute10 => p_tasks_in(i).attribute10,
--bug 6153503
p_attribute11 => p_tasks_in(i).attribute11,
p_attribute12 => p_tasks_in(i).attribute12,
p_attribute13 => p_tasks_in(i).attribute13,
p_attribute14 => p_tasks_in(i).attribute14,
p_attribute15 => p_tasks_in(i).attribute15,
p_allow_cross_charge_flag =>
p_tasks_in(i).allow_cross_charge_flag,
p_project_rate_type => p_tasks_in(i).project_rate_type,
p_project_rate_date => p_tasks_in(i).project_rate_date,
p_cc_process_labor_flag => p_tasks_in(i).cc_process_labor_flag,
p_labor_tp_schedule_id => p_tasks_in(i).labor_tp_schedule_id,
p_labor_tp_fixed_date => p_tasks_in(i).labor_tp_fixed_date,
p_cc_process_nl_flag => p_tasks_in(i).cc_process_nl_flag,
p_nl_tp_schedule_id => p_tasks_in(i).nl_tp_schedule_id,
p_nl_tp_fixed_date => p_tasks_in(i).nl_tp_fixed_date,
p_receive_project_invoice_flag =>
p_tasks_in(i).receive_project_invoice_flag,
p_work_type_id => p_tasks_in(i).work_type_id,
p_emp_bill_rate_schedule_id => p_tasks_in(i).emp_bill_rate_schedule_id,
p_job_bill_rate_schedule_id => p_tasks_in(i).job_bill_rate_schedule_id,
--Sakthi MCB
p_non_lab_std_bill_rt_sch_id => p_tasks_in(i).non_lab_std_bill_rt_sch_id,
p_taskfunc_cost_rate_type => p_tasks_in(i).taskfunc_cost_rate_type,
p_taskfunc_cost_rate_date => p_tasks_in(i).taskfunc_cost_rate_date,
--Sakthi MCB
p_labor_disc_reason_code => p_tasks_in(i).labor_disc_reason_code,
p_non_labor_disc_reason_code => p_tasks_in(i).non_labor_disc_reason_code,
--project structures
--bug 2744729, 2740565
p_structure_type => l_structure_type,
p_structure_version_id => p_structure_in.structure_version_id,
P_OBLIGATION_START_DATE => p_tasks_in(i).OBLIGATION_START_DATE,
P_OBLIGATION_FINISH_DATE => p_tasks_in(i).OBLIGATION_FINISH_DATE,
P_ESTIMATED_START_DATE => p_tasks_in(i).ESTIMATED_START_DATE,
P_ESTIMATED_FINISH_DATE => p_tasks_in(i).ESTIMATED_FINISH_DATE,
P_BASELINE_START_DATE => p_tasks_in(i).BASELINE_START_DATE,
P_BASELINE_FINISH_DATE => p_tasks_in(i).BASELINE_FINISH_DATE,
P_CLOSED_DATE => p_tasks_in(i).CLOSED_DATE,
P_WQ_UOM_CODE => p_tasks_in(i).WQ_UOM_CODE,
P_WQ_ITEM_CODE => p_tasks_in(i).WQ_ITEM_CODE,
P_STATUS_CODE => p_tasks_in(i).STATUS_CODE,
P_WF_STATUS_CODE => p_tasks_in(i).WF_STATUS_CODE,
P_PM_SOURCE_CODE => p_tasks_in(i).PM_SOURCE_CODE,
P_PRIORITY_CODE => p_tasks_in(i).PRIORITY_CODE,
P_MILESTONE_FLAG => p_tasks_in(i).MILESTONE_FLAG,
P_CRITICAL_FLAG => p_tasks_in(i).CRITICAL_FLAG,
P_INC_PROJ_PROGRESS_FLAG => p_tasks_in(i).INC_PROJ_PROGRESS_FLAG,
P_LINK_TASK_FLAG => p_tasks_in(i).LINK_TASK_FLAG,
P_CALENDAR_ID => p_tasks_in(i).CALENDAR_ID,
P_PLANNED_EFFORT => p_tasks_in(i).PLANNED_EFFORT,
P_DURATION => p_tasks_in(i).DURATION,
P_PLANNED_WORK_QUANTITY => p_tasks_in(i).PLANNED_WORK_QUANTITY,
P_TASK_TYPE => p_tasks_in(i).TASK_TYPE,
--bug 2856033
p_scheduled_start_date => p_tasks_in(i).scheduled_start_date,
p_scheduled_finish_date => p_tasks_in(i).scheduled_finish_date,
--bug 2744729, 2740565
--Project Structures
--PA L Changes 2872708
p_retirement_cost_flag => p_tasks_in(i).retirement_cost_flag,
p_cint_eligible_flag => p_tasks_in(i).cint_eligible_flag,
p_cint_stop_date => p_tasks_in(i).cint_stop_date,
--End PA L changes 2872708
p_out_pa_task_id => l_out_pa_task_id,
p_out_pm_task_reference => l_out_pm_task_reference,
p_update_task_structure => l_update_task_structure -- for bug 2931183 to indicate bulk structure processing
-- modified p_update_task_structure value for bug 3548473 : Bug 3627124
-- (Begin venkat) new params for bug #3450684 ----------------------------------------------
,p_ext_act_duration => p_tasks_in(i).ext_act_duration
,p_ext_remain_duration => p_tasks_in(i).ext_remain_duration
,p_ext_sch_duration => p_tasks_in(i).ext_sch_duration
-- (End venkat) new params for bug #3450684 -------------------------------------------------
-- set the new params - bug #3654243 ----------------------------------------------
,p_base_percent_comp_deriv_code => p_tasks_in(i).base_percent_comp_deriv_code
,p_sch_tool_tsk_type_code => p_tasks_in(i).sch_tool_tsk_type_code
,p_constraint_type_code => p_tasks_in(i).constraint_type_code
,p_constraint_date => p_tasks_in(i).constraint_date
,p_free_slack => p_tasks_in(i).free_slack
,p_total_slack => p_tasks_in(i).total_slack
,p_effort_driven_flag => p_tasks_in(i).effort_driven_flag
,p_level_assignments_flag => p_tasks_in(i).level_assignments_flag
,p_gen_etc_source_code => p_tasks_in(i).gen_etc_source_code
-- set the new params - bug #3654243 -------------------------------------------------
-- For bug 3279981 Review
,p_invoice_method => p_tasks_in(i).invoice_method
,p_customer_id => p_tasks_in(i).customer_id
,p_is_wp_seperate_from_fn => l_is_wp_seperate_from_fn -- Added for bug#3451073
--Added by rtarway, for BUG 3919800
, p_etc_effort => p_tasks_in(i).etc_effort
, p_percent_complete => p_tasks_in(i).percent_complete
--Added by rtarway, for BUG 3919800
,p_calling_api => 'UPDATE_PROJECT' --Bug # 4199694
);
pa_debug.g_err_stage := 'After update_task first call...l_return_status=||l_return_status';
END IF; -- If l_proceed_with_update_flag = 'Y'
IF pa_project_check_pvt.G_task_num_updated_index_tbl.EXISTS (1) THEN
FOR i in 1..pa_project_check_pvt.G_task_num_updated_index_tbl.COUNT LOOP
l_array_index :=
pa_project_check_pvt.G_task_num_updated_index_tbl(i).task_index;
IF pa_project_check_pvt.G_task_num_updated_index_tbl(i).task_id = p_tasks_in(j).pa_task_id AND
j > v_first_index
THEN
v_ref_task_id := p_tasks_in(j-1).pa_task_id;
pa_debug.write(l_module_name,'Calling update Task',3);
pa_debug.write(l_module_name,'Calling update Task'||p_tasks_in(l_array_index).etc_effort,3);
pa_debug.write(l_module_name,'Calling update Task'||p_tasks_in(l_array_index).percent_complete,3);
Update_Task (
p_api_version_number => p_api_version_number,
p_commit => FND_API.G_FALSE,
p_msg_count => p_msg_count,
p_msg_data => p_msg_data,
p_return_status => l_return_status,
p_pm_product_code => p_pm_product_code,
p_pa_project_id => l_project_id,
p_pa_task_id =>
pa_project_check_pvt.G_task_num_updated_index_tbl(i).task_id,
--Project Structures
p_ref_task_id => v_ref_task_id,
--Project STRUCTUres
p_pm_task_reference =>
p_tasks_in(l_array_index).pm_task_reference,
p_task_number =>
p_tasks_in(l_array_index).pa_task_number,
p_task_name =>
p_tasks_in(l_array_index).task_name,
p_long_task_name =>
p_tasks_in(l_array_index).long_task_name,
p_task_description =>
p_tasks_in(l_array_index).task_description,
p_task_start_date =>
p_tasks_in(l_array_index).task_start_date,
p_task_completion_date =>
p_tasks_in(l_array_index).task_completion_date,
-- Start Fix for Bug # 1289156
p_early_start_date =>
p_tasks_in(l_array_index).early_start_date,
p_early_finish_date =>
p_tasks_in(l_array_index).early_finish_date,
p_late_start_date =>
p_tasks_in(l_array_index).late_start_date,
p_late_finish_date =>
p_tasks_in(l_array_index).late_finish_date,
p_actual_start_date =>
p_tasks_in(l_array_index).actual_start_date,
p_actual_finish_date =>
p_tasks_in(l_array_index).actual_finish_date,
-- End Fix for Bug # 1289156
p_pm_parent_task_reference =>
p_tasks_in(l_array_index).pm_parent_task_reference,
p_pa_parent_task_id =>
p_tasks_in(l_array_index).pa_parent_task_id,
p_address_id =>
p_tasks_in(l_array_index).address_id,
p_carrying_out_organization_id =>
p_tasks_in(l_array_index).carrying_out_organization_id,
p_service_type_code =>
p_tasks_in(l_array_index).service_type_code,
p_task_manager_person_id =>
p_tasks_in(l_array_index).task_manager_person_id,
p_billable_flag =>
p_tasks_in(l_array_index).billable_flag,
p_chargeable_flag =>
p_tasks_in(l_array_index).chargeable_flag,
p_ready_to_bill_flag =>
p_tasks_in(l_array_index).ready_to_bill_flag,
p_ready_to_distribute_flag =>
p_tasks_in(l_array_index).ready_to_distribute_flag,
p_limit_to_txn_controls_flag =>
p_tasks_in(l_array_index).limit_to_txn_controls_flag,
p_labor_bill_rate_org_id =>
p_tasks_in(l_array_index).labor_bill_rate_org_id,
p_labor_std_bill_rate_schdl =>
p_tasks_in(l_array_index).labor_std_bill_rate_schdl,
p_labor_schedule_fixed_date =>
p_tasks_in(l_array_index).labor_schedule_fixed_date,
p_labor_schedule_discount =>
p_tasks_in(l_array_index).labor_schedule_discount,
p_nl_bill_rate_org_id =>
p_tasks_in(l_array_index).non_labor_bill_rate_org_id,
p_nl_std_bill_rate_schdl =>
p_tasks_in(l_array_index).non_labor_std_bill_rate_schdl,
p_nl_schedule_fixed_date =>
p_tasks_in(l_array_index).non_labor_schedule_fixed_date,
p_nl_schedule_discount =>
p_tasks_in(l_array_index).non_labor_schedule_discount,
p_labor_cost_multiplier_name =>
p_tasks_in(l_array_index).labor_cost_multiplier_name,
p_cost_ind_rate_sch_id =>
p_tasks_in(l_array_index).cost_ind_rate_sch_id,
p_rev_ind_rate_sch_id =>
p_tasks_in(l_array_index).rev_ind_rate_sch_id,
p_inv_ind_rate_sch_id =>
p_tasks_in(l_array_index).inv_ind_rate_sch_id,
p_cost_ind_sch_fixed_date =>
p_tasks_in(l_array_index).cost_ind_sch_fixed_date,
p_rev_ind_sch_fixed_date =>
p_tasks_in(l_array_index).rev_ind_sch_fixed_date,
p_inv_ind_sch_fixed_date =>
p_tasks_in(l_array_index).inv_ind_sch_fixed_date,
p_labor_sch_type =>
p_tasks_in(l_array_index).labor_sch_type,
p_nl_sch_type =>
p_tasks_in(l_array_index).non_labor_sch_type,
p_tasks_dff => p_tasks_in(l_array_index).tasks_dff, --bug 6153503
p_attribute_category =>
p_tasks_in(l_array_index).attribute_category,
p_attribute1 => p_tasks_in(l_array_index).attribute1,
p_attribute2 => p_tasks_in(l_array_index).attribute2,
p_attribute3 => p_tasks_in(l_array_index).attribute3,
p_attribute4 => p_tasks_in(l_array_index).attribute4,
p_attribute5 => p_tasks_in(l_array_index).attribute5,
p_attribute6 => p_tasks_in(l_array_index).attribute6,
p_attribute7 => p_tasks_in(l_array_index).attribute7,
p_attribute8 => p_tasks_in(l_array_index).attribute8,
p_attribute9 => p_tasks_in(l_array_index).attribute9,
p_attribute10 => p_tasks_in(l_array_index).attribute10,
--bug 6153503
p_attribute11 => p_tasks_in(l_array_index).attribute11,
p_attribute12 => p_tasks_in(l_array_index).attribute12,
p_attribute13 => p_tasks_in(l_array_index).attribute13,
p_attribute14 => p_tasks_in(l_array_index).attribute14,
p_attribute15 => p_tasks_in(l_array_index).attribute15,
--Chnaged the index from i to l_array_index for BUG 4016583, rtarway
p_allow_cross_charge_flag => p_tasks_in(l_array_index).allow_cross_charge_flag,
p_project_rate_type => p_tasks_in(l_array_index).project_rate_type,
p_project_rate_date => p_tasks_in(l_array_index).project_rate_date,
p_cc_process_labor_flag => p_tasks_in(l_array_index).cc_process_labor_flag,
p_labor_tp_schedule_id => p_tasks_in(l_array_index).labor_tp_schedule_id,
p_labor_tp_fixed_date => p_tasks_in(l_array_index).labor_tp_fixed_date,
p_cc_process_nl_flag => p_tasks_in(l_array_index).cc_process_labor_flag,
p_nl_tp_schedule_id => p_tasks_in(l_array_index).nl_tp_schedule_id,
p_nl_tp_fixed_date => p_tasks_in(l_array_index).nl_tp_fixed_date,
p_receive_project_invoice_flag => p_tasks_in(l_array_index).receive_project_invoice_flag,
p_work_type_id => p_tasks_in(l_array_index).work_type_id,
p_emp_bill_rate_schedule_id => p_tasks_in(l_array_index).emp_bill_rate_schedule_id,
/* Bug#2802918 - Changed the passing parameter from emp_bill_rate_schedule_id to
job_bill_rate_schedule_id below */
p_job_bill_rate_schedule_id => p_tasks_in(l_array_index).job_bill_rate_schedule_id,
--Sakthi MCB
p_non_lab_std_bill_rt_sch_id => p_tasks_in(l_array_index).non_lab_std_bill_rt_sch_id,
p_taskfunc_cost_rate_type => p_tasks_in(l_array_index).taskfunc_cost_rate_type,
p_taskfunc_cost_rate_date => p_tasks_in(l_array_index).taskfunc_cost_rate_date,
--End Changes for BUG 4016583, rtarway
--Sakthi MCB
p_labor_disc_reason_code => p_tasks_in(l_array_index).labor_disc_reason_code,
p_non_labor_disc_reason_code => p_tasks_in(l_array_index).non_labor_disc_reason_code,
--project structures
--bug 2744729, 2740565
p_structure_type => l_structure_type,
p_structure_version_id => p_structure_in.structure_version_id,
P_OBLIGATION_START_DATE => p_tasks_in(l_array_index).OBLIGATION_START_DATE,
P_OBLIGATION_FINISH_DATE => p_tasks_in(l_array_index).OBLIGATION_FINISH_DATE,
P_ESTIMATED_START_DATE => p_tasks_in(l_array_index).ESTIMATED_START_DATE,
P_ESTIMATED_FINISH_DATE => p_tasks_in(l_array_index).ESTIMATED_FINISH_DATE,
P_BASELINE_START_DATE => p_tasks_in(l_array_index).BASELINE_START_DATE,
P_BASELINE_FINISH_DATE => p_tasks_in(l_array_index).BASELINE_FINISH_DATE,
P_CLOSED_DATE => p_tasks_in(l_array_index).CLOSED_DATE,
P_WQ_UOM_CODE => p_tasks_in(l_array_index).WQ_UOM_CODE,
P_WQ_ITEM_CODE => p_tasks_in(l_array_index).WQ_ITEM_CODE,
P_STATUS_CODE => p_tasks_in(l_array_index).STATUS_CODE,
P_WF_STATUS_CODE => p_tasks_in(l_array_index).WF_STATUS_CODE,
P_PM_SOURCE_CODE => p_tasks_in(l_array_index).PM_SOURCE_CODE,
P_PRIORITY_CODE => p_tasks_in(l_array_index).PRIORITY_CODE,
P_MILESTONE_FLAG => p_tasks_in(l_array_index).MILESTONE_FLAG,
P_CRITICAL_FLAG => p_tasks_in(l_array_index).CRITICAL_FLAG,
P_INC_PROJ_PROGRESS_FLAG => p_tasks_in(l_array_index).INC_PROJ_PROGRESS_FLAG,
P_LINK_TASK_FLAG => p_tasks_in(l_array_index).LINK_TASK_FLAG,
P_CALENDAR_ID => p_tasks_in(l_array_index).CALENDAR_ID,
P_PLANNED_EFFORT => p_tasks_in(l_array_index).PLANNED_EFFORT,
P_DURATION => p_tasks_in(l_array_index).DURATION,
P_PLANNED_WORK_QUANTITY => p_tasks_in(l_array_index).PLANNED_WORK_QUANTITY,
P_TASK_TYPE => p_tasks_in(l_array_index).TASK_TYPE,
--bug 2856033
p_scheduled_start_date => p_tasks_in(l_array_index).scheduled_start_date,
p_scheduled_finish_date => p_tasks_in(l_array_index).scheduled_finish_date,
--bug 2744729, 2740565
--project structures
--Bug 3018061
--PA L Changes 2872708
p_retirement_cost_flag => p_tasks_in(l_array_index).retirement_cost_flag,
p_cint_eligible_flag => p_tasks_in(l_array_index).cint_eligible_flag,
p_cint_stop_date => p_tasks_in(l_array_index).cint_stop_date,
--End PA L changes 2872708
--end Bug 3018061
-- (Begin venkat) new params for bug #3450684 ----------------------------------------------
p_ext_act_duration => p_tasks_in(l_array_index).ext_act_duration,
p_ext_remain_duration => p_tasks_in(l_array_index).ext_remain_duration,
p_ext_sch_duration => p_tasks_in(l_array_index).ext_sch_duration,
-- (End venkat) new params for bug #3450684 -------------------------------------------------
-- set the new params - bug #3654243 ----------------------------------------------
p_base_percent_comp_deriv_code => p_tasks_in(l_array_index).base_percent_comp_deriv_code
,p_sch_tool_tsk_type_code => p_tasks_in(l_array_index).sch_tool_tsk_type_code
,p_constraint_type_code => p_tasks_in(l_array_index).constraint_type_code
,p_constraint_date => p_tasks_in(l_array_index).constraint_date
,p_free_slack => p_tasks_in(l_array_index).free_slack
,p_total_slack => p_tasks_in(l_array_index).total_slack
,p_effort_driven_flag => p_tasks_in(l_array_index).effort_driven_flag
,p_level_assignments_flag => p_tasks_in(l_array_index).level_assignments_flag
,p_gen_etc_source_code => p_tasks_in(l_array_index).gen_etc_source_code
,p_invoice_method => p_tasks_in(l_array_index).invoice_method
,p_customer_id => p_tasks_in(l_array_index).customer_id,
-- set the new params - bug #3654243 -------------------------------------------------
p_out_pa_task_id => l_out_pa_task_id,
p_out_pm_task_reference => l_out_pm_task_reference,
p_update_task_structure => l_update_task_structure, -- for bug 2931183 to indicate bulk structure processing
--Added by rtarway, for BUG 3919800
p_etc_effort => p_tasks_in(l_array_index).etc_effort,
p_percent_complete => p_tasks_in(l_array_index).percent_complete
--Added by rtarway, for BUG 3919800
,p_calling_api => 'UPDATE_PROJECT' --Bug # 4199694
); -- modified p_update_task_structure value for bug 3548473 : Bug 3627124
pa_debug.g_err_stage := 'After update_task second call...l_return_status=||l_return_status';
END IF; -- IF pa_project_check_pvt.G_task_num_updated_index_tbl.EXISTS (1)
/** The code below will update the task_numbers of the tasks passed via update_project script
back to their original value viz. it'll crop the '-' added to aviod the constraint check in
PA_TASKS and PA_PROJ_ELEMENTS. **/
/* bug #5243018: Reverting the fix in bug 4120380.
i := 1;
UPDATE pa_tasks
SET task_number = p_tasks_in(i).pa_task_number
WHERE task_number = '-'||p_tasks_in(i).pa_task_number
AND project_id = l_project_id; -- BUG 4174041, rtarway
UPDATE pa_proj_elements
SET element_number = p_tasks_in(i).pa_task_number
WHERE element_number = '-'||p_tasks_in(i).pa_task_number
AND project_id = l_project_id; -- BUG 4174041, rtarway
IF ( p_update_mode = 'PA_UPD_TASK_ATTR' ) THEN --bug 4534919
PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
p_msg_name => 'PA_WBS_CANT_CHANGE');
for all the tasks that have inserted through add_task_round_one for updating wbs_level, top_task_id and
parent_task_id. The code below will default l_ref_task_id to parent_task_id, if the latter is not null
.Else l_ref_task_id will be null*/
/* CHANGES start FOR Bug 3841742 : 3857419 ADITI*/
IF (l_task_rec.pa_parent_task_id IS NOT NULL AND l_task_rec.pa_parent_task_id <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM) OR
(l_task_rec.pm_parent_task_reference IS NOT NULL
AND l_task_rec.pm_parent_task_reference <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
THEN
-- Bug 5262740 Changed pa_project_pvt.convert_pm_taskref_to_id call to
-- pa_project_pvt.convert_pm_taskref_to_id_all
PA_PROJECT_PVT.Convert_pm_taskref_to_id_all
( p_pa_project_id => l_project_id
, p_structure_type => l_structure_type
, p_pa_task_id => l_task_rec.pa_parent_task_id
, p_pm_task_reference => l_task_rec.pm_parent_task_reference
, p_out_task_id => l_task_id_out
, p_return_status => l_return_status );
UPDATE pa_tasks
SET pm_product_code = p_pm_product_code
WHERE task_id = l_task_id_tbl(i).pa_task_id;
p_create_task_structure => l_update_task_structure -- Bug 2931183 distinguishes bulk calling context
--project structure
); -- modified p_update_task_structure value for bug 3548473 : 3627124
l_update_wbs_flag := PA_PROJECT_STRUCTURE_UTILS.GET_UPDATE_WBS_FLAG(p_project_id => l_project_id
,p_structure_version_id => l_structure_version_id ) ;
IF nvl(l_update_wbs_flag,'N') = 'Y' THEN
IF p_project_in.process_mode = 'ONLINE' THEN
PA_PROJ_TASK_STRUC_PUB.PROCESS_WBS_UPDATES(p_calling_context => 'ONLINE_UPDATE'
,p_project_id => l_project_id
,p_structure_version_id => l_structure_version_id
,x_return_status => l_return_status
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data ) ;
PA_PROJ_TASK_STRUC_PUB. PROCESS_WBS_UPDATES_CONC_WRP(p_calling_context => 'CONC_UPDATE'
,p_project_id => l_project_id
,p_structure_version_id => l_structure_version_id
,x_return_status => l_return_status
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data ) ;
p_function_name => 'PA_PM_UPDATE_TASK',
p_msg_count => l_msg_count,
p_msg_data => l_msg_data,
p_return_status => l_return_status,
p_function_allowed => l_function_allowed );
PA_PROJ_TASK_STRUC_PUB.UPDATE_TASK_STRUCTURE(
p_project_id => l_project_id
,p_task_id => p_tasks_in(i).pa_task_id
,p_ref_task_id => v_ref_task_id
,p_task_number => p_tasks_in(i).pa_task_number
,p_task_name => p_tasks_in(i).long_task_name --bug 2833194
,p_task_description => p_tasks_in(i).task_description
,p_carrying_out_organization_id => p_tasks_in(i).carrying_out_organization_id
,p_calling_module => 'AMG'
--,p_structure_type => p_structure_in.structure_type --bug 2738747
,p_structure_type => l_structure_type --bug 2738747
,p_pm_product_code => p_tasks_in(i).PM_SOURCE_CODE
,p_pm_task_reference => p_tasks_in(i).pm_task_reference
,p_OBLIGATION_START_DATE => p_tasks_in(i).OBLIGATION_START_DATE
,p_OBLIGATION_FINISH_DATE => p_tasks_in(i).OBLIGATION_FINISH_DATE
,p_ESTIMATED_START_DATE => p_tasks_in(i).ESTIMATED_START_DATE
,p_ESTIMATED_FINISH_DATE => p_tasks_in(i).ESTIMATED_FINISH_DATE
,p_BASELINE_START_DATE => p_tasks_in(i).BASELINE_START_DATE
,p_BASELINE_FINISH_DATE => p_tasks_in(i).BASELINE_FINISH_DATE
,p_CLOSED_DATE => p_tasks_in(i).CLOSED_DATE
,p_WQ_UOM_CODE => p_tasks_in(i).WQ_UOM_CODE
,p_WQ_ITEM_CODE => p_tasks_in(i).WQ_ITEM_CODE
,p_STATUS_CODE => p_tasks_in(i).STATUS_CODE
,p_WF_STATUS_CODE => p_tasks_in(i).WF_STATUS_CODE
,p_PRIORITY_CODE => p_tasks_in(i).PRIORITY_CODE
,p_MILESTONE_FLAG => p_tasks_in(i).MILESTONE_FLAG
,p_CRITICAL_FLAG => p_tasks_in(i).CRITICAL_FLAG
,p_INC_PROJ_PROGRESS_FLAG => p_tasks_in(i).INC_PROJ_PROGRESS_FLAG
,p_LINK_TASK_FLAG => p_tasks_in(i).LINK_TASK_FLAG
,p_CALENDAR_ID => p_tasks_in(i).CALENDAR_ID
,p_PLANNED_EFFORT => p_tasks_in(i).PLANNED_EFFORT
,p_DURATION => p_tasks_in(i).DURATION
,p_PLANNED_WORK_QUANTITY => p_tasks_in(i).PLANNED_WORK_QUANTITY
,p_TASK_TYPE => p_tasks_in(i).TASK_TYPE
,p_actual_start_date => p_tasks_in(i).actual_start_date
,p_actual_finish_date => p_tasks_in(i).actual_finish_date
,p_early_start_date => p_tasks_in(i).early_start_date
,p_early_finish_date => p_tasks_in(i).early_finish_date
,p_late_start_date => p_tasks_in(i).late_start_date
,p_late_finish_date => p_tasks_in(i).late_finish_date
,p_scheduled_start_date => p_tasks_in(i).scheduled_start_date
,p_scheduled_finish_date => p_tasks_in(i).scheduled_finish_date
,p_location_id => p_tasks_in(i).address_id
,p_task_manager_id => p_tasks_in(i).task_manager_person_id
,p_structure_version_id => l_structure_version_id
-- (begin venkat) new params for bug #3450684 ----------------------------------------------
,p_ext_act_duration => p_tasks_in(i).ext_act_duration
,p_ext_remain_duration => p_tasks_in(i).ext_remain_duration
,p_ext_sch_duration => p_tasks_in(i).ext_sch_duration
-- (end venkat) new params for bug #3450684 -------------------------------------------------
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data
,x_return_status => l_return_status
);
,p_structure_version_id => l_update_structure_version_id
,p_process_mode => p_project_in.process_mode -- PA L Changes 3010538
,p_create_task_versions_only => l_create_task_versions_only -- Bug 3075609
,px_tasks_out_tbl => l_tasks_out
,x_return_status => p_return_status
,x_msg_count => p_msg_count
,x_msg_data => p_msg_data
);
l_update_wbs_flag := PA_PROJECT_STRUCTURE_UTILS.GET_UPDATE_WBS_FLAG(p_project_id => l_project_id
,p_structure_version_id => l_structure_version_id ) ;
IF nvl(l_update_wbs_flag,'N') = 'Y' THEN
IF p_project_in.process_mode = 'ONLINE' THEN
PA_PROJ_TASK_STRUC_PUB.PROCESS_WBS_UPDATES(p_calling_context => 'ONLINE_UPDATE'
,p_project_id => l_project_id
,p_structure_version_id => l_structure_version_id
,x_return_status => l_return_status
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data ) ;
PA_PROJ_TASK_STRUC_PUB.PROCESS_WBS_UPDATES_CONC_WRP(p_calling_context => 'CONC_UPDATE'
,p_project_id => l_project_id
,p_structure_version_id => l_structure_version_id
,x_return_status => l_return_status
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data ) ;
if (p_update_mode = 'PA_UPD_TASK_ATTR' and p_pass_entire_structure = 'N') then
--bug 2732895 --update_project
IF (( G_WP_STR_EXISTS = 'Y' AND G_IS_WP_SEPARATE_FROM_FN = 'N' ) OR
( G_WP_STR_EXISTS = 'Y' AND G_IS_WP_SEPARATE_FROM_FN = 'Y' AND p_structure_in.structure_type = 'WORKPLAN' ))
AND (p_pm_product_code <> 'WORKPLAN')
--bug 2871308: added condition to by-pass when calling from publish api
--should not call if new task is added to FINANCIAL structure version
THEN
PA_PROJ_TASK_STRUC_PUB.recalc_task_weightings(
p_tasks_in => l_tasks_out
,p_task_version_id => null
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data
,x_return_status => l_return_status
);
IF l_update_start_date_flag = 'Y'
--AND p_structure_in.structure_type = 'FINANCIAL' --bug 2729851 --bug 2738747
AND l_structure_type = 'FINANCIAL' --bug 2729851 --bug 2738747
THEN
OPEN l_min_task_start_date_csr (l_project_id);
IF l_update_end_date_flag = 'Y'
--AND p_structure_in.structure_type = 'FINANCIAL' --bug 2729851 --bug 2738747
AND l_structure_type = 'FINANCIAL' --bug 2729851 --bug 2738747
THEN
OPEN l_max_task_end_date_csr (l_project_id);
/* The FND_AS_UNEXPECTED_ERROR message is being reported from UPDATE_PROJECT API and modified
the following. Replaced the message name from PA_PR_INVALID_COMPLETION_DATE with
PA_PR_INVALID_COMP_DATE (this is limited to 30 characters after appended with '_AMG') and
p_resize flag from 'Y' in the procedure call pa_interface_utils_pub.map_new_amg_msg to 'N'.
Bug#1916735.
*/
pa_interface_utils_pub.map_new_amg_msg
( p_old_message_code => 'PA_PR_INVALID_COMP_DATE'
,p_msg_attribute => 'CHANGE'
,p_resize_flag => 'N'
,p_msg_context => 'PROJ'
,p_attribute1 => l_project_rec.segment1
,p_attribute2 => ''
,p_attribute3 => ''
,p_attribute4 => ''
,p_attribute5 => '');
Update_project */
IF p_key_members(i).start_date IS NULL OR
p_key_members(i).start_date = PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE then
IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
THEN
pa_utils.add_message
( p_app_short_name => 'PA'-- new message for bug 3326468
,p_msg_name => 'PA_KEYMBR_NO_START_DATE'
,p_token1 => 'PROJECT_NAME'
,p_value1 => l_project_rec.segment1
,p_token2 => 'PERSON_ID'
,p_value2 => p_key_members(i).person_id
,p_token3 => 'ROLE_TYPE'
,p_value3 => p_key_members(i).project_role_type
);
UPDATE PA_PROJECT_PLAYERS SET
START_DATE_ACTIVE = l_temp_start_date,
END_DATE_ACTIVE = l_temp_end_date
WHERE ROWID = l_key_members_rec.rowid;
SELECT COMPLETION_DATE
INTO v_completion_date
FROM pa_projects p
WHERE p.project_id = l_key_members_rec.project_id;
PA_PROJECT_PARTIES_PUB.UPDATE_PROJECT_PARTY(
p_api_version => 1.0 -- p_api_version
, p_init_msg_list => FND_API.G_TRUE -- p_init_msg_list
, p_commit => FND_API.G_FALSE -- p_commit
, p_validate_only => FND_API.G_FALSE -- p_validate_only
, p_validation_level => FND_API.G_VALID_LEVEL_FULL -- p_validation_level
, p_debug_mode => 'N' -- p_debug_mode
, p_object_id => l_key_members_rec.project_id -- p_object_id
, p_OBJECT_TYPE => 'PA_PROJECTS' -- p_OBJECT_TYPE
, p_project_role_id => NULL -------Bug 2100142l_key_members_rec.project_id -- p_project_role_id
, p_project_role_type => l_key_members_rec.project_role_type -- p_project_role_type
, p_resource_type_id => l_key_members_rec.resource_type_id -- p_resource_type_id
, p_resource_source_id => l_key_members_rec.person_id -- p_resource_source_id
, p_resource_name => v_null_char -- p_resource_name
, p_start_date_active => l_temp_start_date -- p_start_date_active
, p_scheduled_flag => 'N' -- p_scheduled_flag
, p_record_version_number => l_key_members_rec.record_version_number -- p_record_version_number
, p_calling_module => 'FORM' -- p_calling_module
, p_project_id => l_key_members_rec.project_id -- p_project_id
, p_project_end_date => v_completion_date -- p_project_end_date
, p_project_party_id => l_key_members_rec.project_party_id -- p_project_party_id
, p_end_date_active => l_temp_end_date -- p_end_date_active
, x_wf_type => l_wf_type
, x_wf_item_type => l_wf_item_type
, x_wf_process => l_wf_process
, x_assignment_id => l_assignment_id
, x_return_status => x_return_status -- x_return_status
, x_msg_count => x_msg_count -- x_msg_count
, x_msg_data => x_msg_data -- x_msg_data
);
SELECT COMPLETION_DATE
INTO v_completion_date
FROM pa_projects p
WHERE p.project_id = l_org_roles_rec.project_id;
PA_PROJECT_PARTIES_PUB.UPDATE_PROJECT_PARTY(
p_api_version => 1.0 -- p_api_version
, p_init_msg_list => FND_API.G_TRUE -- p_init_msg_list
, p_commit => FND_API.G_FALSE -- p_commit
, p_validate_only => FND_API.G_FALSE -- p_validate_only
, p_validation_level => FND_API.G_VALID_LEVEL_FULL -- p_validation_level
, p_debug_mode => 'N' -- p_debug_mode
, p_object_id => l_org_roles_rec.project_id -- p_object_id
, p_OBJECT_TYPE => 'PA_PROJECTS' -- p_OBJECT_TYPE
, p_project_role_id => NULL -------Bug 2100142l_key_members_rec.project_id -- p_project_role_id
, p_project_role_type => l_org_roles_rec.project_role_type -- p_project_role_type
, p_resource_type_id => l_org_roles_rec.resource_type_id -- p_resource_type_id
, p_resource_source_id => l_org_roles_rec.resource_source_id -- p_resource_source_id
, p_resource_name => v_null_char -- p_resource_name
, p_start_date_active => l_temp_start_date -- p_start_date_active
, p_scheduled_flag => 'N' -- p_scheduled_flag
, p_record_version_number => l_org_roles_rec.record_version_number -- p_record_version_number
, p_calling_module => 'FORM' -- p_calling_module
, p_project_id => l_org_roles_rec.project_id -- p_project_id
, p_project_end_date => v_completion_date -- p_project_end_date
, p_project_party_id => l_org_roles_rec.project_party_id -- p_project_party_id
, p_end_date_active => l_temp_end_date -- p_end_date_active
, x_wf_type => l_wf_type
, x_wf_item_type => l_wf_item_type
, x_wf_process => l_wf_process
, x_assignment_id => l_assignment_id
, x_return_status => x_return_status -- x_return_status
, x_msg_count => x_msg_count -- x_msg_count
, x_msg_data => x_msg_data -- x_msg_data
);
class_code_tbl.delete();
DELETE FROM pa_project_classes
WHERE project_id = l_project_id
AND class_category = p_class_categories(i).class_category
AND class_code = p_class_categories(i).class_code;
PA_USER_ATTR_PUB.DELETE_USER_ATTRS_DATA (
p_validate_only => FND_API.G_FALSE
,p_project_id => l_project_id
,p_old_classification_id => l_old_class_code_id
,p_new_classification_id => l_new_class_code_id
,p_classification_type => 'CLASS_CODE'
,x_return_status => l_return_status
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data );
DELETE FROM pa_project_classes
WHERE project_id = l_project_id
AND class_category = p_class_categories(i).class_category
AND class_code = p_class_categories(i).class_code;
DELETE FROM pa_project_classes
WHERE project_id = l_project_id
AND class_category = p_class_categories(i).class_category
AND class_code = l_class_code;
/*Customer Account Relationship Changes update bill to and Ship to customer ID*/
--bug 3716805
----dbms_output.put_line('Value OF p_project_in.bill_to_customer_id'||p_project_in.bill_to_customer_id);
UPDATE pa_project_customers
SET
project_relationship_code = p_project_in.project_relationship_code
WHERE
customer_id = p_project_in.customer_id AND
project_id = l_project_id;
/* Update the project customer information */
----dbms_output.put_line('before update ');
Update Pa_project_customers
Set bill_to_customer_id=l_bill_to_customer_id,
ship_to_customer_id=l_ship_to_customer_id,
Bill_To_Address_Id =l_bill_to_address_id,
Ship_to_address_id =l_ship_to_address_id
where project_id=l_project_id
and customer_id=p_project_in.customer_id;
Delete pa_project_contacts
where Project_Id=l_project_id
and customer_id=p_project_in.customer_id
and Project_Contact_Type_Code='BILLING';
Delete pa_project_contacts
where Project_Id=l_project_id
and customer_id=p_project_in.customer_id
and Project_Contact_Type_Code='SHIPPING';
, p_contr_update_cust => null
, x_return_status => l_return_status
, x_msg_count => l_msg_count
, x_msg_data => l_msg_data );
SELECT customer_id
FROM pa_project_customers
WHERE project_id = l_project_id
AND default_top_task_cust_flag = 'Y' ;
, p_contr_update_cust => hghst_ctr_cust_id
, x_return_status => l_return_status
, x_msg_count => l_msg_count
, x_msg_data => l_msg_data );
/*Customer Account Relationship Changes update bill to and Ship to customer ID*/
--bug 3716805
/* Commented for tracking Bug
If (p_project_in.bill_to_customer_id IS NOT NULL AND p_project_in.bill_to_customer_id <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM)
OR (p_project_in.ship_to_customer_id IS NOT NULL AND p_project_in.ship_to_customer_id <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM)
--bug 3716805
THEN
If p_project_in.customer_id IS NULL OR p_project_in.customer_id = PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM THEN
IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
THEN
pa_interface_utils_pub.map_new_amg_msg
( p_old_message_code => 'PA_CUSTOMER_ID_IS_NULL'
,p_msg_attribute => 'CHANGE'
,p_resize_flag => 'N'
,p_msg_context => 'PROJ'
,p_attribute1 => l_project_in_rec.pm_project_reference
,p_attribute2 => ''
,p_attribute3 => ''
,p_attribute4 => ''
,p_attribute5 => '');
/* Update the project customer information */
/* The code below is also redundant for a new customer
Update Pa_project_customers
Set bill_to_customer_id=l_bill_to_customer_id,
ship_to_customer_id=l_ship_to_customer_id,
Bill_To_Address_Id =l_bill_to_address_id,
Ship_to_address_id =l_ship_to_address_id
where project_id=l_project_id
and customer_id=p_project_in.customer_id;
Delete pa_project_contacts
where Project_Id=l_project_id
and customer_id=p_project_in.customer_id
and Project_Contact_Type_Code='BILLING';
Delete pa_project_contacts
where Project_Id=l_project_id
and customer_id=p_project_in.customer_id
and Project_Contact_Type_Code='SHIPPING';
select conversion_type into l_INV_RATE_TYPE
from pa_conversion_types_v
where user_conversion_type=l_USER_INV_RATE_TYPE;
Select pt.CC_PRVDR_FLAG,pa.multi_currency_billing_flag
into l_cc_prvdr_flag,l_mcb_flag
From pa_project_types pt, pa_projects pa
where pa.project_type=pt.project_type AND
pt.org_id = pa.org_id and
pa.project_id=l_project_id;
/* Update the project customer information */
Update Pa_project_customers
Set bill_to_customer_id=l_bill_to_customer_id,
ship_to_customer_id=l_ship_to_customer_id,
Bill_To_Address_Id =l_bill_to_address_id,
Ship_to_address_id =l_ship_to_address_id
where project_id=l_project_id
and customer_id=p_customers_in(i).customer_id;
Delete pa_project_contacts
where Project_Id=l_project_id
and customer_id=p_customers_in(i).customer_id
and Project_Contact_Type_Code='BILLING';
Delete pa_project_contacts
where Project_Id=l_project_id
and customer_id=p_customers_in(i).customer_id
and Project_Contact_Type_Code='SHIPPING';
select conversion_type into l_INV_RATE_TYPE
from pa_conversion_types_v
where user_conversion_type=l_USER_INV_RATE_TYPE;
Select pt.CC_PRVDR_FLAG,pa.multi_currency_billing_flag
into l_cc_prvdr_flag,l_mcb_flag
From pa_project_types pt, pa_projects pa
where pa.project_type=pt.project_type
AND pa.org_id = pt.org_id
and pa.project_id=l_project_id;
/* adding call to PA_CUSTOMERS_CONTACTS_PUB.UPDATE_PROJECT_CUSTOMER */
PA_CUSTOMERS_CONTACTS_PUB.UPDATE_PROJECT_CUSTOMER(
P_API_VERSION => 1.0
, P_INIT_MSG_LIST => 'T'
, P_COMMIT => 'F'
, P_VALIDATE_ONLY => 'F'
, P_VALIDATION_LEVEL => 100
, P_CALLING_MODULE => 'AMG'
, P_DEBUG_MODE => 'N'
, P_MAX_MSG_COUNT => 100
, P_PROJECT_ID => l_project_id
, P_CUSTOMER_ID => p_customers_in(i).customer_id
/* , P_PROJECT_RELATIONSHIP_CODE=> p_customers_in(i).PROJECT_RELATIONSHIP_CODE
, P_CUSTOMER_BILL_SPLIT => p_customers_in(i).CUSTOMER_BILL_SPLIT */
, P_PROJECT_RELATIONSHIP_CODE => l_PROJECT_RELATIONSHIP_CODE
, P_CUSTOMER_BILL_SPLIT => l_CUSTOMER_BILL_SPLIT
, P_BILL_TO_CUSTOMER_ID => l_bill_to_customer_id
, P_SHIP_TO_CUSTOMER_ID => l_ship_to_customer_id
, P_BILL_TO_ADDRESS_ID => l_bill_to_address_id
, P_SHIP_TO_ADDRESS_ID => l_ship_to_address_id
,p_bill_to_customer_name => NULL
,p_bill_to_customer_number => NULL
,p_ship_to_customer_name => NULL
,p_ship_to_customer_number => NULL
, P_BILL_SITE_NAME => NULL
, P_WORK_SITE_NAME => NULL
, P_INV_CURRENCY_CODE => l_INV_CURRENCY_CODE --bug 5554475 l_project_rec.PROJECT_CURRENCY_CODE
, P_INV_RATE_TYPE => l_INV_RATE_TYPE --bug 5554475
, P_INV_RATE_DATE => l_INV_RATE_DATE --bug 5554475
, P_INV_EXCHANGE_RATE => l_INV_EXCHANGE_RATE --bug 5554475
, P_ALLOW_USER_RATE_TYPE_FLAG=> l_ALLOW_INV_USER_RATE_FLAG --bug 5554475
, P_RECEIVER_TASK_ID => l_receiver_task_id -- Added for 4153629
, P_BILL_ANOTHER_PROJECT_FLAG => l_bill_another_project_flag -- Added for 4153629
, P_RECORD_VERSION_NUMBER => Cur_Customer_rec.RECORD_VERSION_NUMBER
, X_RETURN_STATUS => x_return_status
, X_MSG_COUNT => x_msg_count
, X_MSG_DATA => x_msg_data
--Added for FP.M changes to project billing setup. Tracking bug 3279981
, p_default_top_task_cust_flag => l_default_top_task_cust_flag --'N' bug 5554578
--, p_en_top_task_cust_flag => 'N' This flag is mandatory only if calling context id forms
);
There are no attrbutes that can be updated in a contact. Hence, the call below will suffice.
It will check if the customer already exists, then Insert into pa_project_customers will
be skipped and data will only be inserted into pa_project_contacts */
pa_customer_info.Create_Customer_Contacts
( X_Project_Id => l_project_id,
X_Customer_Id => p_customers_in(i).customer_id,
X_Project_Relation_Code => p_customers_in(i).project_relationship_code,
X_Customer_Bill_Split => p_customers_in(i).customer_bill_split,
X_Bill_To_Customer_Id => l_bill_to_customer_id,
X_Ship_To_Customer_Id => l_ship_to_customer_id,
X_Bill_To_Address_Id => l_bill_to_address_id,
X_Ship_To_Address_Id => l_ship_to_address_id,
X_Bill_To_Contact_Id => l_bill_to_contact_id,
X_Ship_To_Contact_Id => l_ship_to_contact_id,
X_Inv_Currency_Code => l_INV_CURRENCY_CODE, -- l_project_rec.PROJECT_CURRENCY_CODE bug 5554475
X_Inv_Rate_Type => l_INV_RATE_TYPE, --bug 5554475
X_Inv_Rate_Date => l_INV_RATE_DATE, --bug 5554475
X_Inv_Exchange_Rate => l_INV_EXCHANGE_RATE, --bug 5554475
X_Allow_Inv_Rate_Type_Fg => l_ALLOW_INV_USER_RATE_FLAG, --bug 5554475
X_Bill_Another_Project_Fg => l_bill_another_project_flag ,-- Added for 4153629,
X_Receiver_Task_Id => l_receiver_task_id, --Added for 4153629
X_User => FND_GLOBAL.USER_ID,
X_Login => FND_GLOBAL.LOGIN_ID,
X_Err_Code => l_err_code,
X_Err_Stage => l_err_stage,
X_Err_Stack => l_err_stack
);
p_calling_context => 'UPDATE_PROJECT',
p_project_id => l_project_id,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
x_return_status => x_return_status
);
, p_contr_update_cust => null
, x_return_status => l_return_status
, x_msg_count => l_msg_count
, x_msg_data => l_msg_data );
SELECT customer_id
FROM pa_project_customers
WHERE project_id = l_project_id
AND default_top_task_cust_flag = 'Y' ;
, p_contr_update_cust => hghst_ctr_cust_id
, x_return_status => l_return_status
, x_msg_count => l_msg_count
, x_msg_data => l_msg_data );
UPDATE pa_project_customers SET customer_bill_split = 100
WHERE customer_id = hghst_ctr_cust_id AND project_id = l_project_id;
UPDATE pa_project_customers SET customer_bill_split = 0
WHERE customer_id <> hghst_ctr_cust_id AND project_id = l_project_id;
UPDATE pa_project_customers SET customer_bill_split = null
WHERE project_id = l_project_id;
UPDATE pa_project_customers SET customer_bill_split = null
WHERE project_id = l_project_id;
(x_calling_module => 'UPDATE_PROJECT'
,X_project_id => l_project_rec.project_id
,X_old_proj_status_code => l_project_rec.project_status_code
,X_new_proj_status_code => p_project_in.project_status_code
,X_project_type => l_project_rec.project_type
,X_project_start_date => l_project_rec.start_date
,X_project_end_date => l_project_rec.completion_date
,X_public_sector_flag => l_project_rec.public_sector_flag
,X_attribute_category => l_project_rec.attribute_category
,X_attribute1 => l_project_rec.attribute1
,X_attribute2 => l_project_rec.attribute2
,X_attribute3 => l_project_rec.attribute3
,X_attribute4 => l_project_rec.attribute4
,X_attribute5 => l_project_rec.attribute5
,X_attribute6 => l_project_rec.attribute6
,X_attribute7 => l_project_rec.attribute7
,X_attribute8 => l_project_rec.attribute8
,X_attribute9 => l_project_rec.attribute9
,X_attribute10 => l_project_rec.attribute10
,X_pm_product_code => l_project_rec.pm_product_code
,x_init_msg => 'N'
,x_verify_ok_flag => l_verify_ok_flag
,x_wf_enabled_flag => l_wf_enabled_flag
,X_err_stage => l_err_stage
,X_err_stack => l_err_stack
,x_err_msg_count => l_err_msg_count
,x_warnings_only_flag => l_warnings_only_flag );
l_statement := 'UPDATE PA_PROJECTS SET ';
' LAST_UPDATE_DATE = '||''''||
SYSDATE||''''||',';
' LAST_UPDATE_DATE = SYSDATE'||',';
' LAST_UPDATED_BY = '||G_USER_ID||',';
' LAST_UPDATE_LOGIN = '||G_LOGIN_ID;
l_update_structure_version_id IS NOT NULL AND
l_update_structure_version_id <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
THEN
pa_proj_task_struc_pub.delete_intra_dependency(
p_element_version_id => l_update_structure_version_id
,x_return_status => l_return_status );
l_d_task_ver_id := PA_PROJ_ELEMENTS_UTILS.GET_TASK_VERSION_ID(p_structure_version_id => l_update_structure_version_id
,p_task_id => l_d_task_id);
pa_project_pub.update_mapping
(
p_api_version => p_api_version_number
, p_init_msg_list => FND_API.G_FALSE
, p_commit => FND_API.G_FALSE--bug 3766967
, p_debug_mode => FND_API.G_TRUE
, p_project_id => l_project_id
, p_proj_source_reference => null
, p_wkp_structure_version_id => p_structure_in.structure_version_id
--, p_wkp_task_id => l_tasks_out(i).pa_task_id--Since the tasks are already created , this will have task Ids
, p_wkp_task_reference => l_task_in_rec.pm_task_reference
, px_mapped_task_id => l_task_in_rec.mapped_task_id------------|One of theses two should be passed
, p_mapped_task_reference => l_task_in_rec.mapped_task_reference ----|
, x_return_status => l_return_status
, x_msg_count => l_msg_count
, x_msg_data => l_msg_data
);
l_dlvr_dml_action := G_UPDATE_MODE;
l_dlvr_dml_action := G_UPDATE_MODE;
ELSE -- l_dlvr_dml_action = G_UPDATE_MODE
update_deliverable
(
p_api_version => p_api_version_number
, p_init_msg_list => p_init_msg_list
-- 3735792, passing p_commit as false to next level api calls
, p_commit => FND_API.G_FALSE
, p_debug_mode => FND_API.G_TRUE
, x_return_status => l_return_status
, p_deliverable_name => p_deliverables_in(i).deliverable_name
, p_deliverable_short_name => p_deliverables_in(i).deliverable_short_name
, p_deliverable_type_id => p_deliverables_in(i).deliverable_type_id
, p_deliverable_owner_id => p_deliverables_in(i).deliverable_owner_id
, p_description => p_deliverables_in(i).description
, p_status_code => p_deliverables_in(i).status_code
, p_due_date => p_deliverables_in(i).due_date
, p_completion_date => p_deliverables_in(i).completion_date
, p_progress_weight => p_deliverables_in(i).progress_weight
, px_deliverable_id => l_deliverable_id
, p_pm_deliverable_reference=> p_deliverables_in(i).pm_deliverable_reference
-- for bug# 3729250
-- , p_carrying_out_org_id => p_deliverables_in(i).carrying_out_org_id
, p_task_id => p_deliverables_in(i).task_id
, p_task_source_reference => p_deliverables_in(i).task_source_reference
, p_project_id => l_project_id
, p_proj_source_reference => null
-- 3435905 changed from p_deliverable_actions_out to G_deliverable_actions_out_tbl
, p_action_in_tbl => p_deliverable_actions_in
-- , x_action_out_tbl => p_deliverable_actions_out
, x_action_out_tbl => G_deliverable_actions_out_tbl
, p_item_id => p_deliverables_in(i).item_id -- 3630378 added parameter
, p_inventory_org_id => p_deliverables_in(i).inventory_org_id
, p_quantity => p_deliverables_in(i).quantity
, p_uom_code => p_deliverables_in(i).uom_code
-- for bug# 3729250
-- , p_item_description => p_deliverables_in(i).item_description
, p_unit_price => p_deliverables_in(i).unit_price
, p_unit_number => p_deliverables_in(i).unit_number
, p_currency_code => p_deliverables_in(i).currency_code
, p_pm_source_code => p_pm_product_code /* Bug no. 3651113 */
, x_msg_count => l_msg_count
, x_msg_data => l_msg_data
);
IF p_update_mode = 'PA_UPD_WBS_ATTR' AND l_prev_locked_status IS NOT NULL AND l_prev_locked_status = 'N'
and (p_pm_product_code <> 'WORKPLAN') -- Bug # 4758888.
AND p_structure_in.structure_version_id IS NOT NULL
AND p_structure_in.structure_version_id <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
THEN
IF l_debug_mode = 'Y' THEN
pa_debug.g_err_stage := 'Before calling pa_project_structure_utils.lock_unlock_wp_str for UNLOCKING'||
'p_project_in.pa_project_id='||p_project_in.pa_project_id||
'-l_structure_version_id='||l_structure_version_id;
G_TASK_STR_UPDATE_MODE := null;
pa_project_check_pvt.G_task_num_updated_index_tbl.delete;
ROLLBACK TO Update_project_pub;
if ((p_update_mode = 'PA_UPD_WBS_ATTR') and (l_prev_locked_status = 'N') and (p_pm_product_code <> 'WORKPLAN')) -- Bug # 4758888.
AND p_structure_in.structure_version_id IS NOT NULL
AND p_structure_in.structure_version_id <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
then
pa_project_structure_utils.lock_unlock_wp_str_autonomous
(p_project_id => p_project_in.pa_project_id
, p_structure_version_id => p_structure_in.structure_version_id
, p_lock_status_code => 'UNLOCKED'
,p_calling_module => 'PA_UPD_WBS_ATTR_UN' /*Bug#6414944*/
,x_return_status => l_x_return_status
,x_msg_count => l_x_msg_count
,x_msg_data => l_x_msg_data);
G_TASK_STR_UPDATE_MODE := null;
pa_project_check_pvt.G_task_num_updated_index_tbl.delete;
ROLLBACK TO Update_project_pub;
if ((p_update_mode = 'PA_UPD_WBS_ATTR') and (l_prev_locked_status = 'N') and (p_pm_product_code <> 'WORKPLAN')) -- Bug # 4758888.
AND p_structure_in.structure_version_id IS NOT NULL
AND p_structure_in.structure_version_id <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
then
pa_project_structure_utils.lock_unlock_wp_str_autonomous
(p_project_id => p_project_in.pa_project_id
, p_structure_version_id => p_structure_in.structure_version_id
, p_lock_status_code => 'UNLOCKED'
,p_calling_module => 'PA_UPD_WBS_ATTR'
,x_return_status => l_x_return_status
,x_msg_count => l_x_msg_count
,x_msg_data => l_x_msg_data);
G_TASK_STR_UPDATE_MODE := null;
ROLLBACK TO update_project_pub;
if ((p_update_mode = 'PA_UPD_WBS_ATTR') and (l_prev_locked_status = 'N') and (p_pm_product_code <> 'WORKPLAN')) -- Bug # 4758888.
AND p_structure_in.structure_version_id IS NOT NULL
AND p_structure_in.structure_version_id <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
then
pa_project_structure_utils.lock_unlock_wp_str_autonomous
(p_project_id => p_project_in.pa_project_id
, p_structure_version_id => p_structure_in.structure_version_id
, p_lock_status_code => 'UNLOCKED'
,p_calling_module => 'PA_UPD_WBS_ATTR_UN' /*Bug#6414944*/
,x_return_status => l_x_return_status
,x_msg_count => l_x_msg_count
,x_msg_data => l_x_msg_data);
pa_project_check_pvt.G_task_num_updated_index_tbl.delete;
G_TASK_STR_UPDATE_MODE := null;
ROLLBACK TO update_project_pub;
if ((p_update_mode = 'PA_UPD_WBS_ATTR') and (l_prev_locked_status = 'N') and (p_pm_product_code <> 'WORKPLAN')) -- Bug # 4758888.
AND p_structure_in.structure_version_id IS NOT NULL
AND p_structure_in.structure_version_id <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
then
pa_project_structure_utils.lock_unlock_wp_str_autonomous
(p_project_id => p_project_in.pa_project_id
, p_structure_version_id => p_structure_in.structure_version_id
, p_lock_status_code => 'UNLOCKED'
,p_calling_module => 'PA_UPD_WBS_ATTR_UN' /*Bug#6414944*/
,x_return_status => l_x_return_status
,x_msg_count => l_x_msg_count
,x_msg_data => l_x_msg_data);
pa_project_check_pvt.G_task_num_updated_index_tbl.delete;
G_TASK_STR_UPDATE_MODE := null;
ROLLBACK TO Update_project_pub;
if ((p_update_mode = 'PA_UPD_WBS_ATTR') and (l_prev_locked_status = 'N') and (p_pm_product_code <> 'WORKPLAN')) -- Bug # 4758888.
AND p_structure_in.structure_version_id IS NOT NULL
AND p_structure_in.structure_version_id <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
then
pa_project_structure_utils.lock_unlock_wp_str_autonomous
(p_project_id => p_project_in.pa_project_id
, p_structure_version_id => p_structure_in.structure_version_id
, p_lock_status_code => 'UNLOCKED'
,p_calling_module => 'PA_UPD_WBS_ATTR_UN' /*Bug#6414944*/
,x_return_status => l_x_return_status
,x_msg_count => l_x_msg_count
,x_msg_data => l_x_msg_data);
pa_project_check_pvt.G_task_num_updated_index_tbl.delete;
END Update_project;
PROCEDURE update_task
( p_api_version_number IN NUMBER,
p_commit IN VARCHAR2 := FND_API.G_FALSE,
p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
p_msg_count OUT NOCOPY NUMBER, /*Added the nocopy check for 4537865 */
p_msg_data OUT NOCOPY VARCHAR2, /*Added the nocopy check for 4537865 */
p_return_status OUT NOCOPY VARCHAR2, /*Added the nocopy check for 4537865 */
--Project Structures
p_ref_task_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
--Project Structures
p_pm_product_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_pm_project_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_pa_project_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
p_pm_task_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_task_number IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_pa_task_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
p_task_name IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_long_task_name IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_task_description IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_task_start_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
p_task_completion_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
p_pm_parent_task_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_pa_parent_task_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
p_address_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
p_carrying_out_organization_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
p_service_type_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_task_manager_person_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
p_billable_flag IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_chargeable_flag IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_ready_to_bill_flag IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_ready_to_distribute_flag IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_limit_to_txn_controls_flag IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_labor_bill_rate_org_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
p_labor_std_bill_rate_schdl IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_labor_schedule_fixed_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
p_labor_schedule_discount IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
p_nl_bill_rate_org_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
p_nl_std_bill_rate_schdl IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_nl_schedule_fixed_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
p_nl_schedule_discount IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
p_labor_cost_multiplier_name IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_cost_ind_rate_sch_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
p_rev_ind_rate_sch_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
p_inv_ind_rate_sch_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
p_cost_ind_sch_fixed_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
p_rev_ind_sch_fixed_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
p_inv_ind_sch_fixed_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
p_labor_sch_type IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_nl_sch_type IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_actual_start_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
p_actual_finish_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
p_early_start_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
p_early_finish_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
p_late_start_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
p_late_finish_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
p_scheduled_start_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
p_scheduled_finish_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
p_tasks_dff IN VARCHAR2 := 'N', --bug 6153503
p_attribute_category IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_attribute1 IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_attribute2 IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_attribute3 IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_attribute4 IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_attribute5 IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_attribute6 IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_attribute7 IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_attribute8 IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_attribute9 IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_attribute10 IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
--bug 6153503
p_attribute11 IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_attribute12 IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_attribute13 IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_attribute14 IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_attribute15 IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_allow_cross_charge_flag IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_project_rate_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
p_project_rate_type IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_cc_process_labor_flag IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_labor_tp_schedule_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
p_labor_tp_fixed_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
p_cc_process_nl_flag IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_nl_tp_schedule_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
p_nl_tp_fixed_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
p_receive_project_invoice_flag IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_work_type_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
p_emp_bill_rate_schedule_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
p_job_bill_rate_schedule_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
--Sakthi MCB
p_non_lab_std_bill_rt_sch_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
p_taskfunc_cost_rate_type IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_taskfunc_cost_rate_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
--Sakthi MCB
--Project Structures
p_structure_type IN VARCHAR2 := 'FINANCIAL',
p_structure_version_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
P_OBLIGATION_START_DATE IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
P_OBLIGATION_FINISH_DATE IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
P_ESTIMATED_START_DATE IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
P_ESTIMATED_FINISH_DATE IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
P_BASELINE_START_DATE IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
P_BASELINE_FINISH_DATE IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
P_CLOSED_DATE IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
P_WQ_UOM_CODE IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
P_WQ_ITEM_CODE IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
P_STATUS_CODE IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
P_WF_STATUS_CODE IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
P_PM_SOURCE_CODE IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
P_PRIORITY_CODE IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
P_MILESTONE_FLAG IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
P_CRITICAL_FLAG IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
P_INC_PROJ_PROGRESS_FLAG IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
P_LINK_TASK_FLAG IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
P_CALENDAR_ID IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
P_PLANNED_EFFORT IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
P_DURATION IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
P_PLANNED_WORK_QUANTITY IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
P_TASK_TYPE IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
--Project Structures
p_labor_disc_reason_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_non_labor_disc_reason_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
--PA L changes -- bug 2872708 --update_task
p_retirement_cost_flag VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_cint_eligible_flag VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR,
p_cint_stop_date DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE,
--end PA L changes -- bug 2872708
p_out_pa_task_id OUT NOCOPY NUMBER, /*Added the nocopy check for 4537865 */
p_out_pm_task_reference OUT NOCOPY VARCHAR2, /*Added the nocopy check for 4537865 */
p_update_task_structure IN VARCHAR2,
-- PA L Changes 3010538
p_process_mode IN VARCHAR2 := 'ONLINE'
-- FP-M Bug # 3301192
,p_pred_string VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
-- ,p_pred_delimiter VARCHAR2 DEFAULT ','
,p_pred_delimiter VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
-- FP M changes begin (venkat)
,p_base_percent_comp_deriv_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,p_sch_tool_tsk_type_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,p_constraint_type_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,p_constraint_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
,p_free_slack IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
,p_total_slack IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
,p_effort_driven_flag IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,p_level_assignments_flag IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,p_invoice_method IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,p_customer_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
,p_gen_etc_source_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
-- FP M changes end (venkat)
-- FP M changes start (Mapping )
,p_financial_task_flag IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,p_mapped_task_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
,p_mapped_task_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
-- FP M changes end (Mapping )
,p_deliverable IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
-- (Begin venkat) Bug #3450684 --------------------------------------------------------------------
,p_ext_act_duration IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM --Bug no 3450684
,p_ext_remain_duration IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM --Bug no 3450684
,p_ext_sch_duration IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM --Bug no 3450684
-- (End venkat) Bug #3450684 --------------------------------------------------------------------
-- Progress Management Changes. Bug # 3420093.
,p_etc_effort IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
,p_percent_complete IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
-- Progress Management Changes. Bug # 3420093.
,p_is_wp_seperate_from_fn IN VARCHAR2 := 'X' -- Added for bug#3451073
,p_calling_api IN VARCHAR2 := 'UPDATE_TASK' -- Added for Bug # 4199694
,p_op_validate_flag IN VARCHAR2 := 'Y'
)
IS
l_return_status VARCHAR2(1);
l_api_name CONSTANT VARCHAR2(30):= 'update_task';
l_update_wbs_flag VARCHAR2(1);
SELECT enable_top_task_customer_flag, enable_top_task_inv_mth_flag,
revenue_accrual_method, invoice_method, project_type
FROM pa_projects_all
WHERE project_id = c_project_id;
SELECT 'Y'
FROM pa_project_customers
WHERE project_id = c_project_id
AND customer_id = c_customer_id ;
SELECT customer_id
FROM pa_project_customers
WHERE project_id = c_project_id
AND default_top_task_cust_flag = 'Y';
SELECT customer_name from PA_CUSTOMERS_V
WHERE customer_id = l_customer_id;
SELECT customer_id FROM pa_tasks
WHERE task_id=l_task_id;
SELECT segment1
FROM pa_projects p
WHERE p.project_id = l_project_id ; --Bug#3747312 p_pa_project_id;
SELECT c.element_version_id
FROM pa_proj_element_versions c
, pa_structure_types a
, pa_proj_structure_types b
, pa_proj_elem_ver_structure d
WHERE c.project_id = l_project_id
AND a.structure_type_id = b.structure_type_id
AND b.proj_element_id = c.proj_element_id
AND a.structure_type = l_structure_type
AND d.project_id = c.project_id
AND d.element_version_id = c.element_version_id
AND d.status_code = 'STRUCTURE_WORKING';
SELECT c.element_version_id
FROM pa_proj_element_versions c
, pa_structure_types a
, pa_proj_structure_types b
, pa_proj_elem_ver_structure d
WHERE c.project_id = l_project_id
AND a.structure_type_id = b.structure_type_id
AND b.proj_element_id = c.proj_element_id
AND a.structure_type = l_structure_type
AND d.project_id = c.project_id
AND d.element_version_id = c.element_version_id;
SELECT FINANCIAL_TASK_FLAG
from pa_proj_element_versions
where project_id = l_project_id
and proj_element_id = l_proj_element_id
and parent_structure_version_id = l_parent_str_ver_id;
l_update_pa_tasks VARCHAR2(1);
IS select task_id, start_date, completion_date, parent_task_id from pa_tasks --Fix for 7427388
where project_id = l_project_id
and completion_date is null
start with parent_task_id = l_task_id
connect by parent_task_id = prior task_id
and project_id = l_project_id;
SAVEPOINT update_task_pub;
if p_calling_api <> 'UPDATE_PROJECT' then
G_OP_VALIDATE_FLAG := p_op_validate_flag;
NVL( l_is_wp_separate_from_fn,'N') = 'N' --bug 2876703 update_task
THEN
IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
THEN
pa_interface_utils_pub.map_new_amg_msg
( p_old_message_code => 'PA_PS_WP_NOT_SEP_FN'
,p_msg_attribute => 'CHANGE'
,p_resize_flag => 'N'
,p_msg_context => 'GENERAL'
,p_attribute1 => ''
,p_attribute2 => ''
,p_attribute3 => ''
,p_attribute4 => ''
,p_attribute5 => '');
l_update_pa_tasks := 'Y'; --BUG 4106154, rtarway
AND PA_BILLING_CORE.Update_Top_Task_Invoice_Method( l_project_id, l_pa_task_id ) = 'Y' THEN
IF pa_project_pvt.check_valid_dist_rule
( l_proj_type,
l_proj_revenue_acc_method||'/'||p_invoice_method,
l_proj_top_task_inv_mth_flag ) = 'N' THEN
IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
pa_interface_utils_pub.map_new_amg_msg
( p_old_message_code => 'PA_INV_TASK_INVOICE_METHOD' -- for bug# 4156036
,p_msg_attribute => 'CHANGE'
,p_resize_flag => 'N'
,p_msg_context => 'TASK'
,p_attribute1 => p_invoice_method
,p_attribute2 => ''
,p_attribute3 => ''
,p_attribute4 => ''
,p_attribute5 => '');
SELECT invoice_method
INTO l_invoice_method
FROM pa_tasks
WHERE project_id = l_project_id
and task_id = l_pa_task_id
and l_invoice_method is not null;
IF PA_BILLING_CORE.Update_Top_Task_Customer( l_project_id, l_pa_task_id ) = 'Y' THEN -- If condition to check Funding exits for task or not
OPEN cur_check_proj_cust_exist(l_project_id,p_customer_id);
l_customer_id:=NULL; -- NULL is passed for customer_id so that in Update_one_task it will not be Defaulted.
/*UPDATE PA_TASKS
SET invoice_method = l_invoice_method
,customer_id = l_customer_id
WHERE project_id = l_project_id
AND task_id = p_pa_task_id;*/
There is no need to do delow validation here it will be done in update_one_task
if (p_attribute_category is null or p_attribute_category = PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR)
then
l_attribute_category := null;
PA_PROJECT_PVT.Update_One_Task (
p_api_version_number => p_api_version_number,
p_commit => FND_API.G_FALSE,
p_msg_count => p_msg_count,
p_msg_data => p_msg_data,
p_return_status => l_return_status,
p_pm_product_code => p_pm_product_code,
p_pa_project_id => l_project_id, --Bug#3747312
p_pa_task_id => l_pa_task_id, --BUG 3919800, p_pa_task_id to l_pa_task_id
p_pm_task_reference => p_pm_task_reference,
p_task_number => p_task_number,
p_task_name => p_task_name,
p_long_task_name => l_long_task_name, /*Commented the p_long_task_name for bug 2982057*/
p_task_description => p_task_description,
p_task_start_date => p_task_start_date,
p_task_completion_date => p_task_completion_date,
-- Start Fix for Bug # 1289156
p_early_start_date => p_early_start_date,
p_early_finish_date => p_early_finish_date,
p_late_start_date => p_late_start_date,
p_late_finish_date => p_late_finish_date,
-- p_actual_start_date => p_actual_start_date, --commented out for task progress
-- p_actual_finish_date => p_actual_finish_date,
p_scheduled_start_date => p_scheduled_start_date, -- 7245488
p_scheduled_finish_date => p_scheduled_finish_date, /* bug 7245488 */
-- End Fix for Bug # 1289156
p_pm_parent_task_reference => p_pm_parent_task_reference,
p_pa_parent_task_id => p_pa_parent_task_id,
p_address_id => p_address_id,
p_carrying_out_organization_id => p_carrying_out_organization_id,
p_service_type_code => p_service_type_code,
p_task_manager_person_id => p_task_manager_person_id,
p_billable_flag => p_billable_flag,
p_chargeable_flag => p_chargeable_flag,
p_ready_to_bill_flag => p_ready_to_bill_flag,
p_ready_to_distribute_flag => p_ready_to_distribute_flag,
p_limit_to_txn_controls_flag => p_limit_to_txn_controls_flag,
p_labor_bill_rate_org_id => p_labor_bill_rate_org_id,
p_labor_std_bill_rate_schdl => p_labor_std_bill_rate_schdl,
p_labor_schedule_fixed_date => p_labor_schedule_fixed_date,
p_labor_schedule_discount => p_labor_schedule_discount,
p_nl_bill_rate_org_id => p_nl_bill_rate_org_id,
p_nl_std_bill_rate_schdl => p_nl_std_bill_rate_schdl,
p_nl_schedule_fixed_date => p_nl_schedule_fixed_date,
p_nl_schedule_discount => p_nl_schedule_discount,
p_labor_cost_multiplier_name => p_labor_cost_multiplier_name,
p_cost_ind_rate_sch_id => p_cost_ind_rate_sch_id,
p_rev_ind_rate_sch_id => p_rev_ind_rate_sch_id,
p_inv_ind_rate_sch_id => p_inv_ind_rate_sch_id,
p_cost_ind_sch_fixed_date => p_cost_ind_sch_fixed_date,
p_rev_ind_sch_fixed_date => p_rev_ind_sch_fixed_date,
p_inv_ind_sch_fixed_date => p_inv_ind_sch_fixed_date,
p_labor_sch_type => p_labor_sch_type,
p_nl_sch_type => p_nl_sch_type,
p_attribute_category => l_attribute_category,
p_attribute1 => l_attribute1,
p_attribute2 => l_attribute2,
p_attribute3 => l_attribute3,
p_attribute4 => l_attribute4,
p_attribute5 => l_attribute5,
p_attribute6 => l_attribute6,
p_attribute7 => l_attribute7,
p_attribute8 => l_attribute8,
p_attribute9 => l_attribute9,
p_attribute10 => l_attribute10,
p_allow_cross_charge_flag => p_allow_cross_charge_flag,
p_project_rate_type => p_project_rate_type,
p_project_rate_date => p_project_rate_date,
p_cc_process_labor_flag => p_cc_process_labor_flag,
p_labor_tp_schedule_id => p_labor_tp_schedule_id,
p_labor_tp_fixed_date => p_labor_tp_fixed_date,
p_cc_process_nl_flag => p_cc_process_nl_flag,
p_nl_tp_schedule_id => p_nl_tp_schedule_id,
p_nl_tp_fixed_date => p_nl_tp_fixed_date,
p_receive_project_invoice_flag => p_receive_project_invoice_flag,
p_work_type_id => p_work_type_id,
p_emp_bill_rate_schedule_id => p_emp_bill_rate_schedule_id,
p_job_bill_rate_schedule_id => p_job_bill_rate_schedule_id,
--Sakthi MCB
p_non_lab_std_bill_rt_sch_id => p_non_lab_std_bill_rt_sch_id,
p_taskfunc_cost_rate_type => p_taskfunc_cost_rate_type,
p_taskfunc_cost_rate_date => p_taskfunc_cost_rate_date,
--Sakthi MCB
p_labor_disc_reason_code => p_labor_disc_reason_code,
p_non_labor_disc_reason_code => p_non_labor_disc_reason_code,
--PA L Changes 2872708
p_retirement_cost_flag => p_retirement_cost_flag,
p_cint_eligible_flag => p_cint_eligible_flag,
p_cint_stop_date => p_cint_stop_date,
--End PA L Changes 2872708
--Added by rtarway for BUG 4106154
p_gen_etc_source_code => p_gen_etc_source_code,
--Bug 3279981 Review
p_invoice_method => l_invoice_method,
p_customer_id => l_customer_id,
--Bug 3279981 Review
p_out_pa_task_id => l_out_pa_task_id,
p_out_pm_task_reference => l_out_pm_task_reference );
update pa_tasks set completion_date = p_task_completion_date where task_id = l_task_id_tbl(i)
and project_id = l_project_id;
SELECT start_date
INTO l_parent_task_date
FROM pa_tasks
WHERE task_id = l_parent_task_id_tbl(i);
UPDATE pa_tasks
SET completion_date = p_task_completion_date,
start_date = l_parent_task_date
WHERE task_id = l_task_id_tbl(i);
UPDATE pa_tasks
SET completion_date = p_task_completion_date
WHERE task_id = l_task_id_tbl(i);
IF (NVL( p_pm_product_code, 'WORKPLAN' ) <> 'WORKPLAN') AND (p_update_task_structure = 'Y') --Added for bug 2931183
THEN
--bug 2665656
-- Bug 3106457
-- --dbms_output.put_line('Going into this loop');
PA_PROJ_TASK_STRUC_PUB.update_task_structure
(
p_calling_module => 'AMG'
,p_task_id => l_pa_task_id --BUG 3919800, rtarway
,p_ref_task_id => l_ref_task_id --Bug 3705333 changed from p_ref_task_id to l_ref_task_id
,p_project_id => l_project_id
,p_task_number => p_task_number
,p_task_name => l_long_task_name ----bug 2833194 -- for bug# 3749447
,p_task_description => p_task_description
,p_carrying_out_organization_id => p_carrying_out_organization_id
,p_task_manager_id => p_task_manager_person_id
,p_pm_product_code => p_pm_product_code
,p_pm_task_reference => p_pm_task_reference
,p_location_id => p_address_id
,p_structure_type => l_structure_type --Bug#3747312 p_structure_type
,p_OBLIGATION_START_DATE => p_OBLIGATION_START_DATE
,p_OBLIGATION_FINISH_DATE => p_OBLIGATION_FINISH_DATE
,p_ESTIMATED_START_DATE => p_ESTIMATED_START_DATE
,p_ESTIMATED_FINISH_DATE => p_ESTIMATED_FINISH_DATE
,p_BASELINE_START_DATE => p_BASELINE_START_DATE
,p_BASELINE_FINISH_DATE => p_BASELINE_FINISH_DATE
,p_CLOSED_DATE => p_CLOSED_DATE
,p_WQ_UOM_CODE => p_WQ_UOM_CODE
,p_WQ_ITEM_CODE => p_WQ_ITEM_CODE
,p_STATUS_CODE => p_STATUS_CODE
,p_WF_STATUS_CODE => p_WF_STATUS_CODE
,p_PRIORITY_CODE => p_PRIORITY_CODE
,p_MILESTONE_FLAG => p_MILESTONE_FLAG
,p_CRITICAL_FLAG => p_CRITICAL_FLAG
,p_INC_PROJ_PROGRESS_FLAG => p_INC_PROJ_PROGRESS_FLAG
,p_LINK_TASK_FLAG => p_LINK_TASK_FLAG
,p_CALENDAR_ID => p_CALENDAR_ID
,p_PLANNED_EFFORT => p_PLANNED_EFFORT
,p_DURATION => p_DURATION
,p_PLANNED_WORK_QUANTITY => p_PLANNED_WORK_QUANTITY
,p_TASK_TYPE => p_TASK_TYPE
,p_actual_start_date => p_actual_start_date
,p_actual_finish_date => p_actual_finish_date
,p_early_start_date => p_early_start_date
,p_early_finish_date => p_early_finish_date
,p_late_start_date => p_late_start_date
,p_late_finish_date => p_late_finish_date
,p_scheduled_start_date => p_scheduled_start_date
,p_scheduled_finish_date => p_scheduled_finish_date
--Commented by rtarway for BUG 3663712
--,p_structure_version_id => p_structure_version_id
,p_structure_version_id => l_structure_version_id
-- (Begin venkat) new params for bug #3450684 ----------------------------------------------
,p_ext_act_duration => p_ext_act_duration
,p_ext_remain_duration => p_ext_remain_duration
,p_ext_sch_duration => p_ext_sch_duration
-- (End venkat) new params for bug #3450684 -------------------------------------------------
--Bug 6153503 start
,p_attribute_category => l_wp_attribute_category
,p_attribute1 => l_wp_attribute1
,p_attribute2 => l_wp_attribute2
,p_attribute3 => l_wp_attribute3
,p_attribute4 => l_wp_attribute4
,p_attribute5 => l_wp_attribute5
,p_attribute6 => l_wp_attribute6
,p_attribute7 => l_wp_attribute7
,p_attribute8 => l_wp_attribute8
,p_attribute9 => l_wp_attribute9
,p_attribute10 => l_wp_attribute10
,p_attribute11 => l_wp_attribute11
,p_attribute12 => l_wp_attribute12
,p_attribute13 => l_wp_attribute13
,p_attribute14 => l_wp_attribute14
,p_attribute15 => l_wp_attribute15
--Bug 6153503 end
-- set the new params - bug #3654243 ----------------------------------------------
,p_base_percent_comp_deriv_code => p_base_percent_comp_deriv_code
,p_sch_tool_tsk_type_code => p_sch_tool_tsk_type_code
,p_constraint_type_code => p_constraint_type_code
,p_constraint_date => p_constraint_date
,p_free_slack => p_free_slack
,p_total_slack => p_total_slack
,p_effort_driven_flag => p_effort_driven_flag
,p_level_assignments_flag => p_level_assignments_flag
,p_invoice_method => p_invoice_method
,p_customer_id => p_customer_id
,p_gen_etc_source_code => p_gen_etc_source_code
-- set the new params - bug #3654243 -------------------------------------------------
-- Progress Management Changes. Bug # 3420093.
,p_etc_effort => p_etc_effort
,p_percent_complete => p_percent_complete
-- Progress Management Changes. Bug # 3420093.
--Added by rtarway for BUG 3908013
/* Values are already being passed above. Ref Bug #6153503
,p_attribute_category => p_attribute_category
,p_attribute1 => p_attribute1
,p_attribute2 => p_attribute2
,p_attribute3 => p_attribute3
,p_attribute4 => p_attribute4
,p_attribute5 => p_attribute5
,p_attribute6 => p_attribute6
,p_attribute7 => p_attribute7
,p_attribute8 => p_attribute8
,p_attribute9 => p_attribute9
,p_attribute10 => p_attribute10 */
--end add by rtarway, 3908013
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data
,x_return_status => l_return_status
);
p_function_name => 'PA_PM_UPDATE_TASK',
p_msg_count => l_msg_count,
p_msg_data => l_msg_data,
p_return_status => l_return_status,
p_function_allowed => l_function_allowed );
if (l_update_pa_tasks = 'Y' AND
--Added by rtarway for bug 4321313
PA_PROJ_ELEMENTS_UTILS.CHECK_IS_FINANCIAL_TASK(l_pa_task_id) = 'Y'
) then
--In case of Shared Structures, we do not need to update dff attributes in pa_tasks, instead
--dff fields of pa_proj_elem_ver_schedule are updated
PA_PROJECT_PVT.Update_One_Task
(
p_api_version_number => p_api_version_number,
p_commit => FND_API.G_FALSE,
p_msg_count => p_msg_count,
p_msg_data => p_msg_data,
p_return_status => l_return_status,
p_pm_product_code => p_pm_product_code,
p_pa_project_id => l_project_id,
p_pa_task_id => l_pa_task_id,
p_pm_task_reference => p_pm_task_reference,
p_task_number => p_task_number,
p_task_name => p_task_name,
p_long_task_name => l_long_task_name,
p_task_description => p_task_description,
p_task_start_date => p_task_start_date,
p_task_completion_date => p_task_completion_date,
p_early_start_date => p_early_start_date,
p_early_finish_date => p_early_finish_date,
p_late_start_date => p_late_start_date,
p_late_finish_date => p_late_finish_date,
p_scheduled_start_date => p_scheduled_start_date, -- 7245488
p_scheduled_finish_date => p_scheduled_finish_date, /* bug 7245488 */
p_pm_parent_task_reference => p_pm_parent_task_reference,
p_pa_parent_task_id => p_pa_parent_task_id,
p_address_id => p_address_id,
p_carrying_out_organization_id => p_carrying_out_organization_id,
p_service_type_code => p_service_type_code,
p_task_manager_person_id => p_task_manager_person_id,
p_billable_flag => p_billable_flag,
p_chargeable_flag => p_chargeable_flag,
p_ready_to_bill_flag => p_ready_to_bill_flag,
p_ready_to_distribute_flag => p_ready_to_distribute_flag,
p_limit_to_txn_controls_flag => p_limit_to_txn_controls_flag,
p_labor_bill_rate_org_id => p_labor_bill_rate_org_id,
p_labor_std_bill_rate_schdl => p_labor_std_bill_rate_schdl,
p_labor_schedule_fixed_date => p_labor_schedule_fixed_date,
p_labor_schedule_discount => p_labor_schedule_discount,
p_nl_bill_rate_org_id => p_nl_bill_rate_org_id,
p_nl_std_bill_rate_schdl => p_nl_std_bill_rate_schdl,
p_nl_schedule_fixed_date => p_nl_schedule_fixed_date,
p_nl_schedule_discount => p_nl_schedule_discount,
p_labor_cost_multiplier_name => p_labor_cost_multiplier_name,
p_cost_ind_rate_sch_id => p_cost_ind_rate_sch_id,
p_rev_ind_rate_sch_id => p_rev_ind_rate_sch_id,
p_inv_ind_rate_sch_id => p_inv_ind_rate_sch_id,
p_cost_ind_sch_fixed_date => p_cost_ind_sch_fixed_date,
p_rev_ind_sch_fixed_date => p_rev_ind_sch_fixed_date,
p_inv_ind_sch_fixed_date => p_inv_ind_sch_fixed_date,
p_labor_sch_type => p_labor_sch_type,
p_nl_sch_type => p_nl_sch_type,
--Bug 6153503 start
p_attribute_category => l_attribute_category,
p_attribute1 => l_attribute1,
p_attribute2 => l_attribute2,
p_attribute3 => l_attribute3,
p_attribute4 => l_attribute4,
p_attribute5 => l_attribute5,
p_attribute6 => l_attribute6,
p_attribute7 => l_attribute7,
p_attribute8 => l_attribute8,
p_attribute9 => l_attribute9,
p_attribute10 => l_attribute10,
--Bug 6153503 end
p_allow_cross_charge_flag => p_allow_cross_charge_flag,
p_project_rate_type => p_project_rate_type,
p_project_rate_date => p_project_rate_date,
p_cc_process_labor_flag => p_cc_process_labor_flag,
p_labor_tp_schedule_id => p_labor_tp_schedule_id,
p_labor_tp_fixed_date => p_labor_tp_fixed_date,
p_cc_process_nl_flag => p_cc_process_nl_flag,
p_nl_tp_schedule_id => p_nl_tp_schedule_id,
p_nl_tp_fixed_date => p_nl_tp_fixed_date,
p_receive_project_invoice_flag => p_receive_project_invoice_flag,
p_work_type_id => p_work_type_id,
p_emp_bill_rate_schedule_id => p_emp_bill_rate_schedule_id,
p_job_bill_rate_schedule_id => p_job_bill_rate_schedule_id,
p_non_lab_std_bill_rt_sch_id => p_non_lab_std_bill_rt_sch_id,
p_taskfunc_cost_rate_type => p_taskfunc_cost_rate_type,
p_taskfunc_cost_rate_date => p_taskfunc_cost_rate_date,
p_labor_disc_reason_code => p_labor_disc_reason_code,
p_non_labor_disc_reason_code => p_non_labor_disc_reason_code,
p_retirement_cost_flag => p_retirement_cost_flag,
p_cint_eligible_flag => p_cint_eligible_flag,
p_cint_stop_date => p_cint_stop_date,
p_gen_etc_source_code => p_gen_etc_source_code,
p_invoice_method => l_invoice_method,
p_customer_id => l_customer_id,
p_out_pa_task_id => l_out_pa_task_id,
p_out_pm_task_reference => l_out_pm_task_reference
);
PA_PROJ_TASK_STRUC_PUB.update_task_structure
(
p_calling_module => 'AMG'
,p_task_id => l_pa_task_id --BUG 3919800, rtarway
,p_ref_task_id => l_ref_task_id --Bug 3705333 changed from p_ref_task_id to l_ref_task_id
,p_project_id => l_project_id
,p_task_number => p_task_number
,p_task_name => l_long_task_name ----bug 2833194 , -- bug# 3749447
,p_task_description => p_task_description
,p_carrying_out_organization_id => p_carrying_out_organization_id
,p_task_manager_id => p_task_manager_person_id
,p_pm_product_code => p_pm_product_code
,p_pm_task_reference => p_pm_task_reference
,p_location_id => p_address_id
,p_structure_type => l_structure_type --p_structure_type
,p_OBLIGATION_START_DATE => p_OBLIGATION_START_DATE
,p_OBLIGATION_FINISH_DATE => p_OBLIGATION_FINISH_DATE
,p_ESTIMATED_START_DATE => p_ESTIMATED_START_DATE
,p_ESTIMATED_FINISH_DATE => p_ESTIMATED_FINISH_DATE
,p_BASELINE_START_DATE => p_BASELINE_START_DATE
,p_BASELINE_FINISH_DATE => p_BASELINE_FINISH_DATE
,p_CLOSED_DATE => p_CLOSED_DATE
,p_WQ_UOM_CODE => p_WQ_UOM_CODE
,p_WQ_ITEM_CODE => p_WQ_ITEM_CODE
,p_STATUS_CODE => p_STATUS_CODE
,p_WF_STATUS_CODE => p_WF_STATUS_CODE
,p_PRIORITY_CODE => p_PRIORITY_CODE
,p_MILESTONE_FLAG => p_MILESTONE_FLAG
,p_CRITICAL_FLAG => p_CRITICAL_FLAG
,p_INC_PROJ_PROGRESS_FLAG => p_INC_PROJ_PROGRESS_FLAG
,p_LINK_TASK_FLAG => p_LINK_TASK_FLAG
,p_CALENDAR_ID => p_CALENDAR_ID
,p_PLANNED_EFFORT => p_PLANNED_EFFORT
,p_DURATION => p_DURATION
,p_PLANNED_WORK_QUANTITY => p_PLANNED_WORK_QUANTITY
,p_TASK_TYPE => p_TASK_TYPE
,p_actual_start_date => p_actual_start_date
,p_actual_finish_date => p_actual_finish_date
,p_early_start_date => p_early_start_date
,p_early_finish_date => p_early_finish_date
,p_late_start_date => p_late_start_date
,p_late_finish_date => p_late_finish_date
,p_scheduled_start_date => p_scheduled_start_date
,p_scheduled_finish_date => p_scheduled_finish_date
--Commented by rtarway, BUG 3663712
--,p_structure_version_id => p_structure_version_id
,p_structure_version_id => l_structure_version_id
-- (Begin venkat) new params for bug #3450684 ----------------------------------------------
,p_ext_act_duration => p_ext_act_duration
,p_ext_remain_duration => p_ext_remain_duration
,p_ext_sch_duration => p_ext_sch_duration
-- (End venkat) new params for bug #3450684 -------------------------------------------------
--Bug 6153503 start
,p_attribute_category => l_wp_attribute_category
,p_attribute1 => l_wp_attribute1
,p_attribute2 => l_wp_attribute2
,p_attribute3 => l_wp_attribute3
,p_attribute4 => l_wp_attribute4
,p_attribute5 => l_wp_attribute5
,p_attribute6 => l_wp_attribute6
,p_attribute7 => l_wp_attribute7
,p_attribute8 => l_wp_attribute8
,p_attribute9 => l_wp_attribute9
,p_attribute10 => l_wp_attribute10
,p_attribute11 => l_wp_attribute11
,p_attribute12 => l_wp_attribute12
,p_attribute13 => l_wp_attribute13
,p_attribute14 => l_wp_attribute14
,p_attribute15 => l_wp_attribute15
--Bug 6153503 end
-- set the new params - bug #3654243 ----------------------------------------------
,p_base_percent_comp_deriv_code => p_base_percent_comp_deriv_code
,p_sch_tool_tsk_type_code => p_sch_tool_tsk_type_code
,p_constraint_type_code => p_constraint_type_code
,p_constraint_date => p_constraint_date
,p_free_slack => p_free_slack
,p_total_slack => p_total_slack
,p_effort_driven_flag => p_effort_driven_flag
,p_level_assignments_flag => p_level_assignments_flag
,p_invoice_method => p_invoice_method
,p_customer_id => p_customer_id
,p_gen_etc_source_code => p_gen_etc_source_code
-- set the new params - bug #3654243 -------------------------------------------------
-- Progress Management Changes. Bug # 3420093.
,p_etc_effort => p_etc_effort
,p_percent_complete => p_percent_complete
-- Progress Management Changes. Bug # 3420093.
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data
,x_return_status => l_return_status
--Added by rtarway for BUG 3908013
/* Values are already being passed above. Ref Bug#6153503
,p_attribute_category => p_attribute_category
,p_attribute1 => p_attribute1
,p_attribute2 => p_attribute2
,p_attribute3 => p_attribute3
,p_attribute4 => p_attribute4
,p_attribute5 => p_attribute5
,p_attribute6 => p_attribute6
,p_attribute7 => p_attribute7
,p_attribute8 => p_attribute8
,p_attribute9 => p_attribute9
,p_attribute10 => p_attribute10 */
);
pa_project_pub.update_mapping
(
p_api_version => p_api_version_number
, p_init_msg_list => p_init_msg_list
, p_commit => FND_API.G_FALSE--bug 3766967
, p_debug_mode => FND_API.G_TRUE
, p_project_id => l_project_id --Bug#3747312 p_pa_project_id
, p_proj_source_reference => null
, p_wkp_structure_version_id => l_structure_version_id -- BUG 3919800, rtarway
, p_wkp_task_id => l_pa_task_id--Since the tasks are already created , this will have task Ids
, px_mapped_task_id => p_mapped_task_id------------|One of theses two should be passed
, p_mapped_task_reference => p_mapped_task_reference ----|
, x_return_status => l_return_status
, x_msg_count => l_msg_count
, x_msg_data => l_msg_data
);
AND p_calling_api <> 'UPDATE_PROJECT' --bug 4199694 This is required otherwise dates rollup and concurrent program will called in update_project flow multiple times.
THEN
---bug 4199694
--call directly the PA_STRUCT_TASK_ROLLUP_PUB.Tasks_Rollup api. No need to call the rollup_dates here as its called per task.
IF PA_PROJ_TASK_STRUC_PUB.WP_STR_EXISTS( l_project_id ) = 'Y'
THEN
IF l_task_version_id IS NULL
THEN
l_task_version_id := PA_PROJ_ELEMENTS_UTILS.GET_TASK_VERSION_ID(l_structure_version_id, l_pa_task_id);
l_update_wbs_flag := PA_PROJECT_STRUCTURE_UTILS.GET_UPDATE_WBS_FLAG(p_project_id => l_project_id -- Bug 3106457 p_pa_project_id
,p_structure_version_id => l_structure_version_id ) ; -- Bug 3106457
IF nvl(l_update_wbs_flag,'N') = 'Y' THEN
IF p_process_mode = 'ONLINE' THEN
PA_PROJ_TASK_STRUC_PUB.PROCESS_WBS_UPDATES(p_calling_context => 'ONLINE_UPDATE'
,p_project_id => l_project_id -- Bug 3106457 p_pa_project_id
,p_structure_version_id => l_structure_version_id -- Bug 3106457 p_structure_version_id
,x_return_status => l_return_status
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data ) ;
PA_PROJ_TASK_STRUC_PUB. PROCESS_WBS_UPDATES_CONC_WRP(p_calling_context => 'CONC_UPDATE'
,p_project_id => l_project_id --Bug 3106457 p_pa_project_id
,p_structure_version_id => l_structure_version_id -- Bug 3106457 p_structure_version_id
,x_return_status => l_return_status
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data ) ;
l_d_struct_ver_id := PA_PROJECT_STRUCTURE_UTILS.GET_LAST_UPDATED_WORKING_VER(l_d_task_id);
if p_calling_api <> 'UPDATE_PROJECT' then
G_OP_VALIDATE_FLAG := null;
if p_calling_api <> 'UPDATE_PROJECT' then
G_OP_VALIDATE_FLAG := null;
ROLLBACK TO Update_Task_pub;
ROLLBACK TO Update_Task_pub;
if p_calling_api <> 'UPDATE_PROJECT' then
G_OP_VALIDATE_FLAG := null;
ROLLBACK TO Update_Task_pub;
if p_calling_api <> 'UPDATE_PROJECT' then
G_OP_VALIDATE_FLAG := null;
END update_task;
PROCEDURE execute_update_project
( p_api_version_number IN NUMBER
,p_commit IN VARCHAR2 := FND_API.G_FALSE
,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
,p_op_validate_flag IN VARCHAR2 := 'Y'--added by rtarway, bug 4218977
,p_msg_count OUT NOCOPY NUMBER /*Added the nocopy check for 4537865 */
,p_msg_data OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
,p_return_status OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
,p_workflow_started OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
,p_pm_product_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,p_pass_entire_structure IN VARCHAR2 := 'N' -- Added for bug 3696234 : Bug 3627124
,p_update_mode IN VARCHAR2 := 'PA_UPD_WBS_ATTR' -- rtarway, for DHI ER, BUG 4413568 --bug 4534919
)
IS
l_api_name CONSTANT VARCHAR2(30):='Execute_update_project';
SAVEPOINT execute_update_project_pub;
g_key_members_in_tbl.delete;
Update_Project ( p_api_version_number => p_api_version_number,
p_commit => FND_API.G_FALSE,
p_return_status => l_return_status,
p_msg_count => p_msg_count,
p_msg_data => p_msg_data,
p_workflow_started => p_workflow_started,
p_pm_product_code => p_pm_product_code,
p_op_validate_flag => p_op_validate_flag, --Added by rtarway 4218977
p_project_in => g_project_in_rec,
p_project_out => g_project_out_rec,
p_key_members => g_key_members_in_tbl,
p_class_categories => g_class_categories_in_tbl,
p_tasks_in => g_tasks_in_tbl,
p_tasks_out => g_tasks_out_tbl,
p_org_roles => g_org_roles_in_tbl
,p_pass_entire_structure => p_pass_entire_structure -- Added for bug 3696234 : Bug 3627124
--bug 3096203
,p_ext_attr_tbl_in => G_ext_attr_in_tbl
--bug 3096203
--FP M : deliverables
,p_deliverables_in => G_deliverables_in_tbl
-- ,p_deliverables_out => G_deliverables_out_tbl
,p_deliverable_actions_in => G_deliverable_actions_in_tbl
-- ,p_deliverable_actions_out => G_deliverable_actions_out_tbl
,p_update_mode => p_update_mode --DHI ER bug 4413568
--FP M : deliverables
);
ROLLBACK TO execute_update_project_pub;
ROLLBACK TO execute_update_project_pub;
ROLLBACK TO execute_update_project_pub;
END execute_update_project;
PROCEDURE delete_project
( p_api_version_number IN NUMBER
,p_commit IN VARCHAR2 := FND_API.G_FALSE
,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
,p_msg_count OUT NOCOPY NUMBER /*Added the nocopy check for 4537865 */
,p_msg_data OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
,p_return_status OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
,p_pm_product_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,p_pm_project_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,p_pa_project_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
)
IS
l_return_status VARCHAR2(1); --bug 2471668
pa_project_pvt.delete_project1
(p_api_version_number => p_api_version_number
,p_commit => FND_API.G_FALSE--bug 3766967
,p_init_msg_list => p_init_msg_list
,p_msg_count => p_msg_count
,p_msg_data => p_msg_data
,p_return_status => p_return_status
,p_pm_product_code => p_pm_product_code
,p_pm_project_reference => p_pm_project_reference
,p_pa_project_id => p_pa_project_id);
END delete_project;
PROCEDURE Check_Delete_Task_OK
( p_api_version_number IN NUMBER
, p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
, p_return_status OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
, p_msg_count OUT NOCOPY NUMBER /*Added the nocopy check for 4537865 */
, p_msg_data OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
, p_project_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_pm_project_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_task_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_pm_task_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
--Project Structure changes done for bug 2765115
, p_structure_type IN VARCHAR2 := 'FINANCIAL'
, p_task_version_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
--END Project Structure changes done for bug 2765115
, p_delete_task_ok_flag OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
)
IS
l_retrieve varchar2(1) ; -- 4096218 Issues found during Unit Testing
pa_project_check_pvt.Check_Delete_Task_OK_pvt
(p_api_version_number => p_api_version_number
,p_init_msg_list => p_init_msg_list
,p_return_status => p_return_status
,p_msg_count => p_msg_count
,p_msg_data => p_msg_data
,p_project_id => p_project_id
,p_pm_project_reference => p_pm_project_reference
,p_task_id => p_task_id
,p_pm_task_reference => p_pm_task_reference
--Project Structure changes done for bug 2765115
,p_structure_type => p_structure_type
,p_task_version_id => p_task_version_id
--END Project Structure changes done for bug 2765115
,p_delete_task_ok_flag => p_delete_task_ok_flag);
p_delete_task_ok_flag := NULL ;
p_delete_task_ok_flag := NULL ;
, p_procedure_name => 'Check_Delete_Task_Ok');
p_delete_task_ok_flag := NULL ;
, p_procedure_name => 'Check_Delete_Task_Ok');
END Check_Delete_Task_Ok;
PROCEDURE Check_Delete_Project_OK
(p_api_version_number IN NUMBER
, p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
, p_return_status OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
, p_msg_count OUT NOCOPY NUMBER /*Added the nocopy check for 4537865 */
, p_msg_data OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
, p_project_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_pm_project_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_delete_project_ok_flag OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
)
IS
BEGIN
-- 4537865 : Initialize return status to success
p_return_status := FND_API.G_RET_STS_SUCCESS ;
pa_project_check_pvt.Check_Delete_Project_OK_pvt
(p_api_version_number => p_api_version_number
,p_init_msg_list => p_init_msg_list
,p_return_status => p_return_status
,p_msg_count => p_msg_count
,p_msg_data => p_msg_data
,p_project_id => p_project_id
,p_pm_project_reference => p_pm_project_reference
,p_delete_project_ok_flag => p_delete_project_ok_flag);
p_delete_project_ok_flag := NULL ;
, p_procedure_name => 'Check_Delete_Project_OK');
END Check_Delete_Project_Ok;
l_update_wbs_flag VARCHAR2(1);
l_update_wbs_flag := PA_PROJECT_STRUCTURE_UTILS.GET_UPDATE_WBS_FLAG(p_project_id => p_pa_project_id
,p_structure_version_id => p_published_struct_ver_id ) ;
IF nvl(l_update_wbs_flag,'N') = 'Y' THEN
IF p_process_mode = 'ONLINE' THEN
--Added by rtarway for BUG 4032291
if p_status_code = 'STRUCTURE_PUBLISHED' then
PA_PROJ_TASK_STRUC_PUB.PROCESS_WBS_UPDATES(p_calling_context => 'ONLINE_PUBLISH'
,p_project_id => p_pa_project_id
,p_commit => p_commit
-- Fix for Bug # 4314797.
,p_structure_version_id => p_structure_version_id
,p_pub_struc_ver_id => p_published_struct_ver_id
,x_return_status => l_return_status
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data ) ;
PA_PROJ_TASK_STRUC_PUB.PROCESS_WBS_UPDATES(p_calling_context => 'ONLINE_UPDATE'
,p_project_id => p_pa_project_id
,p_structure_version_id => p_published_struct_ver_id
,x_return_status => l_return_status
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data ) ;
PA_PROJ_TASK_STRUC_PUB.PROCESS_WBS_UPDATES_CONC_WRP(p_calling_context => 'CONC_PUBLISH'
,p_project_id => p_pa_project_id
,p_commit => p_commit
,p_structure_version_id => p_structure_version_id
,p_pub_struc_ver_id => p_published_struct_ver_id
,x_return_status => l_return_status
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data ) ;
PA_PROJ_TASK_STRUC_PUB.PROCESS_WBS_UPDATES_CONC_WRP(p_calling_context => 'CONC_UPDATE'
,p_project_id => p_pa_project_id
,p_structure_version_id => p_published_struct_ver_id
,x_return_status => l_return_status
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data ) ;
PROCEDURE delete_structure_version
( p_api_version_number IN NUMBER := 1.0 -- for bug# 3802759
,p_commit IN VARCHAR2 := FND_API.G_FALSE
,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
,p_msg_count OUT NOCOPY NUMBER /*Added the nocopy check for 4537865 */
,p_msg_data OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
,p_return_status OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
,p_structure_version_id IN NUMBER
,p_record_version_number IN NUMBER
) IS
l_api_name CONSTANT VARCHAR2(30) := 'delete_structure_version';
SAVEPOINT delete_structure_ver_pub;
PA_PROJ_TASK_STRUC_PUB.DELETE_STRUCTURE_VERSION(
p_api_version => p_api_version_number
,p_init_msg_list => p_init_msg_list
,p_commit => FND_API.G_FALSE--bug 3766967
,p_calling_module => 'AMG'
,p_structure_version_id => p_structure_version_id
,p_record_version_number => p_record_version_number
,x_return_status => p_return_status
,x_msg_count => p_msg_count
,x_msg_data => p_msg_data
);
ROLLBACK TO delete_structure_ver_pub;
ROLLBACK TO delete_structure_ver_pub;
ROLLBACK TO delete_structure_ver_pub;
END delete_structure_version;
SELECT record_version_number, pev_structure_id, name
FROM PA_PROJ_ELEM_VER_STRUCTURE
WHERE project_id = p_pa_project_id and element_version_id = p_structure_version_id;
PA_PROJECT_STRUCTURE_PVT1.update_structure_version_attr
(p_api_version => p_api_version_number
,p_init_msg_list => p_init_msg_list
,p_commit => FND_API.G_FALSE--bug 3766967
,p_pev_structure_id => l_pev_structure_id
,p_structure_version_name => l_name
,p_record_version_number => l_rec_version_number
,p_current_working_ver_flag => 'Y'
,x_return_status => p_return_status
,x_msg_count => p_msg_count
,x_msg_data => p_msg_data
);
p_function_name => 'PA_PM_UPDATE_TASK',
p_msg_count => l_msg_count,
p_msg_data => l_msg_data,
p_return_status => l_return_status,
p_function_allowed => l_function_allowed );
Select 'X'
from pa_lookups
where lookup_type='PM_PRODUCT_CODE'
and lookup_code = p_pm_product_code;
SELECT name INTO l_task_number
FROM Pa_Proj_Elements
WHERE proj_element_id = l_task_id;
SELECT segment1 INTO l_project_number
FROM Pa_Projects_All
WHERE project_id = l_project_id;
l_action_in_tbl.delete;
, p_insert_or_update => 'INSERT'
, p_action_in_tbl => l_action_in_tbl
, x_action_out_tbl => x_action_out_tbl
, x_return_status => x_return_status
, x_msg_count => x_msg_count
, x_msg_data => x_msg_data);
SELECT type_id
FROM PA_PROJ_ELEMENTS
WHERE proj_element_id = l_deliverable_id
AND project_id = l_project_id
AND OBJECT_TYPE = 'PA_DELIVERABLES';
, p_insert_or_update => 'INSERT'
, p_action_in_tbl => l_action_in_tbl
, x_action_out_tbl => l_action_out_tbl
, x_return_status => x_return_status
, x_msg_count => l_msg_count
, x_msg_data => l_msg_data);
PROCEDURE update_deliverable
( p_api_version IN NUMBER := 1.0
, p_init_msg_list IN VARCHAR2 := 'F'
, p_commit IN VARCHAR2 := FND_API.G_FALSE
, p_debug_mode IN VARCHAR2 := 'N'
, x_return_status OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
, p_deliverable_name IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_deliverable_short_name IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_deliverable_type_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_deliverable_owner_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_description IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_status_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_due_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
, p_completion_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
, p_progress_weight IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, px_deliverable_id IN OUT NOCOPY NUMBER /*Added the nocopy check for 4537865 */
, p_pm_deliverable_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
-- for bug# 3729250
-- , p_carrying_out_org_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_task_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_task_source_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_project_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_proj_source_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_action_in_tbl IN action_in_tbl_type := G_deliverable_actions_in_tbl -- 3435905 passing default
, x_action_out_tbl OUT NOCOPY action_out_tbl_type /*Added the nocopy check for 4537865 */
, p_item_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, P_inventory_org_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_quantity IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_uom_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
-- for bug# 3729250
-- , p_item_description IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_unit_price IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
-- for bug# 3729250
, p_unit_number IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_currency_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_pm_source_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR /* Bug no. 3651113 */
, x_msg_count OUT NOCOPY NUMBER /*Added the nocopy check for 4537865 */
, x_msg_data OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
)
IS
l_project_id NUMBER;
l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_DELIVERABLE';
Select 'X'
from pa_lookups
where lookup_type='PM_PRODUCT_CODE'
and lookup_code = p_pm_product_code;
SELECT vers.element_version_id
FROM pa_proj_element_versions vers
, pa_proj_elements elem
WHERE vers.proj_element_id = elem.proj_element_id
AND elem.project_id = vers.project_id
AND elem.proj_element_id = p_proj_element_id
AND elem.project_id = vers.project_id
AND elem.object_type = 'PA_DELIVERABLES';
savepoint UPDATE_DELIVERABLE_PUB;
Pa_Deliverable_Pub.Update_Deliverable
( p_api_version => p_api_version
, p_init_msg_list => p_init_msg_list
-- 3735792, passing p_commit as false to next level api calls
, p_commit => FND_API.G_FALSE
, p_validate_only => FND_API.G_FALSE
, p_validation_level => FND_API.G_VALID_LEVEL_FULL
, p_calling_module => 'AMG'
, p_debug_mode => p_debug_mode
, p_max_msg_count => NULL
, p_record_version_number => null
, p_object_type => 'PA_DELIVERABLES'
, p_project_id => l_project_id
, p_dlvr_number => p_deliverable_short_name
, p_dlvr_name => p_deliverable_name
, p_dlvr_description => p_description
, p_dlvr_owner_id => p_deliverable_owner_id
, p_dlvr_owner_name => NULL
-- for bug# 3729250
-- , p_carrying_out_org_id => p_carrying_out_org_id
, p_carrying_out_org_name => NULL
, p_dlvr_version_id => l_deliverable_version_id --3733221
, p_status_code => p_status_code
, p_parent_structure_id => NULL
, p_dlvr_type_id => p_deliverable_type_id
, p_dlvr_type_name => NULL
, p_progress_weight => p_progress_weight
, p_scheduled_finish_date => p_due_date
, p_actual_finish_date => p_completion_date
, p_task_id => l_task_id
, p_task_version_id => null
, p_task_name => null
, p_deliverable_reference => p_pm_deliverable_reference
, p_item_id => p_item_id
, p_inventory_org_id => p_inventory_org_id
, p_quantity => p_quantity
, p_uom_code => p_uom_code
-- for bug# 3729250
-- , p_item_description => p_item_description
, p_unit_price => p_unit_price
, p_unit_number => p_unit_number
, p_currency_code => p_currency_code
, p_dlvr_item_id => l_deliverable_id -- 3749447 changed from px_deliverable_id to l_deliverable_id
, p_pm_source_code => p_pm_source_code -- 3749447 passing p_pm_source_code
, x_return_status => x_return_status
, x_msg_count => l_msg_count
, x_msg_data => l_msg_data
);
pa_debug.g_err_stage := 'Pa_Deliverable_Pub.Update_Deliverable return status ['||x_return_status||']';
pa_debug.write(g_pkg_name,'Uploaded action detail for Updation/Insertion upd ['||i_actn_upd||'] ins ['||i_actn_ins||'] tot ['||i_actn||']',3) ;
, p_insert_or_update => 'UPDATE'
, p_action_in_tbl => l_action_in_tbl_upd
, x_action_out_tbl => x_action_out_tbl
, x_return_status => x_return_status
, x_msg_count => l_msg_count
, x_msg_data => l_msg_data);
, p_insert_or_update => 'INSERT'
, p_action_in_tbl => l_action_in_tbl_ins
, x_action_out_tbl => x_action_out_tbl
, x_return_status => x_return_status
, x_msg_count => l_msg_count
, x_msg_data => l_msg_data);
ROLLBACK TO UPDATE_DELIVERABLE_PUB;
ROLLBACK TO UPDATE_DELIVERABLE_PUB;
ROLLBACK TO UPDATE_DELIVERABLE_PUB;
END update_deliverable;
PROCEDURE update_deliverable_action
( p_api_version IN NUMBER := 1.0
, p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
, p_debug_mode IN VARCHAR2 := FND_API.G_FALSE
, p_commit IN VARCHAR2 := FND_API.G_FALSE
, p_action_name IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_action_owner_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_function_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_due_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
, p_description IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_completion_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
, p_pm_source_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_pm_action_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
-- added for bug# 3729250
, p_action_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
-- for bug# 3729250
-- , p_carrying_out_org_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_deliverable_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_deliverable_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
-- added for bug# 3729250
, p_pm_proj_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_project_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_financial_task_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
-- added for bug# 3729250
, p_financial_task_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_destination_type_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_receiving_org_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_receiving_location_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_po_need_by_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
, p_vendor_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_vendor_site_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
-- , p_project_currency IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_Quantity IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_uom_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_unit_price IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_exchange_rate_type IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_exchange_rate_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
, p_exchange_rate IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_expenditure_type IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_expenditure_org_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_expenditure_item_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
, p_requisition_line_type_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_category_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_ready_to_procure_flag IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_initiate_procure_flag IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_ship_from_organization_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_ship_from_location_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_ship_to_organization_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_ship_to_location_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_demand_schedule IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_expected_shipment_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
, p_promised_shipment_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
, p_volume IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_volume_uom IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_weight IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_weight_uom IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_ready_to_ship_flag IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_initiate_planning_flag IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_initiate_shipping_flag IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_event_type IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_currency IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR -- 3749474 changed data type
, p_invoice_amount IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_revenue_amount IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_event_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
, p_event_number IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_organization_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_bill_hold_flag IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_project_functional_rate_type IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_project_functional_rate_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
, p_project_functional_rate IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_project_rate_type IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_project_rate_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
, p_project_rate IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_funding_rate_type IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_funding_rate_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
, p_funding_rate IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_pm_event_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR -- 3651489 added parameter
, x_action_out OUT NOCOPY action_out_tbl_type
, x_return_status OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
, x_msg_count OUT NOCOPY NUMBER /*Added the nocopy check for 4537865 */
, x_msg_data OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
)
IS
l_api_name CONSTANT VARCHAR2(30) := 'update_deliverable_actions';
SAVEPOINT update_deliverable_actions_pub;
, p_insert_or_update => 'UPDATE'
, p_action_in_tbl => l_action_in_tbl
, x_action_out_tbl => l_action_out_tbl
, x_return_status => x_return_status
, x_msg_count => l_msg_count
, x_msg_data => l_msg_data);
ROLLBACK TO update_deliverable_actions_pub;
ROLLBACK TO update_deliverable_actions_pub;
ROLLBACK TO update_deliverable_actions_pub;
END update_deliverable_action;
Procedure Delete_Deliverables (
p_api_version IN NUMBER := 1.0
,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
,p_commit IN VARCHAR2 := FND_API.G_FALSE
,p_pm_source_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,p_pm_project_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,p_project_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
--for bug# 3729250
,p_deliverable_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
,p_pm_dlv_source_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,x_return_status OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
,x_msg_count OUT NOCOPY NUMBER /*Added the nocopy check for 4537865 */
,x_msg_data OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
)IS
l_api_name VARCHAR2(30) := 'Delete_Deliverables';
savepoint DELETE_DELIVERABLE_PUB;
pa_deliverable_pvt.delete_deliverable
(p_api_version => p_api_version
,p_init_msg_list => FND_API.G_FALSE
-- 3735792, passing p_commit as false to next level api calls
,p_commit => FND_API.G_FALSE
,p_validate_only => FND_API.G_FALSE
,p_validation_level => FND_API.G_VALID_LEVEL_FULL
,p_calling_module => 'AMG'
,p_debug_mode => l_debug_mode
,p_max_msg_count => null
,p_dlv_element_id => l_deliverable_id
,p_dlv_version_id => l_dlvr_version_id
,p_rec_ver_number => null
,p_project_id => l_project_id
,x_return_status => x_return_status
,x_msg_count => x_msg_count
,x_msg_data => x_msg_data );
pa_debug.write(g_pkg_name,' after pa_deliverable_pvt.delete_deliverable ['||x_return_status||']',3) ;
ROLLBACK TO DELETE_DELIVERABLE_PUB;
ROLLBACK TO DELETE_DELIVERABLE_PUB;
ROLLBACK TO DELETE_DELIVERABLE_PUB;
END Delete_Deliverables;
PROCEDURE delete_deliverable_actions
( p_api_version IN NUMBER := 1.0 -- 3749480 earlier defaulted with G_PA_MISS_NUM ; Bug#3451073 Removed Quotes
l_api_name VARCHAR2(30) := 'Delete_Deliverable_Actions';
savepoint DELETE_DELIVERABLE_ACTION_PUB;
pa_actions_pvt.DELETE_DLV_ACTION
(p_api_version => p_api_version
,p_init_msg_list => FND_API.G_FALSE
,p_commit => FND_API.G_FALSE
,p_validate_only => FND_API.G_FALSE
,p_validation_level => FND_API.G_VALID_LEVEL_FULL
,p_calling_module => 'AMG'
,p_debug_mode => l_debug_mode
,p_max_msg_count => null
,p_action_id => l_action_id
,p_action_ver_id => l_action_version_id
,p_dlv_element_id => l_deliverable_id
,p_dlv_version_id => l_dlvr_version_id
,p_function_code => l_function_code
,p_project_id => l_project_id
,x_return_status => x_return_status
,x_msg_count => x_msg_count
,x_msg_data => x_msg_data
) ;
pa_debug.write(g_pkg_name,' after pa_actions_pvt.DELETE_DLV_ACTION ['||x_return_status||']',3) ;
ROLLBACK TO DELETE_DELIVERABLE_ACTION_PUB;
ROLLBACK TO DELETE_DELIVERABLE_ACTION_PUB;
ROLLBACK TO DELETE_DELIVERABLE_ACTION_PUB;
END Delete_Deliverable_Actions;
Procedure DELETE_DLV_TO_TASK_ASSCN (
p_api_version IN NUMBER := 1.0
,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
,p_commit IN VARCHAR2 := FND_API.G_FALSE
,p_pm_source_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,p_pm_project_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,p_project_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
,p_task_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,p_task_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
,p_pm_deliverable_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,p_deliverable_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
,x_return_status OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
,x_msg_count OUT NOCOPY NUMBER /*Added the nocopy check for 4537865 */
,x_msg_data OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
)IS
l_api_name VARCHAR2(30) := 'DELETE_DLV_TO_TASK_ASSCN';
savepoint DELETE_DLV_TO_TASK_ASSCN_PUB;
pa_deliverable_pub.DELETE_DLV_TASK_ASSOCIATION
(p_api_version => p_api_version
,p_init_msg_list => FND_API.G_FALSE
,p_commit => FND_API.G_FALSE
,p_validate_only => FND_API.G_FALSE
,p_validation_level => FND_API.G_VALID_LEVEL_FULL
,p_calling_module => 'AMG'
,p_debug_mode => l_debug_mode
,p_max_msg_count => null
,p_task_element_id => l_task_id
,p_task_version_id => -99 -- 3749498 passing -99 instead of null
,p_dlv_element_id => l_deliverable_Id
,p_dlv_version_id => l_dlvr_version_id
,p_object_relationship_id => l_object_relationship_id
,p_obj_rec_ver_number => null
,p_project_id => l_project_id
,p_calling_context => 'TASKS'
,x_return_status => x_return_status
,x_msg_count => x_msg_count
,x_msg_data => x_msg_data
);
ROLLBACK TO DELETE_DLV_TO_TASK_ASSCN_PUB;
ROLLBACK TO DELETE_DLV_TO_TASK_ASSCN_PUB;
ROLLBACK TO DELETE_DLV_TO_TASK_ASSCN_PUB;
END DELETE_DLV_TO_TASK_ASSCN;
Procedure DELETE_DLV_TO_TASK_ASSIGN (
p_api_version IN NUMBER := 1.0
,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
,p_commit IN VARCHAR2 := FND_API.G_FALSE
,p_debug_mode IN VARCHAR2 := FND_API.G_FALSE
,p_pm_source_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,p_project_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
-- added for bug# 3729250
,p_pm_project_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,p_task_assign_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
,p_pm_task_asgmt_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,p_deliverable_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM --added for bug 3888280
,p_pm_deliverable_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR --added for bug 3888280
,x_return_status OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
,x_msg_count OUT NOCOPY NUMBER /*Added the nocopy check for 4537865 */
,x_msg_data OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
)IS
l_api_name VARCHAR2(30) := 'ASSOCIATE_DLV_TO_TASK_ASSIGN';
SELECT
OBJ.OBJECT_RELATIONSHIP_ID
FROM PA_OBJECT_RELATIONSHIPS OBJ
WHERE
OBJ.OBJECT_ID_FROM2 = l_task_assng_id
AND OBJ.OBJECT_ID_TO2 = l_dlvr_id
AND OBJ.OBJECT_TYPE_FROM = 'PA_ASSIGNMENTS'
AND OBJ.OBJECT_TYPE_TO = 'PA_DELIVERABLES'
AND OBJ.RELATIONSHIP_TYPE = 'A'
AND OBJ.RELATIONSHIP_SUBTYPE = 'ASSIGNMENT_TO_DELIVERABLE';
PA_DELIVERABLE_PVT.DELETE_DLV_TASK_ASSCN_IN_BULK
(p_calling_module => 'AMG'
,p_calling_context => 'PA_ASSIGNMENTS'
,p_task_element_id => l_task_assignment_id
,p_task_version_id => null
,p_project_id => l_project_id
,x_return_status => x_return_status
,x_msg_count => x_msg_count
,x_msg_data => x_msg_data
) ;
PA_DELIVERABLE_PVT.DELETE_DLV_TASK_ASSOCIATION
(
p_calling_module => 'AMG'
,p_task_element_id => l_task_assignment_id
,p_task_version_id => NULL
,p_dlv_element_id => l_deliverable_id
,p_dlv_version_id => NULL
,p_object_relationship_id => l_object_relationship_Id
,p_obj_rec_ver_number => NULL
,p_project_id => l_project_id
,p_calling_context => 'TASK_ASSIGNMENT'
,x_return_status => x_return_status
,x_msg_count => x_msg_count
,x_msg_data => x_msg_data
);
END DELETE_DLV_TO_TASK_ASSIGN;
PROCEDURE Delete_Mapping
(
p_api_version IN NUMBER := 1.0
, p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
, p_commit IN VARCHAR2 := FND_API.G_TRUE
, p_debug_mode IN VARCHAR2 := 'N'
, p_wp_task_version_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_fp_task_version_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_wp_task_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_fp_task_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_pm_wp_task_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_pm_fp_task_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_wp_structure_version_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_project_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_proj_source_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, x_return_status OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
, x_msg_count OUT NOCOPY NUMBER /*Added the nocopy check for 4537865 */
, x_msg_data OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
)
IS
l_msg_count NUMBER;
l_api_name CONSTANT VARCHAR2(30) := 'DELETE_MAPPING';
Select element_version_id
from pa_proj_element_versions
where proj_element_id = l_fp_task_id
and project_id = l_project_id
and financial_task_flag = 'Y';
savepoint DELETE_MAPPING_PUB;
PA_DEBUG.set_curr_function( p_function => 'DELETE_MAPPING',
p_debug_mode => l_debug_mode );
Pa_Debug.g_err_stage:= 'PA_PROJECTS_PUB : DELETE_MAPPING : Printing Input parameters';
Pa_Debug.g_err_stage:= 'PA_PROJECTS_PUB : DELETE_MAPPING : Validating Input parameters';
pa_debug.g_err_stage := 'PA_PROJECTS_PUB:'||'DELETE_MAPPING'||'Project ID:'||l_project_id;
PA_PROJ_STRUC_MAPPING_PUB.DELETE_MAPPING
(
p_api_version => p_api_version
, p_init_msg_list => FND_API.G_FALSE
, p_commit => FND_API.G_FALSE--bug 3766967
, p_debug_mode => p_debug_mode
, p_wp_task_version_id => l_wp_task_version_id
, p_fp_task_version_id => l_fp_task_version_id
, p_calling_module => 'AMG' -- Bug 4142254
, x_return_status => x_return_status
, x_msg_count => l_msg_count
, x_msg_data => l_msg_data
);
pa_debug.g_err_stage := 'PA_PROJECTS_PUB:'||'DELETE_MAPPING'||'After Calling PA_PROJ_STRUC_MAPPING_PUB.DELETE_MAPPING:'||x_return_status;
ROLLBACK TO DELETE_MAPPING_PUB;
ROLLBACK TO DELETE_MAPPING_PUB;
ROLLBACK TO DELETE_MAPPING_PUB;
END Delete_Mapping ;
Select element_version_id
from pa_proj_element_versions
where proj_element_id = p_mapped_task_id
and project_id = p_project_id
and financial_task_flag = 'Y';
PROCEDURE update_mapping
( p_api_version IN NUMBER := 1.0
, p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
, p_commit IN VARCHAR2 := FND_API.G_TRUE
, p_debug_mode IN VARCHAR2 := 'N'
, px_mapped_task_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_mapped_task_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_mapped_task_name IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_wkp_task_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_wkp_task_name IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_wkp_structure_version_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_wkp_task_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_project_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_proj_source_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, x_return_status OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
, x_msg_count OUT NOCOPY NUMBER /*Added the nocopy check for 4537865 */
, x_msg_data OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
)
IS
l_project_id NUMBER;
l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_MAPPING';
Select element_version_id
from pa_proj_element_versions
where proj_element_id = p_mapped_task_id
and project_id = p_project_id
and financial_task_flag = 'Y';
savepoint UPDATE_MAPPING_PUB;
PA_DEBUG.set_curr_function( p_function => 'UPDATE_MAPPING',
p_debug_mode => l_debug_mode );
Pa_Debug.g_err_stage:= 'PA_PROJECTS_PUB : UPDATE_MAPPING : Printing Input parameters';
Pa_Debug.g_err_stage:= 'PA_PROJECTS_PUB : UPDATE_MAPPING : Validating Input parameters';
Pa_Debug.g_err_stage:= 'PA_PROJECTS_PUB : UPDATE_MAPPING : At least one of the parameters for deriving Project id should be passed';
Pa_Debug.g_err_stage:= 'PA_PROJECTS_PUB : UPDATE_MAPPING : At least one of the parameters for deriving workplan task version id should be passed';
pa_debug.g_err_stage := 'PA_PROJECTS_PUB:'||'UPDATE_MAPPING'||'Project ID:'||l_project_id;
pa_debug.g_err_stage := 'PA_PROJECTS_PUB:'||'UPDATE_MAPPING'||'wkp_task_id:'||l_wkp_task_id;
pa_debug.g_err_stage := 'PA_PROJECTS_PUB:'||'UPDATE_MAPPING'||'mapped_task_id:'||l_mapped_task_id;
pa_debug.g_err_stage := 'PA_PROJECTS_PUB:'||'UPDATE_MAPPING'||'Before Calling PA_PROJ_STRUC_MAPPING_PUB.UPDATE_MAPPING:';
PA_PROJ_STRUC_MAPPING_PUB.UPDATE_MAPPING
(
p_api_version => p_api_version
, p_calling_module => 'AMG'
, p_init_msg_list => FND_API.G_FALSE
, p_commit => FND_API.G_FALSE--bug 3766967
, p_debug_mode => p_debug_mode
, p_project_id => l_project_id
, p_wp_task_name => l_wkp_task_name
, p_wp_prnt_str_ver_id => l_wkp_structure_version_id
, p_wp_task_version_id => l_wkp_task_version_id
, p_fp_task_name => l_mapped_task_name
, p_fp_task_version_id => l_mapped_task_version_id
, x_return_status => l_return_status
, x_msg_count => x_msg_count
, x_msg_data => x_msg_data
);
pa_debug.g_err_stage := 'PA_PROJECTS_PUB:'||'UPDATE_MAPPING'||'After Calling PA_PROJ_STRUC_MAPPING_PUB.UPDATE_MAPPING:'||x_return_status;
ROLLBACK TO UPDATE_MAPPING_PUB;
ROLLBACK TO UPDATE_MAPPING_PUB;
ROLLBACK TO UPDATE_MAPPING_PUB;
END UPDATE_MAPPING;
select ppev.element_version_id
from pa_proj_elements ppe, pa_proj_element_versions ppev
where ppe.project_id = c_project_id
and ppe.PM_SOURCE_REFERENCE = c_pm_task_reference
and ppe.project_id = ppev.project_Id
and ppe.proj_element_id = ppev.proj_element_id
and ppev.parent_structure_version_id = p_structure_version_id;
select ppev.element_version_id
from pa_proj_elements ppe, pa_proj_element_versions ppev
where ppe.project_id = c_project_id
and ppe.proj_element_id = c_task_id
and ppe.project_id = ppev.project_Id
and ppe.proj_element_id = ppev.proj_element_id
and ppev.parent_structure_version_id = p_structure_version_id;
select template_flag
from pa_projects_all
where project_id = c_project_id;
select STATUS_CODE
from pa_proj_elem_ver_structure
where project_id = c_project_id
and element_version_id = c_structure_version_id;
p_msg_name => 'PA_UPDATE_PUB_VER_ERR');
PROCEDURE Update_Dependency(
p_api_version_number IN NUMBER :=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
,p_commit IN VARCHAR2 := FND_API.G_FALSE
,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
,p_msg_count OUT NOCOPY NUMBER /*Added the nocopy check for 4537865 */
,p_msg_data OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
,p_return_status OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
,p_pm_product_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
,p_pm_project_reference IN VARCHAR2
,p_pa_project_id IN NUMBER
,p_structure_version_id IN NUMBER
,p_pm_task_reference IN VARCHAR2
,p_pa_task_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
,p_pm_pred_reference IN VARCHAR2
,p_pa_pred_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
,p_type IN VARCHAR2 := 'FS'
,p_lag_days IN NUMBER := 0
,p_comments IN VARCHAR2 := NULL
)
IS
l_return_status VARCHAR2(1);
select ppev.element_version_id
from pa_proj_elements ppe, pa_proj_element_versions ppev
where ppe.project_id = c_project_id
and ppe.PM_SOURCE_REFERENCE = c_pm_task_reference
and ppe.project_id = ppev.project_Id
and ppe.proj_element_id = ppev.proj_element_id
and ppev.parent_structure_version_id = p_structure_version_id;
select ppev.element_version_id
from pa_proj_elements ppe, pa_proj_element_versions ppev
where ppe.project_id = c_project_id
and ppe.proj_element_id = c_task_id
and ppe.project_id = ppev.project_Id
and ppe.proj_element_id = ppev.proj_element_id
and ppev.parent_structure_version_id = p_structure_version_id;
select template_flag
from pa_projects_all
where project_id = c_project_id;
select STATUS_CODE
from pa_proj_elem_ver_structure
where project_id = c_project_id
and element_version_id = c_structure_version_id;
SELECT record_version_number
FROM pa_object_relationships
WHERE object_id_to1 = c_id_to
AND object_id_from1 = c_id_from
AND relationship_type = 'D';
savepoint update_dep_pub_amg;
p_msg_name => 'PA_UPDATE_PUB_VER_ERR');
PA_RELATIONSHIP_PVT.Update_Dependency(
p_calling_module => 'SELF_SERVICE'
,p_task_version_id => l_pred_ver_id
,p_src_task_version_id => l_task_ver_id
,p_type => p_type
,p_lag_days => p_lag_days
,p_comments => p_comments
,p_record_version_number => l_record_version_number
,x_return_status => p_return_status
,x_msg_count => p_msg_count
,x_msg_data => p_msg_data
);
ROLLBACK TO update_dep_pub_amg;
ROLLBACK TO update_dep_pub_amg;
ROLLBACK TO update_dep_pub_amg;
, p_procedure_name => 'Update_Dependency');
END Update_Dependency;
PROCEDURE Delete_Dependency(
p_api_version_number IN NUMBER :=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
,p_commit IN VARCHAR2 := FND_API.G_FALSE
,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
,p_msg_count OUT NOCOPY NUMBER /*Added the nocopy check for 4537865 */
,p_msg_data OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
,p_return_status OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
,p_pm_product_code IN VARCHAR2
,p_pm_project_reference IN VARCHAR2
,p_pa_project_id IN NUMBER
,p_structure_version_id IN NUMBER
,p_pm_task_reference IN VARCHAR2
,p_pa_task_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
,p_pm_pred_reference IN VARCHAR2
,p_pa_pred_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
)
IS
l_msg_count NUMBER;
select ppev.element_version_id
from pa_proj_elements ppe, pa_proj_element_versions ppev
where ppe.project_id = c_project_id
and ppe.PM_SOURCE_REFERENCE = c_pm_task_reference
and ppe.project_id = ppev.project_Id
and ppe.proj_element_id = ppev.proj_element_id
and ppev.parent_structure_version_id = p_structure_version_id;
select ppev.element_version_id
from pa_proj_elements ppe, pa_proj_element_versions ppev
where ppe.project_id = c_project_id
and ppe.proj_element_id = c_task_id
and ppe.project_id = ppev.project_Id
and ppe.proj_element_id = ppev.proj_element_id
and ppev.parent_structure_version_id = p_structure_version_id;
select template_flag
from pa_projects_all
where project_id = c_project_id;
select STATUS_CODE
from pa_proj_elem_ver_structure
where project_id = c_project_id
and element_version_id = c_structure_version_id;
SELECT object_relationship_id, record_version_number
FROM pa_object_relationships
WHERE object_id_to1 = c_id_to
AND object_id_from1 = c_id_from
AND relationship_type = 'D';
savepoint delete_dep_pub_amg;
p_msg_name => 'PA_UPDATE_PUB_VER_ERR');
PA_RELATIONSHIP_PVT.Delete_Dependency(
p_calling_module => 'SELF_SERVICE'
,p_object_relationship_id => l_obj_rel_id
,x_return_status => l_return_status
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data
);
ROLLBACK TO delete_dep_pub_amg;
ROLLBACK TO delete_dep_pub_amg;
ROLLBACK TO delete_dep_pub_amg;
, p_procedure_name => 'Delete_Dependency');
END Delete_Dependency;
, p_perform_check_delete_task_ok IN VARCHAR2 := 'N'
, p_check_task_mfd_flag OUT NOCOPY VARCHAR2 /*Added the nocopy check for 4537865 */
)
IS
cursor cur_task_status(c_project_id NUMBER, c_task_id NUMBER, c_task_version_id NUMBER)
is
select task_unpub_ver_status_code,parent_structure_version_id
from pa_proj_element_versions ppev
where ppev.project_id = c_project_id
and ppev.proj_element_id = c_task_id
and ppev.element_version_id = c_task_version_id;
select 'Y'
from pa_proj_elements
where proj_element_id = c_task_id
and project_id = c_project_id ;
select element_version_id from pa_proj_element_versions
where proj_element_id = c_task_id ;
SELECT task_number
FROM pa_tasks p
WHERE p.task_id = p_pa_task_id;
And that the task was deleted and the MSP was returning a message saying 'Mark this task for deletion?'. Ideally this
should be used for tasks which are present in the published versions as well. Only those tasks will be marked for deletion
and during publishing those marked tasks will be deleted. All the other tasks which dont have any transactions and are not
present in the published versions should be deleted right away and the MSP should not show any message.
Analysis:
This is happening due to value 'M' being returned from the PA_PROJECT_PUB.check_task_mfd APIs OUT param p_check_task_mfd_flag.
The reason is due to the bug in the cursor l_amg_task_csr.
This SQL is starting with an element id i.e the task id and getting the parent sturcture id and looking for that parent
structure id's published status in other tables.
Ideally this is ignoring the versions of a strucutre. Even if one structure version is published the above SQL will always
find a record in the structures table with status published irrespective of the fact that the task was added to a working
version and same is not in a published version.
Solution:
The correct way of doing this is to get the task status directly from the element versions table itself as shown below
and modify the logic to use the above column value.
cursor l_amg_task_csr (p_pa_task_id pa_tasks.task_id%type) is
select 1 from dual
where exists (select ppe.element_number
from pa_proj_elements ppe, pa_proj_elem_ver_structure ppevs
where ppe.proj_element_id = p_pa_task_id
and ppe.object_type = 'PA_TASKS'
and ppe.parent_structure_id = ppevs.proj_element_id
and ppe.project_id = ppevs.project_id
and ppevs.status_code = 'STRUCTURE_PUBLISHED');
select 1 from dual
where exists(
select pev.task_unpub_ver_status_code
from pa_proj_element_versions pev
where pev.proj_element_id = p_pa_task_id
and pev.object_type = 'PA_TASKS'
and pev.task_unpub_ver_status_code in ('PUBLISHED','TO_BE_DELETED'));
l_delete_task_ok_flag VARCHAR2(1);
l_delete_task_ok_flag := 'N';
IF p_perform_check_delete_task_ok ='Y' THEN
pa_project_pub.Check_Delete_Task_OK
(
p_api_version_number => p_api_version_number
-- Start OUT params
, p_return_status => l_return_status
, p_msg_count => l_msg_count
, p_msg_data => l_msg_data
-- End OUT params
, p_project_id => l_project_id
, p_pm_project_reference => p_pm_project_reference
, p_task_id => l_task_id
, p_pm_task_reference => p_pm_task_reference
, p_structure_type => p_structure_type
, p_task_version_id => l_task_version_id
, p_delete_task_ok_flag => l_delete_task_ok_flag -- OUT param
);
In Check_Delete_Task_OK ,already message has been retrieved and
Hence ,If we raise again here ,In this API ,it wont be able to find any msg in stack now
thereby returning empty message
The commented check corresponds to return status 'E' check .It will be 'E' if its nt
allowed to delete the task. So, Just set the OUT params appropriately
and return
ELSIF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
RAISE FND_API.G_EXC_ERROR;
IF l_delete_task_ok_flag = 'N' THEN
-- Its not Ok to delete this task,so skip further steps and just return with 'N'
l_check_task_mfd_flag := 'N';
ELSIF l_delete_task_ok_flag = 'Y' THEN
-- Its Ok to delete this task , Check whether it can be deleted immediately (l_check_task_mfd_flag = 'Y')
-- (Or) it has to be marked for deletion. (l_check_task_mfd_flag = 'M')
open cur_task_status(l_project_id, l_task_id, l_task_version_id);
PA_TASK_PVT1.update_task_ver_delete_status(
p_task_version_id => p_task_version_id
,x_return_status => l_return_status
,x_msg_count => x_msg_count
,x_msg_data => x_msg_data);
END IF; -- End If for l_delete_task_ok_flag = 'Y'
ELSE -- So, Now the case if p_perform_check_delete_task_ok ='N'
-- If this flag p_perform_check_delete_task_ok is passed as 'N' ,it means just we need to check
-- whether task is marked for deletion or not in Oracle Projects.
-- Return 'M' if marked for delete
-- Check for task status.
open cur_task_status(l_project_id, l_task_id, l_task_version_id);
if l_task_status = 'TO_BE_DELETED' then
l_check_task_mfd_flag := 'M';
PROCEDURE get_deleted_tasks_from_op
(
x_deleted_task_ids OUT NOCOPY PA_NUM_1000_NUM,/*4537865 : Added nocopy hint manually */
x_return_status OUT NOCOPY VARCHAR2, /*4537865 : Added nocopy hint manually */
x_msg_count OUT NOCOPY NUMBER, /*4537865 : Added nocopy hint manually */
x_msg_data OUT NOCOPY VARCHAR2 /*4537865 : Added nocopy hint manually */
)
IS
BEGIN
x_msg_count := 0;
x_deleted_task_ids := PA_PROJECT_PUB.G_DELETED_TASK_IDS_FROM_OP;
, p_procedure_name => 'get_deleted_tasks_from_op');
END get_deleted_tasks_from_op;
PROCEDURE process_structure_updates
(p_api_version_number IN NUMBER := 1.0
, p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
, p_commit IN VARCHAR2 := FND_API.G_FALSE
, p_return_status OUT NOCOPY VARCHAR2
, p_msg_count OUT NOCOPY NUMBER
, p_msg_data OUT NOCOPY VARCHAR2
, p_structure_version_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_pa_project_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_pm_project_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_process_mode IN VARCHAR2 := 'ONLINE'
, p_calling_context IN VARCHAR2 := 'AMG')
IS
l_api_name CONSTANT VARCHAR2(30) := 'process_structure_updates';
l_update_wbs_flag VARCHAR2(1);
SAVEPOINT process_structure_updates;
p_function_name => 'PA_PM_UPDATE_PROJECT',
p_msg_count => l_msg_count,
p_msg_data => l_msg_data,
p_return_status => l_return_status,
p_function_allowed => l_function_allowed);
l_update_wbs_flag := PA_PROJECT_STRUCTURE_UTILS.GET_UPDATE_WBS_FLAG(p_project_id => l_project_id
,p_structure_version_id => p_structure_version_id ) ;
IF nvl(l_update_wbs_flag,'N') = 'Y' THEN
PA_PROJECT_STRUCTURE_UTILS.GET_PROCESS_STATUS_MSG(
p_project_id => l_project_id
, p_structure_version_id => p_structure_version_id
, p_context => 'UPDATE_AMG'
, x_message_name => l_message_name
, x_message_type => l_message_type
, x_structure_version_id => l_str_ver_id
, x_conc_request_id => l_conc_request_id);
PA_PROJ_TASK_STRUC_PUB.PROCESS_WBS_UPDATES(p_calling_context => 'ONLINE_UPDATE'
,p_project_id => l_project_id
,p_structure_version_id => p_structure_version_id
,x_return_status => l_return_status
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data ) ;
PA_PROJ_TASK_STRUC_PUB.PROCESS_WBS_UPDATES_CONC_WRP(p_calling_context => 'CONC_UPDATE'
,p_project_id => l_project_id
,p_structure_version_id => p_structure_version_id
,x_return_status => l_return_status
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data ) ;
END IF; -- l_update_wbs_flag
ROLLBACK TO process_structure_updates;
ROLLBACK TO process_structure_updates;
ROLLBACK TO process_structure_updates;
END process_structure_updates;
PROCEDURE process_structure_updates_wrp
(errbuf OUT NOCOPY VARCHAR2
, retcode OUT NOCOPY VARCHAR2
, p_operating_unit IN VARCHAR2
, p_project_num_from IN VARCHAR2
, p_project_num_to IN VARCHAR2
)
is
CURSOR cur_get_structures IS
select ppes.pev_structure_id
,ppes.project_id project_id
,ppes.element_version_id structure_version_id
,ppa.segment1 project_number
,ppes.name structure_name
from pa_proj_elem_ver_structure ppes,
pa_projects_all ppa
where ppa.project_id = ppes.project_id
and ppes.process_update_wbs_flag = 'Y'
and NVL(ppes.process_code,'WUE') = 'WUE'
and ppa.segment1 between nvl(p_project_num_from,ppa.segment1)
and nvl(p_project_num_to,ppa.segment1)
and nvl(ppa.org_id,-99) = nvl(p_operating_unit, nvl(org_id,-99))
Order by 4,5;
fnd_file.put_line(1, '* Process Structure Update Concurrent Program *');
select 'X'
into l_exists
from pa_proj_elem_ver_structure ppes
where ppes.process_update_wbs_flag = 'Y'
and NVL(ppes.process_code,'WUE') = 'WUE'
and ppes.pev_structure_id = i.pev_structure_id;
PA_PROJECT_PUB.process_structure_updates
( p_api_version_number => 1.0
, p_init_msg_list => FND_API.G_TRUE
, p_commit => FND_API.G_FALSE
, p_return_status => l_return_status
, p_msg_count => l_msg_count
, p_msg_data => l_msg_data
, p_structure_version_id => i.structure_version_id
, p_pa_project_id => i.project_id
, p_pm_project_reference => PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_process_mode => 'ONLINE'
, p_calling_context => 'CONC_WRP');
End process_structure_updates_wrp;
select ppa.sys_program_flag
from pa_projects_all ppa
where ppa.project_id = c_project_id;
select ppa.allow_multi_program_rollup
from pa_projects_all ppa
where ppa.project_id = c_project_id;
, p_function_name => 'PA_PM_UPDATE_PROJECT'
, p_msg_count => l_msg_count
, p_msg_data => l_msg_data
, p_return_status => l_return_status
, p_function_allowed => l_function_allowed);
PA_PROJECT_STRUCTURE_PUB1.UPDATE_STRUCTURES_SETUP_ATTR
(p_api_version => p_api_version
, p_init_msg_list => p_init_msg_list
, p_commit => p_commit
, p_calling_module => 'AMG'
, p_debug_mode => p_debug_mode
, p_max_msg_count => p_max_msg_count
, p_project_id => l_project_id
, p_workplan_enabled_flag => l_wp_enabled
, p_financial_enabled_flag => l_fin_enabled
, p_deliverables_enabled_flag => l_delv_enabled
, p_sharing_option_code => l_share_code
, p_sys_program_flag => l_sys_program_flag
, p_allow_multi_prog_rollup => l_allow_multi_program_rollup
, x_return_status => l_return_status
, x_msg_count => l_msg_count
, x_msg_data => l_msg_data);
select ppev.element_version_id
from pa_proj_element_versions ppev, pa_proj_elem_ver_structure ppevs
, pa_proj_structure_types ppst, pa_structure_types pst
where ppevs.proj_element_id = ppst.proj_element_id
and ppst.structure_type_id = pst.structure_type_id
and ppev.project_id = ppevs.project_id
and ppev.parent_structure_version_id = ppevs.element_version_id
and ppevs.current_working_flag = 'Y'
and ppev.proj_element_id = c_task_id
and pst.structure_type = c_structure_type;
select ppe.project_id
from pa_proj_elements ppe
where ppe.proj_element_id = c_task_id;
select ppev.project_id, ppev.proj_element_id
from pa_proj_element_versions ppev
where ppev.element_version_id = c_task_version_id;
select ppa.name
from pa_projects_all ppa, pa_proj_element_versions ppev
where ppa.project_id = ppev.project_id
and ppev.element_version_id = c_task_version_id;
select ppa.name
from pa_projects_all ppa
where ppa.project_id = c_project_id;
select ppa.name
from pa_projects_all ppa
where ppa.project_id = c_project_id;
select ppe.name
from pa_proj_elements ppe, pa_proj_element_versions ppev
where ppe.project_id = ppev.project_id
and ppe.proj_element_id = ppev.proj_element_id
and ppev.element_version_id = c_task_ver_id;
select ppa.project_id
from pa_projects_all ppa
where pm_project_reference = c_sub_project_reference
and ppa.project_id = c_sub_project_id;
select ppa.project_id
from pa_projects_all ppa
where pm_project_reference = c_sub_project_reference;
select ppa.project_id
from pa_projects_all ppa
where ppa.project_id = c_sub_project_id;
PROCEDURE UPDATE_PROGRAM_LINK_COMMENTS
(p_api_version IN NUMBER := 1.0
, p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
, p_commit IN VARCHAR2 := FND_API.G_FALSE
, p_debug_mode IN VARCHAR2 := 'N'
, p_max_msg_count IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_program_links_tbl IN PA_PROJECT_PUB.PROGRAM_LINKS_TBL_TYPE
, x_return_status OUT NOCOPY VARCHAR2
, x_msg_count OUT NOCOPY NUMBER
, x_msg_data OUT NOCOPY VARCHAR2)
is
l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_PROGRAM_LINK_COMMENTS';
select ppev.element_version_id
from pa_proj_element_versions ppev, pa_proj_elem_ver_structure ppevs
, pa_proj_structure_types ppst, pa_structure_types pst
where ppevs.proj_element_id = ppst.proj_element_id
and ppst.structure_type_id = pst.structure_type_id
and ppev.project_id = ppevs.project_id
and ppev.parent_structure_version_id = ppevs.element_version_id
and ppevs.current_working_flag = 'Y'
and ppev.proj_element_id = c_task_id
and pst.structure_type = c_structure_type;
select por2.object_relationship_id, por2.record_version_number
from pa_object_relationships por1, pa_object_relationships por2
where por1.object_id_to1 = por2.object_id_from1
and por1.relationship_type = 'S'
and por1.object_id_from1 = c_task_version_id
and por2.object_id_to2 = c_sub_proj_id
and por2.relationship_type = decode(c_structure_type, 'WORKPLAN', 'LW', 'FINANCIAL', 'LF');
select por.object_relationship_id, por.record_version_number, por.object_id_from2
from pa_object_relationships por
where por.relationship_type in ('LW','LF')
and por.object_relationship_id = c_object_relationship_id;
select ppa.name
from pa_projects_all ppa, pa_proj_element_versions ppev
where ppa.project_id = ppev.project_id
and ppev.element_version_id = c_task_version_id;
select ppa.name
from pa_projects_all ppa
where ppa.project_id = c_project_id;
select ppa.name
from pa_projects_all ppa
where ppa.project_id = c_project_id;
select ppe.name
from pa_proj_elements ppe, pa_proj_element_versions ppev
where ppe.project_id = ppev.project_id
and ppe.proj_element_id = ppev.proj_element_id
and ppev.element_version_id = c_task_ver_id;
select ppev.project_id, ppev.proj_element_id
from pa_proj_element_versions ppev
where ppev.element_version_id = c_task_version_id;
select ppa.project_id
from pa_projects_all ppa
where pm_project_reference = c_sub_project_reference
and ppa.project_id = c_sub_project_id;
select ppa.project_id
from pa_projects_all ppa
where pm_project_reference = c_sub_project_reference;
select ppa.project_id
from pa_projects_all ppa
where ppa.project_id = c_sub_project_id;
savepoint UPDATE_PROGRAM_LINK_CMNTS_AMG;
-- Call the API to update the sub-project association.
PA_RELATIONSHIP_PUB.UPDATE_SUBPROJECT_ASSOCIATION
(p_api_version => p_api_version
, p_init_msg_list => FND_API.G_FALSE
, p_calling_module => 'AMG'
, p_max_msg_count => p_max_msg_count
, p_commit => p_commit
, p_debug_mode => p_debug_mode
, p_object_relationship_id => l_object_relationship_id
, p_record_version_number => l_record_version_number
, p_comment => p_program_links_tbl(l_count).comments
, x_return_status => l_return_status
, x_msg_count => l_msg_count
, x_msg_data => l_msg_data);
rollback to UPDATE_PROGRAM_LINK_CMNTS_AMG;
rollback to UPDATE_PROGRAM_LINK_CMNTS_AMG;
rollback to UPDATE_PROGRAM_LINK_CMNTS_AMG;
end UPDATE_PROGRAM_LINK_COMMENTS;
PROCEDURE DELETE_PROGRAM_LINK
(p_api_version IN NUMBER := 1.0
, p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
, p_commit IN VARCHAR2 := FND_API.G_FALSE
, p_debug_mode IN VARCHAR2 := 'N'
, p_max_msg_count IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_object_relationship_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_parent_project_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_pm_parent_project_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_task_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_pm_task_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, p_task_version_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_structure_type IN VARCHAR2 := 'WORKPLAN'
, p_sub_project_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
, p_pm_sub_project_reference IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
, x_return_status OUT NOCOPY VARCHAR2
, x_msg_count OUT NOCOPY NUMBER
, x_msg_data OUT NOCOPY VARCHAR2)
is
l_api_name CONSTANT VARCHAR2(30) := 'DELETE_PROGRAM_LINK';
select ppev.element_version_id
from pa_proj_element_versions ppev, pa_proj_elem_ver_structure ppevs
, pa_proj_structure_types ppst, pa_structure_types pst
where ppevs.proj_element_id = ppst.proj_element_id
and ppst.structure_type_id = pst.structure_type_id
and ppev.project_id = ppevs.project_id
and ppev.parent_structure_version_id = ppevs.element_version_id
and ppevs.current_working_flag = 'Y'
and ppev.proj_element_id = c_task_id
and pst.structure_type = c_structure_type;
select por2.object_relationship_id, por2.record_version_number
from pa_object_relationships por1, pa_object_relationships por2
where por1.object_id_to1 = por2.object_id_from1
and por1.relationship_type = 'S'
and por1.object_id_from1 = c_task_version_id
and por2.object_id_to2 = c_sub_proj_id
and por2.relationship_type = decode(c_structure_type, 'WORKPLAN', 'LW', 'FINANCIAL', 'LF');
select por.object_relationship_id, por.record_version_number, por.object_id_from2
from pa_object_relationships por
where por.relationship_type in ('LW','LF')
and por.object_relationship_id = c_object_relationship_id;
select ppa.name
from pa_projects_all ppa, pa_proj_element_versions ppev
where ppa.project_id = ppev.project_id
and ppev.element_version_id = c_task_version_id;
select ppa.name
from pa_projects_all ppa
where ppa.project_id = c_project_id;
select ppe.name
from pa_proj_elements ppe, pa_proj_element_versions ppev
where ppe.project_id = ppev.project_id
and ppe.proj_element_id = ppev.proj_element_id
and ppev.element_version_id = c_task_ver_id;
select ppev.project_id, ppev.proj_element_id
from pa_proj_element_versions ppev
where ppev.element_version_id = c_task_version_id;
select ppa.project_id
from pa_projects_all ppa
where pm_project_reference = c_sub_project_reference
and ppa.project_id = c_sub_project_id;
select ppa.project_id
from pa_projects_all ppa
where pm_project_reference = c_sub_project_reference;
select ppa.project_id
from pa_projects_all ppa
where ppa.project_id = c_sub_project_id;
savepoint DELETE_PROGRAM_LINK_AMG;
PA_RELATIONSHIP_PUB.DELETE_SUBPROJECT_ASSOCIATION
(p_api_version => p_api_version
, p_init_msg_list => p_init_msg_list
, p_commit => p_commit
, p_calling_module => 'AMG'
, p_debug_mode => p_debug_mode
, p_max_msg_count => p_max_msg_count
, p_object_relationships_id => l_object_relationship_id
, p_record_version_number => l_record_version_number
, x_return_status => l_return_status
, x_msg_count => l_msg_count
, x_msg_data => l_msg_data);
rollback to DELETE_PROGRAM_LINK_AMG;
rollback to DELETE_PROGRAM_LINK_AMG;
rollback to DELETE_PROGRAM_LINK_AMG;
end DELETE_PROGRAM_LINK;
PROCEDURE UPDATE_FINANCIAL_ATTRIBUTES
(
P_API_VERSION_NUMBER IN NUMBER,
P_COMMIT IN VARCHAR2,
P_INIT_MSG_LIST IN VARCHAR2,
P_PA_PROJECT_ID IN NUMBER,
P_TASK_ID_TBL IN SYSTEM.PA_NUM_TBL_TYPE,
P_SERVICE_TYPE_CODE_TBL IN SYSTEM.PA_VARCHAR2_150_TBL_TYPE,
P_CHARGEABLE_FLAG_TBL IN SYSTEM.PA_VARCHAR2_150_TBL_TYPE,
P_BILLABLE_FLAG_TBL IN SYSTEM.PA_VARCHAR2_150_TBL_TYPE,
X_MSG_COUNT OUT NOCOPY NUMBER,
X_MSG_DATA OUT NOCOPY VARCHAR2,
X_RETURN_STATUS OUT NOCOPY VARCHAR2
)
IS
l_published_version NUMBER(15);
l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_FINANCIAL_ATTRIBUTES';
select element_version_id from (
select element_version_id
from pa_proj_elem_ver_structure ppevs,
pa_proj_structure_types ppst
where ppevs.latest_eff_published_flag = 'N'
and ppst.proj_element_id = ppevs.proj_element_id
and ppst.structure_type_id = 1
and ppevs.status_code = 'STRUCTURE_PUBLISHED'
and ppevs.project_id = p_pa_project_id
order by ppevs.published_date desc
) where rownum = 1;
select proj_element_id
from pa_proj_element_versions
where project_id = P_PA_PROJECT_ID
and object_type = 'PA_TASKS'
and PARENT_STRUCTURE_VERSION_ID = l_published_version
MINUS
select proj_element_id
from pa_proj_element_versions
where project_id = P_PA_PROJECT_ID
and object_type = 'PA_TASKS'
and PARENT_STRUCTURE_VERSION_ID = l_prev_published_version;
UPDATE pa_tasks
SET service_type_code = nvl(p_service_type_code_tbl(i),service_type_code), -- 7525628
chargeable_flag = nvl(p_chargeable_flag_tbl(i),chargeable_flag), -- 7525628
billable_flag = nvl(p_billable_flag_tbl(i),billable_flag) -- 7525628
WHERE task_id = p_task_id_tbl(i);
END UPDATE_FINANCIAL_ATTRIBUTES;