DBA Data[Home] [Help]

PACKAGE BODY: APPS.PA_PROJECT_CONTACTS_PKG

Source


1 PACKAGE BODY PA_PROJECT_CONTACTS_PKG as
2 /* $Header: PAXPRCOB.pls 120.1 2005/08/19 17:17:12 mwasowic noship $ */
3 
4   PROCEDURE Insert_Row(X_Rowid                   IN OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
5 
6                        X_Project_Id                     NUMBER,
7                        X_Customer_Id                    NUMBER,
8 		       X_Bill_Ship_Customer_Id          NUMBER,
9                        X_Contact_Id                     NUMBER,
10                        X_Project_Contact_Type_Code      VARCHAR2,
11                        X_Last_Update_Date               DATE,
12                        X_Last_Updated_By                NUMBER,
13                        X_Creation_Date                  DATE,
14                        X_Created_By                     NUMBER,
15                        X_Last_Update_Login              NUMBER,
16                        X_Record_Version_Number          NUMBER
17   ) IS
18     CURSOR C IS SELECT rowid FROM pa_project_contacts
19                  WHERE project_id = X_Project_Id
20                  AND   customer_id = X_Customer_Id
21                  AND   contact_id = X_Contact_Id;
22 
23    BEGIN
24 
25 
26        INSERT INTO pa_project_contacts(
27 
28               project_id,
29               customer_id,
30 	      bill_ship_customer_id,
31               contact_id,
32               project_contact_type_code,
33               last_update_date,
34               last_updated_by,
35               creation_date,
36               created_by,
37               last_update_login,
38               record_version_number
39              ) VALUES (
40 
41               X_Project_Id,
42               X_Customer_Id,
43 	      X_Bill_Ship_Customer_Id,
44               X_Contact_Id,
45               X_Project_Contact_Type_Code,
46               X_Last_Update_Date,
47               X_Last_Updated_By,
48               X_Creation_Date,
49               X_Created_By,
50               X_Last_Update_Login,
51               X_Record_Version_Number
52              );
53 
54     OPEN C;
55     FETCH C INTO X_Rowid;
56     if (C%NOTFOUND) then
57       CLOSE C;
58       Raise NO_DATA_FOUND;
59     end if;
60     CLOSE C;
61   END Insert_Row;
62 
63 
64   PROCEDURE Lock_Row(X_Rowid                            VARCHAR2,
65 
66                      X_Project_Id                       NUMBER,
67                      X_Customer_Id                      NUMBER,
68                      X_Contact_Id                       NUMBER,
69                      X_Project_Contact_Type_Code        VARCHAR2,
70                      X_Record_Version_Number            NUMBER
71   ) IS
72     CURSOR C IS
73         SELECT *
74         FROM   pa_project_contacts
75         WHERE  rowid = X_Rowid
76         FOR UPDATE of Project_Id NOWAIT;
77     Recinfo C%ROWTYPE;
78 
79 
80   BEGIN
81     OPEN C;
82     FETCH C INTO Recinfo;
83     if (C%NOTFOUND) then
84       CLOSE C;
85       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
86       APP_EXCEPTION.Raise_Exception;
87     end if;
88     CLOSE C;
89     if recinfo.record_version_number <> x_record_version_number
90     then
91       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
92       APP_EXCEPTION.Raise_Exception;
93     end if;
94     if (
95 
96                (Recinfo.project_id =  X_Project_Id)
97            AND (Recinfo.customer_id =  X_Customer_Id)
98            AND (Recinfo.contact_id =  X_Contact_Id)
99            AND (Recinfo.project_contact_type_code =  X_Project_Contact_Type_Code
100 )
101       ) then
102       return;
103     else
104       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
105       APP_EXCEPTION.Raise_Exception;
106     end if;
107   END Lock_Row;
108 
109 
110 
111   PROCEDURE Update_Row(X_Rowid                          VARCHAR2,
112 
113                        X_Project_Id                     NUMBER,
114                        X_Customer_Id                    NUMBER,
115 		       X_Bill_Ship_Customer_Id          NUMBER,
116                        X_Contact_Id                     NUMBER,
117                        X_Project_Contact_Type_Code      VARCHAR2,
118                        X_Last_Update_Date               DATE,
119                        X_Last_Updated_By                NUMBER,
120                        X_Last_Update_Login              NUMBER,
121                        X_Record_Version_Number          NUMBER
122 
123   ) IS
124     CURSOR C IS
125         SELECT *
126         FROM   pa_project_contacts
127         WHERE  rowid = X_Rowid;
128     Recinfo C%ROWTYPE;
129   BEGIN
130     OPEN C;
131     FETCH C INTO Recinfo;
132     if (C%NOTFOUND) then
133       CLOSE C;
134       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
135       APP_EXCEPTION.Raise_Exception;
136     end if;
137     CLOSE C;
138     if recinfo.record_version_number <> x_record_version_number
139     then
140       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
141       APP_EXCEPTION.Raise_Exception;
142     end if;
143     UPDATE pa_project_contacts
144     SET
145        project_id                      =     X_Project_Id,
146        customer_id                     =     X_Customer_Id,
147        bill_ship_customer_id           =     X_Bill_Ship_Customer_Id,
148        contact_id                      =     X_Contact_Id,
149        project_contact_type_code       =     X_Project_Contact_Type_Code,
150        last_update_date                =     X_Last_Update_Date,
151        last_updated_by                 =     X_Last_Updated_By,
152        last_update_login               =     X_Last_Update_Login,
153        record_Version_number           =     X_Record_Version_Number + 1
154     WHERE rowid = X_Rowid;
155 
156     if (SQL%NOTFOUND) then
157       Raise NO_DATA_FOUND;
158     end if;
159   END Update_Row;
160   PROCEDURE Delete_Row(X_Rowid VARCHAR2,
161                        x_record_version_number number) IS
162     CURSOR C IS
163         SELECT *
164         FROM   pa_project_contacts
165         WHERE  rowid = X_Rowid;
166     Recinfo C%ROWTYPE;
167 
168   BEGIN
169     OPEN C;
170     FETCH C INTO Recinfo;
171     if (C%NOTFOUND) then
172       CLOSE C;
173       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
174       APP_EXCEPTION.Raise_Exception;
175     end if;
176     CLOSE C;
177     if recinfo.record_version_number <> x_record_version_number
178     then
179       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
180       APP_EXCEPTION.Raise_Exception;
181     end if;
182     DELETE FROM pa_project_contacts
183     WHERE rowid = X_Rowid;
184 
185     if (SQL%NOTFOUND) then
186       Raise NO_DATA_FOUND;
187     end if;
188   END Delete_Row;
189 
190 
191 END PA_PROJECT_CONTACTS_PKG;