DBA Data[Home] [Help]

PACKAGE BODY: APPS.MTL_STATUS_ATTRIB_VAL_PKG

Source


1 PACKAGE BODY MTL_STATUS_ATTRIB_VAL_PKG as
2 /* $Header: INVSDOSB.pls 120.1 2005/07/01 12:56:28 appldev ship $ */
3 
4 
5   PROCEDURE Lock_Row(X_Rowid                            VARCHAR2,
6 
7                      X_Inventory_Item_Status_Code       VARCHAR2,
8                      X_Attribute_Name                   VARCHAR2,
9                      X_Attribute_Value                  VARCHAR2
10   ) IS
11     CURSOR C IS
12         SELECT *
13         FROM   MTL_STATUS_ATTRIBUTE_VALUES
14         WHERE  rowid = X_Rowid
15         FOR UPDATE of Inventory_Item_Status_Code NOWAIT;
16     Recinfo C%ROWTYPE;
17 
18 
19   BEGIN
20     OPEN C;
21     FETCH C INTO Recinfo;
22     if (C%NOTFOUND) then
23       CLOSE C;
24       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
25       APP_EXCEPTION.Raise_Exception;
26     end if;
27     CLOSE C;
28     if ( (Recinfo.inventory_item_status_code =  X_Inventory_Item_Status_Code)
29            AND (Recinfo.attribute_name =  X_Attribute_Name)
30            AND (Recinfo.attribute_value =  X_Attribute_Value)) then
31       return;
32     else
33       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
34       APP_EXCEPTION.Raise_Exception;
35     end if;
36   END Lock_Row;
37 
38 
39   PROCEDURE Update_Row(X_Rowid                          VARCHAR2,
40                        X_Inventory_Item_Status_Code     VARCHAR2,
41                        X_Status_Code_Ndb                NUMBER,
42                        X_Attribute_Name                 VARCHAR2,
43                        X_Attribute_Value                VARCHAR2,
44                        X_Old_Attribute_Value            VARCHAR2,
45                        X_Last_Update_Date               DATE,
46                        X_Last_Updated_By                NUMBER,
47                        X_Last_Update_Login              NUMBER
48 
49   ) IS
50   BEGIN
51 
52     IF ((X_Attribute_Value <> X_Old_Attribute_Value) AND
53         (X_STATUS_CODE_NDB = 1))  THEN
54         INVUPDAT.UPDATE_ATTRIBUTES( X_Attribute_Name,
55                                     X_Attribute_Value,
56                                     X_Inventory_Item_Status_Code);
57     END IF;
58 
59     UPDATE MTL_STATUS_ATTRIBUTE_VALUES
60     SET
61        inventory_item_status_code      =     X_Inventory_Item_Status_Code,
62        attribute_name                  =     X_Attribute_Name,
63        attribute_value                 =     X_Attribute_Value,
64        last_update_date                =     X_Last_Update_Date,
65        last_updated_by                 =     X_Last_Updated_By,
66        last_update_login               =     X_Last_Update_Login
67     WHERE rowid = X_Rowid;
68 
69     if (SQL%NOTFOUND) then
70       Raise NO_DATA_FOUND;
71     end if;
72   END Update_Row;
73 
74 
75   PROCEDURE Delete_Row(X_Rowid VARCHAR2) IS
76   BEGIN
77     DELETE FROM MTL_STATUS_ATTRIBUTE_VALUES
78     WHERE rowid = X_Rowid;
79 
80     if (SQL%NOTFOUND) then
81       Raise NO_DATA_FOUND;
82     end if;
83   END Delete_Row;
84 
85 
86 ------ BUG #867987 : Changes made in the following procedure.
87 ------ Adding variable 'userid' to populate the last_updated_by and created_by
88 ------        fields of MTL_STATUS_ATTRIBUTE_VALUES. Earlier 'logid' was used instead.
89 
90  PROCEDURE     Populate_Tab ( status_code IN VARCHAR2 )
91  IS
92    logid  NUMBER;
93    userid NUMBER;
94  BEGIN
95    logid := FND_GLOBAL.LOGIN_ID;
96    userid := FND_GLOBAL.USER_ID;
97 
98    insert into mtl_status_attribute_values
99   ( inventory_item_status_code,
100     attribute_name,
101     attribute_value,
102     last_update_date,
103     last_updated_by,
104     creation_date,
105     created_by,
106     last_update_login)
107   select status_code,
108         attr.attribute_name,
109         'N',
110         sysdate,
111         userid,
112         sysdate,
113         userid,
114         logid
115  from   mtl_item_attributes attr
116  where  attr.STATUS_CONTROL_CODE is not NULL;
117 
118   exception
119     when others then
120          raise_application_error(-20001, sqlerrm);
121 
122  END Populate_Tab;
123 
124 END MTL_STATUS_ATTRIB_VAL_PKG;