DBA Data[Home] [Help]

PACKAGE BODY: APPS.PA_PM_CONTROL_RULES_PKG

Source


1 PACKAGE BODY PA_PM_CONTROL_RULES_PKG as
2 /* $Header: PAPMPCRB.pls 120.2 2005/08/23 22:39:02 avaithia noship $ */
3 
4   PROCEDURE Insert_Row(X_Rowid                   IN OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
5                        X_Control_Rule_id         IN     NUMBER,
6                        X_Pm_product_code         IN     VARCHAR2,
7                        X_Field_value_code        IN     VARCHAR2,
8                        X_Start_Date              IN     DATE,
9                        X_End_Date                IN     DATE,
10                        X_Creation_Date           IN     DATE,
11                        X_Created_By              IN     NUMBER,
12                        X_Last_Update_Date        IN     DATE,
13                        X_Last_Updated_By         IN     NUMBER,
14                        X_Last_Update_Login       IN     NUMBER
15   ) IS
16 
17     CURSOR C IS SELECT rowid FROM pa_pm_product_control_rules
18                  WHERE control_rule_id = X_Control_Rule_id
19                  AND   pm_product_code = X_Pm_product_code ;
20    BEGIN
21 
22        INSERT INTO pa_pm_product_control_rules(
23               control_rule_id,
24               pm_product_code,
25               field_value_code,
26               start_date_active,
27               end_date_active,
28               creation_date,
29               created_by,
30               last_update_date,
31               last_updated_by,
32               last_update_login
33              ) VALUES
34              (
35               X_Control_Rule_id,
36               X_Pm_product_code,
37               X_Field_value_code,
38               X_Start_Date,
39               X_End_Date,
40               X_Creation_Date,
41               X_Created_By,
42               X_Last_Update_Date,
43               X_Last_Updated_By,
44               X_Last_Update_Login
45              );
46 
47     OPEN C;
48     FETCH C INTO X_Rowid;
49     if (C%NOTFOUND) then
50       CLOSE C;
51       Raise NO_DATA_FOUND;
52     end if;
53     CLOSE C;
54   END Insert_Row;
55 
56 
57   PROCEDURE Lock_Row(X_Rowid                     IN     VARCHAR2,
58                      X_Control_Rule_id           IN     NUMBER,
59                      X_Field_value_code          IN     VARCHAR2,
60                      X_Start_Date                IN     DATE,
61                      X_End_Date                  IN     DATE
62   ) IS
63 
64     CURSOR C IS
65         SELECT *
66         FROM   pa_pm_product_control_rules
67         WHERE  rowid = X_Rowid
68         FOR UPDATE of end_date_active NOWAIT;
69     Recinfo C%ROWTYPE;
70 
71   BEGIN
72     OPEN C;
73     FETCH C INTO Recinfo;
74     if (C%NOTFOUND) then
75       CLOSE C;
76       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
77       APP_EXCEPTION.Raise_Exception;
78     end if;
79     CLOSE C;
80     if (
81                (Recinfo.control_rule_id   =  X_Control_Rule_id)
82            AND (Recinfo.start_date_active =  X_Start_Date)
83            AND ( (Recinfo.end_date_active =  X_end_Date)
84                   OR
85                 ( (Recinfo.end_date_active IS NULL )
86                    AND (X_end_date IS NULL)))
87            AND ( (Recinfo.field_value_code = X_Field_value_code)
88                 OR
89                  ( (Recinfo.field_value_code IS NULL)
90                     AND (X_Field_value_code IS NULL )))
91       ) then
92       return;
93     else
94       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
95       APP_EXCEPTION.Raise_Exception;
96     end if;
97   END Lock_Row;
98 
99   PROCEDURE Update_Row(X_Rowid                   IN     VARCHAR2,
100                        X_Start_Date              IN     DATE,
101                        X_End_Date                IN     DATE,
102                        X_Control_rule_id         IN     NUMBER,
103                        X_Last_Update_Date        IN     DATE,
104                        X_Last_Updated_By         IN     NUMBER,
105                        X_Last_Update_Login       IN     NUMBER
106 
107   ) IS
108   BEGIN
109     UPDATE pa_pm_product_control_rules
110     SET
111        start_date_active               =     x_start_date,
112        end_date_active                 =     X_end_date
113     WHERE rowid = X_Rowid;
114 
115     if (SQL%NOTFOUND) then
116       Raise NO_DATA_FOUND;
117     end if;
118   END Update_Row;
119 
120   PROCEDURE Delete_Row(X_Rowid VARCHAR2) IS
121   BEGIN
122     DELETE FROM pa_pm_product_control_rules
123     WHERE rowid = X_Rowid;
124 
125     if (SQL%NOTFOUND) then
126       Raise NO_DATA_FOUND;
127     end if;
128   END Delete_Row;
129 
130 END PA_PM_CONTROL_RULES_PKG;