DBA Data[Home] [Help]

PACKAGE BODY: APPS.PA_SEGMENT_RULE_PAIRINGS_PKG

Source


1 PACKAGE BODY PA_SEGMENT_RULE_PAIRINGS_PKG as
2 /* $Header: PAXAAASB.pls 120.3 2005/08/03 10:27:36 aaggarwa noship $ */
3 
4   PROCEDURE Insert_Row(X_Rowid            IN OUT NOCOPY VARCHAR2,
5                        X_Application_Id                 NUMBER,
6                        X_Function_Code                  VARCHAR2,
7                        X_Function_Transaction_Code      VARCHAR2,
8                        X_Id_Flex_Code                   VARCHAR2,
9                        X_Id_Flex_Num                    NUMBER,
10                        X_Segment_Num                    NUMBER,
11                        X_Rule_Id                        NUMBER,
12                        X_Last_Update_Date               DATE,
13                        X_Last_Updated_By                NUMBER,
14                        X_Creation_Date                  DATE,
15                        X_Created_By                     NUMBER,
16                        X_Last_Update_Login              NUMBER,
17                        X_Display_Flag                   VARCHAR2,
18                        P_Org_Id                         NUMBER -- 12i MOAC changes
19   ) IS
20     CURSOR C IS SELECT rowid FROM PA_SEGMENT_RULE_PAIRINGS
21                  WHERE application_id = X_Application_Id
22                  AND   function_code = X_Function_Code
23                  AND   function_transaction_code = X_Function_Transaction_Code;
24 
25    BEGIN
26        INSERT INTO PA_SEGMENT_RULE_PAIRINGS(
27               application_id,
28               function_code,
29               function_transaction_code,
30               id_flex_code,
31               id_flex_num,
32               segment_num,
33               rule_id,
34               last_update_date,
35               last_updated_by,
36               creation_date,
37               created_by,
38               last_update_login,
39               display_flag,
40               Org_Id -- 12i MOAC changes
41              ) VALUES (
42               X_Application_Id,
43               X_Function_Code,
44               X_Function_Transaction_Code,
45               X_Id_Flex_Code,
46               X_Id_Flex_Num,
47               X_Segment_Num,
48               X_Rule_Id,
49               X_Last_Update_Date,
50               X_Last_Updated_By,
51               X_Creation_Date,
52               X_Created_By,
53               X_Last_Update_Login,
54               X_Display_Flag,
55               P_Org_Id -- 12i MOAC changes
56              );
57 
58     OPEN C;
59     FETCH C INTO X_Rowid;
60     if (C%NOTFOUND) then
61       CLOSE C;
62       Raise NO_DATA_FOUND;
63     end if;
64     CLOSE C;
65   END Insert_Row;
66 
67   PROCEDURE Lock_Row(X_Rowid                            VARCHAR2,
68                      X_Application_Id                   NUMBER,
69                      X_Function_Code                    VARCHAR2,
70                      X_Function_Transaction_Code        VARCHAR2,
71                      X_Id_Flex_Code                     VARCHAR2,
72                      X_Id_Flex_Num                      NUMBER,
73                      X_Segment_Num                      NUMBER,
74                      X_Rule_Id                          NUMBER,
75                      X_Display_Flag                     VARCHAR2
76   ) IS
77     CURSOR C IS
78         SELECT *
79         FROM   PA_SEGMENT_RULE_PAIRINGS
80         WHERE  rowid = X_Rowid
81         FOR UPDATE of Application_Id NOWAIT;
82     Recinfo C%ROWTYPE;
83 
84 
85   BEGIN
86     OPEN C;
87     FETCH C INTO Recinfo;
88     if (C%NOTFOUND) then
89       CLOSE C;
90       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
91       APP_EXCEPTION.Raise_Exception;
92     end if;
93     CLOSE C;
94     if (
95                (Recinfo.application_id =  X_Application_Id)
96            AND (Recinfo.function_code =  X_Function_Code)
97            AND (Recinfo.function_transaction_code =  X_Function_Transaction_Code
98 )
99            AND (Recinfo.id_flex_code =  X_Id_Flex_Code)
100            AND (Recinfo.id_flex_num =  X_Id_Flex_Num)
101            AND (Recinfo.segment_num =  X_Segment_Num)
102            AND (Recinfo.rule_id =  X_Rule_Id)
103            AND (   (Recinfo.display_flag =  X_Display_Flag)
104                 OR (    (Recinfo.display_flag IS NULL)
105                     AND (X_Display_Flag IS NULL)))
106       ) then
107       return;
108     else
109       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
110       APP_EXCEPTION.Raise_Exception;
111     end if;
112   END Lock_Row;
113 
114   PROCEDURE Update_Row(X_Rowid                          VARCHAR2,
115                        X_Application_Id                 NUMBER,
116                        X_Function_Code                  VARCHAR2,
117                        X_Function_Transaction_Code      VARCHAR2,
118                        X_Id_Flex_Code                   VARCHAR2,
119                        X_Id_Flex_Num                    NUMBER,
120                        X_Segment_Num                    NUMBER,
121                        X_Rule_Id                        NUMBER,
122                        X_Last_Update_Date               DATE,
123                        X_Last_Updated_By                NUMBER,
124                        X_Last_Update_Login              NUMBER,
125                        X_Display_Flag                   VARCHAR2
126 
127   ) IS
128   BEGIN
129     UPDATE PA_SEGMENT_RULE_PAIRINGS
130     SET
131        application_id                  =     X_Application_Id,
132        function_code                   =     X_Function_Code,
133        function_transaction_code       =     X_Function_Transaction_Code,
134        id_flex_code                    =     X_Id_Flex_Code,
135        id_flex_num                     =     X_Id_Flex_Num,
136        segment_num                     =     X_Segment_Num,
137        rule_id                         =     X_Rule_Id,
138        last_update_date                =     X_Last_Update_Date,
139        last_updated_by                 =     X_Last_Updated_By,
140        last_update_login               =     X_Last_Update_Login,
141        display_flag                    =     X_Display_Flag
142     WHERE rowid = X_Rowid;
143 
144     if (SQL%NOTFOUND) then
145       Raise NO_DATA_FOUND;
146     end if;
147   END Update_Row;
148   PROCEDURE Delete_Row(X_Rowid VARCHAR2) IS
149   BEGIN
150     DELETE FROM PA_SEGMENT_RULE_PAIRINGS
151     WHERE rowid = X_Rowid;
152 
153     if (SQL%NOTFOUND) then
154       Raise NO_DATA_FOUND;
155     end if;
156   END Delete_Row;
157 
158 END PA_SEGMENT_RULE_PAIRINGS_PKG;