The following lines contain the word 'select', 'insert', 'update' or 'delete':
Select
1
into
Row_Check
from
GMS_SUMMARY_PROJECT_FUNDINGS
where
INSTALLMENT_ID = X_Installment_Id and
PROJECT_ID = X_Project_Id and
(TASK_ID = X_Task_Id
OR
TASK_ID IS NULL) ; --DECODE(X_Task_Id,NULL,NULL,X_Task_Id);
select
total_funding_amount,
trunc(nvl(total_billed_amount,0)),
trunc(nvl(total_revenue_amount,0))
into
X_Total_Funding_Amount,
X_Total_Billed_Amount,
X_Total_Revenue_Amount
from
gms_summary_project_fundings gmf
where
gmf.installment_id = X_Installment_Id and
gmf.project_id = X_Project_Id and
(gmf.task_id = X_Task_Id
OR
gmf.task_id is NULL); -- decode(X_Task_Id,NULL,NULL,X_Task_Id);
PROCEDURE UPDATE_GMS_SUMM_PROJ_FUNDING(X_Installment_Id IN NUMBER,
X_Project_Id IN NUMBER,
X_Task_Id IN NUMBER DEFAULT NULL,
X_Funding_Amount IN NUMBER,
X_Err_Code OUT NOCOPY VARCHAR2,
X_Err_Stage OUT NOCOPY VARCHAR2) IS
St_Total_Funding NUMBER(22,5);
update GMS_SUMMARY_PROJECT_FUNDINGS
set TOTAL_FUNDING_AMOUNT = X_Funding_Amount,
LAST_UPDATE_DATE = SYSDATE ,
LAST_UPDATED_BY = FND_GLOBAL.USER_ID,
LAST_UPDATE_LOGIN = FND_GLOBAL.LOGIN_ID
where
INSTALLMENT_ID = X_Installment_Id and
PROJECT_ID = X_Project_Id and
(TASK_ID = X_Task_Id
OR
TASK_ID IS NULL ); --DECODE(X_Task_Id,NULL,NULL,X_Task_Id);
X_Err_Stage := 'No Row to update for Installment '||to_char(X_Installment_Id)||' and Project '||to_char(X_Project_Id);
FND_MESSAGE.SET_TOKEN('PROGRAM_NAME','GMS_SUMM_FUNDING_PKG : UPDATE_GMS_SUMM_PROJ_FUNDING');
END UPDATE_GMS_SUMM_PROJ_FUNDING;
Procedure INSERT_GMS_SUMM_PROJ_FUNDING(X_Installment_Id IN NUMBER,
X_Project_Id IN NUMBER,
X_Task_Id IN NUMBER DEFAULT NULL,
X_Funding_Amount IN NUMBER,
X_Err_Code OUT NOCOPY VARCHAR2,
X_Err_Stage OUT NOCOPY VARCHAR2) IS
Begin
fnd_msg_pub.initialize;
INSERT INTO GMS_SUMMARY_PROJECT_FUNDINGS
(INSTALLMENT_ID ,
PROJECT_ID,
TASK_ID ,
TOTAL_FUNDING_AMOUNT ,
LAST_UPDATE_DATE,
LAST_UPDATED_BY ,
CREATION_DATE,
CREATED_BY,
LAST_UPDATE_LOGIN)
VALUES
(X_Installment_Id,
X_Project_Id,
X_Task_Id,
X_Funding_Amount,
SYSDATE,
FND_GLOBAL.USER_ID,
SYSDATE,
FND_GLOBAL.USER_ID,
FND_GLOBAL.LOGIN_ID);
FND_MESSAGE.SET_TOKEN('PROGRAM_NAME','GMS_SUMM_FUNDING_PKG : INSERT_GMS_SUMM_PROJ_FUNDING');
End INSERT_GMS_SUMM_PROJ_FUNDING;
UPDATE_GMS_SUMM_PROJ_FUNDING(X_Installment_Id,
X_Project_Id,
X_Task_Id,
X_Total_Funding_Amount,
X_Err_Code,
X_Err_Stage);
INSERT_GMS_SUMM_PROJ_FUNDING(X_Installment_Id,
X_Project_Id,
X_Task_Id,
X_Funding_Amount,
X_Err_Code,
X_Err_Stage);
Procedure DELETE_GMS_SUMMARY_FUNDING(X_Installment_Id IN NUMBER,
X_Project_Id IN NUMBER,
X_Task_Id IN NUMBER DEFAULT NULL,
X_Funding_Amount IN NUMBER,
RETCODE OUT NOCOPY VARCHAR2,
ERRBUF OUT NOCOPY VARCHAR2) IS
-- Cursor is added as fix for bug 1583819
cursor Hard_Limit_Flag_cr is
select hard_limit_flag,invoice_limit_flag /*Bug 6642901*/
from gms_awards awd,
gms_installments_v ins
where awd.award_id=ins.award_id
and ins.installment_id = X_Installment_Id;
IS SELECT 1 FROM DUAL
WHERE EXISTS (SELECT 1
FROM gms_project_fundings
WHERE installment_id = p_installment_id
AND project_id = p_project_id
AND nvl(task_id,0) = nvl(p_task_id,0));
-- Assume project funding row has been deleted.
GET_GMS_SUMM_FUNDING(X_Installment_Id,
X_Project_Id,
X_Task_Id,
X_Total_Funding_Amount,
X_Total_Billed_Amount,
X_Total_Revenue_Amount,
X_Err_Code,
X_Err_Stage);
select 'Y' into x_funding_exists
from dual
where exists ( select 1 from gms_project_fundings
where installment_id = x_installment_id
and project_id = x_project_id);
X_Err_Stage := 'You cannot delete the funding line, as this will cause total funds to be less than the total revenue amount';
X_Err_Stage := 'You cannot delete the funding line, as this will cause total funds to be less than the total billed amount';
DELETE FROM GMS_SUMMARY_PROJECT_FUNDINGS
WHERE
INSTALLMENT_ID = X_Installment_Id and
PROJECT_ID = X_Project_Id and
(TASK_ID = X_Task_Id
OR
TASK_ID IS NULL ); -- DECODE(X_Task_Id,NULL,NULL,X_Task_Id);
X_Err_Stage := 'No Row to delete for Installment '||to_char(X_Installment_Id)||' and Project '||to_char(X_Project_Id);
FND_MESSAGE.SET_TOKEN('PROGRAM_NAME','GMS_SUMM_FUNDING_PKG : DELETE_GMS_SUMM_PROJ_FUNDING');
UPDATE_GMS_SUMM_PROJ_FUNDING(X_Installment_Id,
X_Project_Id,
X_Task_Id,
X_Total_Funding_Amount,
X_Err_Code,
X_Err_Stage);
End DELETE_GMS_SUMMARY_FUNDING;
Procedure UPDATE_GMS_SUMMARY_FUNDING(X_Installment_Id IN NUMBER,
X_Project_Id IN NUMBER,
X_Task_Id IN NUMBER DEFAULT NULL,
X_old_amount IN NUMBER,
X_new_amount IN NUMBER,
RETCODE OUT NOCOPY VARCHAR2,
ERRBUF OUT NOCOPY VARCHAR2) IS
X_Err_Code VARCHAR2(1);
SELECT hard_limit_flag,invoice_limit_flag /*Bug 6642901*/
FROM gms_awards awd,
gms_installments_v ins
WHERE awd.award_id=ins.award_id
AND ins.installment_id = X_Installment_Id;
X_Err_Stage := 'You cannot delete the funding line, as this will cause total funds to be less than the total revenue amount';
X_Err_Stage := 'You cannot delete the funding line, as this will cause total funds to be less than the total billed amount';
UPDATE_GMS_SUMM_PROJ_FUNDING(X_Installment_Id,
X_Project_Id,
X_Task_Id,
X_Total_Funding_Amount,
X_Err_Code,
X_Err_Stage);
End UPDATE_GMS_SUMMARY_FUNDING;