1 PACKAGE BODY pa_percent_complete_pkg AS
2 /*$Header: PAXPRPCB.pls 120.2 2005/08/23 22:43:44 avaithia noship $*/
3
4
5 PROCEDURE Lock_Row
6 (
7 x_rowid IN VARCHAR2
8 , x_project_id IN NUMBER
9 , x_task_id IN NUMBER
10 , x_percent_complete IN NUMBER
11 , x_as_of_date IN DATE
12 , x_current_flag IN VARCHAR2
13 , x_pm_product_code IN VARCHAR2
14 , x_description IN VARCHAR2
15 , x_last_update_date IN DATE
16 , x_last_updated_by IN NUMBER
17 , x_creation_date IN DATE
18 , x_created_by IN NUMBER
19 , x_last_update_login IN NUMBER
20 ) IS
21
22 CURSOR l_percent_cmpl_csr
23 IS
24 SELECT *
25 FROM pa_percent_completes
26 WHERE rowid = x_rowid
27 FOR UPDATE of project_id NOWAIT;
28
29 Recinfo l_percent_cmpl_csr%ROWTYPE;
30
31 BEGIN
32
33 OPEN l_percent_cmpl_csr;
34
35 FETCH l_percent_cmpl_csr INTO Recinfo;
36
37 IF (l_percent_cmpl_csr%NOTFOUND) THEN
38 CLOSE l_percent_cmpl_csr;
39 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
40 APP_EXCEPTION.Raise_Exception;
41 END IF;
42
43 IF (
44
45 (recinfo.task_id = x_task_id)
46 AND (recinfo.date_computed = x_as_of_date)
47 AND ( (recinfo.completed_percentage = x_percent_complete)
48 OR ( (recinfo.completed_percentage IS NULL)
49 AND (x_percent_complete IS NULL) ) )
50
51 AND ( (RTRIM(recinfo.description) = RTRIM(x_description))
52 OR ( (recinfo.description IS NULL)
53 AND (x_description IS NULL) ) )
54
55 AND ( (recinfo.project_id = x_project_id)
56 OR ( (recinfo.project_id IS NULL)
57 AND (x_project_id IS NULL) ) )
58
59 ) THEN
60 CLOSE l_percent_cmpl_csr;
61 RETURN;
62 ELSE
63 CLOSE l_percent_cmpl_csr;
64 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
65 APP_EXCEPTION.Raise_Exception;
66 END IF;
67 END Lock_Row;
68 -- =================================================
69
70 PROCEDURE Insert_Row
71 (
72 x_project_id IN NUMBER
73 , x_task_id IN NUMBER
74 , x_percent_complete IN NUMBER
75 , x_as_of_date IN DATE
76 , x_description IN VARCHAR2
77 , x_last_update_date IN DATE
78 , x_last_updated_by IN NUMBER
79 , x_creation_date IN DATE
80 , x_created_by IN NUMBER
81 , x_last_update_login IN NUMBER
82 , x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
83 , x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
84 ) IS
85
86 l_msg_count NUMBER := 0;
87
88 BEGIN
89
90 PA_STATUS_PUB.Update_Progress
91 ( p_api_version_number => G_API_VERSION_NUMBER
92 , p_commit => G_COMMIT
93 , p_msg_count => l_msg_count
94 , p_msg_data => x_msg_data
95 , p_init_msg_list => G_INIT_MSG_LIST
96 , p_return_status => x_return_status
97 , p_project_id => x_project_id
98 , p_task_id => x_task_id
99 , p_as_of_date => x_as_of_date
100 , p_percent_complete => x_percent_complete
101 , p_description => x_description
102 );
103
104 END Insert_Row;
105 -- ==================================================
106
107 PROCEDURE Delete_Row (x_rowid IN VARCHAR2) IS
108
109 BEGIN
110
111 DELETE FROM pa_percent_completes
112 WHERE rowid = x_rowid;
113 IF (SQL%NOTFOUND) THEN
114 RAISE NO_DATA_FOUND;
115 END IF;
116
117 END Delete_Row;
118 -- ================================================
119 END pa_percent_complete_pkg ;